@charset "UTF-8";
/* ────────────────────────────────
    reset
──────────────────────────────── */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
*::after, *::before {
    box-sizing: border-box;
}

html {
    font-family: var(--font-base);
    font-size: var(--font-size);
    color: var(--color-text);
    background-color: var(--color-background);
}

body {
    font-size: var(--font-base-size);
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    background-color: var(--color-background);
    overflow-x: hidden;
    word-break: keep-all;
}

ol,
ul {
    list-style: none;
}
ol::after,
ul::after {
    content: "";
    display: block;
    clear: both;
}

button {
    all: unset;
    cursor: pointer;
    box-sizing: border-box;
}

img,
svg,
picture,
video,
canvas,
iframe,
textarea {
    display: block;
    max-width: 100%;
}

img {
    vertical-align: top;
}

input,
button,
textarea,
select {
    font: inherit;
}

input {
    appearance: none;
    border-radius: none;
    outline: none;
    border-radius: 0;
    border: none;
}
input::-ms-clear {
    display: none;
}

input {
    color: var(--color-text);
    background-color: var(--color-background);
}
input::-webkit-search-decoration, input::-webkit-search-cancel-button, input::-webkit-search-results-button, input::-webkit-search-results-decoration {
    display: none;
}

input[type=text],
input[type=password],
input[type=submit],
input[type=search],
input[type=tel],
input[type=email],
html input[type=button],
input[type=reset] {
    appearance: none;
    -moz-appearance: none;
    -webkit-appearance: none;
    border-radius: 0;
    -webkit-border-radius: 0;
    -moz-border-radius: 0;
    outline: 0;
}

input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

input[type=number] {
    -moz-appearance: textfield;
}

select {
    appearance: none;
    outline: none;
    border-radius: 0;
    color: var(--color-text);
    background-color: var(--color-background);
}
select::-ms-expand {
    display: none;
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
    overflow-wrap: break-word;
}

a {
    color: inherit;
    text-decoration: none;
    display: inline-block;
}

[onclick] {
    cursor: pointer;
}

span {
    display: inline-block;
}

/* ────────────────────────────────
    variable
──────────────────────────────── */
/* ────────────────────────────────
    function
──────────────────────────────── */
/* ────────────────────────────────
    mixins
──────────────────────────────── */
/* ────────────────────────────────
    root
──────────────────────────────── */
:root {
    --font-size: 62.5%;
    --font-base: "Pretendard";
    --font-base-size: 1.6rem;
    --color-primary: #0f025a;
    --color-primary-contrast: #fff;
    --color-text: #ffffff;
    --color-text-light: #cccccc;
    --color-text-contrast: #222222;
    --color-text-contrast-light: #666666;
    --color-border: #e0e0e0;
    --color-background: #000000;
    --z-index-loading: 100;
    --z-index-popover: 99;
    --z-index-modal: 99;
    --z-index-header: 98;
    --transition-duration: 0.2s;
    --size-header-height: 10rem;
    --size-layout-container: 120rem;
}
@media screen and (max-width: 767px) {
    :root {
        --font-size: 50%;
    }
}

/* ────────────────────────────────
    fonts
──────────────────────────────── */
@font-face {
    font-family: "Pretendard";
    src: url("../fonts/Pretendard/Pretendard-Thin.woff2") format("woff2");
    font-weight: 100;
    font-display: swap;
}
@font-face {
    font-family: "Pretendard";
    src: url("../fonts/Pretendard/Pretendard-ExtraLight.woff2") format("woff2");
    font-weight: 200;
    font-display: swap;
}
@font-face {
    font-family: "Pretendard";
    src: url("../fonts/Pretendard/Pretendard-Light.woff2") format("woff2");
    font-weight: 300;
    font-display: swap;
}
@font-face {
    font-family: "Pretendard";
    src: url("../fonts/Pretendard/Pretendard-Regular.woff2") format("woff2");
    font-weight: 400;
    font-display: swap;
}
@font-face {
    font-family: "Pretendard";
    src: url("../fonts/Pretendard/Pretendard-Medium.woff2") format("woff2");
    font-weight: 500;
    font-display: swap;
}
@font-face {
    font-family: "Pretendard";
    src: url("../fonts/Pretendard/Pretendard-SemiBold.woff2") format("woff2");
    font-weight: 600;
    font-display: swap;
}
@font-face {
    font-family: "Pretendard";
    src: url("../fonts/Pretendard/Pretendard-Bold.woff2") format("woff2");
    font-weight: 700;
    font-display: swap;
}
@font-face {
    font-family: "Pretendard";
    src: url("../fonts/Pretendard/Pretendard-ExtraBold.woff2") format("woff2");
    font-weight: 800;
    font-display: swap;
}
@font-face {
    font-family: "Pretendard";
    src: url("../fonts/Pretendard/Pretendard-Black.woff2") format("woff2");
    font-weight: 900;
    font-display: swap;
}
@font-face {
    font-family: "Paperlogy";
    src: url("../fonts/Paperlogy/Paperlogy-8ExtraBold.woff2") format("woff2"), url("../fonts/Paperlogy/Paperlogy-8ExtraBold.woff") format("woff");
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Paperlogy";
    src: url("../fonts/Paperlogy/Paperlogy-6SemiBold.woff2") format("woff2"), url("../fonts/Paperlogy/Paperlogy-6SemiBold.woff") format("woff");
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}
/* ────────────────────────────────
    color
──────────────────────────────── */
.color-primary {
    color: var(--color-primary);
}

/* ────────────────────────────────
    icon
──────────────────────────────── */
/* ────────────────────────────────
    common
──────────────────────────────── */
body {
    background-color: var(--color-background);
}
body.modal-open {
    overflow-y: hidden;
}

.line-clamp {
    display: -webkit-box !important;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-all;
    text-align: left;
}
.line-clamp.show {
    max-width: none !important;
}
.line-clamp.line-2 {
    -webkit-line-clamp: 2;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

/* ────────────────────────────────
    animation
──────────────────────────────── */
@keyframes spin {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}
/* ────────────────────────────────
    grid
──────────────────────────────── */
.grid-container {
    display: grid;
    gap: var(--gap-layout);
    grid-template-columns: repeat(12, minmax(0, 1fr));
}
.grid-container .grid-item.grid-item-row-1 {
    grid-row: span 1;
}
.grid-container .grid-item.grid-item-row-2 {
    grid-row: span 2;
}
.grid-container .grid-item.grid-item-row-3 {
    grid-row: span 3;
}
.grid-container .grid-item.grid-item-row-4 {
    grid-row: span 4;
}
.grid-container .grid-item.grid-item-row-5 {
    grid-row: span 5;
}
.grid-container .grid-item.grid-item-row-6 {
    grid-row: span 6;
}
.grid-container .grid-item.grid-item-row-7 {
    grid-row: span 7;
}
.grid-container .grid-item.grid-item-row-8 {
    grid-row: span 8;
}
.grid-container .grid-item.grid-item-row-9 {
    grid-row: span 9;
}
.grid-container .grid-item.grid-item-row-10 {
    grid-row: span 10;
}
.grid-container .grid-item.grid-item-row-11 {
    grid-row: span 11;
}
.grid-container .grid-item.grid-item-row-12 {
    grid-row: span 12;
}
.grid-container .grid-item.grid-item-column-1 {
    grid-column: span 1;
}
.grid-container .grid-item.grid-item-column-2 {
    grid-column: span 2;
}
.grid-container .grid-item.grid-item-column-3 {
    grid-column: span 3;
}
.grid-container .grid-item.grid-item-column-4 {
    grid-column: span 4;
}
.grid-container .grid-item.grid-item-column-5 {
    grid-column: span 5;
}
.grid-container .grid-item.grid-item-column-6 {
    grid-column: span 6;
}
.grid-container .grid-item.grid-item-column-7 {
    grid-column: span 7;
}
.grid-container .grid-item.grid-item-column-8 {
    grid-column: span 8;
}
.grid-container .grid-item.grid-item-column-9 {
    grid-column: span 9;
}
.grid-container .grid-item.grid-item-column-10 {
    grid-column: span 10;
}
.grid-container .grid-item.grid-item-column-11 {
    grid-column: span 11;
}
.grid-container .grid-item.grid-item-column-12 {
    grid-column: span 12;
}
.grid-container .grid-item .card {
    height: 100%;
}
@media screen and (max-width: 767px) {
    .grid-container .grid-item.grid-item-column-1, .grid-container .grid-item.grid-item-column-2, .grid-container .grid-item.grid-item-column-3, .grid-container .grid-item.grid-item-column-4, .grid-container .grid-item.grid-item-column-5 {
        grid-column: span 6;
    }
    .grid-container .grid-item.grid-item-column-6, .grid-container .grid-item.grid-item-column-7, .grid-container .grid-item.grid-item-column-8, .grid-container .grid-item.grid-item-column-9, .grid-container .grid-item.grid-item-column-10, .grid-container .grid-item.grid-item-column-11, .grid-container .grid-item.grid-item-column-12 {
        grid-column: span 12;
    }
    .grid-container .grid-item.grid-item-column-mobile-1 {
        grid-column: span 1;
    }
    .grid-container .grid-item.grid-item-column-mobile-2 {
        grid-column: span 2;
    }
    .grid-container .grid-item.grid-item-column-mobile-3 {
        grid-column: span 3;
    }
    .grid-container .grid-item.grid-item-column-mobile-4 {
        grid-column: span 4;
    }
    .grid-container .grid-item.grid-item-column-mobile-5 {
        grid-column: span 5;
    }
    .grid-container .grid-item.grid-item-column-mobile-6 {
        grid-column: span 6;
    }
    .grid-container .grid-item.grid-item-column-mobile-7 {
        grid-column: span 7;
    }
    .grid-container .grid-item.grid-item-column-mobile-8 {
        grid-column: span 8;
    }
    .grid-container .grid-item.grid-item-column-mobile-9 {
        grid-column: span 9;
    }
    .grid-container .grid-item.grid-item-column-mobile-10 {
        grid-column: span 10;
    }
    .grid-container .grid-item.grid-item-column-mobile-11 {
        grid-column: span 11;
    }
    .grid-container .grid-item.grid-item-column-mobile-12 {
        grid-column: span 12;
    }
}

/* ────────────────────────────────
    header
──────────────────────────────── */
.header {
    width: 100%;
    height: var(--size-header-height);
    padding: 0 2rem;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 100;
}

.header-container {
    width: 100%;
    max-width: var(--size-layout-container);
    height: 100%;
    position: relative;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.header-container .logo-img {
    width: 18.5rem;
}
.header-container button {
    font-size: 1.6rem;
    font-weight: 700;
}

/* ────────────────────────────────
    main
──────────────────────────────── */
/* ────────────────────────────────
    footer
──────────────────────────────── */
.footer {
    width: 100%;
    background-color: #111;
    padding: 8rem 2rem;
}

.footer-container {
    width: 100%;
    max-width: var(--size-layout-container);
    height: 100%;
    position: relative;
    margin: 0 auto;
}
.footer-container .logo-img {
    width: 18.5rem;
}
.footer-container .info {
    margin: 4rem 0 2rem;
}
.footer-container .info ul {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem 3rem;
}
.footer-container .info ul::after {
    display: none;
}
.footer-container .info ul li {
    display: flex;
    align-items: baseline;
    gap: 1rem;
}
.footer-container .info ul li label {
    font-weight: 700;
}
.footer-container .copyright {
    color: var(--color-text-light);
}

/* ────────────────────────────────
    popup
──────────────────────────────── */
.popup-container {
    width: 100%;
    height: auto;
    position: relative;
    min-height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--gap-layout);
}
@media screen and (max-width: 767px) {
    .popup-container {
        align-items: flex-start;
    }
}

.popup-content {
    width: 100%;
    height: auto;
    position: relative;
    max-width: var(--size-container-width);
    background-color: var(--color-background);
    box-shadow: 0 0 10px rgba(var(--color-background-contrast), 0.1);
    border-radius: var(--radius-form);
    padding: var(--gap-section);
}
@media screen and (max-width: 767px) {
    .popup-content {
        box-shadow: none;
        padding: 0;
    }
}

/* ────────────────────────────────
    result
──────────────────────────────── */
.result-container {
    width: 100%;
    height: auto;
    position: relative;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--gap-section);
    padding: var(--gap-layout);
    text-align: center;
}
.result-container .result-code {
    width: 20rem;
    height: 20rem;
    border-radius: 50%;
    background-color: var(--color-background-light);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 6rem;
    font-weight: 900;
    color: var(--color-text-light);
}
.result-container .result-code::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    font-size: 7rem !important;
    color: var(--color-white);
}
.result-container .result-code.success {
    background-color: var(--color-success-background);
}
.result-container .result-code.success::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    color: var(--color-white);
}
.result-container .result-title {
    font-size: 2.4rem;
    font-weight: 700;
}
.result-container .result-text {
    font-size: 1.8rem;
}

/* ────────────────────────────────
    loading
──────────────────────────────── */
.loading-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(var(--color-background-contrast), 0.2);
    z-index: var(--z-index-loading);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--gap-layout);
    opacity: 0;
    pointer-events: none;
    transition: var(--transition-duration);
}
.loading-container.active {
    opacity: 1;
    pointer-events: auto;
}
.loading-container.hidden-title .loading-title {
    display: none;
}
.loading-container.hidden-sub-title .loading-sub-title {
    display: none;
}

.loading-spinner {
    width: 4rem;
    height: 4rem;
    border: 0.4rem solid var(--color-background-light);
    border-top-color: var(--color-primary);
    border-radius: 50%;
    animation: spin 0.8s ease-in-out infinite;
}

@keyframes spin {
    0% {
        transform: rotate(0);
    }
    100% {
        transform: rotate(360deg);
    }
}
.loading-title-container {
    text-align: center;
    color: var(--color-primary-contrast);
}

.loading-title {
    font-size: 1.8rem;
    font-weight: 500;
}

.loading-sub-title {
    white-space: pre-line;
}

/* ────────────────────────────────
    button
──────────────────────────────── */
.button-group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--gap-component);
}
.button-group.gap-half {
    gap: calc(var(--gap-component) / 2);
}
.button-group.left {
    justify-content: flex-start;
}
.button-group.center {
    justify-content: center;
}
.button-group.right {
    justify-content: flex-end;
}
.button-group.between {
    justify-content: space-between;
}
.button-group.nowrap {
    flex-wrap: nowrap;
}
.button-group.full .button {
    flex: 1;
}

.button {
    min-height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    text-align: center;
    white-space: nowrap;
    padding: 10px 20px;
    border-radius: 4px;
    border: 1px solid var(--color-border);
    transition: var(--transition-duration);
    font-size: 14px;
    font-weight: 500;
    color: var(--color-text);
}
.button:disabled {
    cursor: no-drop;
    opacity: 0.5;
}
.button.hidden {
    display: none;
}
.button.button-primary {
    color: var(--color-primary-contrast);
    background-color: var(--color-primary);
    border-color: transparent;
}

/* ────────────────────────────────
    input
──────────────────────────────── */
.input[type=text], .input[type=password] {
    font-size: 16px;
    font-weight: 500;
    color: var(--color-text);
    height: 46px;
    border: 1px solid var(--color-border);
    border-radius: 4px;
    padding: 0 16px;
    transition: var(--transition-duration);
}
.input[type=text]::placeholder, .input[type=password]::placeholder {
    color: var(--color-sub-2);
}
.input[type=text]:focus, .input[type=password]:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 1px var(--color-primary);
}
/* ────────────────────────────────
    select
──────────────────────────────── */
.select {
    font-size: var(--font-base-size);
    color: var(--color-text);
    height: var(--size-form);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-form);
    background-color: var(--color-background-form);
    padding: 0 calc(var(--padding-form) + (var(--padding-form) / 2) + var(--size-icon)) 0 var(--padding-form);
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath stroke='%23909090' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
    background-position: center right var(--padding-form);
    background-repeat: no-repeat;
    background-size: var(--size-icon-small);
    transition: var(--transition-duration);
}
.select:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 1px var(--color-primary);
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath fill='%23909090' d='m12 10.8-3.9 3.9a.948.948 0 0 1-.7.275.948.948 0 0 1-.7-.275.948.948 0 0 1-.275-.7c0-.283.092-.517.275-.7l4.6-4.6c.2-.2.433-.3.7-.3.267 0 .5.1.7.3l4.6 4.6a.948.948 0 0 1 .275.7.948.948 0 0 1-.275.7.948.948 0 0 1-.7.275.948.948 0 0 1-.7-.275L12 10.8Z'/%3E%3C/svg%3E");
}

