@import url(https://fonts.googleapis.com/css2?family=IM+Fell+Double+Pica:ital@0;1&display=swap);
@import url(https://fonts.googleapis.com/css2?family=IM+Fell+Double+Pica+SC&display=swap);
* { box-sizing: border-box; }

html, body { 
    height: 100%;
    max-height: 100%;
}

body {
    --bgColor: #e0dacf; /* Couleur du background général */
    --textColor: #4d3518; /* Couleur du texte */
    --textSecColor: #755938; /* Couleur de texte secondaire */
    --bgMenuColor: #bfb6a6; /* Couleur du background du menu */
    --menuSymbColor: #f0eade; /* Couleur du "&" dans le menu */
    --menuHoverColor: #ffffff; /* Couleur du menu en cours  */
    --infoColor: #e6e0d9; /* Couleur de fond de l'alveole en cours  */
    --previewColor: #4d3518; /* Couleur du texte preview */
    --shadowColor: #3b290b; /* Couleur des ombre portée */
    --elFormColor: #cfc8ba; /* Couleur des éléments de formulaire */
    --menuFont: "IM Fell Double Pica", serif; /* police du menu */
    --titreFont: "IM Fell Double Pica", serif; /* police des titres */
    --capTextFont: "IM Fell Double Pica SC", serif; /* police en capitales */
    --textFont: "Times New Roman", sans-serif; /* police du texte */
    /*******************************************/
    --menuFont: "IM Fell Double Pica", serif; /* police du menu */
    --titreFont: "IM Fell Double Pica", serif; /* police des titres */
    --capTextFont: "IM Fell Double Pica SC", serif; /* police en capitales */
    --textFont: "Times New Roman", sans-serif; /* police du texte */
    --FontAwesome: "Font Awesome 5 Pro"; /* FontAwesome */
    --FontAwesomeBrands: "Font Awesome 5 Brands"; /* FontAwesome */
    /*******************************************/
    position: relative; 
    margin: 0;
    color: var(--textColor);
    background-color: var(--bgColor);
}

/****************************************************
** Header
*****************************************************/
header {
    position: fixed;
    display: flex;
    justify-content: center;
    top: 0;
    height: 102px;
    width: 100%;
    clip-path: polygon(100% 60px, calc(50% - 75px) 60px, 50% 102px, calc(50% + 75px) 60px, 0 60px, 0 0, 100% 0);
    background-color: var(--bgMenuColor);
    z-index: 10;
}
/* ombre du header et du footer */
.ombre { filter: drop-shadow(0px 0px 3px rgba(59, 41, 11, 0.5)); }

    div.menu_background { display: none; }

    .logo {
        margin-top: 34px;
        height: 83px;
        width: 98px;
        background-image: url(/build/images/logo_bw.0bfff93c.png);
        -webkit-transition: all 0.2s ease-in-out;
        transition: all 0.2s ease-in-out;
    }
        .logo:after {
            content: '';
            width: 100px;
            max-width: 300px;
        }
        .logo:hover {
            background-image: url(/build/images/logo_couleur.17588836.png);
            animation: shake 0.5s;
            animation-delay: 8s;
            animation-iteration-count: infinite;
        }
    /* animation du logo */
    @keyframes shake {
        0% { transform: translate(1px, 1px) rotate(0deg); }
        10% { transform: translate(-1px, -2px) rotate(-1deg); }
        20% { transform: translate(-3px, 0px) rotate(1deg); }
        30% { transform: translate(3px, 2px) rotate(0deg); }
        40% { transform: translate(1px, -1px) rotate(1deg); }
        50% { transform: translate(-1px, 2px) rotate(-1deg); }
        60% { transform: translate(-3px, 1px) rotate(0deg); }
        70% { transform: translate(3px, 1px) rotate(-1deg); }
        80% { transform: translate(-1px, -1px) rotate(1deg); }
        90% { transform: translate(1px, 2px) rotate(0deg); }
        100% { transform: translate(1px, -2px) rotate(-1deg); }
    }


/****************************************************
** Menu
*****************************************************/
nav.menu {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 60px;
    width: 970px;
    max-width: 970px;
    font-family: var(--menuFont);
    font-size: 15px;
    text-transform: uppercase;
}
nav.menu_sp { display: none; }

/* Eléments principaux du menu */
nav.menu > ul {
    height: 100%;
    width: 360px;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0;
}
nav.menu > ul > li {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    padding: 0 15px;
}
/* couleur du "&" dans le menu */
nav.menu span { color: var(--menuSymbColor); }

/* Comportement et animations du menu */
nav.menu ul li a.page_actuelle { color: var(--menuHoverColor); }
nav.menu > ul > li:before,
nav.menu > ul > li:after {
    display: block;
    height: 2px;
    width: 100%;
    transform: scaleX(0);
    transform-origin: bottom center;
    transition: transform 0.35s ease-out;
    background-color: var(--bgColor);
    content: "";
}
    nav.menu > ul > li:hover:after {
        transform: scaleX(1);
        transform-origin: bottom center;
        color: var(--menuHoverColor);
        transition: transform 0.35s ease-out;
    }
nav.menu > ul > li a { 
    text-decoration: none;
    color: var(--textColor);
    transition: color 0.35s ease-out;
}
    nav.menu > ul > li:hover a {
        color: var(--menuHoverColor);
        transition: color 0.35s ease-out;
    }

/****************************************************
** MAIN
*****************************************************/
div#main_portfolio {
    margin: 60px auto 0 auto;
    min-height: calc(100% - 170px);
    width: 970px;
    /* background-color: rgba(38, 0, 128, 0.2); */
}

h1 {
    margin: 0;
    font-family: var(--titreFont);
    font-style: italic;
    font-size: 30px;
    font-weight: 300;
}

.first_letter {
    float: left;
    padding-right: 5px;
    line-height: 80%;
    font-family: var(--textFont);
    font-weight: bold;
    font-size : 52px;
}

p {
    text-align: justify;
    white-space: pre-line;
    font-family: var(--textFont);
    font-size: 18px;
    font-style: italic;
}

/* Liens */
#main_portfolio a {
    text-decoration: none;
    color: var(--textColor);
    -webkit-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out;
}
    #main_portfolio a:hover { color: var(--menuHoverColor); }
    #main_portfolio p a { font-weight: bold; }

/****************************************************
** Footer fixe en bas de page
*****************************************************/
footer {
    width: 100%;
    padding: 20px 0;
    clip-path: polygon(100% 100%, 0 100%, 0 0, calc(50% - 75px) 0, 50% 42px, calc(50% + 75px) 0, 100% 0, 100% 100%);
    background-color: var(--bgMenuColor);
}

footer .contenu_footer {
    height: 130px;
    display: flex;
    align-items: center;
    justify-content: space-around;
    padding: 0 calc(calc(100% - 1010px) / 2);
}

/* Styles génériques du footer */
footer h2 {
    margin: 0 0 10px 0;
    font-size: 20px;
    font-weight: normal;
    font-family: var(--menuFont);
    text-transform: uppercase;
}
footer div:hover > h2 {  
    color: var(--menuHoverColor);
}
footer a {
    color: var(--mainColor);
    text-decoration: none;
    font-weight: bold;
}
    footer a:hover { color: var(--menuHoverColor); }

/* Blocs principaux du footer : gauche/centre/droite */
footer .contenu_footer > div {
    display: flex;
    width: 33%;
    justify-content: center;
    align-items: center;
    /* background-color: rgba(255, 0, 0, 0.349); */
}
    /* Blocs Legal notices & copyright */
    footer div.legal_notices,
    footer div.copyright {
        flex-direction: column;
        max-width: 250px;
        white-space: normal;
        text-align: center;
    }
    /* Bloc central contenant les icones */
    footer div.liens_web {
        flex-direction: row;
        align-items: flex-start;
        margin-top: 20px;
    }

footer .liens_web a {
    height: 56px;
    width: 48px;
    margin: 0 -9px;
    background-color: var(--bgColor);
    clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
    transition: transform 0.3s;
}
    /* Deuxième ligne décalée */
    footer .liens_web a:nth-child(2n+2) { 
        margin-top: 52px; 
    }
    .liens_web a:hover {
        background-color: var(--infoColor);
        transform: scale(1.05);
    }

.liens_web a img {
    width: 100%;
    height: 100%;
    transform: scale(0.5);
}

/****************************************************
** About
*****************************************************/
.about {
    display: flex;
    justify-content: center;
    margin: 0 20px;
}
.about h1 {
    justify-content: flex-end;
    display: flex;
    margin-top: 60px;
}
.about img {
    margin-top: 20px;
    height: 100%;
    filter: drop-shadow(0px 0px 3px rgba(59, 41, 11, 0.7));
}
.about .text {
    flex-direction: column;
    align-items: flex-end;
    margin-left: -40px;
    max-width: 580px;
}

/****************************************************
** Contact
*****************************************************/
/* page contact */
.contact {
    display: flex;
    justify-content: center;
    margin: 0 20px;
}
.contact .text {
    max-width: 470px;
    margin: 60px 10px 0 0;
}
.contact .text ul {
    padding-left: 20px;
    margin:-10px 0 -20px 0;
}
.contact .text ul li{
    font-family: var(--textFont);
    font-size: 18px;
    font-style: italic;
    white-space: pre-line;
    text-align: justify;
}
.form_contact {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    width: 400px;
    margin: 20px 0 30px 10px;
}
.form_contact img {
    filter: drop-shadow(0px 0px 3px rgba(59, 41, 11, 0.7));
    width: 238px;
    margin-bottom: 10px;
}
.form_contact form {
    width: 100%;
    display: flex;
    flex-direction: column;
}
.form_contact label {
    display: block;
    padding: 8px 0 2px 0;
    font-size: 18px;
}
.form_contact input, textarea {
    border  : none;
    width: 99%;
    height: 30px;
    background-color: var(--elFormColor);
    transition: background-color 0.2s;
}
.form_contact textarea {
    height: 200px;
    max-width: 550px;
    font-family: var(--titreFont);
}
.form_contact input:hover, textarea:hover {
    background-color: var(--menuSymbColor);
}
.form_contact input:focus, textarea:focus {
    outline: none;
    background-color: var(--menuSymbColor);
    filter: drop-shadow(0px 0px 3px rgba(59, 41, 11, 0.7));
}
/*pour le bouton de l'upload*/
.form_contact input[type="file" i] {
    padding: 5px 0 0 5px;
    height: 25px;
}
::-webkit-file-upload-button {
    display: none;
}
.form_contact h5 {
    margin: 0;
    padding-top: 2px;
    font-weight: normal;
}
.form_contact button {
    background-color: var(--bgMenuColor);
    width: 100px;
    align-self: flex-end;
    border: none;
    padding: 5px 0 5px 0;
    margin-top: 10px;
    font-family: var(--titreFont);
    font-variant: small-caps;
    font-size: 20px;
    color: var(--textColor);
    transition: background-color 0.2s, transform 0.2s;
}
.form_contact button:hover {
    background-color: var(--menuSymbColor);
    transform: scale(1.05);
}
.alert-success {
    display: flex;
    padding: 20px;
    margin: 1rem auto;
    border-radius: 5px;
    color: var(--textColor);
    background-color: var(--bgMenuColor);
    font-weight: bold;
}
/****************************************************
** Shop & support me
*****************************************************/
.shop {
    display: flex;
    justify-content: center;
    margin: 0 20px;
}
.shop .text {
    flex-direction: column;
    align-items: flex-start;
    margin-top: 60px;
    max-width: 450px;
}
.shop h1 {
    margin-bottom: 10px;
    padding-bottom: 20px;
    font-size: 2em;
}
.shop .text p {
    padding-bottom: 20px;
}
/* alveoles du shop */
.alveoles_shop {
    filter: drop-shadow(0px 0px 3px rgba(59, 41, 11, 0.7));
    display: flex;
    margin: 20px 0 0 20px;
}
.alveoles_shop img {
    margin-top: 10px;
    height: 678px;
}
.ruche_shop {
    position: absolute;
    margin: 45px 0 0 55px;
}
.alveole_shop {
    height: 230px;
    width: 208px;
    margin-top: -42px;
    clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
    transition: transform 0.2s;
    background-color: var(--bgMenuColor);
}
/* Toutes les 2 alvéoles */
.alveole_shop:nth-child(2) { margin-left: 120px; }
.alveole_shop:hover {
    transform: scale(1.05);
    transition: transform 0.2s;
}
.alveole_shop a img {
    width: 100%;
    height: 75%;
    object-fit: none;
}
/* texte dans les alveoles du shop */
.alveole_shop p {
    text-align: center;
    margin-top: -30%;
    padding-bottom: 30%;
    font-weight: bold;
}
/****************************************************
** Portfolio
*****************************************************/
/* filtres */
.filter {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    width: 100%;
    padding-top: 10px;
    padding-right: 40px;
}