/* ────────────────────────────────
    checkbox
──────────────────────────────── */
.checkbox {
    width: fit-content;
    cursor: pointer;
    position: relative;
    display: flex;
    align-items: center;
}
.checkbox input[type=checkbox] {
    display: none;
}
.checkbox input[type=checkbox]:checked ~ label {
    color: var(--color-text);
}
.checkbox input[type=checkbox]:checked ~ label::before {
    border-color: transparent;
    background-color: var(--color-primary);
}
.checkbox input[type=checkbox]:checked ~ label::after {
    opacity: 1;
    transform: scale(1);
}
.checkbox label {
    position: relative;
    font-size: var(--font-base-size);
    display: flex;
    align-items: center;
    gap: 1rem;
    transition: var(--transition-duration);
    cursor: pointer;
    color: var(--color-sub-2);
}
.checkbox label::before, .checkbox label::after {
    content: "";
    display: flex;
    width: 18px;
    height: 18px;
    text-align: center;
    align-items: center;
    justify-content: center;
    transition: var(--transition-duration);
}
.checkbox label::before {
    border: 1px solid var(--color-border);
    border-color: var(--color-gray-400);
    border-radius: 2px;
}
.checkbox label::after {
    position: absolute;
    left: 0;
    top: 0;
    opacity: 0;
    color: var(--color-primary-contrast);
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath fill='%23FFFFFF' d='m9.55 15.15 8.475-8.475c.2-.2.433-.3.7-.3.267 0 .5.1.7.3.2.2.3.438.3.713a.97.97 0 0 1-.3.712l-9.175 9.2c-.2.2-.433.3-.7.3a.96.96 0 0 1-.7-.3L4.55 13a.932.932 0 0 1-.288-.712c.008-.275.112-.512.313-.713.2-.2.438-.3.713-.3.275 0 .512.1.712.3l3.55 3.575Z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: 18px;
    background-position: center calc(50% + 4px);
}
.checkbox label:hover::before, .checkbox label:focus::before {
    background-color: var(--color-primary-light);
}
.checkbox label:active::before {
    background-color: var(--color-primary-light-active);
}
.checkbox label .required {
    color: var(--color-primary);
    margin-right: -0.6rem;
}

.checkbox-group {
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap-component);
    overflow-x: hidden;
}
.checkbox-group.column {
    flex-direction: column;
}
.checkbox-group.border .checkbox {
    width: 100%;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-form);
    transition: background color var(--transition-duration);
}
.checkbox-group.border .checkbox:hover {
    background-color: var(--color-background-light);
}
.checkbox-group.border .checkbox label {
    padding: var(--gap-component);
}
.checkbox-group.border .checkbox label::after {
    top: var(--gap-component);
    left: var(--gap-component);
}

/* ────────────────────────────────
    switch
──────────────────────────────── */
.switch {
    width: fit-content;
    position: relative;
}
.switch input[type=checkbox] {
    display: none;
}
.switch input[type=checkbox]:checked ~ label {
    background-color: var(--color-primary);
}
.switch input[type=checkbox]:checked ~ label::before {
    left: 3.8rem;
}
.switch label {
    width: 6.4rem;
    height: 3.2rem;
    display: flex;
    align-items: center;
    border-radius: 2.4rem;
    background-color: var(--color-border-light);
    cursor: pointer;
    transition: var(--transition-duration);
}
.switch label::before {
    content: "";
    display: block;
    width: 2rem;
    height: 2rem;
    background-color: var(--color-primary-contrast);
    border-radius: 50%;
    position: absolute;
    left: 0.6rem;
    box-shadow: 0 0 10px rgba(var(--color-background-contrast), 0.1);
    transition: var(--transition-duration);
}
.switch.switch-small input[type=checkbox]:checked ~ label::before {
    left: 2.7rem;
}
.switch.switch-small label {
    width: 4.8rem;
    height: 2.4rem;
}
.switch.switch-small label::before {
    width: 1.5rem;
    height: 1.5rem;
}

/* ────────────────────────────────
    radio
──────────────────────────────── */
.radio {
    width: fit-content;
}
.radio * {
    cursor: pointer;
}
.radio input[type=radio] {
    display: none;
}
.radio input[type=radio]:checked ~ label {
    color: var(--color-text);
}
.radio input[type=radio]:checked ~ label::before {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 1px var(--color-primary);
}
.radio input[type=radio]:checked ~ label::after {
    opacity: 1;
}
.radio label {
    font-size: var(--font-base-size);
    display: flex;
    align-items: center;
    gap: calc(var(--gap-component) / 2);
    position: relative;
    transition: var(--transition-duration);
    color: var(--color-label);
}
.radio label::before {
    content: "";
    display: flex;
    width: var(--size-icon-small);
    height: var(--size-icon-small);
    text-align: center;
    align-items: center;
    justify-content: center;
    transition: var(--transition-duration);
    border: 1px solid var(--color-border);
    border-radius: 50%;
}
.radio label:hover::before, .radio label:focus::before {
    background-color: var(--color-primary-light);
}
.radio label:active::before {
    background-color: var(--color-primary-light-active);
}

.radio-group {
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap-component);
}
.radio-group.ui-tab {
    width: fit-content;
    max-width: 100%;
    flex-wrap: nowrap;
    gap: 0;
    border-radius: var(--radius-form);
    overflow: hidden;
}
.radio-group.ui-tab input[type=radio]:checked ~ label {
    font-weight: 600;
    color: var(--color-primary-contrast);
    background-color: var(--color-primary);
    border-color: transparent;
}
.radio-group.ui-tab .radio label {
    min-height: var(--size-form);
    padding: 0 var(--gap-layout);
    border: 1px solid var(--color-border);
    margin-left: -1px;
}
.radio-group.ui-tab .radio label::before {
    display: none;
}
.radio-group.ui-tab .radio:first-child label {
    margin-left: 0;
    border-radius: var(--radius-form) 0 0 var(--radius-form);
}
.radio-group.ui-tab .radio:last-child label {
    border-radius: 0 var(--radius-form) var(--radius-form) 0;
}
.radio-group.ui-tab-shadow {
    width: fit-content;
    max-width: 100%;
    flex-wrap: nowrap;
    gap: 0;
    border-radius: var(--radius-form);
    background-color: var(--color-primary-light);
}
.radio-group.ui-tab-shadow input[type=radio]:checked ~ label {
    font-weight: 600;
    color: var(--color-primary);
    background-color: var(--color-primary-contrast);
    border-color: transparent;
    box-shadow: 0 0 10px rgba(var(--color-background-contrast), 0.1);
    border-radius: var(--radius-form);
}
.radio-group.ui-tab-shadow .radio label {
    min-height: var(--size-form);
    padding: 0 var(--gap-layout);
}
.radio-group.ui-tab-shadow .radio label::before {
    display: none;
}
.radio-group.ui-tab-shadow .radio:first-child label {
    margin-left: 0;
}

/* ────────────────────────────────
    textarea
──────────────────────────────── */
.textarea {
    width: 100%;
    border: 1px solid var(--color-border);
    border-radius: 4px;
    padding: 1.2rem 1.6rem;
    font-size: var(--font-base-size);
    resize: none;
    outline: none;
    overflow: auto;
    color: var(--color-text);
}
.textarea::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
.textarea::-webkit-scrollbar-track {
    border-radius: var(--radius);
    background-color: #78788030;
}
.textarea::-webkit-scrollbar-thumb {
    border-radius: var(--radius);
    background: #78788030;
}
.textarea::-webkit-scrollbar-thumb:hover {
    background: #78788050;
}
.textarea::-webkit-scrollbar-thumb:active {
    background: #78788070;
}
.textarea::-webkit-scrollbar-button {
    display: none;
}
.textarea::placeholder {
    color: var(--color-sub-2);
}
.textarea:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 1px var(--color-primary);
}
/* ────────────────────────────────
    modal
──────────────────────────────── */
.modal {
    width: 100%;
    max-width: 100%;
    height: 100%;
    max-height: 100%;
    position: fixed;
    left: 0;
    top: 0;
    z-index: var(--z-index-modal);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--gap-layout);
    opacity: 0;
    pointer-events: none;
    transition: var(--transition-duration);
}
.modal .form-title {
    font-size: 1.8rem;
}
.modal.active {
    opacity: 1;
    pointer-events: auto;
}
.modal.full {
    padding: 0;
}
.modal.full .modal-inner {
    border-radius: 0;
    max-width: none;
}
.modal.modal-small .modal-container {
    max-width: 40rem;
}
.modal.modal-medium .modal-container {
    max-width: 56rem;
}
.modal.modal-large .modal-container {
    max-width: 72rem;
}
.modal.modal-xlarge .modal-container {
    max-width: 88rem;
}
.modal.modal-xxlarge .modal-container {
    max-width: 104rem;
}
.modal.modal-xxxlarge .modal-container {
    max-width: 120rem;
}
.modal.modal-xxxxlarge .modal-container {
    max-width: 136rem;
}
.modal.modal-full .modal-container {
    max-width: 100%;
}
.modal.modal-confirm .modal-container .modal-content {
    margin-top: var(--gap-component);
}

.modal-layer {
    width: 100%;
    height: 100%;
    position: fixed;
    left: 0;
    top: 0;
    display: block;
    background-color: rgba(var(--color-background-contrast), 0.2);
}

.modal-container {
    width: 100%;
    height: auto;
    position: relative;
    overflow: auto;
    overflow-x: hidden;
    overscroll-behavior: none;
    max-height: 100%;
    max-width: 56rem;
    background-color: var(--color-background);
    border-radius: var(--radius-form);
    box-shadow: 0 0 10px rgba(var(--color-background-contrast), 0.1);
}
.modal-container::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
.modal-container::-webkit-scrollbar-track {
    border-radius: var(--radius);
    background-color: #78788030;
}
.modal-container::-webkit-scrollbar-thumb {
    border-radius: var(--radius);
    background: #78788030;
}
.modal-container::-webkit-scrollbar-thumb:hover {
    background: #78788050;
}
.modal-container::-webkit-scrollbar-thumb:active {
    background: #78788070;
}
.modal-container::-webkit-scrollbar-button {
    display: none;
}

.modal-head {
    width: 100%;
    position: sticky;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--gap-layout);
    padding: var(--gap-layout);
    border-bottom: 1px solid var(--color-border-light);
    background-color: var(--color-background);
    z-index: 1;
    border-radius: var(--radius-form) var(--radius-form) 0 0;
}
.modal-head.no-border {
    border: none;
}

.modal-title {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 1.8rem;
    font-weight: 700;
}

.modal-close-button {
    width: var(--size-icon);
    height: var(--size-icon);
    background-repeat: no-repeat;
    background-size: var(--size-icon);
    background-position: center;
    transition: var(--transition-duration);
    position: relative;
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cg clip-path='url(%23a)'%3E%3Cpath fill='%23606060' fill-rule='evenodd' d='m12.01 13.142 4.61 4.61a.815.815 0 0 0 1.151-1.153l-4.609-4.609 4.61-4.61a.815.815 0 0 0-1.153-1.151l-4.609 4.609-4.61-4.61a.815.815 0 0 0-1.15 1.153l4.608 4.609-4.61 4.61a.814.814 0 1 0 1.153 1.151l4.609-4.609Z' clip-rule='evenodd'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='a'%3E%3Cpath fill='%23fff' d='M0 0h24v24H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
}
.modal-close-button::after {
    content: "";
    display: block;
    width: calc(100% + var(--padding-form));
    height: calc(100% + var(--padding-form));
    background-color: var(--color-primary-light);
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    border-radius: var(--radius-form);
    z-index: -1;
    opacity: 0;
    transition: var(--transition-duration);
}
.modal-close-button:hover, .modal-close-button:focus {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cg clip-path='url(%23a)'%3E%3Cpath fill='%23ff7b00' fill-rule='evenodd' d='m12.01 13.142 4.61 4.61a.815.815 0 0 0 1.151-1.153l-4.609-4.609 4.61-4.61a.815.815 0 0 0-1.153-1.151l-4.609 4.609-4.61-4.61a.815.815 0 0 0-1.15 1.153l4.608 4.609-4.61 4.61a.814.814 0 1 0 1.153 1.151l4.609-4.609Z' clip-rule='evenodd'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='a'%3E%3Cpath fill='%23fff' d='M0 0h24v24H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
}
.modal-close-button:hover::after, .modal-close-button:focus::after {
    opacity: 1;
}
.modal-close-button:active::after {
    background-color: var(--color-primary-light-active);
}

.modal-content {
    width: 100%;
    height: auto;
    position: relative;
    padding: 2rem;
}

.modal-bottom {
    width: 100%;
    position: sticky;
    left: 0;
    bottom: 0;
    display: flex;
    justify-content: flex-end;
    background-color: var(--color-background);
    z-index: 1;
    padding: 2rem;
    gap: 1rem;
}
.modal-bottom.between {
    justify-content: space-between;
}

/* ────────────────────────────────
    table
──────────────────────────────── */
.table {
    width: 100%;
    height: auto;
    position: relative;
    border-top: 3px solid var(--color-text);
    border-collapse: collapse;
}
.table tbody tr {
    border-bottom: 1px solid var(--color-gray-200);
}
.table td {
    padding: 2.9rem 0.8rem;
}
.table .nodata {
    font-size: 1.6rem;
    font-weight: 500;
    color: var(--color-sub-2);
    text-align: center;
}
.table .align-center {
    text-align: center;
}
.table .col-text {
    font-size: 1.6rem;
    font-weight: 500;
    color: var(--color-text);
}
.table .col-category {
    font-size: 1.6rem;
    font-weight: 500;
    color: var(--color-text);
}
.table .col-title {
    font-size: 1.6rem;
    font-weight: 500;
    color: var(--color-text);
}
.table .col-title a:hover {
    text-decoration: underline;
}
.table .col-author {
    font-size: 1.6rem;
    font-weight: 500;
    color: var(--color-sub-2);
}
.table .col-date {
    font-size: 1.6rem;
    font-weight: 500;
    color: var(--color-sub-2);
}
@media screen and (max-width: 767px) {
    .table.mo-card {
        display: block;
        border: none;
    }
    .table.mo-card tbody {
        display: block;
    }
    .table.mo-card tbody tr {
        display: block;
        padding: 2rem;
        border: 1px solid var(--color-gray-200);
        border-radius: 4px;
    }
    .table.mo-card tbody tr ~ tr {
        margin-top: 2rem;
    }
    .table.mo-card tbody td {
        padding: 0;
        display: block;
    }
    .table.mo-card .col-category {
        font-size: 1.5rem;
        margin-bottom: 1rem;
    }
    .table.mo-card .col-title {
        font-size: 1.7rem;
        margin-bottom: 1rem;
    }
    .table.mo-card .col-inline {
        display: inline-block;
        font-size: 1.5rem;
    }
    .table.mo-card .col-inline ~ .col-inline {
        margin-left: 0.4rem;
    }
    .table.mo-card .col-inline ~ .col-inline::before {
        content: "";
        display: inline-block;
        vertical-align: middle;
        width: 0.4rem;
        height: 0.4rem;
        background-color: var(--color-gray-300);
        border-radius: 50%;
        margin-right: 0.7rem;
    }
}

.list {
    border-top: 3px solid var(--color-primary);
}
.list li {
    padding: 3.6rem 0;
    border-bottom: 1px solid var(--color-gray-300);
    display: flex;
    align-items: flex-start;
}
.list li .thumb {
    margin-right: 3.6rem;
}
.list li .thumb a {
    width: 100%;
    max-width: 20.5rem;
    display: block;
    aspect-ratio: 205/143;
    overflow: hidden;
}
.list li .thumb a img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.list li .content {
    flex: 1;
}
.list li .content .meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 2rem;
}
.list li .content .meta span {
    font-size: 1.4rem;
    font-weight: 500;
    color: var(--color-sub-1);
    display: flex;
    align-items: center;
    gap: 0.4rem;
}
.list li .content .meta span::after {
    content: "|";
    display: block;
    font-size: 1.4rem;
    font-weight: 400;
    color: var(--color-gray-300);
}
.list li .content .meta span:first-child {
    color: var(--color-primary);
    font-weight: 600;
}
.list li .content .meta span:last-child::after {
    display: none;
}
.list li .content .title {
    font-size: 1.8rem;
    font-weight: 600;
    color: var(--color-text);
}
.list li .content .title a:hover {
    text-decoration: underline;
}
.list li .content .text {
    font-size: 1.4rem;
    font-weight: 500;
    color: var(--color-sub-2);
    display: -webkit-box !important;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-all;
    margin-top: 1rem;
}
.list li .view-button {
    font-size: 1.6rem;
    font-weight: 500;
    color: var(--color-sub-2);
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    flex-wrap: nowrap;
    gap: 0.8rem;
    white-space: nowrap;
}
.list li .view-button::after {
    content: "";
    display: block;
    width: 2rem;
    height: 2rem;
    background-image: url(../images/icon/arrow_view.svg);
    background-size: cover;
}
@media screen and (max-width: 519px) {
    .list li {
        flex-direction: column;
        gap: 2rem;
    }
    .list li .thumb {
        width: 100%;
        margin-right: 0;
    }
    .list li .thumb a {
        max-width: none;
    }
}