/* Différenciés en deux zones : à gauche et à droite du logo */
.filter_left,
.filter_right { 
    display: flex; 
    justify-content: center;
    display: none;
}
.filter_left { 
    width: 50%;
    margin-right: 60px; 
}
.filter_right { 
    width: calc(50% - 30px);
    margin-left: 60px; 
}

/* Une boîte de filtres : Personal work, Commissions, full color... */
.filter a.filter_choice { 
    display: flex;
    justify-content: center;
    align-items: center;
    height: 30px;
    padding: 0 9px;
    margin: 0 5px;
    font-family: var(--menuFont);
    font-size: 13px;
    font-weight: 600;
    color: var(--textSecColor) !important;
    clip-path: polygon(8% 0, 92% 0, 100% 50%, 92% 100%, 8% 100%, 0% 50%);
    background-color: var(--bgMenuColor);
    opacity: 0.7;
    will-change: background-color;
    transition: background-color 0.35s;
}
    .filter a.filter_choice:hover { background-color: var(--elFormColor); }

/* Filtre sélectionné */
.filter a.filter_choice.active { opacity: 1; }

/* Icone d'affichage des filtres */
.filter_icon {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 30px;
    width: 35px;
    max-width: 35px;
    min-width: 35px;
}
    /* Ajout des icones */
    .filter_icon::before,
    .filter_icon::after {
        position: absolute;
        font-family: var(--FontAwesome);
        font-weight: 900;
    }
    .filter_icon::before {
        font-size: 30px;
        content: "\f312";
        color: var(--bgMenuColor);
        transform: scale(1);
        transition: transform 0.35s;
        will-change: transform;
    }
    .filter_icon::after {
        margin-top: 2px;
        font-size: 15px;
        content: "\f0b0";
        color: var(--bgColor);
        transition: color 0.35s;
    }
    /* Animations sur les icones */
    .filter_icon:hover::after { 
        color: var(--menuHoverColor);
        transition: color 0.35s;
    }
    .filter_icon:hover::before {
        transform: scale(1.1);
        transition: transform 0.35s;
    }


/* Conteneur général des alvéoles du portfolio */
.ruche {
    display: flex;
    flex-wrap: wrap;
    max-width: 920px;
    margin: 0 auto;
    filter: drop-shadow(0px 0px 3px rgba(59, 41, 11, 0.8));
}
/* Une alvéole par carte */
.alveole {
    height: 230px;
    width: 208px;
    margin: 10px;
    clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
    transition: transform 0.2s;
    z-index: 0;
}
.illustration-preview {
    will-change: transform;
    transition: transform 0.2s;
}
    /* Animation zoom au hover */
    .illustration-preview:hover {
        transform: scale(1.05);
        transition: transform 0.2s;
    }
/* Toutes les 7 alvéoles à partir de la 5ème */
div.illustration-preview:nth-of-type(7n+5) { margin-left: 116px; }
/* Toutes les alvéoles à partir de la 5ème */
div.illustration-preview:nth-of-type(n+5) { margin-top: -60px; }

/* Image contenue par l'alvéole */
.alveole img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
/* ombre */
.illustration-preview .ombre_alveoles {
    visibility: hidden;
    position: absolute;
    align-items: center;
    z-index: 1;
}
/* alveole texte */
.text_aureole {
    height: 170px;
    width: 158px;
    margin: 40px 35px 35px 35px;
    clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
    background-color: rgba(230, 224, 217, 0.75);
}
.text_aureole p {
    font-family: new-spirit, Serif;
    font-weight: 400;
    font-style: normal;
    font-size: 14px;
}
.text_aureole .container_preview {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.text_aureole .container_preview p {
    color: var(--previewColor);
    font-family: "IM Fell Double Pica regular", serif;
    margin: 0;
    padding: 0;
    text-align: center;
}
.text_aureole .container_preview p#titre_preview {
    font-size: 15px;
    font-weight: 600;
    text-transform: uppercase;
    margin: 40px 0 10px 0;
}
/* loupe dans le preview */
.text_aureole .container_preview p[class*=fa-]::before {
    display: flex;
    flex-direction: row;
    align-items: baseline;
    margin-top: 15px;
    font-family: var(--FontAwesome);
    font-size: 35px;
    font-weight: 400;
    color: var(--previewColor);
}

/* image agrandie */
.illustration {
    transition: all 0.3s ease;
}
.full_image {
    display: block;
    width: calc(100% - 10px);
    margin-left: 5px;
    margin-right: 5px;
}
.illustration-view {
    display: none;
}
.full_view {
    display: none;
    justify-content: center;
    padding: 10px 0 20px 0;
}
.full_view .image_view .image_info {
    display: none;
}
.image_view {
    display: flex;
    justify-content: space-between;
    width: 80%;
}
.image_view p {
    font-family: var(--titreFont);
    font-size: 50px;
    font-style: normal;
    margin: 0;
}
.image_view a {
    height: 50px;
    margin-top: 300px;
    font-weight: normal;
}
.image_view i { 
    font-size: 50px;
}
.image_view p.titre_long {
    font-size: 20px;
    margin-top: 20px;
}
.image_view p.annee {
    font-size: 16px;
    margin-bottom: 10px;
}
.illustration-view p {
    font-size: 16px;
    text-align: center;
}
div.pf_prints_link_box div.pf_prints_link {
    display: flex;
    justify-content: center;
}
div.pf_prints_link_box p {
    font-family: var(--capTextFont);
    font-size: 20px;
    margin-top: 10px;
    margin-bottom: 0;
}
div.pf_prints_link_box div.pf_prints_link a {
    font-family: var(--titreFont);
    margin: 0 5px;
}
div.pf_prints_link_box div.pf_prints_link a:after {
    content: "\f08e";
    font-family: var(--FontAwesome);
    font-size: 12px;
    margin: 0 4px;
}
/* pour fermer l'image agrandie */
.close {
    display: none;
    justify-content: end;
    margin: -30px 10px 20px 10px;
    z-index: 1;
}
.close i.fas {
    font-size: 2em;
}
.close a:hover {
    transform: scale(1.05);
    transition: transform 0.2s;
}

/****************************************************
** Références
*****************************************************/

/* Général */
#container_references {
    display: flex;
    flex-direction: column;
}
/* Awards */
.awards {
    display: flex;
    flex-wrap: wrap;
    width: 920px;
    margin: 0 auto;
    filter: drop-shadow(0px 0px 3px rgba(59, 41, 11, 0.7));
}
div.award {
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 230px;
    width: 208px;
    margin: 10px;
    background-color: var(--bgMenuColor);
    clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
    transition: transform 0.2s;
}
div.award img {
    height: 31px;
    margin-top: 25px;
    margin-bottom: 10px;
}
div.award p {
    margin: 0 5px;
    text-align: center;
}
div.award p.p_award_year,
div.award p.p_award_competition {
    font-family: var(--titreFont);
    font-weight: bold;
    font-style: normal;
    height: 21px;
    margin-top: 5px;
}
div.award p.p_award_competition {
    margin-bottom: 5px;
    margin-top: 0;
}
div.award p.p_award_category {
    font-style: italic;
    font-size: 14px;
}
/* Toutes les 7 alvéoles à partir de la 5ème */
div.award:nth-child(7n+5) { margin-left: 123px; }
/* Toutes les alvéoles à partir de la 5ème */
div.award:nth-child(n+5) { margin-top: -50px; }
/* Références */
section.references {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    width: 920px;
    margin: 10px auto;
}
section.references div.reference_colonne {
    display: flex;
    flex-direction: column;
}
article.reference {
    width: 270px;
    margin: 18px;
}
/* paragraphes */
article.reference p {
    margin: 0;
    text-align: center;
}
article.reference p.reference_quote {
    font-family: var(--titreFont);
    color: var(--bgMenuColor);
    font-size: 90px;
    margin-bottom: -60px;
}
article.reference p.reference_client {
    font-family: var(--capTextFont);
    font-size: 22px;
    font-weight: bold;
    font-style: normal;
}
article.reference p.reference_client br {
    display: none;
}
article.reference p.reference_detail_client {
    font-family: var(--titreFont);
    font-weight: bold;
    font-style: normal;
    font-size: 16px;
}
article.reference p.reference_commentary {
    font-size: 16px;
    text-align: justify;
    padding: 3px;
    margin-top: -20px;
}
/* image */
article.reference img.reference_img {
    width: 270px;
    height: 45px;
    padding-top: 5px;
    filter: drop-shadow(0px 0px 3px rgba(59, 41, 11, 0.7));
    border-radius: 3px;
    object-fit: none;
}
article.reference img.reference_img.reference_side_1 {
    object-position: left;
}
article.reference img.reference_img.reference_side_2 {
    object-position: center;
}
article.reference img.reference_img.reference_side_3 {
    object-position: right;
}