/* ────────────────────────────────
    pagination
──────────────────────────────── */
.pagination {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    flex-wrap: nowrap;
    gap: 1.2rem 2.6rem;
    flex-wrap: wrap;
    margin-top: 5rem;
}
.pagination .button-group {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 0;
    gap: 0.4rem;
}
.pagination button {
    min-width: 4.8rem;
    min-height: 4.8rem;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    flex-wrap: nowrap;
    gap: 0;
    text-align: center;
    transition: var(--transition-duration);
    font-size: 1.5rem;
    font-weight: 500;
    color: var(--color-sub-2);
}
.pagination button.active {
    text-decoration: underline;
    color: var(--color-primary);
    font-weight: 700;
}
.pagination button:hover, .pagination button:focus {
    color: var(--color-primary);
}
.pagination .first,
.pagination .last,
.pagination .prev,
.pagination .next {
    background-size: 4.8rem;
    background-repeat: no-repeat;
    background-position: center;
}
.pagination .first {
    background-image: url(../images/icon/pagination_first.svg);
}
.pagination .last {
    background-image: url(../images/icon/pagination_last.svg);
}
.pagination .prev {
    background-image: url(../images/icon/pagination_prev.svg);
}
.pagination .next {
    background-image: url(../images/icon/pagination_next.svg);
}

/* ────────────────────────────────
    form
──────────────────────────────── */
.form-container {
    position: relative;
}
.form-container.border {
    border: 1px solid var(--color-border);
    padding: var(--gap-section);
}
.form-container.border-top {
    border-top: 1px solid var(--color-border);
    padding-top: var(--gap-section);
}
.form-container.border-radius {
    border: 1px solid var(--color-border);
    padding: var(--gap-section);
    border-radius: var(--radius-form);
}
.form-container ~ .form-container {
    margin-top: var(--gap-section);
}
.form-container.sticky {
    position: sticky;
    bottom: 0;
    background-color: var(--color-background);
    padding-bottom: var(--gap-layout);
    margin-bottom: calc(var(--gap-layout) * -1);
}
.form-container.sticky::before {
    content: "";
    display: block;
    width: 100%;
    height: var(--gap-section);
    background-color: var(--blur-background);
    box-shadow: 0 0 40px rgba(var(--blur-shadow)) inset;
    position: absolute;
    left: 0;
    top: calc(var(--gap-section) * -1);
}

.form-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--gap-component);
}
.form-head .button {
    min-height: auto;
    font-size: 14px;
    padding: 6px 12px;
}
.form-head ~ .form-content {
    margin-top: var(--gap-layout);
}
.form-head .drag-handle {
    width: 100%;
    height: var(--gap-section);
    position: absolute;
    top: 0;
    left: 0;
    cursor: move;
    display: flex;
    align-items: center;
    justify-content: center;
}
.form-head .drag-handle::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    color: var(--color-icon-light);
}

.form-title {
    font-size: 2rem;
    font-weight: 700;
}
.form-title ~ .form-sub-title {
    margin-top: 1rem;
}

.form-sub-title {
    font-size: 1.6rem;
    color: var(--color-sub-2);
}

.form-content {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.form-row {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
}
.form-row.form-button-row {
    margin-top: 2rem;
}
.form-row .form-col {
    flex: 1;
    min-width: 20rem;
}

.form-col {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}

.form-group {
    display: flex;
    align-items: center;
    gap: 1rem;
    background-color: var(--color-background);
}
.form-group.between {
    justify-content: space-between;
}
.form-group .input,
.form-group .select {
    flex: 1;
    width: 100%;
}
.form-group .drag-handle {
    cursor: move;
}
.form-group .drag-handle::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    color: var(--color-icon-light);
}

.form-label {
    font-size: 14px;
    font-weight: 500;
    color: var(--color-sub-2);
}
.form-label.required::after {
    content: "*";
    display: inline-block;
    vertical-align: middle;
    margin-left: 0.4rem;
}

.form-msg {
    font-size: 14px;
    color: var(--color-sub-2);
    position: relative;
    /*
    &::before {
        @include fontAwesome5("\f129");
        display: flex !important;
        align-items: center;
        justify-content: center;
        width: var(--size-icon-xsmall);
        height: var(--size-icon-xsmall);
        position: absolute;
        left: 0;
        top: 0.15rem;
        font-size: 0.8rem !important;
        @include border();
        border-radius: 50%;
        color: var(--color-text-light);
    }

    &.info {
        color: var(--color-info);

        &::before {
            @include fontAwesome5("\f129");
            border-color: transparent;
            background-color: var(--color-info);
            color: var(--color-white);
        }
    }

    &.success {
        color: var(--color-success);

        &::before {
            @include fontAwesome5("\f00c");
            border-color: transparent;
            background-color: var(--color-success);
            color: var(--color-white);
        }
    }

    &.warning {
        color: var(--color-warning);

        &::before {
            @include fontAwesome5("\f12a");
            border-color: transparent;
            background-color: var(--color-warning);
            color: var(--color-white);
        }
    }

    &.error {
        color: var(--color-error);

        &::before {
            @include fontAwesome5("\f00d");
            border-color: transparent;
            background-color: var(--color-error);
            color: var(--color-white);
        }
    }
    */
}

/* ────────────────────────────────
    card
──────────────────────────────── */
.card {
    padding: var(--gap-layout);
    border-radius: var(--radius-card);
    border: 1px solid var(--color-border);
    display: flex;
    flex-direction: column;
    gap: var(--gap-layout);
    position: relative;
    transition: var(--transition-duration);
}
.card > * {
    transition: var(--transition-duration);
}
.card.loading {
    align-items: center;
    justify-content: center;
}
.card.loading > * {
    opacity: 0;
    pointer-events: none;
}
.card.loading::after {
    content: "";
    display: block;
    position: absolute;
    width: 1.6rem;
    height: 1.6rem;
    border: 2px solid var(--color-border);
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

.card-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--gap-component);
}

.card-title {
    font-size: 1.8rem;
    font-weight: 600;
}
.card-title ~ .card-sub-title {
    margin-top: var(--gap-component);
}

.card-sub-title {
    color: var(--color-text-dark);
}

.card-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: var(--gap-component);
}

/* ────────────────────────────────
    toast
──────────────────────────────── */
.toast-container {
    position: fixed;
    top: 0;
    right: 0;
    z-index: var(--z-index-loading);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--gap-component);
}
.toast-container .toast {
    width: 32rem;
    min-height: calc(var(--size-icon) + var(--gap-layout) + var(--gap-layout));
    background-color: var(--color-background);
    transition: var(--transition-duration);
    box-shadow: 0 0 10px rgba(var(--color-background-contrast), 0.1);
    padding: var(--gap-layout);
    border-radius: var(--radius);
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: var(--transition-duration);
    transform: translateX(32rem);
    margin-right: var(--gap-layout);
}
.toast-container .toast:first-child {
    margin-top: var(--gap-layout);
}
.toast-container .toast .toast-icon {
    width: calc(var(--size-icon));
    height: calc(var(--size-icon));
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    position: absolute;
    left: var(--gap-layout);
    background-color: var(--color-background-light);
}
.toast-container .toast .toast-icon::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    font-size: 1rem;
}
.toast-container .toast .toast-title {
    font-size: 1.5rem;
    font-weight: 700;
    padding-left: calc(var(--size-icon) + var(--gap-layout));
}
.toast-container .toast .toast-sub-title {
    font-size: 1.4rem;
    padding-left: calc(var(--size-icon) + var(--gap-layout));
}
.toast-container .toast.info .toast-icon {
    background-color: var(--color-info);
}
.toast-container .toast.info .toast-icon::after {
    content: "";
    color: var(--color-white);
}
.toast-container .toast.success .toast-icon {
    background-color: var(--color-success);
}
.toast-container .toast.success .toast-icon::after {
    content: "";
    color: var(--color-white);
}
.toast-container .toast.warning .toast-icon {
    background-color: var(--color-warning);
}
.toast-container .toast.warning .toast-icon::after {
    content: "";
    color: var(--color-white);
}
.toast-container .toast.error .toast-icon {
    background-color: var(--color-error);
}
.toast-container .toast.error .toast-icon::after {
    content: "";
    color: var(--color-white);
}
.toast-container .toast.active {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0);
}
.toast-container .toast.hidden {
    opacity: 0;
    pointer-events: none;
    transform: translateX(32rem);
}

/* ────────────────────────────────
    ckeditor
──────────────────────────────── */
.cke_notifications_area {
    display: none !important;
}

.cke_contents {
    padding: 1rem !important;
}

.cke_top,
.cke_bottom {
    background-color: #fff !important;
}

/* ────────────────────────────────
    pages/common
──────────────────────────────── */
/* ────────────────────────────────
    pages/index
──────────────────────────────── */
.section-container {
    width: 100%;
    max-width: var(--size-layout-container);
    height: 100%;
    position: relative;
    margin: 0 auto;
    padding: 16rem 0;
}
.section-container > .head .title {
    font-size: 3.8rem;
    font-weight: 700;
}
.section-container > .head .text {
    font-size: 2rem;
    font-weight: 500;
    color: var(--color-text-light);
    margin-top: 1.6rem;
}
.section-container > .content {
    margin-top: 12rem;
}
@media screen and (max-width: 1239px) {
    .section-container > .head .title {
        font-size: 3.2rem;
    }
    .section-container > .head .text {
        font-size: 1.8rem;
    }
}

.section {
    width: 100%;
    padding: 0 2rem;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    background-attachment: fixed;
}
@media screen and (max-width: 767px) {
    .section {
        background-attachment: scroll;
    }
}

.section-visual {
    padding-top: var(--size-header-height);
    background-image: url(../images/main/visual_bg.png);
}
.section-visual .section-container {
    padding: 0;
}
.section-visual .content {
    width: 100%;
    min-height: calc(100vh - var(--size-header-height));
    min-height: calc(100dvh - var(--size-header-height));
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    margin-top: 0;
}
.section-visual .content h2 {
    font-size: 3rem;
    font-weight: 500;
    line-height: normal;
}
.section-visual .content h3 {
    font-size: 15rem;
    font-weight: 900;
    line-height: normal;
    opacity: 0.5;
}
.section-visual .content p {
    font-size: 2.4rem;
    margin-top: 4rem;
}
@media screen and (max-width: 1239px) {
    .section-visual .content h2 {
        font-size: 2rem;
    }
    .section-visual .content h3 {
        font-size: 12rem;
    }
    .section-visual .content p {
        font-size: 1.8rem;
    }
}

.section-service .content ul {
    display: flex;
    flex-direction: column;
    gap: 12rem;
}
.section-service .content ul::after {
    display: none;
}
.section-service .content ul li {
    display: flex;
    align-items: center;
    gap: 20rem;
}
.section-service .content ul li:nth-of-type(2n) .text {
    order: -1;
}
.section-service .content ul li .img {
    width: 40rem;
}
.section-service .content ul li .text {
    flex: 1;
}
.section-service .content ul li .text h3 {
    font-size: 2.8rem;
    font-weight: 700;
}
.section-service .content ul li .text p {
    font-size: 1.8rem;
    color: var(--color-text-light);
    margin-top: 1rem;
}
.section-service .content ul li .keyword {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.8rem;
    margin-top: 4rem;
}
.section-service .content ul li .keyword span {
    font-size: 1.4rem;
    border: 1px solid var(--color-text);
    border-radius: 24px;
    padding: 0.8rem 1.2rem;
    background-color: #ffffff05;
}
@media screen and (max-width: 1239px) {
    .section-service .content ul li .text h3 {
        font-size: 2.4rem;
    }
    .section-service .content ul li .text p {
        font-size: 1.6rem;
    }
    .section-service .content ul li .keyword span {
        font-size: 1.3rem;
    }
}
@media screen and (max-width: 1023px) {
    .section-service .content ul li {
        gap: 8rem;
    }
    .section-service .content ul li .img {
        width: calc(400px / 1024px * 100vw);
    }
}
@media screen and (max-width: 767px) {
    .section-service .content ul li {
        align-items: flex-start;
        flex-direction: column;
        gap: 4rem;
    }
    .section-service .content ul li .img {
        width: 100%;
        order: -2;
    }
    .section-service .content ul li .img img {
        width: 100%;
    }
}

.section-slogan {
    background-image: url(../images/main/slogan_bg.png);
}
.section-slogan .content ul {
    display: flex;
    align-items: center;
}
.section-slogan .content ul::after {
    display: none;
}
.section-slogan .content ul li {
    flex: 1;
    aspect-ratio: 1;
    border: 1px solid var(--color-text);
    border-radius: 50%;
    margin-left: -4rem;
    display: flex;
    align-items: center;
    padding: 0 6rem;
    background-color: #ffffff05;
}
.section-slogan .content ul li:nth-of-type(1) {
    margin-left: 0;
}
.section-slogan .content ul li .text p:nth-of-type(1) {
    font-size: 1.4rem;
    font-weight: 700;
}
.section-slogan .content ul li .text p:nth-of-type(2) {
    font-size: 2.4rem;
    font-weight: 700;
    margin-top: 1rem;
}
.section-slogan .content ul li .text p:nth-of-type(3) {
    font-size: 1.6rem;
    margin-top: 2rem;
}
@media screen and (max-width: 1023px) {
    .section-slogan .content ul {
        flex-wrap: wrap;
    }
    .section-slogan .content ul li {
        flex: 1 1 40%;
    }
    .section-slogan .content ul li:nth-of-type(3), .section-slogan .content ul li:nth-of-type(4) {
        margin-top: -4rem;
        margin-left: 0;
    }
    .section-slogan .content ul li .text {
        margin: 0 auto;
        text-align: center;
    }
}
@media screen and (max-width: 767px) {
    .section-slogan .content ul {
        display: block;
    }
    .section-slogan .content ul li {
        flex: 1;
        margin-left: 0 !important;
        margin-top: -4rem !important;
    }
}

.section-template .section-container {
    max-width: 100%;
}
.section-template .section-container .head {
    max-width: var(--size-layout-container);
    margin: 0 auto;
}
.section-template .content {
    max-width: 192rem;
    margin-left: auto;
    margin-right: auto;
}
.section-template .content .flow-container {
    width: 100%;
    overflow: hidden;
}
.section-template .content .flow {
    display: flex;
    gap: 2rem;
    width: max-content;
    animation: flow 24s linear infinite;
    will-change: transform;
}
.section-template .content .flow-list {
    display: flex;
    align-items: flex-start;
    gap: 2rem;
    flex-shrink: 0;
}
.section-template .content .flow-list img {
    display: block;
    flex-shrink: 0;
}
.section-template .content .flow-list img:nth-of-type(2n) {
    margin-top: 6rem;
}
@keyframes flow {
    0% {
        transform: translate3d(0, 0, 0);
    }
    100% {
        transform: translate3d(-50%, 0, 0);
    }
}

.section-contact {
    background-image: url(../images/main/contact_bg.png);
}
.section-contact .section-container {
    display: flex;
    justify-content: space-between;
    gap: 16rem;
}
.section-contact .section-container .content {
    width: 60rem;
    margin-top: 0;
}
.section-contact .head .info {
    margin-top: 12rem;
}
.section-contact .head .info ul::after {
    display: none;
}
.section-contact .head .info ul li ~ li {
    margin-top: 4rem;
}
.section-contact .head .info ul li p:nth-of-type(1) {
    font-size: 1.2rem;
    font-weight: 600;
}
.section-contact .head .info ul li p:nth-of-type(2) {
    font-size: 1.5rem;
    margin-top: 0.6rem;
}
.section-contact .content .contact-form .row ~ .row {
    margin-top: 3rem;
}
.section-contact .content .contact-form .row label {
    font-size: 1.4rem;
    font-weight: 500;
}
.section-contact .content .contact-form .row input,
.section-contact .content .contact-form .row textarea,
.section-contact .content .contact-form .row button {
    width: 100%;
    border: 1px solid var(--color-text);
    border-radius: 0.8rem;
    background-color: transparent;
    padding: 1.6rem;
    margin-top: 0.6rem;
    color: var(--color-text);
}
.section-contact .content .contact-form .row input::placeholder,
.section-contact .content .contact-form .row textarea::placeholder,
.section-contact .content .contact-form .row button::placeholder {
    color: var(--color-text-light);
}
.section-contact .content .contact-form .row button {
    text-align: center;
    background-color: #cccccc99;
    border-color: transparent;
    color: var(--color-text-contrast);
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
}
.section-contact .content .contact-form .row button:hover {
    background-color: #cccccc;
}
.section-contact .content .contact-form .row button:active {
    background-color: #cccccc99;
}
@media screen and (max-width: 767px) {
    .section-contact .section-container {
        display: block;
    }
    .section-contact .section-container .content {
        width: 100%;
        margin-top: 8rem;
    }
    .section-contact .head .info {
        margin-top: 4rem;
    }
    .section-contact .head .info ul li {
        display: flex;
        align-items: baseline;
        gap: 1rem;
    }
    .section-contact .head .info ul li ~ li {
        margin-top: 2rem;
    }
    .section-contact .head .info ul li p {
        font-size: 1.5rem !important;
    }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbW1vbi9fcmVzZXQuc2NzcyIsImNvbW1vbi9fdmFyaWFibGUuc2NzcyIsImNvbW1vbi9fZnVuY3Rpb24uc2NzcyIsImNvbW1vbi9fbWl4aW4uc2NzcyIsImNvbW1vbi9fcm9vdC5zY3NzIiwiY29tbW9uL19mb250cy5zY3NzIiwiY29tbW9uL19jb2xvci5zY3NzIiwiY29tbW9uL19pY29uLnNjc3MiLCJjb21tb24vX2NvbW1vbi5zY3NzIiwiY29tbW9uL19hbmltYXRpb24uc2NzcyIsImxheW91dC9fZ3JpZC5zY3NzIiwibGF5b3V0L19oZWFkZXIuc2NzcyIsImxheW91dC9fbWFpbi5zY3NzIiwibGF5b3V0L19mb290ZXIuc2NzcyIsImxheW91dC9fcG9wdXAuc2NzcyIsImxheW91dC9fcmVzdWx0LnNjc3MiLCJjb21wb25lbnRzL19sb2FkaW5nLnNjc3MiLCJjb21wb25lbnRzL19idXR0b24uc2NzcyIsImNvbXBvbmVudHMvX2lucHV0LnNjc3MiLCJjb21wb25lbnRzL19zZWxlY3Quc2NzcyIsImNvbXBvbmVudHMvX2NoZWNrYm94LnNjc3MiLCJjb21wb25lbnRzL19zd2l0Y2guc2NzcyIsImNvbXBvbmVudHMvX3JhZGlvLnNjc3MiLCJjb21wb25lbnRzL190ZXh0YXJlYS5zY3NzIiwiY29tcG9uZW50cy9fbW9kYWwuc2NzcyIsImNvbXBvbmVudHMvX3RhYmxlLnNjc3MiLCJjb21wb25lbnRzL19wYWdpbmF0aW9uLnNjc3MiLCJjb21wb25lbnRzL19mb3JtLnNjc3MiLCJjb21wb25lbnRzL19jYXJkLnNjc3MiLCJjb21wb25lbnRzL190b2FzdC5zY3NzIiwiY29tcG9uZW50cy9fY2tlZGl0b3Iuc2NzcyIsInBhZ2VzL19jb21tb24uc2NzcyIsInBhZ2VzL19tYWluLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTtBQUdBO0lBQ0k7SUFDQTtJQUNBOztBQUVBO0lBRUk7OztBQUlSO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7OztBQUdKO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOzs7QUFHSjtBQUFBO0lBRUk7O0FBRUE7QUFBQTtJQUNJO0lBQ0E7SUFDQTs7O0FBSVI7SUFDSTtJQUNBO0lBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0lBT0k7SUFDQTs7O0FBR0o7SUFDSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7SUFJSTs7O0FBR0o7SUFDSTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztBQUVBO0lBQ0k7OztBQUlSO0lBQ0k7SUFDQTs7QUFFQTtJQUlJOzs7QUFJUjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0lBUUk7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7OztBQUdKO0FBQUE7SUFFSTtJQUNBO0lBQ0E7OztBQUdKO0lBQ0k7OztBQUdKO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7QUFFQTtJQUNJOzs7QUFJUjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtJQU9JOzs7QUFHSjtJQUNJO0lBQ0E7SUFDQTs7O0FBR0o7SUFDSTs7O0FBR0o7SUFDSTs7O0FDMUpKO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQUdBO0lBRUk7SUFDQTtJQUNBO0lBR0E7SUFDQTtJQUdBO0lBQ0E7SUFDQTtJQUNBO0lBT0E7SUFJQTtJQUdBO0lBQ0E7SUFDQTtJQUNBO0lBR0E7SUFHQTtJQUNBOztBRDJGSTtJQ2pJUjtRQXlDUTs7OztBQzVDUjtBQUFBO0FBQUE7QUFLQTtJQUNJO0lBQ0E7SUFDQTtJQUNBOztBQUdKO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7O0FBR0o7SUFDSTtJQUNBO0lBQ0E7SUFDQTs7QUFHSjtJQUNJO0lBQ0E7SUFDQTtJQUNBOztBQUdKO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7O0FBR0o7SUFDSTtJQUNBO0lBQ0E7SUFDQTs7QUFHSjtJQUNJO0lBQ0E7SUFDQTtJQUNBOztBQUdKO0lBQ0k7SUFDQTtJ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QTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztBQUVBO0lBQ0k7O0FBS0k7SUFDSTtJQUNBOztBQUdKO0lBQ0k7SUFDQTtJQUNBOztBQUdKO0lBQ0k7SUFDQTs7QTdCL0pwQjtJNkJ5S0k7UUFDSTs7SUFFQTtRQUNJOztJQUVBO1FBRUk7UUFDQTs7SUFHSjtRQUNJO1FBQ0E7OztBN0IzS2hCO0k2Qm9MSTtRQUNJOztJQUVBO1FBQ0k7UUFDQTtRQUNBOzs7O0FBUWhCO0lBQ0k7O0FBRUE7SUFDSTtJQUNBOztBQUlSO0lBQ0k7SUFDQTtJQUNBOztBQUVBO0lBQ0k7SUFDQTs7QUFHSjtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0FBR0o7SUFDSTtJQUNBO0lBQ0E7SUFDQTs7QUFFQTtJQUNJO0lBQ0E7O0FBR0o7SUFDSTs7QUFJUjtJQUNJO1FBQ0k7O0lBRUo7UUFDSTs7OztBQU1oQjtJQUNJOztBQUVBO0lBQ0k7SUFDQTtJQUNBOztBQUVBO0lBQ0k7SUFDQTs7QUFLSjtJQUNJOztBQUdJO0lBQ0k7O0FBSUE7SUFDSTs7QUFJQTtJQUNJO0lBQ0E7O0FBR0o7SUFDSTtJQUNBOztBQVdaO0lBQ0k7O0FBR0o7SUFDSTtJQUNBOztBQUdKO0FBQUE7QUFBQTtJQUdJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztBQUVBO0FBQUE7QUFBQTtJQUNJOztBQUlSO0lBQ0k7SUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztBQUVBO0lBQ0k7O0FBR0o7SUFDSTs7QTdCalZoQjtJNkJ5VkE7UUFDSTs7SUFFQTtRQUNJO1FBQ0E7O0lBS0o7UUFDSTs7SUFHSTtRQUNJO1FBQ0E7UUFDQTs7SUFFQTtRQUNJOztJQUdKO1FBQ0kiLCJmaWxlIjoiaW5kZXguY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICByZXNldFxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuKiB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHJcbiAgICAmOjphZnRlcixcclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIH1cclxufVxyXG5cclxuaHRtbCB7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1iYXNlKTtcclxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplKTtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG59XHJcblxyXG5ib2R5IHtcclxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1iYXNlLXNpemUpO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgICB3b3JkLWJyZWFrOiBrZWVwLWFsbDtcclxufVxyXG5cclxub2wsXHJcbnVsIHtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcblxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgY2xlYXI6IGJvdGg7XHJcbiAgICB9XHJcbn1cclxuXHJcbmJ1dHRvbiB7XHJcbiAgICBhbGw6IHVuc2V0O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxufVxyXG5cclxuaW1nLFxyXG5zdmcsXHJcbnBpY3R1cmUsXHJcbnZpZGVvLFxyXG5jYW52YXMsXHJcbmlmcmFtZSxcclxudGV4dGFyZWEge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbmltZyB7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG59XHJcblxyXG5pbnB1dCxcclxuYnV0dG9uLFxyXG50ZXh0YXJlYSxcclxuc2VsZWN0IHtcclxuICAgIGZvbnQ6IGluaGVyaXQ7XHJcbn1cclxuXHJcbmlucHV0IHtcclxuICAgIGFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICBib3JkZXItcmFkaXVzOiBub25lO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcblxyXG4gICAgJjo6LW1zLWNsZWFyIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG59XHJcblxyXG5pbnB1dCB7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcclxuXHJcbiAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxyXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcclxuICAgICY6Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uLFxyXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG59XHJcblxyXG5pbnB1dFt0eXBlPVwidGV4dFwiXSxcclxuaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxyXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdLFxyXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxyXG5pbnB1dFt0eXBlPVwidGVsXCJdLFxyXG5pbnB1dFt0eXBlPVwiZW1haWxcIl0sXHJcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcclxuaW5wdXRbdHlwZT1cInJlc2V0XCJdIHtcclxuICAgIGFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgLW1vei1ib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgb3V0bGluZTogMDtcclxufVxyXG5cclxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcclxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XHJcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICBhcHBlYXJhbmNlOiBub25lO1xyXG59XHJcblxyXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdIHtcclxuICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xyXG59XHJcblxyXG5zZWxlY3Qge1xyXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcblxyXG4gICAgJjo6LW1zLWV4cGFuZCB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxufVxyXG5cclxucCxcclxuaDEsXHJcbmgyLFxyXG5oMyxcclxuaDQsXHJcbmg1LFxyXG5oNiB7XHJcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xyXG59XHJcblxyXG5hIHtcclxuICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG59XHJcblxyXG5bb25jbGlja10ge1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG5zcGFuIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIHZhcmlhYmxlXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqLyIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgZnVuY3Rpb25cclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbkBmdW5jdGlvbiB2dygkcHgsICRiYXNlOiAxOTIwKSB7XHJcbiAgICBAcmV0dXJuIGNhbGMoI3skcHh9IC8gI3skYmFzZX0gKiAxMDB2dyk7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiB2aCgkcHgsICRiYXNlOiAxMDgwKSB7XHJcbiAgICBAcmV0dXJuIGNhbGMoI3skcHh9IC8gI3skYmFzZX0gKiAxMDB2aCk7XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBtaXhpbnNcclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbkBtaXhpbiBwYXJlbnQoJHdpZHRoOiAxMDAlLCAkaGVpZ2h0OiBhdXRvLCAkcG9zaXRpb246IHJlbGF0aXZlKSB7XHJcbiAgICB3aWR0aDogJHdpZHRoO1xyXG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xyXG4gICAgcG9zaXRpb246ICRwb3NpdGlvbjtcclxufVxyXG5cclxuQG1peGluIGxpbmUtY2xhbXAoJGxpbmU6IDEpIHtcclxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94ICFpbXBvcnRhbnQ7XHJcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6ICRsaW5lO1xyXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxufVxyXG5cclxuQG1peGluIGZsZXgoJGRpcmVjdGlvbjogcm93LCAkanVzdGlmeTogY2VudGVyLCAkYWxpZ246IGNlbnRlciwgJHdyYXA6IG5vd3JhcCwgJGdhcDogMCkge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uO1xyXG4gICAganVzdGlmeS1jb250ZW50OiAkanVzdGlmeTtcclxuICAgIGFsaWduLWl0ZW1zOiAkYWxpZ247XHJcbiAgICBmbGV4LXdyYXA6ICR3cmFwO1xyXG4gICAgZ2FwOiAkZ2FwO1xyXG59XHJcblxyXG5AbWl4aW4gZ3JpZCgkY29sdW1uOiAxMiwgJG1pbjogMCwgJG1heDogMWZyLCAkZ2FwOiB2YXIoLS1nYXAtbGF5b3V0KSkge1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdhcDogJGdhcDtcclxuXHJcbiAgICBAaWYgJGNvbHVtbiA9PWF1dG8ge1xyXG4gICAgICAgIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XHJcbiAgICAgICAgZ3JpZC1hdXRvLWNvbHVtbnM6IG1pbm1heCgkbWluLCAkbWF4KTtcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KCRjb2x1bW4sIG1pbm1heCgkbWluLCAkbWF4KSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtaXhpbiBzY3JvbGxib3gge1xyXG4gICAgb3ZlcmZsb3c6IGF1dG87XHJcblxyXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xyXG4gICAgICAgIC8vIOyKpO2BrOuhpCDrsJRcclxuICAgICAgICB3aWR0aDogOHB4O1xyXG4gICAgICAgIGhlaWdodDogOHB4O1xyXG4gICAgfVxyXG5cclxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcclxuICAgICAgICAvLyDsiqTtgazroaQg67CUIOuwkeydmCDrsLDqsr1cclxuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ODc4ODAzMDtcclxuICAgIH1cclxuXHJcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgICAgICAgLy8g7Iuk7KeI7KCBIOyKpO2BrOuhpCDrsJRcclxuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICM3ODc4ODAzMDtcclxuICAgIH1cclxuXHJcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XHJcbiAgICAgICAgLy8g7Iuk7KeI7KCBIOyKpO2BrOuhpCDrsJQg7JyE7JeQIOuniOyasOyKpOulvCDsmKzroKTri6Qg65GYIOuVjFxyXG4gICAgICAgIGJhY2tncm91bmQ6ICM3ODc4ODA1MDtcclxuICAgIH1cclxuXHJcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjphY3RpdmUge1xyXG4gICAgICAgIC8vIOyLpOyniOyggSDsiqTtgazroaQg67CU66W8IO2BtOumre2VoCDrlYxcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjNzg3ODgwNzA7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uIHtcclxuICAgICAgICAvLyDsiqTtgazroaQg67CUIOyDgSDtlZjri6gg67KE7Yq8XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIGZvbnRBd2Vzb21lNSgkaWNvbjogXCJcXGYxMDVcIiwgJGNvbG9yOiB2YXIoLS1jb2xvci1pY29uKSkge1xyXG4gICAgY29udGVudDogJGljb247XHJcbiAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBGcmVlXCI7XHJcbiAgICBmb250LXdlaWdodDogOTAwO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LWJhc2Utc2l6ZSk7XHJcbiAgICBjb2xvcjogJGNvbG9yO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG59XHJcblxyXG5AbWl4aW4gYm9yZGVyLXRvcCgkY29sb3I6IHZhcigtLWNvbG9yLWJvcmRlcikpIHtcclxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY29sb3I7XHJcbn1cclxuXHJcbkBtaXhpbiBib3JkZXItYm90dG9tKCRjb2xvcjogdmFyKC0tY29sb3ItYm9yZGVyKSkge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcjtcclxufVxyXG5cclxuLy8g66+465SU7Ja07L+866asXHJcbkBtaXhpbiBtcS1kZXNrdG9wKCR0eXBlOiBtYXgpIHtcclxuICAgIEBpZiAkdHlwZSA9PW1heCB7XHJcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTQzOXB4KSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH0gQGVsc2UgaWYgJHR5cGUgPT1taW4ge1xyXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0NDBweCkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtcS1sYXB0b3AoJHR5cGU6IG1heCkge1xyXG4gICAgQGlmICR0eXBlID09bWF4IHtcclxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjM5cHgpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfSBAZWxzZSBpZiAkdHlwZSA9PW1pbiB7XHJcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTI0MHB4KSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIG1xLXRhYmxldCgkdHlwZTogbWF4KSB7XHJcbiAgICBAaWYgJHR5cGUgPT1tYXgge1xyXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9IEBlbHNlIGlmICR0eXBlID09bWluIHtcclxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gbXEtbW9iaWxlKCR0eXBlOiBtYXgpIHtcclxuICAgIEBpZiAkdHlwZSA9PW1heCB7XHJcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfSBAZWxzZSBpZiAkdHlwZSA9PW1pbiB7XHJcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vLyDsoJXtlbTsp4Qg66+465SU7Ja0IOy/vOumrCDsnbTsmbjsl5Ag7IKs7Jqp7ZWY6rOgIOyLtuydgCDqsr3smrBcclxuQG1peGluIG1xLWN1c3RvbSgkdHlwZSwgJHdpZHRoKSB7XHJcbiAgICBAaWYgJHR5cGUgPT1tYXgge1xyXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR3aWR0aCkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9IEBlbHNlIGlmICR0eXBlID09bWluIHtcclxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkd2lkdGgpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vLyDrs7TrjZRcclxuQG1peGluIGJvcmRlcigpIHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7XHJcbn1cclxuXHJcbi8vIOuwleyKpCDshIDrj4TsmrBcclxuQG1peGluIGJveC1zaGFkb3coKSB7XHJcbiAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKHZhcigtLWNvbG9yLWJhY2tncm91bmQtY29udHJhc3QpLCAwLjEpO1xyXG59XHJcblxyXG4vLyDsubTrk5ztmJXtg5wg7YWM7J2067iUXHJcbkBtaXhpbiB0YWJsZS1jYXJkKCkge1xyXG4gICAgdGhlYWQge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgdGJvZHkge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICBnYXA6IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIHRyIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgZ2FwOiB2YXIoLS1nYXAtY29tcG9uZW50KTtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZvcm0pO1xyXG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWdhcC1sYXlvdXQpO1xyXG4gICAgfVxyXG5cclxuICAgIHRkIHtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG5cclxuICAgICAgICAmW2RhdGEtbGFiZWxdIHtcclxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1sYWJlbCk7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1sYWJlbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmJ1dHRvbi1ncm91cCB7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICAgIH1cclxufVxyXG5cclxuLy8g7Iqk7ZS864SIXHJcbkBtaXhpbiBzcGlubmVyKCRzaXplOiAxLjZyZW0sICRjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSkpIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgd2lkdGg6ICRzaXplO1xyXG4gICAgaGVpZ2h0OiAkc2l6ZTtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvcjtcclxuICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTtcclxufVxyXG5cclxuLy8gY2xvc2UgaWNvbiBidXR0b25cclxuQG1peGluIGJ1dHRvbi1jbG9zZSgpIHtcclxuICAgIHdpZHRoOiB2YXIoLS1zaXplLWljb24pO1xyXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLWljb24pO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogdmFyKC0tc2l6ZS1pY29uKTtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvaWNvbi9jbG9zZS5zdmcpO1xyXG59XHJcblxyXG4vLyBiYWNrZ3JvdW5kLWljb25cclxuQG1peGluIGJhY2tncm91bmQtaWNvbigkc2l6ZTogdmFyKC0tc2l6ZS1pY29uKSkge1xyXG4gICAgd2lkdGg6ICRzaXplO1xyXG4gICAgaGVpZ2h0OiAkc2l6ZTtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRzaXplO1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigpO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4vLyBidXR0b24gYWN0aXZlXHJcbkBtaXhpbiBidXR0b24tYWN0aXZlKCkge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodC1hY3RpdmUpO1xyXG59XHJcblxyXG4vLyB0cmFuc2l0aW9uLWR1cmF0aW9uXHJcbkBtaXhpbiB0cmFuc2l0aW9uLWR1cmF0aW9uKCkge1xyXG4gICAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XHJcbn1cclxuXHJcbi8vIHRleHRcclxuQG1peGluIHRleHQoJGZvbnQtc2l6ZTogMS42cmVtLCAkZm9udC13ZWlnaHQ6IDQwMCwgJGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KSkge1xyXG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xyXG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodDtcclxuICAgIGNvbG9yOiAkY29sb3I7XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICByb290XHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG46cm9vdCB7XHJcbiAgICAvLyBmb250XHJcbiAgICAtLWZvbnQtc2l6ZTogNjIuNSU7XHJcbiAgICAtLWZvbnQtYmFzZTogXCJQcmV0ZW5kYXJkXCI7XHJcbiAgICAtLWZvbnQtYmFzZS1zaXplOiAxLjZyZW07XHJcblxyXG4gICAgLy8gY29sb3JcclxuICAgIC0tY29sb3ItcHJpbWFyeTogIzBmMDI1YTtcclxuICAgIC0tY29sb3ItcHJpbWFyeS1jb250cmFzdDogI2ZmZjtcclxuXHJcbiAgICAvLyB0ZXh0XHJcbiAgICAtLWNvbG9yLXRleHQ6ICNmZmZmZmY7XHJcbiAgICAtLWNvbG9yLXRleHQtbGlnaHQ6ICNjY2NjY2M7XHJcbiAgICAtLWNvbG9yLXRleHQtY29udHJhc3Q6ICMyMjIyMjI7XHJcbiAgICAtLWNvbG9yLXRleHQtY29udHJhc3QtbGlnaHQ6ICM2NjY2NjY7XHJcbiAgICAvLyAtLWNvbG9yLXRleHQ6ICMyMjIyMjI7XHJcbiAgICAvLyAtLWNvbG9yLXRleHQtbGlnaHQ6ICM2NjY2NjY7XHJcbiAgICAvLyAtLWNvbG9yLXRleHQtY29udHJhc3Q6ICNmZmZmZmY7XHJcbiAgICAvLyAtLWNvbG9yLXRleHQtY29udHJhc3QtbGlnaHQ6ICNjY2NjY2M7XHJcblxyXG4gICAgLy8gYm9yZGVyXHJcbiAgICAtLWNvbG9yLWJvcmRlcjogI2UwZTBlMDtcclxuXHJcbiAgICAvLyBiYWNrZ3JvdW5kXHJcbiAgICAvLyAtLWNvbG9yLWJhY2tncm91bmQ6ICNmZmZmZmY7XHJcbiAgICAtLWNvbG9yLWJhY2tncm91bmQ6ICMwMDAwMDA7XHJcblxyXG4gICAgLy8gei1pbmRleFxyXG4gICAgLS16LWluZGV4LWxvYWRpbmc6IDEwMDtcclxuICAgIC0tei1pbmRleC1wb3BvdmVyOiA5OTtcclxuICAgIC0tei1pbmRleC1tb2RhbDogOTk7XHJcbiAgICAtLXotaW5kZXgtaGVhZGVyOiA5ODtcclxuXHJcbiAgICAvLyB0cmFuc2l0aW9uXHJcbiAgICAtLXRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XHJcblxyXG4gICAgLy8gc2l6ZVxyXG4gICAgLS1zaXplLWhlYWRlci1oZWlnaHQ6IDEwcmVtO1xyXG4gICAgLS1zaXplLWxheW91dC1jb250YWluZXI6IDEyMHJlbTtcclxuXHJcbiAgICBAaW5jbHVkZSBtcS1tb2JpbGUoKSB7XHJcbiAgICAgICAgLS1mb250LXNpemU6IDUwJTtcclxuICAgIH1cclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIGZvbnRzXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG5cclxuLy8gUHJldGVuZGFyZFxyXG5AZm9udC1mYWNlIHtcclxuICAgIGZvbnQtZmFtaWx5OiBcIlByZXRlbmRhcmRcIjtcclxuICAgIHNyYzogdXJsKFwiLi4vZm9udHMvUHJldGVuZGFyZC9QcmV0ZW5kYXJkLVRoaW4ud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XHJcbiAgICBmb250LXdlaWdodDogMTAwO1xyXG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICAgIGZvbnQtZmFtaWx5OiBcIlByZXRlbmRhcmRcIjtcclxuICAgIHNyYzogdXJsKFwiLi4vZm9udHMvUHJldGVuZGFyZC9QcmV0ZW5kYXJkLUV4dHJhTGlnaHQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XHJcbiAgICBmb250LXdlaWdodDogMjAwO1xyXG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICAgIGZvbnQtZmFtaWx5OiBcIlByZXRlbmRhcmRcIjtcclxuICAgIHNyYzogdXJsKFwiLi4vZm9udHMvUHJldGVuZGFyZC9QcmV0ZW5kYXJkLUxpZ2h0LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgICBmb250LWZhbWlseTogXCJQcmV0ZW5kYXJkXCI7XHJcbiAgICBzcmM6IHVybChcIi4uL2ZvbnRzL1ByZXRlbmRhcmQvUHJldGVuZGFyZC1SZWd1bGFyLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgICBmb250LWZhbWlseTogXCJQcmV0ZW5kYXJkXCI7XHJcbiAgICBzcmM6IHVybChcIi4uL2ZvbnRzL1ByZXRlbmRhcmQvUHJldGVuZGFyZC1NZWRpdW0ud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XHJcbiAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICAgIGZvbnQtZmFtaWx5OiBcIlByZXRlbmRhcmRcIjtcclxuICAgIHNyYzogdXJsKFwiLi4vZm9udHMvUHJldGVuZGFyZC9QcmV0ZW5kYXJkLVNlbWlCb2xkLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgICBmb250LWZhbWlseTogXCJQcmV0ZW5kYXJkXCI7XHJcbiAgICBzcmM6IHVybChcIi4uL2ZvbnRzL1ByZXRlbmRhcmQvUHJldGVuZGFyZC1Cb2xkLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgICBmb250LWZhbWlseTogXCJQcmV0ZW5kYXJkXCI7XHJcbiAgICBzcmM6IHVybChcIi4uL2ZvbnRzL1ByZXRlbmRhcmQvUHJldGVuZGFyZC1FeHRyYUJvbGQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XHJcbiAgICBmb250LXdlaWdodDogODAwO1xyXG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICAgIGZvbnQtZmFtaWx5OiBcIlByZXRlbmRhcmRcIjtcclxuICAgIHNyYzogdXJsKFwiLi4vZm9udHMvUHJldGVuZGFyZC9QcmV0ZW5kYXJkLUJsYWNrLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcclxuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcclxufVxyXG5cclxuLy8gUGFwZXJsb2d5XHJcbkBmb250LWZhY2Uge1xyXG4gICAgZm9udC1mYW1pbHk6IFwiUGFwZXJsb2d5XCI7XHJcbiAgICBzcmM6XHJcbiAgICAgICAgdXJsKFwiLi4vZm9udHMvUGFwZXJsb2d5L1BhcGVybG9neS04RXh0cmFCb2xkLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLFxyXG4gICAgICAgIHVybChcIi4uL2ZvbnRzL1BhcGVybG9neS9QYXBlcmxvZ3ktOEV4dHJhQm9sZC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XHJcbiAgICBmb250LXdlaWdodDogODAwO1xyXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICAgIGZvbnQtZmFtaWx5OiBcIlBhcGVybG9neVwiO1xyXG4gICAgc3JjOlxyXG4gICAgICAgIHVybChcIi4uL2ZvbnRzL1BhcGVybG9neS9QYXBlcmxvZ3ktNlNlbWlCb2xkLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLFxyXG4gICAgICAgIHVybChcIi4uL2ZvbnRzL1BhcGVybG9neS9QYXBlcmxvZ3ktNlNlbWlCb2xkLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBjb2xvclxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLmNvbG9yLXByaW1hcnkge1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgaWNvblxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuXHJcbi8vIGh0dHBzOi8vamFrZWFyY2hpYmFsZC5naXRodWIuaW8vc3Znb21nXHJcbi8vIGh0dHBzOi8veW9rc2VsLmdpdGh1Yi5pby91cmwtZW5jb2RlclxyXG4vLyBodHRwczovL2NvZGVwZW4uaW8vc29zdWtlL3Blbi9Qam9xcXBcclxuXHJcbiRjb2xvci1pY29uOiA2MDYwNjA7XHJcbiRjb2xvci1pY29uLWxpZ2h0OiA5MDkwOTA7XHJcblxyXG4kY29sb3ItcHJpbWFyeTogZmY3YjAwO1xyXG4kY29sb3ItcHJpbWFyeS1jb250cmFzdDogRkZGRkZGO1xyXG5cclxuJGNvbG9yLXRleHQ6IDExMTExMTtcclxuJGNvbG9yLXdoaXRlOiBmZmZmZmY7XHJcbiRjb2xvci1zdWItMjogNzY3Njc2O1xyXG5cclxuQGZ1bmN0aW9uIGljb24oJGljb25OYW1lLCAkaWNvbkNvbG9yOiAkY29sb3ItaWNvbikge1xyXG4gICAgJGljb25MaXN0OiAoXHJcbiAgICAgICAgY2xvc2U6XHJcbiAgICAgICAgICAgIFwiJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyBmaWxsPSdub25lJyUzRSUzQ2cgY2xpcC1wYXRoPSd1cmwoJTIzYSknJTNFJTNDcGF0aCBmaWxsPSclMjMjeyRpY29uQ29sb3J9JyBmaWxsLXJ1bGU9J2V2ZW5vZGQnIGQ9J20xMi4wMSAxMy4xNDIgNC42MSA0LjYxYS44MTUuODE1IDAgMCAwIDEuMTUxLTEuMTUzbC00LjYwOS00LjYwOSA0LjYxLTQuNjFhLjgxNS44MTUgMCAwIDAtMS4xNTMtMS4xNTFsLTQuNjA5IDQuNjA5LTQuNjEtNC42MWEuODE1LjgxNSAwIDAgMC0xLjE1IDEuMTUzbDQuNjA4IDQuNjA5LTQuNjEgNC42MWEuODE0LjgxNCAwIDEgMCAxLjE1MyAxLjE1MWw0LjYwOS00LjYwOVonIGNsaXAtcnVsZT0nZXZlbm9kZCcvJTNFJTNDL2clM0UlM0NkZWZzJTNFJTNDY2xpcFBhdGggaWQ9J2EnJTNFJTNDcGF0aCBmaWxsPSclMjNmZmYnIGQ9J00wIDBoMjR2MjRIMHonLyUzRSUzQy9jbGlwUGF0aCUzRSUzQy9kZWZzJTNFJTNDL3N2ZyUzRVwiLFxyXG4gICAgICAgIGNoZWNrOlxyXG4gICAgICAgICAgICBcIiUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgZmlsbD0nbm9uZSclM0UlM0NwYXRoIGZpbGw9JyUyMyN7JGljb25Db2xvcn0nIGQ9J205LjU1IDE1LjE1IDguNDc1LTguNDc1Yy4yLS4yLjQzMy0uMy43LS4zLjI2NyAwIC41LjEuNy4zLjIuMi4zLjQzOC4zLjcxM2EuOTcuOTcgMCAwIDEtLjMuNzEybC05LjE3NSA5LjJjLS4yLjItLjQzMy4zLS43LjNhLjk2Ljk2IDAgMCAxLS43LS4zTDQuNTUgMTNhLjkzMi45MzIgMCAwIDEtLjI4OC0uNzEyYy4wMDgtLjI3NS4xMTItLjUxMi4zMTMtLjcxMy4yLS4yLjQzOC0uMy43MTMtLjMuMjc1IDAgLjUxMi4xLjcxMi4zbDMuNTUgMy41NzVaJy8lM0UlM0Mvc3ZnJTNFXCIsXHJcbiAgICAgICAgZGF0ZTpcclxuICAgICAgICAgICAgXCIlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIGZpbGw9J25vbmUnJTNFJTNDZyBjbGlwLXBhdGg9J3VybCglMjNhKSclM0UlM0NwYXRoIGZpbGw9JyUyMyN7JGljb25Db2xvcn0nIGQ9J002LjgwOCAwYS44NC44NCAwIDAgMSAuODQuODR2MS41N2g5LjAyVi44NWEuODQuODQgMCAwIDEgMS42OCAwdjEuNTZIMjEuNmEyLjQgMi40IDAgMCAxIDIuNCAyLjRWMjEuNkEyLjQgMi40IDAgMCAxIDIxLjYgMjRIMi40QTIuNCAyLjQgMCAwIDEgMCAyMS42MDFWNC44MWEyLjQgMi40IDAgMCAxIDIuNC0yLjRoMy41NjhWLjg0QS44NC44NCAwIDAgMSA2LjgwOCAwWk0xLjY4IDkuMjl2MTIuMzExYS43Mi43MiAwIDAgMCAuNzIuNzJoMTkuMmEuNzIuNzIgMCAwIDAgLjcyLS43MlY5LjMwN0wxLjY4IDkuMjlaTTggMTcuNTQzdjEuOTk5SDZ2LTJoMlptNSAwdjEuOTk5aC0ydi0yaDJabTUgMHYxLjk5OWgtMnYtMmgyWk04IDEyLjc3djJINnYtMmgyWm01IDB2MmgtMnYtMmgyWm01IDB2MmgtMnYtMmgyWk01Ljk2OCA0LjA5SDIuNGEuNzIuNzIgMCAwIDAtLjcyLjcydjIuODAybDIwLjY0LjAxNlY0LjgxYS43Mi43MiAwIDAgMC0uNzItLjcyaC0zLjI1MnYxLjExNGEuODQuODQgMCAwIDEtMS42OCAwVjQuMDloLTkuMDJ2MS4xMDRhLjg0Ljg0IDAgMCAxLTEuNjggMFY0LjA5WicvJTNFJTNDL2clM0UlM0NkZWZzJTNFJTNDY2xpcFBhdGggaWQ9J2EnJTNFJTNDcGF0aCBmaWxsPSclMjNmZmYnIGQ9J00wIDBoMjR2MjRIMHonLyUzRSUzQy9jbGlwUGF0aCUzRSUzQy9kZWZzJTNFJTNDL3N2ZyUzRVwiLFxyXG4gICAgICAgIGNoZXZyb24tdXA6XHJcbiAgICAgICAgICAgIFwiJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyBmaWxsPSdub25lJyUzRSUzQ3BhdGggZmlsbD0nJTIzI3skaWNvbkNvbG9yfScgZD0nbTEyIDEwLjgtMy45IDMuOWEuOTQ4Ljk0OCAwIDAgMS0uNy4yNzUuOTQ4Ljk0OCAwIDAgMS0uNy0uMjc1Ljk0OC45NDggMCAwIDEtLjI3NS0uN2MwLS4yODMuMDkyLS41MTcuMjc1LS43bDQuNi00LjZjLjItLjIuNDMzLS4zLjctLjMuMjY3IDAgLjUuMS43LjNsNC42IDQuNmEuOTQ4Ljk0OCAwIDAgMSAuMjc1LjcuOTQ4Ljk0OCAwIDAgMS0uMjc1LjcuOTQ4Ljk0OCAwIDAgMS0uNy4yNzUuOTQ4Ljk0OCAwIDAgMS0uNy0uMjc1TDEyIDEwLjhaJy8lM0UlM0Mvc3ZnJTNFXCIsXHJcbiAgICAgICAgY2hldnJvbi1kb3duOlxyXG4gICAgICAgICAgICBcIiUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgZmlsbD0nbm9uZSclM0UlM0NwYXRoIHN0cm9rZT0nJTIzI3skaWNvbkNvbG9yfScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzInIGQ9J203IDEwIDUgNSA1LTUnLyUzRSUzQy9zdmclM0VcIixcclxuICAgICAgICBjaGV2cm9uLWxlZnQ6XHJcbiAgICAgICAgICAgIFwiJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyBmaWxsPSdub25lJyUzRSUzQ3BhdGggZmlsbD0nJTIzI3skaWNvbkNvbG9yfScgZD0nTTE0LjcxIDE1Ljg4IDEwLjgzIDEybDMuODgtMy44OGEuOTk3Ljk5NyAwIDEgMC0xLjQxLTEuNDFMOC43MSAxMS4zYS45OTYuOTk2IDAgMCAwIDAgMS40MWw0LjU5IDQuNTljLjM5LjM5IDEuMDIuMzkgMS40MSAwIC4zOC0uMzkuMzktMS4wMyAwLTEuNDJaJy8lM0UlM0Mvc3ZnJTNFXCIsXHJcbiAgICAgICAgY2hldnJvbi1yaWdodDpcclxuICAgICAgICAgICAgXCIlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIGZpbGw9J25vbmUnJTNFJTNDcGF0aCBmaWxsPSclMjMjeyRpY29uQ29sb3J9JyBkPSdNOS4yOSAxNS44OCAxMy4xNyAxMiA5LjI5IDguMTJhLjk5Ny45OTcgMCAwIDEgMS40MS0xLjQxbDQuNTkgNC41OWMuMzkuMzkuMzkgMS4wMiAwIDEuNDFMMTAuNyAxNy4zYS45OTQuOTk0IDAgMCAxLTEuNDEgMGMtLjM4LS4zOS0uMzktMS4wMyAwLTEuNDJaJy8lM0UlM0Mvc3ZnJTNFXCIsXHJcbiAgICAgICAgYXJyb3ctdXA6XHJcbiAgICAgICAgICAgIFwiJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyBmaWxsPSdub25lJyUzRSUzQ3BhdGggc3Ryb2tlPSclMjMjeyRpY29uQ29sb3J9JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS13aWR0aD0nMicgZD0nTTEyIDIwVjRtMCAwIDYgNm0tNi02LTYgNicvJTNFJTNDL3N2ZyUzRVwiLFxyXG4gICAgICAgIGFycm93LWxlZnQ6XHJcbiAgICAgICAgICAgIFwiJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzQ4JyBoZWlnaHQ9JzQ4JyBmaWxsPSdub25lJyB2aWV3Qm94PScwIDAgNDggNDgnJTNFJTNDcGF0aCBzdHJva2U9JyUyMyN7JGljb25Db2xvcn0nIHN0cm9rZS13aWR0aD0nMicgZD0nbTIxIDE3LTcgNyA3IDdNMTQgMjRoMjEnLyUzRSUzQy9zdmclM0VcIixcclxuICAgICAgICBhcnJvdy1yaWdodDpcclxuICAgICAgICAgICAgXCIlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNDgnIGhlaWdodD0nNDgnIGZpbGw9J25vbmUnIHZpZXdCb3g9JzAgMCA0OCA0OCclM0UlM0NwYXRoIHN0cm9rZT0nJTIzI3skaWNvbkNvbG9yfScgc3Ryb2tlLXdpZHRoPScyJyBkPSdtMjcgMzEgNy03LTctN00zNCAyNEgxMycvJTNFJTNDL3N2ZyUzRVwiLFxyXG4gICAgKTtcclxuXHJcbiAgICAkaWNvbjogbWFwLWdldCgkaWNvbkxpc3QsICRpY29uTmFtZSk7XHJcblxyXG4gICAgQHJldHVybiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCN7JGljb259XCIpO1xyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgY29tbW9uXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG5ib2R5IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG5cclxuICAgICYubW9kYWwtb3BlbiB7XHJcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xyXG4gICAgfVxyXG59XHJcblxyXG4ubGluZS1jbGFtcCB7XHJcbiAgICBAaW5jbHVkZSBsaW5lLWNsYW1wKCk7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cclxuICAgICYuc2hvdyB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgJi5saW5lLTIge1xyXG4gICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcclxuICAgIH1cclxufVxyXG5cclxuLnNyLW9ubHkge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgd2lkdGg6IDFweDtcclxuICAgIGhlaWdodDogMXB4O1xyXG4gICAgbWFyZ2luOiAtMXB4O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XHJcbiAgICBib3JkZXI6IDA7XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBhbmltYXRpb25cclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbkBrZXlmcmFtZXMgc3BpbiB7XHJcbiAgICAwJSB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XHJcbiAgICB9XHJcblxyXG4gICAgMTAwJSB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcclxuICAgIH1cclxufSIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgZ3JpZFxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLmdyaWQtY29udGFpbmVyIHtcclxuICAgIEBpbmNsdWRlIGdyaWQoKTtcclxuXHJcbiAgICAuZ3JpZC1pdGVtIHtcclxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDEyIHtcclxuICAgICAgICAgICAgJi5ncmlkLWl0ZW0tcm93LSN7JGl9IHtcclxuICAgICAgICAgICAgICAgIGdyaWQtcm93OiBzcGFuICN7JGl9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDEyIHtcclxuICAgICAgICAgICAgJi5ncmlkLWl0ZW0tY29sdW1uLSN7JGl9IHtcclxuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiBzcGFuICN7JGl9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuY2FyZCB7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbXEtbW9iaWxlKCkge1xyXG4gICAgICAgIC5ncmlkLWl0ZW0ge1xyXG4gICAgICAgICAgICAmLmdyaWQtaXRlbS1jb2x1bW4tMSxcclxuICAgICAgICAgICAgJi5ncmlkLWl0ZW0tY29sdW1uLTIsXHJcbiAgICAgICAgICAgICYuZ3JpZC1pdGVtLWNvbHVtbi0zLFxyXG4gICAgICAgICAgICAmLmdyaWQtaXRlbS1jb2x1bW4tNCxcclxuICAgICAgICAgICAgJi5ncmlkLWl0ZW0tY29sdW1uLTUge1xyXG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gNjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5ncmlkLWl0ZW0tY29sdW1uLTYsXHJcbiAgICAgICAgICAgICYuZ3JpZC1pdGVtLWNvbHVtbi03LFxyXG4gICAgICAgICAgICAmLmdyaWQtaXRlbS1jb2x1bW4tOCxcclxuICAgICAgICAgICAgJi5ncmlkLWl0ZW0tY29sdW1uLTksXHJcbiAgICAgICAgICAgICYuZ3JpZC1pdGVtLWNvbHVtbi0xMCxcclxuICAgICAgICAgICAgJi5ncmlkLWl0ZW0tY29sdW1uLTExLFxyXG4gICAgICAgICAgICAmLmdyaWQtaXRlbS1jb2x1bW4tMTIge1xyXG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMTI7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMTIge1xyXG4gICAgICAgICAgICAgICAgJi5ncmlkLWl0ZW0tY29sdW1uLW1vYmlsZS0jeyRpfSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gI3skaX07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBoZWFkZXJcclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi5oZWFkZXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtaGVhZGVyLWhlaWdodCk7XHJcbiAgICBwYWRkaW5nOiAwIDJyZW07XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgei1pbmRleDogMTAwO1xyXG59XHJcblxyXG4uaGVhZGVyLWNvbnRhaW5lciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogdmFyKC0tc2l6ZS1sYXlvdXQtY29udGFpbmVyKTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblxyXG4gICAgLmxvZ28taW1nIHtcclxuICAgICAgICB3aWR0aDogMTguNXJlbTtcclxuICAgIH1cclxuXHJcbiAgICBidXR0b24ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICB9XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBtYWluXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIGZvb3RlclxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLmZvb3RlciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMxMTE7XHJcbiAgICBwYWRkaW5nOiA4cmVtIDJyZW07XHJcbn1cclxuXHJcbi5mb290ZXItY29udGFpbmVyIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiB2YXIoLS1zaXplLWxheW91dC1jb250YWluZXIpO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWFyZ2luOiAwIGF1dG87XHJcblxyXG4gICAgLmxvZ28taW1nIHtcclxuICAgICAgICB3aWR0aDogMTguNXJlbTtcclxuICAgIH1cclxuXHJcbiAgICAuaW5mbyB7XHJcbiAgICAgICAgbWFyZ2luOiA0cmVtIDAgMnJlbTtcclxuXHJcbiAgICAgICAgdWwge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgIGdhcDogMnJlbSAzcmVtO1xyXG5cclxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcclxuICAgICAgICAgICAgICAgIGdhcDogMXJlbTtcclxuXHJcbiAgICAgICAgICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuY29weXJpZ2h0IHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1saWdodCk7XHJcbiAgICB9XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBwb3B1cFxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLnBvcHVwLWNvbnRhaW5lciB7XHJcbiAgICBAaW5jbHVkZSBwYXJlbnQoKTtcclxuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLWxheW91dCk7XHJcblxyXG4gICAgQGluY2x1ZGUgbXEtbW9iaWxlKCkge1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgfVxyXG59XHJcblxyXG4ucG9wdXAtY29udGVudCB7XHJcbiAgICBAaW5jbHVkZSBwYXJlbnQoKTtcclxuICAgIG1heC13aWR0aDogdmFyKC0tc2l6ZS1jb250YWluZXItd2lkdGgpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KCk7XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZm9ybSk7XHJcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtc2VjdGlvbik7XHJcblxyXG4gICAgQGluY2x1ZGUgbXEtbW9iaWxlKCkge1xyXG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgIH1cclxufSIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgcmVzdWx0XHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4ucmVzdWx0LWNvbnRhaW5lciB7XHJcbiAgICBAaW5jbHVkZSBwYXJlbnQoKTtcclxuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGdhcDogdmFyKC0tZ2FwLXNlY3Rpb24pO1xyXG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgLnJlc3VsdC1jb2RlIHtcclxuICAgICAgICB3aWR0aDogMjByZW07XHJcbiAgICAgICAgaGVpZ2h0OiAyMHJlbTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC1saWdodCk7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogNnJlbTtcclxuICAgICAgICBmb250LXdlaWdodDogOTAwO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWxpZ2h0KTtcclxuXHJcbiAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBmb250QXdlc29tZTUoXCJcXGYxMmFcIik7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogN3JlbSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5zdWNjZXNzIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itc3VjY2Vzcy1iYWNrZ3JvdW5kKTtcclxuXHJcbiAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnRBd2Vzb21lNShcIlxcZjAwY1wiKTtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnJlc3VsdC10aXRsZSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyLjRyZW07XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIH1cclxuXHJcbiAgICAucmVzdWx0LXRleHQge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgfVxyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgbG9hZGluZ1xyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLmxvYWRpbmctY29udGFpbmVyIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEodmFyKC0tY29sb3ItYmFja2dyb3VuZC1jb250cmFzdCksICRhbHBoYTogMC4yKTtcclxuICAgIHotaW5kZXg6IHZhcigtLXotaW5kZXgtbG9hZGluZyk7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGdhcDogdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcblxyXG4gICAgJi5hY3RpdmUge1xyXG4gICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XHJcbiAgICB9XHJcblxyXG4gICAgJi5oaWRkZW4tdGl0bGUge1xyXG4gICAgICAgIC5sb2FkaW5nLXRpdGxlIHtcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5oaWRkZW4tc3ViLXRpdGxlIHtcclxuICAgICAgICAubG9hZGluZy1zdWItdGl0bGUge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmxvYWRpbmctc3Bpbm5lciB7XHJcbiAgICB3aWR0aDogNHJlbTtcclxuICAgIGhlaWdodDogNHJlbTtcclxuICAgIGJvcmRlcjogMC40cmVtIHNvbGlkIHZhcigtLWNvbG9yLWJhY2tncm91bmQtbGlnaHQpO1xyXG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICBhbmltYXRpb246IHNwaW4gMC44cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcclxufVxyXG5cclxuQGtleWZyYW1lcyBzcGluIHtcclxuICAgIDAlIHtcclxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcclxuICAgIH1cclxuICAgIDEwMCUge1xyXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5sb2FkaW5nLXRpdGxlLWNvbnRhaW5lciB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1jb250cmFzdCk7XHJcbn1cclxuXHJcbi5sb2FkaW5nLXRpdGxlIHtcclxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxufVxyXG5cclxuLmxvYWRpbmctc3ViLXRpdGxlIHtcclxuICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIGJ1dHRvblxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLmJ1dHRvbi1ncm91cCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGdhcDogdmFyKC0tZ2FwLWNvbXBvbmVudCk7XHJcblxyXG4gICAgJi5nYXAtaGFsZiB7XHJcbiAgICAgICAgZ2FwOiBjYWxjKHZhcigtLWdhcC1jb21wb25lbnQpIC8gMik7XHJcbiAgICB9XHJcblxyXG4gICAgJi5sZWZ0IHtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICB9XHJcblxyXG4gICAgJi5jZW50ZXIge1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgICYucmlnaHQge1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgICB9XHJcblxyXG4gICAgJi5iZXR3ZWVuIHtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICB9XHJcblxyXG4gICAgJi5ub3dyYXAge1xyXG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gICAgfVxyXG5cclxuICAgICYuZnVsbCB7XHJcbiAgICAgICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgICAgIGZsZXg6IDE7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uYnV0dG9uIHtcclxuICAgIG1pbi1oZWlnaHQ6IDQ2cHg7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGdhcDogNnB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIHBhZGRpbmc6IDEwcHggMjBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgIEBpbmNsdWRlIGJvcmRlcigpO1xyXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigpO1xyXG4gICAgQGluY2x1ZGUgdGV4dCgxNHB4LCA1MDApO1xyXG5cclxuICAgICY6ZGlzYWJsZWQge1xyXG4gICAgICAgIGN1cnNvcjogbm8tZHJvcDtcclxuICAgICAgICBvcGFjaXR5OiAwLjU7XHJcbiAgICB9XHJcblxyXG4gICAgJi5oaWRkZW4ge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgJi5idXR0b24tcHJpbWFyeSB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktY29udHJhc3QpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICB9XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBpbnB1dFxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLmlucHV0IHtcclxuICAgICZbdHlwZT1cInRleHRcIl0sXHJcbiAgICAmW3R5cGU9XCJwYXNzd29yZFwiXSB7XHJcbiAgICAgICAgQGluY2x1ZGUgdGV4dCgxNnB4LCA1MDAsIHZhcigtLWNvbG9yLXRleHQpKTtcclxuICAgICAgICBoZWlnaHQ6IDQ2cHg7XHJcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDAgMTZweDtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcblxyXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXN1Yi0yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOnJlYWQtb25seSB7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgc2VsZWN0XHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4uc2VsZWN0IHtcclxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1iYXNlLXNpemUpO1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xyXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLWZvcm0pO1xyXG4gICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZm9ybSk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLWZvcm0pO1xyXG4gICAgcGFkZGluZzogMCBjYWxjKHZhcigtLXBhZGRpbmctZm9ybSkgKyAodmFyKC0tcGFkZGluZy1mb3JtKSAvIDIpICsgdmFyKC0tc2l6ZS1pY29uKSkgMCB2YXIoLS1wYWRkaW5nLWZvcm0pO1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbihjaGV2cm9uLWRvd24sICRjb2xvci1pY29uLWxpZ2h0KTtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciByaWdodCB2YXIoLS1wYWRkaW5nLWZvcm0pO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogdmFyKC0tc2l6ZS1pY29uLXNtYWxsKTtcclxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29uKGNoZXZyb24tdXAsICRjb2xvci1pY29uLWxpZ2h0KTtcclxuICAgIH1cclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIGNoZWNrYm94XHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4uY2hlY2tib3gge1xyXG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG5cclxuICAgICAgICAmOmNoZWNrZWQge1xyXG4gICAgICAgICAgICAmIH4gbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xyXG5cclxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGxhYmVsIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250LWJhc2Utc2l6ZSk7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGdhcDogMXJlbTtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdWItMik7XHJcblxyXG4gICAgICAgICY6OmJlZm9yZSxcclxuICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxOHB4O1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDE4cHg7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlcigpO1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNDAwKTtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktY29udHJhc3QpO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29uKGNoZWNrLCAkY29sb3ItcHJpbWFyeS1jb250cmFzdCk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMThweDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNhbGMoNTAlICsgNHB4KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjphY3RpdmUge1xyXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodC1hY3RpdmUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAucmVxdWlyZWQge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLTAuNnJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5jaGVja2JveC1ncm91cCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgZ2FwOiB2YXIoLS1nYXAtY29tcG9uZW50KTtcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuXHJcbiAgICAmLmNvbHVtbiB7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIH1cclxuXHJcbiAgICAmLmJvcmRlciB7XHJcbiAgICAgICAgLmNoZWNrYm94IHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlcigpO1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZm9ybSk7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XHJcblxyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtbGlnaHQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1nYXAtY29tcG9uZW50KTtcclxuXHJcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiB2YXIoLS1nYXAtY29tcG9uZW50KTtcclxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiB2YXIoLS1nYXAtY29tcG9uZW50KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIHN3aXRjaFxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLnN3aXRjaCB7XHJcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG5cclxuICAgICAgICAmOmNoZWNrZWQge1xyXG4gICAgICAgICAgICAmIH4gbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcblxyXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAzLjhyZW07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbGFiZWwge1xyXG4gICAgICAgIHdpZHRoOiA2LjRyZW07XHJcbiAgICAgICAgaGVpZ2h0OiAzLjJyZW07XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIuNHJlbTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ib3JkZXItbGlnaHQpO1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcblxyXG4gICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcclxuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWNvbnRyYXN0KTtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIGxlZnQ6IDAuNnJlbTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYm94LXNoYWRvdygpO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIDI1JSDqsJDshoxcclxuICAgICYuc3dpdGNoLXNtYWxsIHtcclxuICAgICAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xyXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xyXG4gICAgICAgICAgICAgICAgJiB+IGxhYmVsIHtcclxuICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAyLjdyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICAgIHdpZHRoOiA0LjhyZW07XHJcbiAgICAgICAgICAgIGhlaWdodDogMi40cmVtO1xyXG5cclxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxLjVyZW07XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEuNXJlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIHJhZGlvXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4ucmFkaW8ge1xyXG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xyXG5cclxuICAgICoge1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcblxyXG4gICAgICAgICY6Y2hlY2tlZCB7XHJcbiAgICAgICAgICAgICYgfiBsYWJlbCB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XHJcblxyXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBsYWJlbCB7XHJcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250LWJhc2Utc2l6ZSk7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGdhcDogY2FsYyh2YXIoLS1nYXAtY29tcG9uZW50KSAvIDIpO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWxhYmVsKTtcclxuXHJcbiAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUtaWNvbi1zbWFsbCk7XHJcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS1pY29uLXNtYWxsKTtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigpO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXIoKTtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0LWFjdGl2ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5yYWRpby1ncm91cCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgZ2FwOiB2YXIoLS1nYXAtY29tcG9uZW50KTtcclxuXHJcbiAgICAmLnVpLXRhYiB7XHJcbiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICAgICAgICBnYXA6IDA7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZvcm0pO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gICAgICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XHJcbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XHJcbiAgICAgICAgICAgICAgICAmIH4gbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktY29udHJhc3QpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5yYWRpbyB7XHJcbiAgICAgICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLXNpemUtZm9ybSk7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIHZhcigtLWdhcC1sYXlvdXQpO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTFweDtcclxuXHJcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mb3JtKSAwIDAgdmFyKC0tcmFkaXVzLWZvcm0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgdmFyKC0tcmFkaXVzLWZvcm0pIHZhcigtLXJhZGl1cy1mb3JtKSAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYudWktdGFiLXNoYWRvdyB7XHJcbiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICAgICAgICBnYXA6IDA7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZvcm0pO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQpO1xyXG5cclxuICAgICAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xyXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xyXG4gICAgICAgICAgICAgICAgJiB+IGxhYmVsIHtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWNvbnRyYXN0KTtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJveC1zaGFkb3coKTtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZm9ybSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5yYWRpbyB7XHJcbiAgICAgICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLXNpemUtZm9ybSk7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIHZhcigtLWdhcC1sYXlvdXQpO1xyXG5cclxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICB0ZXh0YXJlYVxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLnRleHRhcmVhIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICBwYWRkaW5nOiAxLjJyZW0gMS42cmVtO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LWJhc2Utc2l6ZSk7XHJcbiAgICByZXNpemU6IG5vbmU7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgQGluY2x1ZGUgc2Nyb2xsYm94KCk7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XHJcblxyXG4gICAgJjo6cGxhY2Vob2xkZXIge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdWItMik7XHJcbiAgICB9XHJcblxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICB9XHJcblxyXG4gICAgJjpyZWFkLW9ubHkge1xyXG4gICAgfVxyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgbW9kYWxcclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi5tb2RhbCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG1heC1oZWlnaHQ6IDEwMCU7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgei1pbmRleDogdmFyKC0tei1pbmRleC1tb2RhbCk7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcblxyXG4gICAgLmZvcm0tdGl0bGUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgfVxyXG5cclxuICAgICYuYWN0aXZlIHtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgICYuZnVsbCB7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuXHJcbiAgICAgICAgLm1vZGFsLWlubmVyIHtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLm1vZGFsLXNtYWxsIHtcclxuICAgICAgICAubW9kYWwtY29udGFpbmVyIHtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiA0MHJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5tb2RhbC1tZWRpdW0ge1xyXG4gICAgICAgIC5tb2RhbC1jb250YWluZXIge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDU2cmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLm1vZGFsLWxhcmdlIHtcclxuICAgICAgICAubW9kYWwtY29udGFpbmVyIHtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiA3MnJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5tb2RhbC14bGFyZ2Uge1xyXG4gICAgICAgIC5tb2RhbC1jb250YWluZXIge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDg4cmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLm1vZGFsLXh4bGFyZ2Uge1xyXG4gICAgICAgIC5tb2RhbC1jb250YWluZXIge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwNHJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5tb2RhbC14eHhsYXJnZSB7XHJcbiAgICAgICAgLm1vZGFsLWNvbnRhaW5lciB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMTIwcmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLm1vZGFsLXh4eHhsYXJnZSB7XHJcbiAgICAgICAgLm1vZGFsLWNvbnRhaW5lciB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMTM2cmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLm1vZGFsLWZ1bGwge1xyXG4gICAgICAgIC5tb2RhbC1jb250YWluZXIge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYubW9kYWwtY29uZmlybSB7XHJcbiAgICAgICAgLm1vZGFsLWNvbnRhaW5lciB7XHJcbiAgICAgICAgICAgIC5tb2RhbC1jb250ZW50IHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4ubW9kYWwtbGF5ZXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRjb2xvcjogIzAwMDAwMCwgJGFscGhhOiAuMik7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLWNvbG9yLWJhY2tncm91bmQtY29udHJhc3QpLCAkYWxwaGE6IDAuMik7XHJcbn1cclxuXHJcbi5tb2RhbC1jb250YWluZXIge1xyXG4gICAgQGluY2x1ZGUgcGFyZW50KCk7XHJcbiAgICBAaW5jbHVkZSBzY3JvbGxib3goKTtcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IG5vbmU7XHJcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiA1NnJlbTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZvcm0pO1xyXG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdygpO1xyXG59XHJcblxyXG4ubW9kYWwtaGVhZCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHBvc2l0aW9uOiBzdGlja3k7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBnYXA6IHZhcigtLWdhcC1sYXlvdXQpO1xyXG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLWxpZ2h0KTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gICAgei1pbmRleDogMTtcclxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mb3JtKSB2YXIoLS1yYWRpdXMtZm9ybSkgMCAwO1xyXG5cclxuICAgICYubm8tYm9yZGVyIHtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5tb2RhbC10aXRsZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGdhcDogMC42cmVtO1xyXG4gICAgZm9udC1zaXplOiAxLjhyZW07XHJcbiAgICBmb250LXdlaWdodDogNzAwO1xyXG59XHJcblxyXG4ubW9kYWwtY2xvc2UtYnV0dG9uIHtcclxuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtaWNvbigpO1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbihjbG9zZSk7XHJcblxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIHZhcigtLXBhZGRpbmctZm9ybSkpO1xyXG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlICsgdmFyKC0tcGFkZGluZy1mb3JtKSk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodCk7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZm9ybSk7XHJcbiAgICAgICAgei1pbmRleDogLTE7XHJcbiAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlcixcclxuICAgICY6Zm9jdXMge1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGljb24oY2xvc2UsICRjb2xvci1wcmltYXJ5KTtcclxuXHJcbiAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0LWFjdGl2ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4ubW9kYWwtY29udGVudCB7XHJcbiAgICBAaW5jbHVkZSBwYXJlbnQoKTtcclxuICAgIHBhZGRpbmc6IDJyZW07XHJcbn1cclxuXHJcbi5tb2RhbC1ib3R0b20ge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gICAgbGVmdDogMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcbiAgICB6LWluZGV4OiAxO1xyXG4gICAgcGFkZGluZzogMnJlbTtcclxuICAgIGdhcDogMXJlbTtcclxuXHJcbiAgICAmLmJldHdlZW4ge1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIH1cclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIHRhYmxlXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4udGFibGUtY29udGFpbmVyIHtcclxufVxyXG5cclxuLnRhYmxlLWJvZHkge1xyXG59XHJcblxyXG4udGFibGUge1xyXG4gICAgQGluY2x1ZGUgcGFyZW50KCk7XHJcbiAgICBib3JkZXItdG9wOiAzcHggc29saWQgdmFyKC0tY29sb3ItdGV4dCk7XHJcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG5cclxuICAgIHRoZWFkIHtcclxuICAgIH1cclxuXHJcbiAgICB0Ym9keSB7XHJcbiAgICAgICAgdHIge1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS0yMDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0ciB7XHJcbiAgICB9XHJcblxyXG4gICAgdGgge1xyXG4gICAgfVxyXG5cclxuICAgIHRkIHtcclxuICAgICAgICBwYWRkaW5nOiAyLjlyZW0gMC44cmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIG5vZGF0YVxyXG4gICAgLm5vZGF0YSB7XHJcbiAgICAgICAgQGluY2x1ZGUgdGV4dCgxLjZyZW0sIDUwMCwgdmFyKC0tY29sb3Itc3ViLTIpKTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gYWxpZ25cclxuICAgIC5hbGlnbi1jZW50ZXIge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBjb2xcclxuICAgIC5jb2wtdGV4dCB7XHJcbiAgICAgICAgQGluY2x1ZGUgdGV4dCgxLjZyZW0sIDUwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbC1jYXRlZ29yeSB7XHJcbiAgICAgICAgQGluY2x1ZGUgdGV4dCgxLjZyZW0sIDUwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbC10aXRsZSB7XHJcbiAgICAgICAgQGluY2x1ZGUgdGV4dCgxLjZyZW0sIDUwMCk7XHJcblxyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jb2wtYXV0aG9yIHtcclxuICAgICAgICBAaW5jbHVkZSB0ZXh0KDEuNnJlbSwgNTAwLCB2YXIoLS1jb2xvci1zdWItMikpO1xyXG4gICAgfVxyXG5cclxuICAgIC5jb2wtZGF0ZSB7XHJcbiAgICAgICAgQGluY2x1ZGUgdGV4dCgxLjZyZW0sIDUwMCwgdmFyKC0tY29sb3Itc3ViLTIpKTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtcS1tb2JpbGUoKSB7XHJcbiAgICAgICAgJi5tby1jYXJkIHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuXHJcbiAgICAgICAgICAgIHRib2R5IHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuICAgICAgICAgICAgICAgIHRyIHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAycmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktMjAwKTtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICYgfiB0ciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDJyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRkIHtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBjb2xcclxuICAgICAgICAgICAgLmNvbC10ZXh0IHtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLmNvbC1jYXRlZ29yeSB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5jb2wtdGl0bGUge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjdyZW07XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuY29sLWlubGluZSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcclxuXHJcbiAgICAgICAgICAgICAgICAmIH4gLmNvbC1pbmxpbmUge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjRyZW07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDAuNHJlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjRyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMzAwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuN3JlbTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5saXN0IHtcclxuICAgIGJvcmRlci10b3A6IDNweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuXHJcbiAgICBsaSB7XHJcbiAgICAgICAgcGFkZGluZzogMy42cmVtIDA7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktMzAwKTtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG5cclxuICAgICAgICAudGh1bWIge1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDMuNnJlbTtcclxuXHJcbiAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDIwLjVyZW07XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIC8vIGFzcGVjdC1yYXRpbzogNCAvIDM7XHJcbiAgICAgICAgICAgICAgICBhc3BlY3QtcmF0aW86IDIwNSAvIDE0MztcclxuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gICAgICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5jb250ZW50IHtcclxuICAgICAgICAgICAgZmxleDogMTtcclxuXHJcbiAgICAgICAgICAgIC5tZXRhIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgICAgICBnYXA6IDAuNHJlbTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XHJcblxyXG4gICAgICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdGV4dCgxLjRyZW0sIDUwMCwgdmFyKC0tY29sb3Itc3ViLTEpKTtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgZ2FwOiAwLjRyZW07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJ8XCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0ZXh0KDEuNHJlbSwgNDAwLCB2YXIoLS1jb2xvci1ncmF5LTMwMCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC50aXRsZSB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0ZXh0KDEuOHJlbSwgNjAwKTtcclxuXHJcbiAgICAgICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAudGV4dCB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0ZXh0KDEuNHJlbSwgNTAwLCB2YXIoLS1jb2xvci1zdWItMikpO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbGluZS1jbGFtcCgkbGluZTogMyk7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAudmlldy1idXR0b24ge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0ZXh0KDEuNnJlbSwgNTAwLCB2YXIoLS1jb2xvci1zdWItMikpO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4KCRnYXA6IDAuOHJlbSk7XHJcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblxyXG4gICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMnJlbTtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMnJlbTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvaWNvbi9hcnJvd192aWV3LnN2Zyk7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1xLWN1c3RvbShtYXgsIDUxOXB4KSB7XHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICBnYXA6IDJyZW07XHJcblxyXG4gICAgICAgICAgICAudGh1bWIge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcblxyXG4gICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgcGFnaW5hdGlvblxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLnBhZ2luYXRpb24ge1xyXG4gICAgQGluY2x1ZGUgZmxleCgkZ2FwOiAxLjJyZW0gMi42cmVtKTtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIG1hcmdpbi10b3A6IDVyZW07XHJcblxyXG4gICAgLmJ1dHRvbi1ncm91cCB7XHJcbiAgICAgICAgQGluY2x1ZGUgZmxleCgkd3JhcDogd3JhcCk7XHJcbiAgICAgICAgZ2FwOiAwLjRyZW07XHJcbiAgICB9XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgICBtaW4td2lkdGg6IDQuOHJlbTtcclxuICAgICAgICBtaW4taGVpZ2h0OiA0LjhyZW07XHJcbiAgICAgICAgQGluY2x1ZGUgZmxleCgpO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcbiAgICAgICAgQGluY2x1ZGUgdGV4dCgxLjVyZW0sIDUwMCwgdmFyKC0tY29sb3Itc3ViLTIpKTtcclxuXHJcbiAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZmlyc3QsXHJcbiAgICAubGFzdCxcclxuICAgIC5wcmV2LFxyXG4gICAgLm5leHQge1xyXG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogNC44cmVtO1xyXG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgIC5maXJzdCB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9pY29uL3BhZ2luYXRpb25fZmlyc3Quc3ZnKTtcclxuICAgIH1cclxuXHJcbiAgICAubGFzdCB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9pY29uL3BhZ2luYXRpb25fbGFzdC5zdmcpO1xyXG4gICAgfVxyXG5cclxuICAgIC5wcmV2IHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2ljb24vcGFnaW5hdGlvbl9wcmV2LnN2Zyk7XHJcbiAgICB9XHJcblxyXG4gICAgLm5leHQge1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvaWNvbi9wYWdpbmF0aW9uX25leHQuc3ZnKTtcclxuICAgIH1cclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIGZvcm1cclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi5mb3JtLWNvbnRhaW5lciB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgJi5ib3JkZXIge1xyXG4gICAgICAgIEBpbmNsdWRlIGJvcmRlcigpO1xyXG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWdhcC1zZWN0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICAmLmJvcmRlci10b3Age1xyXG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpO1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1nYXAtc2VjdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgJi5ib3JkZXItcmFkaXVzIHtcclxuICAgICAgICBAaW5jbHVkZSBib3JkZXIoKTtcclxuICAgICAgICBwYWRkaW5nOiB2YXIoLS1nYXAtc2VjdGlvbik7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZvcm0pO1xyXG4gICAgfVxyXG5cclxuICAgICYgfiAuZm9ybS1jb250YWluZXIge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC1zZWN0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICAmLnN0aWNreSB7XHJcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcclxuICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLWdhcC1sYXlvdXQpO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tZ2FwLWxheW91dCkgKiAtMSk7XHJcblxyXG4gICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1nYXAtc2VjdGlvbik7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJsdXItYmFja2dyb3VuZCk7XHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCA0MHB4IHJnYmEodmFyKC0tYmx1ci1zaGFkb3cpKSBpbnNldDtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICB0b3A6IGNhbGModmFyKC0tZ2FwLXNlY3Rpb24pICogLTEpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmZvcm0taGVhZCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBnYXA6IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG5cclxuICAgIC5idXR0b24ge1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDZweCAxMnB4O1xyXG4gICAgfVxyXG5cclxuICAgICYgfiAuZm9ybS1jb250ZW50IHtcclxuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtbGF5b3V0KTtcclxuICAgIH1cclxuXHJcbiAgICAuZHJhZy1oYW5kbGUge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogdmFyKC0tZ2FwLXNlY3Rpb24pO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICBjdXJzb3I6IG1vdmU7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cclxuICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnRBd2Vzb21lNShcIlxcZjdhNFwiKTtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWljb24tbGlnaHQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmZvcm0tdGl0bGUtY29udGFpbmVyIHtcclxufVxyXG5cclxuLmZvcm0tdGl0bGUge1xyXG4gICAgZm9udC1zaXplOiAycmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuXHJcbiAgICAmIH4gLmZvcm0tc3ViLXRpdGxlIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xyXG4gICAgfVxyXG59XHJcblxyXG4uZm9ybS1zdWItdGl0bGUge1xyXG4gICAgZm9udC1zaXplOiAxLjZyZW07XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3ViLTIpO1xyXG59XHJcblxyXG4uZm9ybS1jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgZ2FwOiAycmVtO1xyXG59XHJcblxyXG4uZm9ybS1yb3cge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIGdhcDogMnJlbTtcclxuXHJcbiAgICAmLmZvcm0tYnV0dG9uLXJvdyB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcclxuICAgIH1cclxuXHJcbiAgICAuZm9ybS1jb2wge1xyXG4gICAgICAgIGZsZXg6IDE7XHJcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcclxuICAgIH1cclxufVxyXG5cclxuLmZvcm0tY29sIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgZ2FwOiAwLjhyZW07XHJcbn1cclxuXHJcbi5mb3JtLWdyb3VwIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZ2FwOiAxcmVtO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcblxyXG4gICAgJi5iZXR3ZWVuIHtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICB9XHJcblxyXG4gICAgLmlucHV0LFxyXG4gICAgLnNlbGVjdCB7XHJcbiAgICAgICAgZmxleDogMTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICAuZHJhZy1oYW5kbGUge1xyXG4gICAgICAgIGN1cnNvcjogbW92ZTtcclxuXHJcbiAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBmb250QXdlc29tZTUoXCJcXGY1OGVcIik7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1pY29uLWxpZ2h0KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5mb3JtLWxhYmVsIHtcclxuICAgIEBpbmNsdWRlIHRleHQoMTRweCwgNTAwLCB2YXIoLS1jb2xvci1zdWItMikpO1xyXG5cclxuICAgICYucmVxdWlyZWQge1xyXG4gICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgY29udGVudDogXCIqXCI7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNHJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5mb3JtLW1zZyB7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3ViLTIpO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgIC8qXHJcbiAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgIEBpbmNsdWRlIGZvbnRBd2Vzb21lNShcIlxcZjEyOVwiKTtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICB3aWR0aDogdmFyKC0tc2l6ZS1pY29uLXhzbWFsbCk7XHJcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLWljb24teHNtYWxsKTtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB0b3A6IDAuMTVyZW07XHJcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW0gIWltcG9ydGFudDtcclxuICAgICAgICBAaW5jbHVkZSBib3JkZXIoKTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtbGlnaHQpO1xyXG4gICAgfVxyXG4gICAgICAgIFxyXG4gICAgJi5pbmZvIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItaW5mbyk7XHJcblxyXG4gICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnRBd2Vzb21lNShcIlxcZjEyOVwiKTtcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItaW5mbyk7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuc3VjY2VzcyB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXN1Y2Nlc3MpO1xyXG5cclxuICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBmb250QXdlc29tZTUoXCJcXGYwMGNcIik7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXN1Y2Nlc3MpO1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLndhcm5pbmcge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13YXJuaW5nKTtcclxuXHJcbiAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgZm9udEF3ZXNvbWU1KFwiXFxmMTJhXCIpO1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci13YXJuaW5nKTtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5lcnJvciB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWVycm9yKTtcclxuXHJcbiAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgZm9udEF3ZXNvbWU1KFwiXFxmMDBkXCIpO1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgKi9cclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIGNhcmRcclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi5jYXJkIHtcclxuICAgIHBhZGRpbmc6IHZhcigtLWdhcC1sYXlvdXQpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWNhcmQpO1xyXG4gICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGdhcDogdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcblxyXG4gICAgPiAqIHtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5sb2FkaW5nIHtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cclxuICAgICAgICA+ICoge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgQGluY2x1ZGUgc3Bpbm5lcigxLjZyZW0sIHZhcigtLWNvbG9yLWJvcmRlcikpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmNhcmQtaGVhZCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICBnYXA6IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG59XHJcblxyXG4uY2FyZC10aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDEuOHJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcblxyXG4gICAgJiB+IC5jYXJkLXN1Yi10aXRsZSB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLWNvbXBvbmVudCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5jYXJkLXN1Yi10aXRsZSB7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1kYXJrKTtcclxufVxyXG5cclxuLmNhcmQtYm9keSB7XHJcbiAgICBmbGV4OiAxO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBnYXA6IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgdG9hc3Rcclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi50b2FzdC1jb250YWluZXIge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICB6LWluZGV4OiB2YXIoLS16LWluZGV4LWxvYWRpbmcpO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBnYXA6IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG5cclxuICAgIC50b2FzdCB7XHJcbiAgICAgICAgd2lkdGg6IDMycmVtO1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IGNhbGModmFyKC0tc2l6ZS1pY29uKSArIHZhcigtLWdhcC1sYXlvdXQpICsgdmFyKC0tZ2FwLWxheW91dCkpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuICAgICAgICBAaW5jbHVkZSBib3gtc2hhZG93KCk7XHJcbiAgICAgICAgcGFkZGluZzogdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigpO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMnJlbSk7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1nYXAtbGF5b3V0KTtcclxuXHJcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC1sYXlvdXQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnRvYXN0LWljb24ge1xyXG4gICAgICAgICAgICB3aWR0aDogY2FsYyh2YXIoLS1zaXplLWljb24pKTtcclxuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLXNpemUtaWNvbikpO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIGxlZnQ6IHZhcigtLWdhcC1sYXlvdXQpO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLWxpZ2h0KTtcclxuXHJcbiAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnRBd2Vzb21lNShcIlxcZjE0MVwiKTtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnRvYXN0LXRpdGxlIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1zaXplLWljb24pICsgdmFyKC0tZ2FwLWxheW91dCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnRvYXN0LXN1Yi10aXRsZSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tc2l6ZS1pY29uKSArIHZhcigtLWdhcC1sYXlvdXQpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuaW5mbyB7XHJcbiAgICAgICAgICAgIC50b2FzdC1pY29uIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWluZm8pO1xyXG5cclxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcZjEyOVwiO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuc3VjY2VzcyB7XHJcbiAgICAgICAgICAgIC50b2FzdC1pY29uIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXN1Y2Nlc3MpO1xyXG5cclxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcZjAwY1wiO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYud2FybmluZyB7XHJcbiAgICAgICAgICAgIC50b2FzdC1pY29uIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXdhcm5pbmcpO1xyXG5cclxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcZjEyYVwiO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuZXJyb3Ige1xyXG4gICAgICAgICAgICAudG9hc3QtaWNvbiB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7XHJcblxyXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFxmMDBkXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5oaWRkZW4ge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDMycmVtKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBja2VkaXRvclxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLmNrZV9ub3RpZmljYXRpb25zX2FyZWEge1xyXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uY2tlX2NvbnRlbnRzIHtcclxuICAgIHBhZGRpbmc6IDFyZW0gIWltcG9ydGFudDtcclxufVxyXG5cclxuLmNrZV90b3AsXHJcbi5ja2VfYm90dG9tIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmYgIWltcG9ydGFudDtcclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIHBhZ2VzL2NvbW1vblxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBwYWdlcy9pbmRleFxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLnNlY3Rpb24tY29udGFpbmVyIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiB2YXIoLS1zaXplLWxheW91dC1jb250YWluZXIpO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICBwYWRkaW5nOiAxNnJlbSAwO1xyXG5cclxuICAgID4gLmhlYWQge1xyXG4gICAgICAgIC50aXRsZSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMy44cmVtO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnRleHQge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDJyZW07XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWxpZ2h0KTtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMS42cmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICA+IC5jb250ZW50IHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAxMnJlbTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtcS1sYXB0b3AoKSB7XHJcbiAgICAgICAgPiAuaGVhZCB7XHJcbiAgICAgICAgICAgIC50aXRsZSB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDMuMnJlbTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLnRleHQge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zZWN0aW9uIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZzogMCAycmVtO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xyXG5cclxuICAgIEBpbmNsdWRlIG1xLW1vYmlsZSgpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IHNjcm9sbDtcclxuICAgIH1cclxufVxyXG5cclxuLnNlY3Rpb24tdmlzdWFsIHtcclxuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1zaXplLWhlYWRlci1oZWlnaHQpO1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9tYWluL3Zpc3VhbF9iZy5wbmcpO1xyXG5cclxuICAgIC5zZWN0aW9uLWNvbnRhaW5lciB7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgIH1cclxuXHJcbiAgICAuY29udGVudCB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgbWluLWhlaWdodDogY2FsYygxMDB2aCAtIHZhcigtLXNpemUtaGVhZGVyLWhlaWdodCkpO1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IGNhbGMoMTAwZHZoIC0gdmFyKC0tc2l6ZS1oZWFkZXItaGVpZ2h0KSk7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBtYXJnaW4tdG9wOiAwO1xyXG5cclxuICAgICAgICBoMiB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGgzIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxNXJlbTtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcCB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi40cmVtO1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA0cmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtcS1sYXB0b3AoKSB7XHJcbiAgICAgICAgLmNvbnRlbnQge1xyXG4gICAgICAgICAgICBoMiB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGgzIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJyZW07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHAge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zZWN0aW9uLXNlcnZpY2Uge1xyXG4gICAgLnNlY3Rpb24tY29udGFpbmVyIHtcclxuICAgIH1cclxuXHJcbiAgICAuY29udGVudCB7XHJcbiAgICAgICAgdWwge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICBnYXA6IDEycmVtO1xyXG5cclxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICBnYXA6IDIwcmVtO1xyXG5cclxuICAgICAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoMm4pIHtcclxuICAgICAgICAgICAgICAgICAgICAudGV4dCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyOiAtMTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLmltZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQwcmVtO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC50ZXh0IHtcclxuICAgICAgICAgICAgICAgICAgICBmbGV4OiAxO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBoMyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMi44cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1saWdodCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC5rZXl3b3JkIHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgIGdhcDogMC44cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDRyZW07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItdGV4dCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuOHJlbSAxLjJyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYwNTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbXEtbGFwdG9wKCkge1xyXG4gICAgICAgIC5jb250ZW50IHtcclxuICAgICAgICAgICAgdWwge1xyXG4gICAgICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgICAgIC50ZXh0IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaDMge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyLjRyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC5rZXl3b3JkIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtcS10YWJsZXQoKSB7XHJcbiAgICAgICAgLmNvbnRlbnQge1xyXG4gICAgICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZ2FwOiA4cmVtO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAudGV4dCB7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAuaW1nIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHZ3KDQwMHB4LCAxMDI0cHgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtcS1tb2JpbGUoKSB7XHJcbiAgICAgICAgLmNvbnRlbnQge1xyXG4gICAgICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgICAgICAgICBnYXA6IDRyZW07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC5pbWcge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXI6IC0yO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uc2VjdGlvbi1zbG9nYW4ge1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9tYWluL3Nsb2dhbl9iZy5wbmcpO1xyXG5cclxuICAgIC5jb250ZW50IHtcclxuICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICBmbGV4OiAxO1xyXG4gICAgICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiAxO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItdGV4dCk7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTRyZW07XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgNnJlbTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYwNTtcclxuXHJcbiAgICAgICAgICAgICAgICAmOm50aC1vZi10eXBlKDEpIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAudGV4dCB7XHJcbiAgICAgICAgICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1vZi10eXBlKDIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMi40cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoMykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1xLXRhYmxldCgpIHtcclxuICAgICAgICAuY29udGVudCB7XHJcbiAgICAgICAgICAgIHVsIHtcclxuICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuXHJcbiAgICAgICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxleDogMSAxIDQwJTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgzKSxcclxuICAgICAgICAgICAgICAgICAgICAmOm50aC1vZi10eXBlKDQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTRyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLnRleHQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtcS1tb2JpbGUoKSB7XHJcbiAgICAgICAgLmNvbnRlbnQge1xyXG4gICAgICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuXHJcbiAgICAgICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxleDogMTtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC00cmVtICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zZWN0aW9uLXRlbXBsYXRlIHtcclxuICAgIC5zZWN0aW9uLWNvbnRhaW5lciB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgICAuaGVhZCB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogdmFyKC0tc2l6ZS1sYXlvdXQtY29udGFpbmVyKTtcclxuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jb250ZW50IHtcclxuICAgICAgICBtYXgtd2lkdGg6IDE5MnJlbTtcclxuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcblxyXG4gICAgICAgIC5mbG93LWNvbnRhaW5lciB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmZsb3cge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBnYXA6IDJyZW07XHJcbiAgICAgICAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcclxuICAgICAgICAgICAgYW5pbWF0aW9uOiBmbG93IDI0cyBsaW5lYXIgaW5maW5pdGU7XHJcbiAgICAgICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuZmxvdy1saXN0IHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICAgICAgICAgIGdhcDogMnJlbTtcclxuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XHJcblxyXG4gICAgICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaW1nOm50aC1vZi10eXBlKDJuKSB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA2cmVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAa2V5ZnJhbWVzIGZsb3cge1xyXG4gICAgICAgICAgICAwJSB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDEwMCUge1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLnNlY3Rpb24tY29udGFjdCB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL21haW4vY29udGFjdF9iZy5wbmcpO1xyXG5cclxuICAgIC5zZWN0aW9uLWNvbnRhaW5lciB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgZ2FwOiAxNnJlbTtcclxuXHJcbiAgICAgICAgLmNvbnRlbnQge1xyXG4gICAgICAgICAgICB3aWR0aDogNjByZW07XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5oZWFkIHtcclxuICAgICAgICAuaW5mbyB7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEycmVtO1xyXG5cclxuICAgICAgICAgICAgdWwge1xyXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgICAgICYgfiBsaSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDRyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBwIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoMikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjZyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbnRlbnQge1xyXG4gICAgICAgIC5jb250YWN0LWZvcm0ge1xyXG4gICAgICAgICAgICAucm93IHtcclxuICAgICAgICAgICAgICAgICYgfiAucm93IHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAzcmVtO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlucHV0LFxyXG4gICAgICAgICAgICAgICAgdGV4dGFyZWEsXHJcbiAgICAgICAgICAgICAgICBidXR0b24ge1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXRleHQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuOHJlbTtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxLjZyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMC42cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1saWdodCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXRleHQtbGlnaHQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2NjY2M5OTtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWNvbnRyYXN0KTtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICBnYXA6IDAuNHJlbTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2NjY2M7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2NjY2M5OTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbXEtbW9iaWxlKCkge1xyXG4gICAgICAgIC5zZWN0aW9uLWNvbnRhaW5lciB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuICAgICAgICAgICAgLmNvbnRlbnQge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA4cmVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuaGVhZCB7XHJcbiAgICAgICAgICAgIC5pbmZvIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDRyZW07XHJcblxyXG4gICAgICAgICAgICAgICAgdWwge1xyXG4gICAgICAgICAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBnYXA6IDFyZW07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmIH4gbGkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ== */