/****************************************************
** Page Link
*****************************************************/
.link {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.link .alveole {
    height: 180px;
    width: 158px;
    margin: 20px;
    clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
    background-color: var(--bgMenuColor);
}
.link .alveole img {
    width: 100%;
    height: 100%;
    object-fit: none;
}
.link .menu {
    margin: 0 0 20px 0;
    padding: 0;
    list-style:none;

}
.link .menu li a {
    display: block;
    background-color: var(--bgMenuColor);
    color: var(--textColor);
    text-align: center;
    margin-top: 15px;
    padding: 15px 20px 15px 20px;
    transition: transform 0.2s;
}
.link .menu li a:hover {
    transform: scale(1.05);
    transition: transform 0.2s;
    color: var(--menuHoverColor);
}

/*/////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////*/
@media (max-width: 929px) and (min-width: 480px) {
/* TODO tailles intermédiaires -> à partir d'environ 480px ? et une autre */
/* Affichage OK > 929px; OK de 360px à 668px */
/* à voir surtout en fonction des alvéoles je pense, page portfolio ++ */
}

/*/////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////*/
@media all and (max-width: 929px) {
    div#main_portfolio {
        padding-bottom: 360px;
    }
    /****************************************************
    ** Header
    *****************************************************/
    header {
        height: fit-content;
        clip-path: none;
        background-color: inherit;
    }
    p.menu {
        display: unset;
        font-family: var(--capTextFont);
        font-style: inherit;
        padding-left: 10px;
    }
    .logo {
        grid-area: 1 / 2 / 2 / 3;
        z-index: 2;
        display: block;
        margin: 0 auto;
        background-image: url(/build/images/logo_couleur.17588836.png);
    }
    .logo:hover {
        animation: none;
    }
    /****************************************************
    ** Menu
    *****************************************************/
    nav.menu {
        display: grid;
        grid-template: 102px auto auto / calc(50% - 75px) 150px calc(50% - 75px);
        height: fit-content;
        margin-bottom: 10px;
        background-color: var(--elFormColor);
    }
    div.menu_background {
        grid-area: 1 / 1 / 2 / 4;
        z-index: 1;
        display: flex;
        min-height: 102px;
        width: 100%;
        clip-path: polygon(100% 60px, calc(50% - 75px) 60px, 50% 102px, calc(50% + 75px) 60px, 0 60px, 0 0, 100% 0);
        background-color: var(--bgMenuColor);
    }
    nav.menu > ul.menu_gauche {
        grid-area: 2 / 1 / 3 / span 3;
        z-index: 2;
    }
    nav.menu > ul.menu_droite {
        grid-area: 3 / 1 / 4 / span 3;
        z-index: 2;
    }
    /* Eléments principaux du menu */
    nav.menu > ul {
        flex-direction: column;
        align-items: center;
        width: auto;
        margin: 20px auto;
    }
    nav.menu > ul > li {
        margin: 7px;
        padding: 0;
    }
    nav.menu > ul > li a {
        font-family: var(--capTextFont);
        font-size: 20px;
    }
    /****************************************************
    ** Footer
    *****************************************************/
    footer {
        padding: 10px 0;
        clip-path: none;
    }
    footer .contenu_footer {
        /*display: none;*/
        display: grid;
        grid-template-columns: 60% 40%;
        grid-template-rows: 50% 50%;
        height: fit-content;
    }
    footer .contenu_footer p.legal_notices {
        grid-area: 1 / 1 / 2 / 2;
        max-width: none;
        margin-left: 10px;
        margin-top: 0;
    }
    footer .contenu_footer p.copyright {
        grid-area: 2 / 1 / 2 / 2;
        max-width: none;
        margin-top: 0;
    }
    /* alvéoles liens*/
    footer .contenu_footer .liens_web {
        grid-area: 1 / 2 / 3 / 3;
        margin-right: 0;
    }
    footer .contenu_footer .liens_web .menu {
        flex-direction: column;
        flex-wrap: wrap;
        height: 300px;
        margin-top: 20px;
        margin-left: 25px;
    }
    footer .contenu_footer .liens_web .alveole_footer {
        margin: 0 -8px 0 -8px;
    }
    footer .contenu_footer .liens_web a {
        margin: 20px 10px;
    }
    footer .contenu_footer .liens_web a:nth-child(2n+2) {
        margin-top: inherit;
    }
    footer .contenu_footer .liens_web a:nth-child(1) {
        display: flex;
        align-self: end;
        margin-top: 68px;
        margin-right: -10px;
    }
    footer .contenu_footer .liens_web a:nth-child(2) {
        margin-right: -10px;
    }
    footer .contenu_footer .liens_web a:nth-child(6) {
        display: flex;
        align-self: end;
        margin-top: 68px;
        margin-left: -10px;
    }
    footer .contenu_footer .liens_web a:nth-child(7) {
        margin-left: -10px;
    }
    /****************************************************
    ** About
    *****************************************************/
    .about {
        margin-top: 0;
    }
    .about img {
        display: none;
    }
    .about .text {
        margin-left: 0;
    }
    .about h1 {
        margin-top: 20px;
    }
    /****************************************************
    ** Contact
    *****************************************************/
    /* Texte */
    .contact {
        flex-direction: column;
        margin-top: 0;
    }
    .contact .text {
        max-width: 100%;
        margin-right: 0;
        margin-top: 20px;
    }
    /* Formulaire */
    .form_contact {
        max-width: 100%;
        margin: auto;
    }
    .form_contact img {
        margin-bottom: 0;
    }
    /****************************************************
    ** Shop & support me
    *****************************************************/
    .shop {
        flex-direction: column-reverse;
        align-items: center;
        margin-top: 0;
    }
    .shop .text {
        max-width: 100%;
    }
    /* alveoles du shop */
    .alveoles_shop {
        justify-content: center;
        height: 280px;
        max-width: 100%;
        margin: 10px 0 0 0;
    }
    .alveoles_shop img {
        display: none;
    }
    .ruche_shop {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-around;
        width: 340px;
        margin: 35px 0 0 0;
    }
    .alveole_shop {
        height: 172px;
        width: 156px;
    }
    .alveole_shop a img {
        display: block;
        margin-top: 0;
        margin-bottom: 10px;
    }
    /* texte dans les alveoles du shop */
    .alveole_shop p {
        text-align: center;
        margin-top: -30%;
        padding-bottom: 30%;
        font-weight: bold;
    }
    /* Placement des alvéoles */
    .alveole_shop:nth-child(2) { margin-left: 0; }
    .alveole_shop:nth-child(3) { margin-top: -25px; }
    /****************************************************
    ** Références
    *****************************************************/
    /* Awards */
    .awards {
        flex-direction: column;
        width: calc(100% - 20px);
        margin-top: 10px;
        filter: none;
    }
    div.award {
        display: grid;
        grid-template: auto auto / 100px auto auto;
        height: fit-content;
        width: 100%;
        max-width: 425px;
        margin: 5px auto;
        background-color: unset;
        clip-path: none;
    }
    div.award_sp {
        grid-area: 1 / 1 / 3 / 2;
        height: 92px;
        width: 83px;
        margin: 5px 10px;
        background-color: var(--bgMenuColor);
        clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
    }
    div.award img {
        grid-area: 1 / 1 / 3 / 2;
        z-index: 2;
        max-width: 75px;
        margin: auto 0 auto 3px;
        justify-self: center;
        object-fit: scale-down;
    }
    div.award p {
        margin: 0;
        text-align: left;
    }
    div.award p.p_award_year {
        margin: 0;
        grid-area: 1 / 3 / 2 / 4;
    }
    div.award p.p_award_competition {
        grid-area: 1 / 2 / 2 / 3;
        height: auto;
        margin-bottom: 0;
    }
    div.award p.p_award_category {
        grid-area: 2 / 2 / 3 / 4;
        align-self: flex-start;
        margin: 5px 5px 0 5px;
    }
    /* Toutes les 7 alvéoles à partir de la 5ème */
    div.award:nth-child(7n+5) { margin-left: inherit; }
    /* Toutes les alvéoles à partir de la 5ème */
    div.award:nth-child(n+5) { margin-top: inherit; }
    /* Références */
    section.references {
        flex-direction: column;
        width: calc(100% - 20px);
        margin-top: 0;
    }
    article.reference {
        width: calc(100% - 10px);
        margin: auto;
    }
    /* image */
    article.reference img.reference_img {
        width: 100%;
    }
    /****************************************************
    ** Portfolio
    *****************************************************/
    /* filtres */
    .filter {
        display: grid;
        grid-template: 40px auto / repeat(2, calc(50%));
        justify-content: flex-end;
        margin: -40px auto 0 auto;
        max-width: calc(100% - 10px);
    }
    .filter div {
        flex-direction: column;
        align-items: center;
    }
    .filter_left {
        grid-area: 2 / 1 / 3 / 2;
        display: none;
        margin-right: 0;
        width: 50%;
        justify-self: center;
    }
    .filter_right {
        grid-area: 2 / 2 / 3 / 3;
        display: none;
        margin-left: 0;
        width: calc(50% - 40px);
        justify-self: center;
    }
    .filter a.filter_choice {
        margin: 3px 0;
    }
    .filter_icon {
        grid-area: 1 / 2 / 2 / 3;
        justify-self: end;
    }
    .filter_left p, .filter_right p {
        margin: 0;
        width: 100px;
    }
    /* Conteneur général des alvéoles du portfolio */
    .ruche {
        display: flex;
        flex-wrap: wrap;
        /*width: 350px;*/
        max-width: calc(100% - 6vw);
        margin: 0 auto;
        filter: drop-shadow(0px 0px 3px rgba(59, 41, 11, 0.8));
    }
    /* Une alvéole par carte */
    .alveole {
        height: 44vw;
        width: 40vw;
        margin: 2vw;
    }
    /* Toutes les 7 alvéoles à partir de la 5ème */
    div.illustration-preview:nth-of-type(7n+5) { margin-left: 0; }
    /* Toutes les alvéoles à partir de la 5ème */
    div.illustration-preview:nth-of-type(n+5) { margin-top: 0; }
    /* Toutes les alvéoles à partir de la 3ème */
    div.illustration-preview:nth-of-type(n+3) { margin-top: -12vw; }
    /* Toutes les 3 alvéoles à partir de la 3ème */
    div.illustration-preview:nth-of-type(3n+3) { margin-left: 22vw; }

    /* Image contenue par l'alvéole */
    .alveole img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    /* alveole texte */
    .text_aureole {
        height: 33vw;
        width: 30vw;
        margin: 8vw 7vw;
    }
    .text_aureole .container_preview div#client_preview {
        display: none;
    }
    /* loupe dans le preview */
    .text_aureole .container_preview p[class*=fa-]::before {
        margin-top: 0;
    }

    /* image agrandie */
    .full_image {
        width: calc(100% - 10px);
        margin-left: 5px;
        margin-right: 5px;
    }
    .full_view {
        padding: 0;
    }
    .image_view {
        width: calc(100% - 10px);
    }
    .image_view a {
        margin-top: 170px;
    }
    div.pf_prints_link_box p {
        margin-bottom: 10px;
    }
    div.pf_prints_link_box div.pf_prints_link a {
        text-align: center;
    }
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0ksVUFBVTtJQUNkO0lBQ0E7UUFDSSx3QkFBd0I7SUFDNUI7SUFDQTtRQUNJLGlCQUFpQjtJQUNyQjtJQUNBO1FBQ0ksbUJBQW1CO0lBQ3ZCO0lBQ0E7UUFDSSxrQkFBa0I7SUFDdEI7QUFDSixDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy9mcm9udC5jc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9SU0rRmVsbCtEb3VibGUrUGljYTppdGFsQDA7MSZkaXNwbGF5PXN3YXAnKTtcbkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PUlNK0ZlbGwrRG91YmxlK1BpY2ErU0MmZGlzcGxheT1zd2FwJyk7XG5cbiogeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbmh0bWwsIGJvZHkgeyBcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbn1cblxuYm9keSB7XG4gICAgLS1iZ0NvbG9yOiAjZTBkYWNmOyAvKiBDb3VsZXVyIGR1IGJhY2tncm91bmQgZ8OpbsOpcmFsICovXG4gICAgLS10ZXh0Q29sb3I6ICM0ZDM1MTg7IC8qIENvdWxldXIgZHUgdGV4dGUgKi9cbiAgICAtLXRleHRTZWNDb2xvcjogIzc1NTkzODsgLyogQ291bGV1ciBkZSB0ZXh0ZSBzZWNvbmRhaXJlICovXG4gICAgLS1iZ01lbnVDb2xvcjogI2JmYjZhNjsgLyogQ291bGV1ciBkdSBiYWNrZ3JvdW5kIGR1IG1lbnUgKi9cbiAgICAtLW1lbnVTeW1iQ29sb3I6ICNmMGVhZGU7IC8qIENvdWxldXIgZHUgXCImXCIgZGFucyBsZSBtZW51ICovXG4gICAgLS1tZW51SG92ZXJDb2xvcjogI2ZmZmZmZjsgLyogQ291bGV1ciBkdSBtZW51IGVuIGNvdXJzICAqL1xuICAgIC0taW5mb0NvbG9yOiAjZTZlMGQ5OyAvKiBDb3VsZXVyIGRlIGZvbmQgZGUgbCdhbHZlb2xlIGVuIGNvdXJzICAqL1xuICAgIC0tcHJldmlld0NvbG9yOiAjNGQzNTE4OyAvKiBDb3VsZXVyIGR1IHRleHRlIHByZXZpZXcgKi9cbiAgICAtLXNoYWRvd0NvbG9yOiAjM2IyOTBiOyAvKiBDb3VsZXVyIGRlcyBvbWJyZSBwb3J0w6llICovXG4gICAgLS1lbEZvcm1Db2xvcjogI2NmYzhiYTsgLyogQ291bGV1ciBkZXMgw6lsw6ltZW50cyBkZSBmb3JtdWxhaXJlICovXG4gICAgLS1tZW51Rm9udDogXCJJTSBGZWxsIERvdWJsZSBQaWNhXCIsIHNlcmlmOyAvKiBwb2xpY2UgZHUgbWVudSAqL1xuICAgIC0tdGl0cmVGb250OiBcIklNIEZlbGwgRG91YmxlIFBpY2FcIiwgc2VyaWY7IC8qIHBvbGljZSBkZXMgdGl0cmVzICovXG4gICAgLS1jYXBUZXh0Rm9udDogXCJJTSBGZWxsIERvdWJsZSBQaWNhIFNDXCIsIHNlcmlmOyAvKiBwb2xpY2UgZW4gY2FwaXRhbGVzICovXG4gICAgLS10ZXh0Rm9udDogXCJUaW1lcyBOZXcgUm9tYW5cIiwgc2Fucy1zZXJpZjsgLyogcG9saWNlIGR1IHRleHRlICovXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gICAgLS1tZW51Rm9udDogXCJJTSBGZWxsIERvdWJsZSBQaWNhXCIsIHNlcmlmOyAvKiBwb2xpY2UgZHUgbWVudSAqL1xuICAgIC0tdGl0cmVGb250OiBcIklNIEZlbGwgRG91YmxlIFBpY2FcIiwgc2VyaWY7IC8qIHBvbGljZSBkZXMgdGl0cmVzICovXG4gICAgLS1jYXBUZXh0Rm9udDogXCJJTSBGZWxsIERvdWJsZSBQaWNhIFNDXCIsIHNlcmlmOyAvKiBwb2xpY2UgZW4gY2FwaXRhbGVzICovXG4gICAgLS10ZXh0Rm9udDogXCJUaW1lcyBOZXcgUm9tYW5cIiwgc2Fucy1zZXJpZjsgLyogcG9saWNlIGR1IHRleHRlICovXG4gICAgLS1Gb250QXdlc29tZTogXCJGb250IEF3ZXNvbWUgNSBQcm9cIjsgLyogRm9udEF3ZXNvbWUgKi9cbiAgICAtLUZvbnRBd2Vzb21lQnJhbmRzOiBcIkZvbnQgQXdlc29tZSA1IEJyYW5kc1wiOyAvKiBGb250QXdlc29tZSAqL1xuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgXG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiB2YXIoLS10ZXh0Q29sb3IpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnQ29sb3IpO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiogSGVhZGVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbmhlYWRlciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgdG9wOiAwO1xuICAgIGhlaWdodDogMTAycHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDEwMCUgNjBweCwgY2FsYyg1MCUgLSA3NXB4KSA2MHB4LCA1MCUgMTAycHgsIGNhbGMoNTAlICsgNzVweCkgNjBweCwgMCA2MHB4LCAwIDAsIDEwMCUgMCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmdNZW51Q29sb3IpO1xuICAgIHotaW5kZXg6IDEwO1xufVxuLyogb21icmUgZHUgaGVhZGVyIGV0IGR1IGZvb3RlciAqL1xuLm9tYnJlIHsgZmlsdGVyOiBkcm9wLXNoYWRvdygwcHggMHB4IDNweCByZ2JhKDU5LCA0MSwgMTEsIDAuNSkpOyB9XG5cbiAgICBkaXYubWVudV9iYWNrZ3JvdW5kIHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgLmxvZ28ge1xuICAgICAgICBtYXJnaW4tdG9wOiAzNHB4O1xuICAgICAgICBoZWlnaHQ6IDgzcHg7XG4gICAgICAgIHdpZHRoOiA5OHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL0Zyb250L2xvZ29fYncucG5nKTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuICAgICAgICAubG9nbzphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzAwcHg7XG4gICAgICAgIH1cbiAgICAgICAgLmxvZ286aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9Gcm9udC9sb2dvX2NvdWxldXIucG5nKTtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc2hha2UgMC41cztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogOHM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgfVxuICAgIC8qIGFuaW1hdGlvbiBkdSBsb2dvICovXG4gICAgQGtleWZyYW1lcyBzaGFrZSB7XG4gICAgICAgIDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMXB4LCAxcHgpIHJvdGF0ZSgwZGVnKTsgfVxuICAgICAgICAxMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMXB4LCAtMnB4KSByb3RhdGUoLTFkZWcpOyB9XG4gICAgICAgIDIwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC0zcHgsIDBweCkgcm90YXRlKDFkZWcpOyB9XG4gICAgICAgIDMwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDNweCwgMnB4KSByb3RhdGUoMGRlZyk7IH1cbiAgICAgICAgNDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMXB4LCAtMXB4KSByb3RhdGUoMWRlZyk7IH1cbiAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTFweCwgMnB4KSByb3RhdGUoLTFkZWcpOyB9XG4gICAgICAgIDYwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC0zcHgsIDFweCkgcm90YXRlKDBkZWcpOyB9XG4gICAgICAgIDcwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDNweCwgMXB4KSByb3RhdGUoLTFkZWcpOyB9XG4gICAgICAgIDgwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xcHgsIC0xcHgpIHJvdGF0ZSgxZGVnKTsgfVxuICAgICAgICA5MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxcHgsIDJweCkgcm90YXRlKDBkZWcpOyB9XG4gICAgICAgIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxcHgsIC0ycHgpIHJvdGF0ZSgtMWRlZyk7IH1cbiAgICB9XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbioqIE1lbnVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xubmF2Lm1lbnUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGhlaWdodDogNjBweDtcbiAgICB3aWR0aDogOTcwcHg7XG4gICAgbWF4LXdpZHRoOiA5NzBweDtcbiAgICBmb250LWZhbWlseTogdmFyKC0tbWVudUZvbnQpO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxubmF2Lm1lbnVfc3AgeyBkaXNwbGF5OiBub25lOyB9XG5cbi8qIEVsw6ltZW50cyBwcmluY2lwYXV4IGR1IG1lbnUgKi9cbm5hdi5tZW51ID4gdWwge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMzYwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDA7XG59XG5uYXYubWVudSA+IHVsID4gbGkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nOiAwIDE1cHg7XG59XG4vKiBjb3VsZXVyIGR1IFwiJlwiIGRhbnMgbGUgbWVudSAqL1xubmF2Lm1lbnUgc3BhbiB7IGNvbG9yOiB2YXIoLS1tZW51U3ltYkNvbG9yKTsgfVxuXG4vKiBDb21wb3J0ZW1lbnQgZXQgYW5pbWF0aW9ucyBkdSBtZW51ICovXG5uYXYubWVudSB1bCBsaSBhLnBhZ2VfYWN0dWVsbGUgeyBjb2xvcjogdmFyKC0tbWVudUhvdmVyQ29sb3IpOyB9XG5uYXYubWVudSA+IHVsID4gbGk6YmVmb3JlLFxubmF2Lm1lbnUgPiB1bCA+IGxpOmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDJweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gY2VudGVyO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjM1cyBlYXNlLW91dDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZ0NvbG9yKTtcbiAgICBjb250ZW50OiBcIlwiO1xufVxuICAgIG5hdi5tZW51ID4gdWwgPiBsaTpob3ZlcjphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gY2VudGVyO1xuICAgICAgICBjb2xvcjogdmFyKC0tbWVudUhvdmVyQ29sb3IpO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zNXMgZWFzZS1vdXQ7XG4gICAgfVxubmF2Lm1lbnUgPiB1bCA+IGxpIGEgeyBcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6IHZhcigtLXRleHRDb2xvcik7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4zNXMgZWFzZS1vdXQ7XG59XG4gICAgbmF2Lm1lbnUgPiB1bCA+IGxpOmhvdmVyIGEge1xuICAgICAgICBjb2xvcjogdmFyKC0tbWVudUhvdmVyQ29sb3IpO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjM1cyBlYXNlLW91dDtcbiAgICB9XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qKiBNQUlOXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbmRpdiNtYWluX3BvcnRmb2xpbyB7XG4gICAgbWFyZ2luOiA2MHB4IGF1dG8gMCBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IGNhbGMoMTAwJSAtIDE3MHB4KTtcbiAgICB3aWR0aDogOTcwcHg7XG4gICAgLyogYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzOCwgMCwgMTI4LCAwLjIpOyAqL1xufVxuXG5oMSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS10aXRyZUZvbnQpO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cblxuLmZpcnN0X2xldHRlciB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1yaWdodDogNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiA4MCU7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLXRleHRGb250KTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXNpemUgOiA1MnB4O1xufVxuXG5wIHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tdGV4dEZvbnQpO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qIExpZW5zICovXG4jbWFpbl9wb3J0Zm9saW8gYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiB2YXIoLS10ZXh0Q29sb3IpO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG59XG4gICAgI21haW5fcG9ydGZvbGlvIGE6aG92ZXIgeyBjb2xvcjogdmFyKC0tbWVudUhvdmVyQ29sb3IpOyB9XG4gICAgI21haW5fcG9ydGZvbGlvIHAgYSB7IGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qKiBGb290ZXIgZml4ZSBlbiBiYXMgZGUgcGFnZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5mb290ZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDIwcHggMDtcbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oMTAwJSAxMDAlLCAwIDEwMCUsIDAgMCwgY2FsYyg1MCUgLSA3NXB4KSAwLCA1MCUgNDJweCwgY2FsYyg1MCUgKyA3NXB4KSAwLCAxMDAlIDAsIDEwMCUgMTAwJSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmdNZW51Q29sb3IpO1xufVxuXG5mb290ZXIgLmNvbnRlbnVfZm9vdGVyIHtcbiAgICBoZWlnaHQ6IDEzMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgICBwYWRkaW5nOiAwIGNhbGMoY2FsYygxMDAlIC0gMTAxMHB4KSAvIDIpO1xufVxuXG4vKiBTdHlsZXMgZ8OpbsOpcmlxdWVzIGR1IGZvb3RlciAqL1xuZm9vdGVyIGgyIHtcbiAgICBtYXJnaW46IDAgMCAxMHB4IDA7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLW1lbnVGb250KTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuZm9vdGVyIGRpdjpob3ZlciA+IGgyIHsgIFxuICAgIGNvbG9yOiB2YXIoLS1tZW51SG92ZXJDb2xvcik7XG59XG5mb290ZXIgYSB7XG4gICAgY29sb3I6IHZhcigtLW1haW5Db2xvcik7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuICAgIGZvb3RlciBhOmhvdmVyIHsgY29sb3I6IHZhcigtLW1lbnVIb3ZlckNvbG9yKTsgfVxuXG4vKiBCbG9jcyBwcmluY2lwYXV4IGR1IGZvb3RlciA6IGdhdWNoZS9jZW50cmUvZHJvaXRlICovXG5mb290ZXIgLmNvbnRlbnVfZm9vdGVyID4gZGl2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAzMyU7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAvKiBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMCwgMCwgMC4zNDkpOyAqL1xufVxuICAgIC8qIEJsb2NzIExlZ2FsIG5vdGljZXMgJiBjb3B5cmlnaHQgKi9cbiAgICBmb290ZXIgZGl2LmxlZ2FsX25vdGljZXMsXG4gICAgZm9vdGVyIGRpdi5jb3B5cmlnaHQge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBtYXgtd2lkdGg6IDI1MHB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICAgIC8qIEJsb2MgY2VudHJhbCBjb250ZW5hbnQgbGVzIGljb25lcyAqL1xuICAgIGZvb3RlciBkaXYubGllbnNfd2ViIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgfVxuXG5mb290ZXIgLmxpZW5zX3dlYiBhIHtcbiAgICBoZWlnaHQ6IDU2cHg7XG4gICAgd2lkdGg6IDQ4cHg7XG4gICAgbWFyZ2luOiAwIC05cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmdDb2xvcik7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDUwJSAwLCAxMDAlIDI1JSwgMTAwJSA3NSUsIDUwJSAxMDAlLCAwIDc1JSwgMCAyNSUpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xufVxuICAgIC8qIERldXhpw6htZSBsaWduZSBkw6ljYWzDqWUgKi9cbiAgICBmb290ZXIgLmxpZW5zX3dlYiBhOm50aC1jaGlsZCgybisyKSB7IFxuICAgICAgICBtYXJnaW4tdG9wOiA1MnB4OyBcbiAgICB9XG4gICAgLmxpZW5zX3dlYiBhOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW5mb0NvbG9yKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgICB9XG5cbi5saWVuc193ZWIgYSBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qKiBBYm91dFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4uYWJvdXQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwIDIwcHg7XG59XG4uYWJvdXQgaDEge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tdG9wOiA2MHB4O1xufVxuLmFib3V0IGltZyB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwcHggMHB4IDNweCByZ2JhKDU5LCA0MSwgMTEsIDAuNykpO1xufVxuLmFib3V0IC50ZXh0IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBtYXJnaW4tbGVmdDogLTQwcHg7XG4gICAgbWF4LXdpZHRoOiA1ODBweDtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbioqIENvbnRhY3RcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogcGFnZSBjb250YWN0ICovXG4uY29udGFjdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW46IDAgMjBweDtcbn1cbi5jb250YWN0IC50ZXh0IHtcbiAgICBtYXgtd2lkdGg6IDQ3MHB4O1xuICAgIG1hcmdpbjogNjBweCAxMHB4IDAgMDtcbn1cbi5jb250YWN0IC50ZXh0IHVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgbWFyZ2luOi0xMHB4IDAgLTIwcHggMDtcbn1cbi5jb250YWN0IC50ZXh0IHVsIGxpe1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS10ZXh0Rm9udCk7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbn1cbi5mb3JtX2NvbnRhY3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgd2lkdGg6IDQwMHB4O1xuICAgIG1hcmdpbjogMjBweCAwIDMwcHggMTBweDtcbn1cbi5mb3JtX2NvbnRhY3QgaW1nIHtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggM3B4IHJnYmEoNTksIDQxLCAxMSwgMC43KSk7XG4gICAgd2lkdGg6IDIzOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4uZm9ybV9jb250YWN0IGZvcm0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5mb3JtX2NvbnRhY3QgbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDhweCAwIDJweCAwO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbn1cbi5mb3JtX2NvbnRhY3QgaW5wdXQsIHRleHRhcmVhIHtcbiAgICBib3JkZXIgIDogbm9uZTtcbiAgICB3aWR0aDogOTklO1xuICAgIGhlaWdodDogMzBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1lbEZvcm1Db2xvcik7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzO1xufVxuLmZvcm1fY29udGFjdCB0ZXh0YXJlYSB7XG4gICAgaGVpZ2h0OiAyMDBweDtcbiAgICBtYXgtd2lkdGg6IDU1MHB4O1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS10aXRyZUZvbnQpO1xufVxuLmZvcm1fY29udGFjdCBpbnB1dDpob3ZlciwgdGV4dGFyZWE6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1lbnVTeW1iQ29sb3IpO1xufVxuLmZvcm1fY29udGFjdCBpbnB1dDpmb2N1cywgdGV4dGFyZWE6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWVudVN5bWJDb2xvcik7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwcHggMHB4IDNweCByZ2JhKDU5LCA0MSwgMTEsIDAuNykpO1xufVxuLypwb3VyIGxlIGJvdXRvbiBkZSBsJ3VwbG9hZCovXG4uZm9ybV9jb250YWN0IGlucHV0W3R5cGU9XCJmaWxlXCIgaV0ge1xuICAgIHBhZGRpbmc6IDVweCAwIDAgNXB4O1xuICAgIGhlaWdodDogMjVweDtcbn1cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4uZm9ybV9jb250YWN0IGg1IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZy10b3A6IDJweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuLmZvcm1fY29udGFjdCBidXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnTWVudUNvbG9yKTtcbiAgICB3aWR0aDogMTAwcHg7XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHBhZGRpbmc6IDVweCAwIDVweCAwO1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLXRpdHJlRm9udCk7XG4gICAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBjb2xvcjogdmFyKC0tdGV4dENvbG9yKTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMsIHRyYW5zZm9ybSAwLjJzO1xufVxuLmZvcm1fY29udGFjdCBidXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1lbnVTeW1iQ29sb3IpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG59XG4uYWxlcnQtc3VjY2VzcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIG1hcmdpbjogMXJlbSBhdXRvO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBjb2xvcjogdmFyKC0tdGV4dENvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZ01lbnVDb2xvcik7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiogU2hvcCAmIHN1cHBvcnQgbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnNob3Age1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwIDIwcHg7XG59XG4uc2hvcCAudGV4dCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBtYXJnaW4tdG9wOiA2MHB4O1xuICAgIG1heC13aWR0aDogNDUwcHg7XG59XG4uc2hvcCBoMSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgICBmb250LXNpemU6IDJlbTtcbn1cbi5zaG9wIC50ZXh0IHAge1xuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xufVxuLyogYWx2ZW9sZXMgZHUgc2hvcCAqL1xuLmFsdmVvbGVzX3Nob3Age1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMHB4IDBweCAzcHggcmdiYSg1OSwgNDEsIDExLCAwLjcpKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbjogMjBweCAwIDAgMjBweDtcbn1cbi5hbHZlb2xlc19zaG9wIGltZyB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBoZWlnaHQ6IDY3OHB4O1xufVxuLnJ1Y2hlX3Nob3Age1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBtYXJnaW46IDQ1cHggMCAwIDU1cHg7XG59XG4uYWx2ZW9sZV9zaG9wIHtcbiAgICBoZWlnaHQ6IDIzMHB4O1xuICAgIHdpZHRoOiAyMDhweDtcbiAgICBtYXJnaW4tdG9wOiAtNDJweDtcbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oNTAlIDAsIDEwMCUgMjUlLCAxMDAlIDc1JSwgNTAlIDEwMCUsIDAgNzUlLCAwIDI1JSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmdNZW51Q29sb3IpO1xufVxuLyogVG91dGVzIGxlcyAyIGFsdsOpb2xlcyAqL1xuLmFsdmVvbGVfc2hvcDpudGgtY2hpbGQoMikgeyBtYXJnaW4tbGVmdDogMTIwcHg7IH1cbi5hbHZlb2xlX3Nob3A6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnM7XG59XG4uYWx2ZW9sZV9zaG9wIGEgaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDc1JTtcbiAgICBvYmplY3QtZml0OiBub25lO1xufVxuLyogdGV4dGUgZGFucyBsZXMgYWx2ZW9sZXMgZHUgc2hvcCAqL1xuLmFsdmVvbGVfc2hvcCBwIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogLTMwJTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzAlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbioqIFBvcnRmb2xpb1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBmaWx0cmVzICovXG4uZmlsdGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4O1xufVxuXG4vKiBEaWZmw6lyZW5jacOpcyBlbiBkZXV4IHpvbmVzIDogw6AgZ2F1Y2hlIGV0IMOgIGRyb2l0ZSBkdSBsb2dvICovXG4uZmlsdGVyX2xlZnQsXG4uZmlsdGVyX3JpZ2h0IHsgXG4gICAgZGlzcGxheTogZmxleDsgXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbi5maWx0ZXJfbGVmdCB7IFxuICAgIHdpZHRoOiA1MCU7XG4gICAgbWFyZ2luLXJpZ2h0OiA2MHB4OyBcbn1cbi5maWx0ZXJfcmlnaHQgeyBcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAzMHB4KTtcbiAgICBtYXJnaW4tbGVmdDogNjBweDsgXG59XG5cbi8qIFVuZSBib8OudGUgZGUgZmlsdHJlcyA6IFBlcnNvbmFsIHdvcmssIENvbW1pc3Npb25zLCBmdWxsIGNvbG9yLi4uICovXG4uZmlsdGVyIGEuZmlsdGVyX2Nob2ljZSB7IFxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgcGFkZGluZzogMCA5cHg7XG4gICAgbWFyZ2luOiAwIDVweDtcbiAgICBmb250LWZhbWlseTogdmFyKC0tbWVudUZvbnQpO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS10ZXh0U2VjQ29sb3IpICFpbXBvcnRhbnQ7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDglIDAsIDkyJSAwLCAxMDAlIDUwJSwgOTIlIDEwMCUsIDglIDEwMCUsIDAlIDUwJSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmdNZW51Q29sb3IpO1xuICAgIG9wYWNpdHk6IDAuNztcbiAgICB3aWxsLWNoYW5nZTogYmFja2dyb3VuZC1jb2xvcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMzVzO1xufVxuICAgIC5maWx0ZXIgYS5maWx0ZXJfY2hvaWNlOmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZWxGb3JtQ29sb3IpOyB9XG5cbi8qIEZpbHRyZSBzw6lsZWN0aW9ubsOpICovXG4uZmlsdGVyIGEuZmlsdGVyX2Nob2ljZS5hY3RpdmUgeyBvcGFjaXR5OiAxOyB9XG5cbi8qIEljb25lIGQnYWZmaWNoYWdlIGRlcyBmaWx0cmVzICovXG4uZmlsdGVyX2ljb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIHdpZHRoOiAzNXB4O1xuICAgIG1heC13aWR0aDogMzVweDtcbiAgICBtaW4td2lkdGg6IDM1cHg7XG59XG4gICAgLyogQWpvdXQgZGVzIGljb25lcyAqL1xuICAgIC5maWx0ZXJfaWNvbjo6YmVmb3JlLFxuICAgIC5maWx0ZXJfaWNvbjo6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1Gb250QXdlc29tZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgfVxuICAgIC5maWx0ZXJfaWNvbjo6YmVmb3JlIHtcbiAgICAgICAgZm9udC1zaXplOiAzMHB4O1xuICAgICAgICBjb250ZW50OiBcIlxcZjMxMlwiO1xuICAgICAgICBjb2xvcjogdmFyKC0tYmdNZW51Q29sb3IpO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zNXM7XG4gICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gICAgfVxuICAgIC5maWx0ZXJfaWNvbjo6YWZ0ZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgY29udGVudDogXCJcXGYwYjBcIjtcbiAgICAgICAgY29sb3I6IHZhcigtLWJnQ29sb3IpO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjM1cztcbiAgICB9XG4gICAgLyogQW5pbWF0aW9ucyBzdXIgbGVzIGljb25lcyAqL1xuICAgIC5maWx0ZXJfaWNvbjpob3Zlcjo6YWZ0ZXIgeyBcbiAgICAgICAgY29sb3I6IHZhcigtLW1lbnVIb3ZlckNvbG9yKTtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4zNXM7XG4gICAgfVxuICAgIC5maWx0ZXJfaWNvbjpob3Zlcjo6YmVmb3JlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zNXM7XG4gICAgfVxuXG5cbi8qIENvbnRlbmV1ciBnw6luw6lyYWwgZGVzIGFsdsOpb2xlcyBkdSBwb3J0Zm9saW8gKi9cbi5ydWNoZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgbWF4LXdpZHRoOiA5MjBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggM3B4IHJnYmEoNTksIDQxLCAxMSwgMC44KSk7XG59XG4vKiBVbmUgYWx2w6lvbGUgcGFyIGNhcnRlICovXG4uYWx2ZW9sZSB7XG4gICAgaGVpZ2h0OiAyMzBweDtcbiAgICB3aWR0aDogMjA4cHg7XG4gICAgbWFyZ2luOiAxMHB4O1xuICAgIGNsaXAtcGF0aDogcG9seWdvbig1MCUgMCwgMTAwJSAyNSUsIDEwMCUgNzUlLCA1MCUgMTAwJSwgMCA3NSUsIDAgMjUlKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycztcbiAgICB6LWluZGV4OiAwO1xufVxuLmlsbHVzdHJhdGlvbi1wcmV2aWV3IHtcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzO1xufVxuICAgIC8qIEFuaW1hdGlvbiB6b29tIGF1IGhvdmVyICovXG4gICAgLmlsbHVzdHJhdGlvbi1wcmV2aWV3OmhvdmVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnM7XG4gICAgfVxuLyogVG91dGVzIGxlcyA3IGFsdsOpb2xlcyDDoCBwYXJ0aXIgZGUgbGEgNcOobWUgKi9cbmRpdi5pbGx1c3RyYXRpb24tcHJldmlldzpudGgtb2YtdHlwZSg3bis1KSB7IG1hcmdpbi1sZWZ0OiAxMTZweDsgfVxuLyogVG91dGVzIGxlcyBhbHbDqW9sZXMgw6AgcGFydGlyIGRlIGxhIDXDqG1lICovXG5kaXYuaWxsdXN0cmF0aW9uLXByZXZpZXc6bnRoLW9mLXR5cGUobis1KSB7IG1hcmdpbi10b3A6IC02MHB4OyB9XG5cbi8qIEltYWdlIGNvbnRlbnVlIHBhciBsJ2FsdsOpb2xlICovXG4uYWx2ZW9sZSBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cbi8qIG9tYnJlICovXG4uaWxsdXN0cmF0aW9uLXByZXZpZXcgLm9tYnJlX2FsdmVvbGVzIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgei1pbmRleDogMTtcbn1cbi8qIGFsdmVvbGUgdGV4dGUgKi9cbi50ZXh0X2F1cmVvbGUge1xuICAgIGhlaWdodDogMTcwcHg7XG4gICAgd2lkdGg6IDE1OHB4O1xuICAgIG1hcmdpbjogNDBweCAzNXB4IDM1cHggMzVweDtcbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oNTAlIDAsIDEwMCUgMjUlLCAxMDAlIDc1JSwgNTAlIDEwMCUsIDAgNzUlLCAwIDI1JSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMzAsIDIyNCwgMjE3LCAwLjc1KTtcbn1cbi50ZXh0X2F1cmVvbGUgcCB7XG4gICAgZm9udC1mYW1pbHk6IG5ldy1zcGlyaXQsIFNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cbi50ZXh0X2F1cmVvbGUgLmNvbnRhaW5lcl9wcmV2aWV3IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi50ZXh0X2F1cmVvbGUgLmNvbnRhaW5lcl9wcmV2aWV3IHAge1xuICAgIGNvbG9yOiB2YXIoLS1wcmV2aWV3Q29sb3IpO1xuICAgIGZvbnQtZmFtaWx5OiBcIklNIEZlbGwgRG91YmxlIFBpY2EgcmVndWxhclwiLCBzZXJpZjtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udGV4dF9hdXJlb2xlIC5jb250YWluZXJfcHJldmlldyBwI3RpdHJlX3ByZXZpZXcge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbWFyZ2luOiA0MHB4IDAgMTBweCAwO1xufVxuLyogbG91cGUgZGFucyBsZSBwcmV2aWV3ICovXG4udGV4dF9hdXJlb2xlIC5jb250YWluZXJfcHJldmlldyBwW2NsYXNzKj1mYS1dOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICBmb250LWZhbWlseTogdmFyKC0tRm9udEF3ZXNvbWUpO1xuICAgIGZvbnQtc2l6ZTogMzVweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGNvbG9yOiB2YXIoLS1wcmV2aWV3Q29sb3IpO1xufVxuXG4vKiBpbWFnZSBhZ3JhbmRpZSAqL1xuLmlsbHVzdHJhdGlvbiB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbi5mdWxsX2ltYWdlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMTBweCk7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5pbGx1c3RyYXRpb24tdmlldyB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbi5mdWxsX3ZpZXcge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogMTBweCAwIDIwcHggMDtcbn1cbi5mdWxsX3ZpZXcgLmltYWdlX3ZpZXcgLmltYWdlX2luZm8ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4uaW1hZ2VfdmlldyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgd2lkdGg6IDgwJTtcbn1cbi5pbWFnZV92aWV3IHAge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS10aXRyZUZvbnQpO1xuICAgIGZvbnQtc2l6ZTogNTBweDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgbWFyZ2luOiAwO1xufVxuLmltYWdlX3ZpZXcgYSB7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIG1hcmdpbi10b3A6IDMwMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG4uaW1hZ2VfdmlldyBpIHsgXG4gICAgZm9udC1zaXplOiA1MHB4O1xufVxuLmltYWdlX3ZpZXcgcC50aXRyZV9sb25nIHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbn1cbi5pbWFnZV92aWV3IHAuYW5uZWUge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuLmlsbHVzdHJhdGlvbi12aWV3IHAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5kaXYucGZfcHJpbnRzX2xpbmtfYm94IGRpdi5wZl9wcmludHNfbGluayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbmRpdi5wZl9wcmludHNfbGlua19ib3ggcCB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWNhcFRleHRGb250KTtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuZGl2LnBmX3ByaW50c19saW5rX2JveCBkaXYucGZfcHJpbnRzX2xpbmsgYSB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLXRpdHJlRm9udCk7XG4gICAgbWFyZ2luOiAwIDVweDtcbn1cbmRpdi5wZl9wcmludHNfbGlua19ib3ggZGl2LnBmX3ByaW50c19saW5rIGE6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDhlXCI7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLUZvbnRBd2Vzb21lKTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbWFyZ2luOiAwIDRweDtcbn1cbi8qIHBvdXIgZmVybWVyIGwnaW1hZ2UgYWdyYW5kaWUgKi9cbi5jbG9zZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGVuZDtcbiAgICBtYXJnaW46IC0zMHB4IDEwcHggMjBweCAxMHB4O1xuICAgIHotaW5kZXg6IDE7XG59XG4uY2xvc2UgaS5mYXMge1xuICAgIGZvbnQtc2l6ZTogMmVtO1xufVxuLmNsb3NlIGE6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnM7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qKiBSw6lmw6lyZW5jZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKiBHw6luw6lyYWwgKi9cbiNjb250YWluZXJfcmVmZXJlbmNlcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLyogQXdhcmRzICovXG4uYXdhcmRzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICB3aWR0aDogOTIwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwcHggMHB4IDNweCByZ2JhKDU5LCA0MSwgMTEsIDAuNykpO1xufVxuZGl2LmF3YXJkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDIzMHB4O1xuICAgIHdpZHRoOiAyMDhweDtcbiAgICBtYXJnaW46IDEwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmdNZW51Q29sb3IpO1xuICAgIGNsaXAtcGF0aDogcG9seWdvbig1MCUgMCwgMTAwJSAyNSUsIDEwMCUgNzUlLCA1MCUgMTAwJSwgMCA3NSUsIDAgMjUlKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycztcbn1cbmRpdi5hd2FyZCBpbWcge1xuICAgIGhlaWdodDogMzFweDtcbiAgICBtYXJnaW4tdG9wOiAyNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5kaXYuYXdhcmQgcCB7XG4gICAgbWFyZ2luOiAwIDVweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5kaXYuYXdhcmQgcC5wX2F3YXJkX3llYXIsXG5kaXYuYXdhcmQgcC5wX2F3YXJkX2NvbXBldGl0aW9uIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tdGl0cmVGb250KTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgaGVpZ2h0OiAyMXB4O1xuICAgIG1hcmdpbi10b3A6IDVweDtcbn1cbmRpdi5hd2FyZCBwLnBfYXdhcmRfY29tcGV0aXRpb24ge1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICBtYXJnaW4tdG9wOiAwO1xufVxuZGl2LmF3YXJkIHAucF9hd2FyZF9jYXRlZ29yeSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cbi8qIFRvdXRlcyBsZXMgNyBhbHbDqW9sZXMgw6AgcGFydGlyIGRlIGxhIDXDqG1lICovXG5kaXYuYXdhcmQ6bnRoLWNoaWxkKDduKzUpIHsgbWFyZ2luLWxlZnQ6IDEyM3B4OyB9XG4vKiBUb3V0ZXMgbGVzIGFsdsOpb2xlcyDDoCBwYXJ0aXIgZGUgbGEgNcOobWUgKi9cbmRpdi5hd2FyZDpudGgtY2hpbGQobis1KSB7IG1hcmdpbi10b3A6IC01MHB4OyB9XG4vKiBSw6lmw6lyZW5jZXMgKi9cbnNlY3Rpb24ucmVmZXJlbmNlcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgd2lkdGg6IDkyMHB4O1xuICAgIG1hcmdpbjogMTBweCBhdXRvO1xufVxuc2VjdGlvbi5yZWZlcmVuY2VzIGRpdi5yZWZlcmVuY2VfY29sb25uZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuYXJ0aWNsZS5yZWZlcmVuY2Uge1xuICAgIHdpZHRoOiAyNzBweDtcbiAgICBtYXJnaW46IDE4cHg7XG59XG4vKiBwYXJhZ3JhcGhlcyAqL1xuYXJ0aWNsZS5yZWZlcmVuY2UgcCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbmFydGljbGUucmVmZXJlbmNlIHAucmVmZXJlbmNlX3F1b3RlIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tdGl0cmVGb250KTtcbiAgICBjb2xvcjogdmFyKC0tYmdNZW51Q29sb3IpO1xuICAgIGZvbnQtc2l6ZTogOTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAtNjBweDtcbn1cbmFydGljbGUucmVmZXJlbmNlIHAucmVmZXJlbmNlX2NsaWVudCB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWNhcFRleHRGb250KTtcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuYXJ0aWNsZS5yZWZlcmVuY2UgcC5yZWZlcmVuY2VfY2xpZW50IGJyIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuYXJ0aWNsZS5yZWZlcmVuY2UgcC5yZWZlcmVuY2VfZGV0YWlsX2NsaWVudCB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLXRpdHJlRm9udCk7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbn1cbmFydGljbGUucmVmZXJlbmNlIHAucmVmZXJlbmNlX2NvbW1lbnRhcnkge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgIHBhZGRpbmc6IDNweDtcbiAgICBtYXJnaW4tdG9wOiAtMjBweDtcbn1cbi8qIGltYWdlICovXG5hcnRpY2xlLnJlZmVyZW5jZSBpbWcucmVmZXJlbmNlX2ltZyB7XG4gICAgd2lkdGg6IDI3MHB4O1xuICAgIGhlaWdodDogNDVweDtcbiAgICBwYWRkaW5nLXRvcDogNXB4O1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMHB4IDBweCAzcHggcmdiYSg1OSwgNDEsIDExLCAwLjcpKTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgb2JqZWN0LWZpdDogbm9uZTtcbn1cbmFydGljbGUucmVmZXJlbmNlIGltZy5yZWZlcmVuY2VfaW1nLnJlZmVyZW5jZV9zaWRlXzEge1xuICAgIG9iamVjdC1wb3NpdGlvbjogbGVmdDtcbn1cbmFydGljbGUucmVmZXJlbmNlIGltZy5yZWZlcmVuY2VfaW1nLnJlZmVyZW5jZV9zaWRlXzIge1xuICAgIG9iamVjdC1wb3NpdGlvbjogY2VudGVyO1xufVxuYXJ0aWNsZS5yZWZlcmVuY2UgaW1nLnJlZmVyZW5jZV9pbWcucmVmZXJlbmNlX3NpZGVfMyB7XG4gICAgb2JqZWN0LXBvc2l0aW9uOiByaWdodDtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbioqIFBhZ2UgTGlua1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4ubGluayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4ubGluayAuYWx2ZW9sZSB7XG4gICAgaGVpZ2h0OiAxODBweDtcbiAgICB3aWR0aDogMTU4cHg7XG4gICAgbWFyZ2luOiAyMHB4O1xuICAgIGNsaXAtcGF0aDogcG9seWdvbig1MCUgMCwgMTAwJSAyNSUsIDEwMCUgNzUlLCA1MCUgMTAwJSwgMCA3NSUsIDAgMjUlKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZ01lbnVDb2xvcik7XG59XG4ubGluayAuYWx2ZW9sZSBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBub25lO1xufVxuLmxpbmsgLm1lbnUge1xuICAgIG1hcmdpbjogMCAwIDIwcHggMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6bm9uZTtcblxufVxuLmxpbmsgLm1lbnUgbGkgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmdNZW51Q29sb3IpO1xuICAgIGNvbG9yOiB2YXIoLS10ZXh0Q29sb3IpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgIHBhZGRpbmc6IDE1cHggMjBweCAxNXB4IDIwcHg7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnM7XG59XG4ubGluayAubWVudSBsaSBhOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzO1xuICAgIGNvbG9yOiB2YXIoLS1tZW51SG92ZXJDb2xvcik7XG59XG5cbi8qLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyovXG5AbWVkaWEgKG1heC13aWR0aDogOTI5cHgpIGFuZCAobWluLXdpZHRoOiA0ODBweCkge1xuLyogVE9ETyB0YWlsbGVzIGludGVybcOpZGlhaXJlcyAtPiDDoCBwYXJ0aXIgZCdlbnZpcm9uIDQ4MHB4ID8gZXQgdW5lIGF1dHJlICovXG4vKiBBZmZpY2hhZ2UgT0sgPiA5MjlweDsgT0sgZGUgMzYwcHggw6AgNjY4cHggKi9cbi8qIMOgIHZvaXIgc3VydG91dCBlbiBmb25jdGlvbiBkZXMgYWx2w6lvbGVzIGplIHBlbnNlLCBwYWdlIHBvcnRmb2xpbyArKyAqL1xufVxuXG4vKi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8qL1xuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogOTI5cHgpIHtcbiAgICBkaXYjbWFpbl9wb3J0Zm9saW8ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMzYwcHg7XG4gICAgfVxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgKiogSGVhZGVyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gICAgaGVhZGVyIHtcbiAgICAgICAgaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgICAgICAgY2xpcC1wYXRoOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgIH1cbiAgICBwLm1lbnUge1xuICAgICAgICBkaXNwbGF5OiB1bnNldDtcbiAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWNhcFRleHRGb250KTtcbiAgICAgICAgZm9udC1zdHlsZTogaW5oZXJpdDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIH1cbiAgICAubG9nbyB7XG4gICAgICAgIGdyaWQtYXJlYTogMSAvIDIgLyAyIC8gMztcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL0Zyb250L2xvZ29fY291bGV1ci5wbmcpO1xuICAgIH1cbiAgICAubG9nbzpob3ZlciB7XG4gICAgICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICB9XG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAqKiBNZW51XG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gICAgbmF2Lm1lbnUge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlOiAxMDJweCBhdXRvIGF1dG8gLyBjYWxjKDUwJSAtIDc1cHgpIDE1MHB4IGNhbGMoNTAlIC0gNzVweCk7XG4gICAgICAgIGhlaWdodDogZml0LWNvbnRlbnQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWVsRm9ybUNvbG9yKTtcbiAgICB9XG4gICAgZGl2Lm1lbnVfYmFja2dyb3VuZCB7XG4gICAgICAgIGdyaWQtYXJlYTogMSAvIDEgLyAyIC8gNDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWluLWhlaWdodDogMTAycHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBjbGlwLXBhdGg6IHBvbHlnb24oMTAwJSA2MHB4LCBjYWxjKDUwJSAtIDc1cHgpIDYwcHgsIDUwJSAxMDJweCwgY2FsYyg1MCUgKyA3NXB4KSA2MHB4LCAwIDYwcHgsIDAgMCwgMTAwJSAwKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmdNZW51Q29sb3IpO1xuICAgIH1cbiAgICBuYXYubWVudSA+IHVsLm1lbnVfZ2F1Y2hlIHtcbiAgICAgICAgZ3JpZC1hcmVhOiAyIC8gMSAvIDMgLyBzcGFuIDM7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgfVxuICAgIG5hdi5tZW51ID4gdWwubWVudV9kcm9pdGUge1xuICAgICAgICBncmlkLWFyZWE6IDMgLyAxIC8gNCAvIHNwYW4gMztcbiAgICAgICAgei1pbmRleDogMjtcbiAgICB9XG4gICAgLyogRWzDqW1lbnRzIHByaW5jaXBhdXggZHUgbWVudSAqL1xuICAgIG5hdi5tZW51ID4gdWwge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWFyZ2luOiAyMHB4IGF1dG87XG4gICAgfVxuICAgIG5hdi5tZW51ID4gdWwgPiBsaSB7XG4gICAgICAgIG1hcmdpbjogN3B4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgICBuYXYubWVudSA+IHVsID4gbGkgYSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1jYXBUZXh0Rm9udCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICB9XG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAqKiBGb290ZXJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgICBmb290ZXIge1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgICAgIGNsaXAtcGF0aDogbm9uZTtcbiAgICB9XG4gICAgZm9vdGVyIC5jb250ZW51X2Zvb3RlciB7XG4gICAgICAgIC8qZGlzcGxheTogbm9uZTsqL1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDYwJSA0MCU7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogNTAlIDUwJTtcbiAgICAgICAgaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgICB9XG4gICAgZm9vdGVyIC5jb250ZW51X2Zvb3RlciBwLmxlZ2FsX25vdGljZXMge1xuICAgICAgICBncmlkLWFyZWE6IDEgLyAxIC8gMiAvIDI7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICAgIGZvb3RlciAuY29udGVudV9mb290ZXIgcC5jb3B5cmlnaHQge1xuICAgICAgICBncmlkLWFyZWE6IDIgLyAxIC8gMiAvIDI7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gICAgLyogYWx2w6lvbGVzIGxpZW5zKi9cbiAgICBmb290ZXIgLmNvbnRlbnVfZm9vdGVyIC5saWVuc193ZWIge1xuICAgICAgICBncmlkLWFyZWE6IDEgLyAyIC8gMyAvIDM7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gICAgZm9vdGVyIC5jb250ZW51X2Zvb3RlciAubGllbnNfd2ViIC5tZW51IHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBoZWlnaHQ6IDMwMHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMjVweDtcbiAgICB9XG4gICAgZm9vdGVyIC5jb250ZW51X2Zvb3RlciAubGllbnNfd2ViIC5hbHZlb2xlX2Zvb3RlciB7XG4gICAgICAgIG1hcmdpbjogMCAtOHB4IDAgLThweDtcbiAgICB9XG4gICAgZm9vdGVyIC5jb250ZW51X2Zvb3RlciAubGllbnNfd2ViIGEge1xuICAgICAgICBtYXJnaW46IDIwcHggMTBweDtcbiAgICB9XG4gICAgZm9vdGVyIC5jb250ZW51X2Zvb3RlciAubGllbnNfd2ViIGE6bnRoLWNoaWxkKDJuKzIpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogaW5oZXJpdDtcbiAgICB9XG4gICAgZm9vdGVyIC5jb250ZW51X2Zvb3RlciAubGllbnNfd2ViIGE6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24tc2VsZjogZW5kO1xuICAgICAgICBtYXJnaW4tdG9wOiA2OHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xuICAgIH1cbiAgICBmb290ZXIgLmNvbnRlbnVfZm9vdGVyIC5saWVuc193ZWIgYTpudGgtY2hpbGQoMikge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xuICAgIH1cbiAgICBmb290ZXIgLmNvbnRlbnVfZm9vdGVyIC5saWVuc193ZWIgYTpudGgtY2hpbGQoNikge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1zZWxmOiBlbmQ7XG4gICAgICAgIG1hcmdpbi10b3A6IDY4cHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgICB9XG4gICAgZm9vdGVyIC5jb250ZW51X2Zvb3RlciAubGllbnNfd2ViIGE6bnRoLWNoaWxkKDcpIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICAgIH1cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICoqIEFib3V0XG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gICAgLmFib3V0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gICAgLmFib3V0IGltZyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC5hYm91dCAudGV4dCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgICAuYWJvdXQgaDEge1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIH1cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICoqIENvbnRhY3RcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgICAvKiBUZXh0ZSAqL1xuICAgIC5jb250YWN0IHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gICAgLmNvbnRhY3QgLnRleHQge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICB9XG4gICAgLyogRm9ybXVsYWlyZSAqL1xuICAgIC5mb3JtX2NvbnRhY3Qge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICB9XG4gICAgLmZvcm1fY29udGFjdCBpbWcge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICoqIFNob3AgJiBzdXBwb3J0IG1lXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gICAgLnNob3Age1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICAgIC5zaG9wIC50ZXh0IHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cbiAgICAvKiBhbHZlb2xlcyBkdSBzaG9wICovXG4gICAgLmFsdmVvbGVzX3Nob3Age1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgaGVpZ2h0OiAyODBweDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46IDEwcHggMCAwIDA7XG4gICAgfVxuICAgIC5hbHZlb2xlc19zaG9wIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC5ydWNoZV9zaG9wIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgICAgICAgd2lkdGg6IDM0MHB4O1xuICAgICAgICBtYXJnaW46IDM1cHggMCAwIDA7XG4gICAgfVxuICAgIC5hbHZlb2xlX3Nob3Age1xuICAgICAgICBoZWlnaHQ6IDE3MnB4O1xuICAgICAgICB3aWR0aDogMTU2cHg7XG4gICAgfVxuICAgIC5hbHZlb2xlX3Nob3AgYSBpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB9XG4gICAgLyogdGV4dGUgZGFucyBsZXMgYWx2ZW9sZXMgZHUgc2hvcCAqL1xuICAgIC5hbHZlb2xlX3Nob3AgcCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLXRvcDogLTMwJTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDMwJTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuICAgIC8qIFBsYWNlbWVudCBkZXMgYWx2w6lvbGVzICovXG4gICAgLmFsdmVvbGVfc2hvcDpudGgtY2hpbGQoMikgeyBtYXJnaW4tbGVmdDogMDsgfVxuICAgIC5hbHZlb2xlX3Nob3A6bnRoLWNoaWxkKDMpIHsgbWFyZ2luLXRvcDogLTI1cHg7IH1cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICoqIFLDqWbDqXJlbmNlc1xuICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuICAgIC8qIEF3YXJkcyAqL1xuICAgIC5hd2FyZHMge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMjBweCk7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgIGZpbHRlcjogbm9uZTtcbiAgICB9XG4gICAgZGl2LmF3YXJkIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZTogYXV0byBhdXRvIC8gMTAwcHggYXV0byBhdXRvO1xuICAgICAgICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiA0MjVweDtcbiAgICAgICAgbWFyZ2luOiA1cHggYXV0bztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gICAgICAgIGNsaXAtcGF0aDogbm9uZTtcbiAgICB9XG4gICAgZGl2LmF3YXJkX3NwIHtcbiAgICAgICAgZ3JpZC1hcmVhOiAxIC8gMSAvIDMgLyAyO1xuICAgICAgICBoZWlnaHQ6IDkycHg7XG4gICAgICAgIHdpZHRoOiA4M3B4O1xuICAgICAgICBtYXJnaW46IDVweCAxMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZ01lbnVDb2xvcik7XG4gICAgICAgIGNsaXAtcGF0aDogcG9seWdvbig1MCUgMCwgMTAwJSAyNSUsIDEwMCUgNzUlLCA1MCUgMTAwJSwgMCA3NSUsIDAgMjUlKTtcbiAgICB9XG4gICAgZGl2LmF3YXJkIGltZyB7XG4gICAgICAgIGdyaWQtYXJlYTogMSAvIDEgLyAzIC8gMjtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgbWF4LXdpZHRoOiA3NXB4O1xuICAgICAgICBtYXJnaW46IGF1dG8gMCBhdXRvIDNweDtcbiAgICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgICAgIG9iamVjdC1maXQ6IHNjYWxlLWRvd247XG4gICAgfVxuICAgIGRpdi5hd2FyZCBwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgICBkaXYuYXdhcmQgcC5wX2F3YXJkX3llYXIge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGdyaWQtYXJlYTogMSAvIDMgLyAyIC8gNDtcbiAgICB9XG4gICAgZGl2LmF3YXJkIHAucF9hd2FyZF9jb21wZXRpdGlvbiB7XG4gICAgICAgIGdyaWQtYXJlYTogMSAvIDIgLyAyIC8gMztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgICBkaXYuYXdhcmQgcC5wX2F3YXJkX2NhdGVnb3J5IHtcbiAgICAgICAgZ3JpZC1hcmVhOiAyIC8gMiAvIDMgLyA0O1xuICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgICAgICBtYXJnaW46IDVweCA1cHggMCA1cHg7XG4gICAgfVxuICAgIC8qIFRvdXRlcyBsZXMgNyBhbHbDqW9sZXMgw6AgcGFydGlyIGRlIGxhIDXDqG1lICovXG4gICAgZGl2LmF3YXJkOm50aC1jaGlsZCg3bis1KSB7IG1hcmdpbi1sZWZ0OiBpbmhlcml0OyB9XG4gICAgLyogVG91dGVzIGxlcyBhbHbDqW9sZXMgw6AgcGFydGlyIGRlIGxhIDXDqG1lICovXG4gICAgZGl2LmF3YXJkOm50aC1jaGlsZChuKzUpIHsgbWFyZ2luLXRvcDogaW5oZXJpdDsgfVxuICAgIC8qIFLDqWbDqXJlbmNlcyAqL1xuICAgIHNlY3Rpb24ucmVmZXJlbmNlcyB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyMHB4KTtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gICAgYXJ0aWNsZS5yZWZlcmVuY2Uge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTBweCk7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICB9XG4gICAgLyogaW1hZ2UgKi9cbiAgICBhcnRpY2xlLnJlZmVyZW5jZSBpbWcucmVmZXJlbmNlX2ltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICoqIFBvcnRmb2xpb1xuICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuICAgIC8qIGZpbHRyZXMgKi9cbiAgICAuZmlsdGVyIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZTogNDBweCBhdXRvIC8gcmVwZWF0KDIsIGNhbGMoNTAlKSk7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIG1hcmdpbjogLTQwcHggYXV0byAwIGF1dG87XG4gICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMTBweCk7XG4gICAgfVxuICAgIC5maWx0ZXIgZGl2IHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgLmZpbHRlcl9sZWZ0IHtcbiAgICAgICAgZ3JpZC1hcmVhOiAyIC8gMSAvIDMgLyAyO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgIH1cbiAgICAuZmlsdGVyX3JpZ2h0IHtcbiAgICAgICAgZ3JpZC1hcmVhOiAyIC8gMiAvIDMgLyAzO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gNDBweCk7XG4gICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgIH1cbiAgICAuZmlsdGVyIGEuZmlsdGVyX2Nob2ljZSB7XG4gICAgICAgIG1hcmdpbjogM3B4IDA7XG4gICAgfVxuICAgIC5maWx0ZXJfaWNvbiB7XG4gICAgICAgIGdyaWQtYXJlYTogMSAvIDIgLyAyIC8gMztcbiAgICAgICAganVzdGlmeS1zZWxmOiBlbmQ7XG4gICAgfVxuICAgIC5maWx0ZXJfbGVmdCBwLCAuZmlsdGVyX3JpZ2h0IHAge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICB9XG4gICAgLyogQ29udGVuZXVyIGfDqW7DqXJhbCBkZXMgYWx2w6lvbGVzIGR1IHBvcnRmb2xpbyAqL1xuICAgIC5ydWNoZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgLyp3aWR0aDogMzUwcHg7Ki9cbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSA2dncpO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwcHggMHB4IDNweCByZ2JhKDU5LCA0MSwgMTEsIDAuOCkpO1xuICAgIH1cbiAgICAvKiBVbmUgYWx2w6lvbGUgcGFyIGNhcnRlICovXG4gICAgLmFsdmVvbGUge1xuICAgICAgICBoZWlnaHQ6IDQ0dnc7XG4gICAgICAgIHdpZHRoOiA0MHZ3O1xuICAgICAgICBtYXJnaW46IDJ2dztcbiAgICB9XG4gICAgLyogVG91dGVzIGxlcyA3IGFsdsOpb2xlcyDDoCBwYXJ0aXIgZGUgbGEgNcOobWUgKi9cbiAgICBkaXYuaWxsdXN0cmF0aW9uLXByZXZpZXc6bnRoLW9mLXR5cGUoN24rNSkgeyBtYXJnaW4tbGVmdDogMDsgfVxuICAgIC8qIFRvdXRlcyBsZXMgYWx2w6lvbGVzIMOgIHBhcnRpciBkZSBsYSA1w6htZSAqL1xuICAgIGRpdi5pbGx1c3RyYXRpb24tcHJldmlldzpudGgtb2YtdHlwZShuKzUpIHsgbWFyZ2luLXRvcDogMDsgfVxuICAgIC8qIFRvdXRlcyBsZXMgYWx2w6lvbGVzIMOgIHBhcnRpciBkZSBsYSAzw6htZSAqL1xuICAgIGRpdi5pbGx1c3RyYXRpb24tcHJldmlldzpudGgtb2YtdHlwZShuKzMpIHsgbWFyZ2luLXRvcDogLTEydnc7IH1cbiAgICAvKiBUb3V0ZXMgbGVzIDMgYWx2w6lvbGVzIMOgIHBhcnRpciBkZSBsYSAzw6htZSAqL1xuICAgIGRpdi5pbGx1c3RyYXRpb24tcHJldmlldzpudGgtb2YtdHlwZSgzbiszKSB7IG1hcmdpbi1sZWZ0OiAyMnZ3OyB9XG5cbiAgICAvKiBJbWFnZSBjb250ZW51ZSBwYXIgbCdhbHbDqW9sZSAqL1xuICAgIC5hbHZlb2xlIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIH1cblxuICAgIC8qIGFsdmVvbGUgdGV4dGUgKi9cbiAgICAudGV4dF9hdXJlb2xlIHtcbiAgICAgICAgaGVpZ2h0OiAzM3Z3O1xuICAgICAgICB3aWR0aDogMzB2dztcbiAgICAgICAgbWFyZ2luOiA4dncgN3Z3O1xuICAgIH1cbiAgICAudGV4dF9hdXJlb2xlIC5jb250YWluZXJfcHJldmlldyBkaXYjY2xpZW50X3ByZXZpZXcge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAvKiBsb3VwZSBkYW5zIGxlIHByZXZpZXcgKi9cbiAgICAudGV4dF9hdXJlb2xlIC5jb250YWluZXJfcHJldmlldyBwW2NsYXNzKj1mYS1dOjpiZWZvcmUge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgIC8qIGltYWdlIGFncmFuZGllICovXG4gICAgLmZ1bGxfaW1hZ2Uge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTBweCk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIH1cbiAgICAuZnVsbF92aWV3IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gICAgLmltYWdlX3ZpZXcge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTBweCk7XG4gICAgfVxuICAgIC5pbWFnZV92aWV3IGEge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNzBweDtcbiAgICB9XG4gICAgZGl2LnBmX3ByaW50c19saW5rX2JveCBwIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB9XG4gICAgZGl2LnBmX3ByaW50c19saW5rX2JveCBkaXYucGZfcHJpbnRzX2xpbmsgYSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/