diff --git a/.gitignore b/.gitignore index 36eb356..f8f11e0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ .sass-cache - .DS_Store +node_modules diff --git a/README.md b/README.md index 6bea935..3d7aa0e 100644 --- a/README.md +++ b/README.md @@ -1,66 +1,13 @@ -# Deliver Theme for Grav +# Libretic's Deliver Theme for Grav ![Deliver](assets/readme_1.png) -Deliver theme is a port of the [Deliver](http://freebiesbug.com/psd-freebies/deliver-free-psd-theme/) by [Michael Reimer](http://www.bestpsdfreebies.com/). Whether you’re a creative looking to show off your portfolio, or a business looking to promote your company, this theme is for you. +This is a customization, made for [Libretic Website](https://libretic.fr), of the [Deliver theme](https://github.com/getgrav/grav-theme-deliver) which is a port of the [Deliver](http://freebiesbug.com/psd-freebies/deliver-free-psd-theme/) by [Michael Reimer](http://www.bestpsdfreebies.com/). -# Features - -* Fully responsive -* Automatic and custom navigation menus included -* Showcase section with stunning animated slideshow module -* Services grid with custom FontAwesome icons. -* Portfolio grid with modal window popup previews for portfolio item details. Both frontpage (minimal) and full featured versions included. -* Footer section with Feedburner subscription (feedburner id customizable in site config), custom menus, contact info and more. -* About layout with social icons module and custom styling -* Services layout with FontAwesome icons and pricing tables -* Archive layout with blog posts archives list -* Full featured blog with support for custom authors and jscomments -* Contact us layout with Simple Form plugin support. -* SCSS files included for deeper customization options - -# Installation - -Installing the Deliver theme can be done in one of two ways. Our GPM (Grav Package Manager) installation method enables you to quickly and easily install the theme with a simple terminal command, while the manual method enables you to do so via a zip file. - -The theme by itself is useful, but you may have an easier time getting up and running by installing a skeleton. The [Deliver Site Skeleton](https://github.com/getgrav/grav-skeleton-deliver-site) is a self-contained repository for a complete sites which includes: sample content, configuration, theme, and plugins. - -## GPM Installation (Preferred) - -The simplest way to install this theme is via the [Grav Package Manager (GPM)](http://learn.getgrav.org/advanced/grav-gpm) through your system's Terminal (also called the command line). From the root of your Grav install type: - - bin/gpm install deliver - -This will install the Deliver theme into your `/user/themes` directory within Grav. Its files can be found under `/your/site/grav/user/themes/deliver`. - -## Manual Installation - -To install this theme, just download the zip version of this repository and unzip it under `/your/site/grav/user/themes`. Then, rename the folder to `deliver`. You can find these files either on [GitHub](https://github.com/getgrav/grav-theme-deliver) or via [GetGrav.org](http://getgrav.org/downloads/themes). - -You should now have all the theme files under - - /your/site/grav/user/themes/deliver - ->> NOTE: This theme is a modular component for Grav which requires the [Grav](http://github.com/getgrav/grav), [Error](https://github.com/getgrav/grav-theme-error) and [Problems](https://github.com/getgrav/grav-plugin-problems) plugins. - -# Updating - -As development for the Deliver theme continues, new versions may become available that add additional features and functionality, improve compatibility with newer Grav releases, and generally provide a better user experience. Updating Deliver is easy, and can be done through Grav's GPM system, as well as manually. - -## GPM Update (Preferred) - -The simplest way to update this theme is via the [Grav Package Manager (GPM)](http://learn.getgrav.org/advanced/grav-gpm). You can do this with this by navigating to the root directory of your Grav install using your system's Terminal (also called command line) and typing the following: - - bin/gpm update deliver - -This command will check your Grav install to see if your Deliver theme is due for an update. If a newer release is found, you will be asked whether or not you wish to update. To continue, type `y` and hit enter. The theme will automatically update and clear Grav's cache. - -## Manual Update - -Manually updating Deliver is pretty simple. Here is what you will need to do to get this done: +## Installation / Update * Delete the `your/site/user/themes/deliver` directory. -* Download the new version of the Deliver theme from either [GitHub](https://github.com/getgrav/grav-theme-deliver) or [GetGrav.org](http://getgrav.org/downloads/themes). +* Download the new version of the Libretic theme from [our GIT repository](https://git.libretic.fr/libretic/grav-theme-libretic.git) * Unzip the zip file in `your/site/user/themes` and rename the resulting folder to `deliver`. * Clear the Grav cache. The simplest way to do this is by going to the root Grav directory in terminal and typing `bin/grav clear-cache`. @@ -68,7 +15,7 @@ Manually updating Deliver is pretty simple. Here is what you will need to do to # Setup -If you want to set Deliver as the default theme, you can do so by following these steps: +To set this theme as the default theme, follow these steps: * Navigate to `/your/site/grav/user/config`. * Open the **system.yaml** file. @@ -77,3 +24,21 @@ If you want to set Deliver as the default theme, you can do so by following thes * Clear the Grav cache. The simplest way to do this is by going to the root Grav directory in Terminal and typing `bin/grav clear-cache`. Once this is done, you should be able to see the new theme on the frontend. Keep in mind any customizations made to the previous theme will not be reflected as all of the theme and templating information is now being pulled from the **deliver** folder. + + +# SCSS modifications and compilation of css + +Tested on debian 10 : + +```bash +apt install nodejs nmp +git clone https://git.libretic.fr/libretic/grav-theme-libretic.git +cd grav-theme-libretic +npm install # install dependancies + +[ modifications of scss here ] + +npm run build # build css-compiled + +[git commit and push, then "setup" again in grav site] +``` diff --git a/blueprints.yaml b/blueprints.yaml index 8f51723..86c9bb8 100644 --- a/blueprints.yaml +++ b/blueprints.yaml @@ -1,17 +1,16 @@ name: Deliver slug: deliver type: theme -version: 1.7.1 -description: "Deliver theme is a port of the Michael Reimer's Deliver Free PSD theme." +version: 1.7.2.1 +description: "Libretic's Deliver theme is Libretic's website theme customization based on Deliver theme" icon: newspaper-o author: - name: Team Grav - email: devs@getgrav.org - url: http://getgrav.org -homepage: https://github.com/getgrav/grav-theme-deliver -demo: http://demo.getgrav.org/deliver-skeleton/ -keywords: deliver, theme, modern, fast, responsive, html5, css3 -bugs: https://github.com/getgrav/grav-theme-deliver/issues + name: Libretic + url: https://libretic.fr +homepage: https://git.libretic.fr/libretic/grav-theme-libretic +demo: httsp://libretic.fr +keywords: libretic, deliver, theme, modern, fast, responsive, html5, css3 +bugs: https://git.libretic.fr/libretic/grav-theme-libretic/issues license: MIT dependencies: - { name: grav, version: '>=1.5.10' } diff --git a/css-compiled/nucleus.css b/css-compiled/nucleus.css index 31d4daf..cfdef46 100644 --- a/css-compiled/nucleus.css +++ b/css-compiled/nucleus.css @@ -1,545 +1,218 @@ -*, *::before, *::after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; } - -@-webkit-viewport { - width: device-width; } -@-moz-viewport { - width: device-width; } -@-ms-viewport { - width: device-width; } -@-o-viewport { - width: device-width; } -@viewport { - width: device-width; } -html { - font-size: 100%; - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; } - -body { - margin: 0; } - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -nav, -section, -summary { - display: block; } - -audio, -canvas, -progress, -video { - display: inline-block; - vertical-align: baseline; } - -audio:not([controls]) { - display: none; - height: 0; } - -[hidden], -template { - display: none; } - -a { - background: transparent; - text-decoration: none; } - -a:active, -a:hover { - outline: 0; } - -abbr[title] { - border-bottom: 1px dotted; } - -b, -strong { - font-weight: bold; } - -dfn { - font-style: italic; } - -mark { - background: #ff0; - color: #000; } - -sub, -sup { - font-size: 0.75rem; - line-height: 0; - position: relative; - vertical-align: baseline; } - -sup { - top: -0.5em; } - -sub { - bottom: -0.25em; } - -img { - width: auto\9; - height: auto; - max-width: 100%; - display: inline-block; - vertical-align: middle; - border: 0; - -ms-interpolation-mode: bicubic; } - -iframe, -svg { - max-width: 100%; } - -svg:not(:root) { - overflow: hidden; } - -figure { - margin: 1em 40px; } - -hr { - height: 0; } - -pre { - overflow: auto; } - -code, -kbd, -pre, -samp { - font-family: inherit; - font-size: 1rem; } - -button, -input, -optgroup, -select, -textarea { - color: inherit; - font: inherit; - margin: 0; } - -button { - overflow: visible; } - -button, -select { - text-transform: none; } - -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; } - -button[disabled], -html input[disabled] { - cursor: default; } - -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; } - -input { - line-height: normal; } - -input[type="checkbox"], -input[type="radio"] { - padding: 0; } - -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; } - -input[type="search"] { - -webkit-appearance: textfield; } - -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; } - -legend { - border: 0; - padding: 0; } - -textarea { - overflow: auto; } - -optgroup { - font-weight: bold; } - -table { - border-collapse: collapse; - border-spacing: 0; - table-layout: fixed; - width: 100%; } - -tr, td, th { - vertical-align: middle; } - -th, td { - padding: 0.425rem 0; } - -th { - text-align: left; } - -.g-container { - width: 75em; - margin: 0 auto; - padding: 0; } - @media only all and (min-width: 60em) and (max-width: 74.938em) { - .g-container { - width: 60em; } } - @media only all and (min-width: 48em) and (max-width: 59.938em) { - .g-container { - width: 48em; } } - @media only all and (min-width: 30.063em) and (max-width: 47.938em) { - .g-container { - width: 30em; } } - @media only all and (max-width: 30em) { - .g-container { - width: 100%; } } - -.g-grid { - display: -webkit-box; - display: -moz-box; - display: box; - display: -webkit-flex; - display: -moz-flex; - display: -ms-flexbox; - display: flex; - -webkit-flex-flow: row wrap; - -moz-flex-flow: row wrap; - flex-flow: row wrap; - list-style: none; - margin: 0; - padding: 0; } - .g-grid.nowrap { - -webkit-flex-flow: row; - -moz-flex-flow: row; - flex-flow: row; } - -.g-block { - -webkit-box-flex: 1; - -moz-box-flex: 1; - box-flex: 1; - -webkit-flex: 1; - -moz-flex: 1; - -ms-flex: 1; - flex: 1; - min-width: 0; - min-height: 0; } - @media only all and (max-width: 47.938em) { - .g-block { - -webkit-box-flex: 0; - -moz-box-flex: 0; - box-flex: 0; - -webkit-flex: 0 100%; - -moz-flex: 0 100%; - -ms-flex: 0 100%; - flex: 0 100%; } } - -.g-content { - margin: 0.625rem; - padding: 0.938rem; } - -@media only all and (max-width: 47.938em) { - body [class*="size-"] { - -webkit-box-flex: 0; - -moz-box-flex: 0; - box-flex: 0; - -webkit-flex: 0 100%; - -moz-flex: 0 100%; - -ms-flex: 0 100%; - flex: 0 100%; } } - -.size-1-2 { - -webkit-box-flex: 0; - -moz-box-flex: 0; - box-flex: 0; - -webkit-flex: 0 50%; - -moz-flex: 0 50%; - -ms-flex: 0 50%; - flex: 0 50%; } - -.size-1-3 { - -webkit-box-flex: 0; - -moz-box-flex: 0; - box-flex: 0; - -webkit-flex: 0 33.33333%; - -moz-flex: 0 33.33333%; - -ms-flex: 0 33.33333%; - flex: 0 33.33333%; } - -.size-1-4 { - -webkit-box-flex: 0; - -moz-box-flex: 0; - box-flex: 0; - -webkit-flex: 0 25%; - -moz-flex: 0 25%; - -ms-flex: 0 25%; - flex: 0 25%; } - -.size-1-5 { - -webkit-box-flex: 0; - -moz-box-flex: 0; - box-flex: 0; - -webkit-flex: 0 20%; - -moz-flex: 0 20%; - -ms-flex: 0 20%; - flex: 0 20%; } - -.size-1-6 { - -webkit-box-flex: 0; - -moz-box-flex: 0; - box-flex: 0; - -webkit-flex: 0 16.66667%; - -moz-flex: 0 16.66667%; - -ms-flex: 0 16.66667%; - flex: 0 16.66667%; } - -.size-1-7 { - -webkit-box-flex: 0; - -moz-box-flex: 0; - box-flex: 0; - -webkit-flex: 0 14.28571%; - -moz-flex: 0 14.28571%; - -ms-flex: 0 14.28571%; - flex: 0 14.28571%; } - -.size-1-8 { - -webkit-box-flex: 0; - -moz-box-flex: 0; - box-flex: 0; - -webkit-flex: 0 12.5%; - -moz-flex: 0 12.5%; - -ms-flex: 0 12.5%; - flex: 0 12.5%; } - -.size-1-9 { - -webkit-box-flex: 0; - -moz-box-flex: 0; - box-flex: 0; - -webkit-flex: 0 11.11111%; - -moz-flex: 0 11.11111%; - -ms-flex: 0 11.11111%; - flex: 0 11.11111%; } - -.size-1-10 { - -webkit-box-flex: 0; - -moz-box-flex: 0; - box-flex: 0; - -webkit-flex: 0 10%; - -moz-flex: 0 10%; - -ms-flex: 0 10%; - flex: 0 10%; } - -.size-1-11 { - -webkit-box-flex: 0; - -moz-box-flex: 0; - box-flex: 0; - -webkit-flex: 0 9.09091%; - -moz-flex: 0 9.09091%; - -ms-flex: 0 9.09091%; - flex: 0 9.09091%; } - -.size-1-12 { - -webkit-box-flex: 0; - -moz-box-flex: 0; - box-flex: 0; - -webkit-flex: 0 8.33333%; - -moz-flex: 0 8.33333%; - -ms-flex: 0 8.33333%; - flex: 0 8.33333%; } - -@media only all and (max-width: 47.938em) { - @supports not (flex-wrap: wrap) { - .g-grid { - display: block; - -webkit-box-lines: inherit; - -moz-box-lines: inherit; - box-lines: inherit; - -webkit-flex-wrap: inherit; - -moz-flex-wrap: inherit; - -ms-flex-wrap: inherit; - flex-wrap: inherit; } - - .g-block { - display: block; - -webkit-box-flex: inherit; - -moz-box-flex: inherit; - box-flex: inherit; - -webkit-flex: inherit; - -moz-flex: inherit; - -ms-flex: inherit; - flex: inherit; } } } -.first-block { - -webkit-box-ordinal-group: 0; - -webkit-order: -1; - -ms-flex-order: -1; - order: -1; } - -.last-block { - -webkit-box-ordinal-group: 2; - -webkit-order: 1; - -ms-flex-order: 1; - order: 1; } - -.fixed-blocks { - -webkit-flex-flow: row wrap; - -moz-flex-flow: row wrap; - flex-flow: row wrap; } - .fixed-blocks .g-block { - -webkit-box-flex: inherit; - -moz-box-flex: inherit; - box-flex: inherit; - -webkit-flex: inherit; - -moz-flex: inherit; - -ms-flex: inherit; - flex: inherit; - width: 25%; } - @media only all and (min-width: 60em) and (max-width: 74.938em) { - .fixed-blocks .g-block { - width: 33.33333%; } } - @media only all and (min-width: 48em) and (max-width: 59.938em) { - .fixed-blocks .g-block { - width: 50%; } } - @media only all and (max-width: 47.938em) { - .fixed-blocks .g-block { - width: 100%; } } - -@supports not (flex-wrap: wrap) { - .fixed-blocks { - display: block; - -webkit-flex-flow: inherit; - -moz-flex-flow: inherit; - flex-flow: inherit; } } -body { - font-size: 1rem; - line-height: 1.7; } - -h1, h2, h3, h4, h5, h6 { - margin: 0.85rem 0 1.7rem 0; - text-rendering: optimizeLegibility; } - -h1 { - font-size: 3.2rem; } - -h2 { - font-size: -0.6rem; } - -h3 { - font-size: -0.5rem; } - -h4 { - font-size: 1.75rem; } - -h5 { - font-size: 1.35rem; } - -h6 { - font-size: 0.85rem; } - -p { - margin: 1.7rem 0; } - -ul, ol, dl { - margin-top: 1.7rem; - margin-bottom: 1.7rem; } - ul ul, ul ol, ul dl, ol ul, ol ol, ol dl, dl ul, dl ol, dl dl { - margin-top: 0; - margin-bottom: 0; } - -ul, dl { - margin-left: 1.7rem; - padding: 0; } - -ol { - padding-left: 1.7rem; } - -blockquote { - margin: 1.7rem 0; - padding-left: 0.85rem; } - -cite { - display: block; - font-size: 0.875rem; } - cite:before { - content: "\2014 \0020"; } - -pre { - margin: 1.7rem 0; - padding: 0.938rem; } - -code { - vertical-align: bottom; } - -small { - font-size: 0.875rem; } - -hr { - border-left: none; - border-right: none; - border-top: none; - margin: 1.7rem 0; } - -fieldset { - border: 0; - padding: 0.938rem; - margin: 0 0 1.7rem 0; } - -input, -label, -select { - display: block; } - -label { - margin-bottom: 0.425rem; } - label.required:after { - content: "*"; } - label abbr { - display: none; } - -textarea, input[type="email"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="url"], input[type="color"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="month"], input[type="time"], input[type="week"], select[multiple=multiple] { - -webkit-transition: border-color; - -moz-transition: border-color; - transition: border-color; - border-radius: 0; - margin-bottom: 0.85rem; - padding: 0.425rem 0.425rem; } - textarea:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="url"]:focus, input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="week"]:focus, select[multiple=multiple]:focus { - outline: none; } - -textarea { - resize: vertical; } - -input[type="checkbox"], input[type="radio"] { - display: inline; - margin-right: 0.425rem; } - -input[type="file"] { - width: 100%; } - -select { - width: auto; - max-width: 100%; - margin-bottom: 1.7rem; } - -button, -input[type="submit"] { - cursor: pointer; - user-select: none; - vertical-align: middle; - white-space: nowrap; - border: inherit; } - -/*# sourceMappingURL=nucleus.css.map */ +*, *::before, *::after { box-sizing: border-box; } + +@-webkit-viewport { width: device-width; } + +@-moz-viewport { width: device-width; } + +@-ms-viewport { width: device-width; } + +@viewport { width: device-width; } + +html { font-size: 100%; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; } + +body { margin: 0; } + +article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { display: block; } + +audio, canvas, progress, video { display: inline-block; vertical-align: baseline; } + +audio:not([controls]) { display: none; height: 0; } + +[hidden], template { display: none; } + +a { background: transparent; text-decoration: none; } + +a:active, a:hover { outline: 0; } + +abbr[title] { border-bottom: 1px dotted; } + +b, strong { font-weight: bold; } + +dfn { font-style: italic; } + +mark { background: #ff0; color: #000; } + +sub, sup { font-size: 0.75rem; line-height: 0; position: relative; vertical-align: baseline; } + +sup { top: -0.5em; } + +sub { bottom: -0.25em; } + +img { width: auto\9; height: auto; max-width: 100%; display: inline-block; vertical-align: middle; border: 0; -ms-interpolation-mode: bicubic; } + +iframe, svg { max-width: 100%; } + +svg:not(:root) { overflow: hidden; } + +figure { margin: 1em 40px; } + +hr { height: 0; } + +pre { overflow: auto; } + +code, kbd, pre, samp { font-family: inherit; font-size: 1rem; } + +button, input, optgroup, select, textarea { color: inherit; font: inherit; margin: 0; } + +button { overflow: visible; } + +button, select { text-transform: none; } + +button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; cursor: pointer; } + +button[disabled], html input[disabled] { cursor: default; } + +button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } + +input { line-height: normal; } + +input[type="checkbox"], input[type="radio"] { padding: 0; } + +input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { height: auto; } + +input[type="search"] { -webkit-appearance: textfield; } + +input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } + +legend { border: 0; padding: 0; } + +textarea { overflow: auto; } + +optgroup { font-weight: bold; } + +table { border-collapse: collapse; border-spacing: 0; table-layout: fixed; width: 100%; } + +tr, td, th { vertical-align: middle; } + +th, td { padding: 0.425rem 0; } + +th { text-align: left; } + +.g-container { width: 75em; margin: 0 auto; padding: 0; } + +@media only all and (min-width: 60em) and (max-width: 74.938em) { .g-container { width: 60em; } } + +@media only all and (min-width: 48em) and (max-width: 59.938em) { .g-container { width: 48em; } } + +@media only all and (min-width: 30.063em) and (max-width: 47.938em) { .g-container { width: 30em; } } + +@media only all and (max-width: 30em) { .g-container { width: 100%; } } + +.g-grid { display: -webkit-box; display: -moz-box; display: box; display: -moz-flex; display: -ms-flexbox; display: flex; -ms-flex-flow: row wrap; flex-flow: row wrap; list-style: none; margin: 0; padding: 0; } + +.g-grid.nowrap { -ms-flex-flow: row; flex-flow: row; } + +.g-block { box-flex: 1; -moz-flex: 1; -ms-flex: 1; flex: 1; min-width: 0; min-height: 0; } + +@media only all and (max-width: 47.938em) { .g-block { box-flex: 0; -moz-flex: 0 100%; -ms-flex: 0 100%; flex: 0 100%; } } + +.g-content { margin: 0.625rem; padding: 0.938rem; } + +@media only all and (max-width: 47.938em) { body [class*="size-"] { box-flex: 0; -moz-flex: 0 100%; -ms-flex: 0 100%; flex: 0 100%; } } + +.size-1-2 { box-flex: 0; -moz-flex: 0 50%; -ms-flex: 0 50%; flex: 0 50%; } + +.size-1-3 { box-flex: 0; -moz-flex: 0 33.3333333333%; -ms-flex: 0 33.3333333333%; flex: 0 33.3333333333%; } + +.size-1-4 { box-flex: 0; -moz-flex: 0 25%; -ms-flex: 0 25%; flex: 0 25%; } + +.size-1-5 { box-flex: 0; -moz-flex: 0 20%; -ms-flex: 0 20%; flex: 0 20%; } + +.size-1-6 { box-flex: 0; -moz-flex: 0 16.6666666667%; -ms-flex: 0 16.6666666667%; flex: 0 16.6666666667%; } + +.size-1-7 { box-flex: 0; -moz-flex: 0 14.2857142857%; -ms-flex: 0 14.2857142857%; flex: 0 14.2857142857%; } + +.size-1-8 { box-flex: 0; -moz-flex: 0 12.5%; -ms-flex: 0 12.5%; flex: 0 12.5%; } + +.size-1-9 { box-flex: 0; -moz-flex: 0 11.1111111111%; -ms-flex: 0 11.1111111111%; flex: 0 11.1111111111%; } + +.size-1-10 { box-flex: 0; -moz-flex: 0 10%; -ms-flex: 0 10%; flex: 0 10%; } + +.size-1-11 { box-flex: 0; -moz-flex: 0 9.0909090909%; -ms-flex: 0 9.0909090909%; flex: 0 9.0909090909%; } + +.size-1-12 { box-flex: 0; -moz-flex: 0 8.3333333333%; -ms-flex: 0 8.3333333333%; flex: 0 8.3333333333%; } + +@media only all and (max-width: 47.938em) { @supports not (flex-wrap: wrap) { .g-grid { display: block; -webkit-box-lines: inherit; -moz-box-lines: inherit; box-lines: inherit; -ms-flex-wrap: inherit; flex-wrap: inherit; } + .g-block { display: block; box-flex: inherit; -moz-flex: inherit; -ms-flex: inherit; flex: inherit; } } } + +.first-block { -ms-flex-order: -1; order: -1; } + +.last-block { -ms-flex-order: 1; order: 1; } + +.fixed-blocks { -ms-flex-flow: row wrap; flex-flow: row wrap; } + +.fixed-blocks .g-block { box-flex: inherit; -moz-flex: inherit; -ms-flex: inherit; flex: inherit; width: 25%; } + +@media only all and (min-width: 60em) and (max-width: 74.938em) { .fixed-blocks .g-block { width: 33.3333333333%; } } + +@media only all and (min-width: 48em) and (max-width: 59.938em) { .fixed-blocks .g-block { width: 50%; } } + +@media only all and (max-width: 47.938em) { .fixed-blocks .g-block { width: 100%; } } + +@supports not (flex-wrap: wrap) { .fixed-blocks { display: block; -ms-flex-flow: inherit; flex-flow: inherit; } } + +body { font-size: 1rem; line-height: 1.7; } + +h1, h2, h3, h4, h5, h6 { margin: 0.85rem 0 1.7rem 0; text-rendering: optimizeLegibility; } + +h1 { font-size: 3.2rem; } + +h2 { font-size: -0.6rem; } + +h3 { font-size: -0.5rem; } + +h4 { font-size: 1.75rem; } + +h5 { font-size: 1.35rem; } + +h6 { font-size: 0.85rem; } + +p { margin: 1.7rem 0; } + +ul, ol, dl { margin-top: 1.7rem; margin-bottom: 1.7rem; } + +ul ul, ul ol, ul dl, ol ul, ol ol, ol dl, dl ul, dl ol, dl dl { margin-top: 0; margin-bottom: 0; } + +ul, dl { margin-left: 1.7rem; padding: 0; } + +ol { padding-left: 1.7rem; } + +blockquote { margin: 1.7rem 0; padding-left: 0.85rem; } + +cite { display: block; font-size: 0.875rem; } + +cite:before { content: "\2014 \0020"; } + +pre { margin: 1.7rem 0; padding: 0.938rem; } + +code { vertical-align: bottom; } + +small { font-size: 0.875rem; } + +hr { border-left: none; border-right: none; border-top: none; margin: 1.7rem 0; } + +fieldset { border: 0; padding: 0.938rem; margin: 0 0 1.7rem 0; } + +input, label, select { display: block; } + +label { margin-bottom: 0.425rem; } + +label.required:after { content: "*"; } + +label abbr { display: none; } + +textarea, input[type="email"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="url"], input[type="color"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="month"], input[type="time"], input[type="week"], select[multiple=multiple] { transition: border-color; border-radius: 0; margin-bottom: 0.85rem; padding: 0.425rem 0.425rem; } + +textarea:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="url"]:focus, input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="week"]:focus, select[multiple=multiple]:focus { outline: none; } + +textarea { resize: vertical; } + +input[type="checkbox"], input[type="radio"] { display: inline; margin-right: 0.425rem; } + +input[type="file"] { width: 100%; } + +select { width: auto; max-width: 100%; margin-bottom: 1.7rem; } + +button, input[type="submit"] { cursor: pointer; -webkit-user-select: none; -ms-user-select: none; user-select: none; vertical-align: middle; white-space: nowrap; border: inherit; } + +/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVjbGV1cy5jc3MiLCJzb3VyY2VzIjpbIm51Y2xldXMuc2NzcyIsInZlbmRvci9ib3VyYm9uL19ib3VyYm9uLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9zZXR0aW5ncy9fcHJlZml4ZXIuc2NzcyIsInZlbmRvci9ib3VyYm9uL3NldHRpbmdzL19weC10by1lbS5zY3NzIiwidmVuZG9yL2JvdXJib24vaGVscGVycy9fY29udmVydC11bml0cy5zY3NzIiwidmVuZG9yL2JvdXJib24vaGVscGVycy9fZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwidmVuZG9yL2JvdXJib24vaGVscGVycy9faXMtbnVtLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9oZWxwZXJzL19saW5lYXItYW5nbGUtcGFyc2VyLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9oZWxwZXJzL19saW5lYXItZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9oZWxwZXJzL19saW5lYXItcG9zaXRpb25zLXBhcnNlci5zY3NzIiwidmVuZG9yL2JvdXJib24vaGVscGVycy9fbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlci5zY3NzIiwidmVuZG9yL2JvdXJib24vaGVscGVycy9fcmFkaWFsLWFyZy1wYXJzZXIuc2NzcyIsInZlbmRvci9ib3VyYm9uL2hlbHBlcnMvX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9oZWxwZXJzL19yYWRpYWwtZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9oZWxwZXJzL19yZW5kZXItZ3JhZGllbnRzLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9oZWxwZXJzL19zaGFwZS1zaXplLXN0cmlwcGVyLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9oZWxwZXJzL19zdHItdG8tbnVtLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9mdW5jdGlvbnMvX2Fzc2lnbi5zY3NzIiwidmVuZG9yL2JvdXJib24vZnVuY3Rpb25zL19jb2xvci1saWdodG5lc3Muc2NzcyIsInZlbmRvci9ib3VyYm9uL2Z1bmN0aW9ucy9fZmxleC1ncmlkLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9mdW5jdGlvbnMvX2dvbGRlbi1yYXRpby5zY3NzIiwidmVuZG9yL2JvdXJib24vZnVuY3Rpb25zL19ncmlkLXdpZHRoLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9mdW5jdGlvbnMvX21vZHVsYXItc2NhbGUuc2NzcyIsInZlbmRvci9ib3VyYm9uL2Z1bmN0aW9ucy9fcHgtdG8tZW0uc2NzcyIsInZlbmRvci9ib3VyYm9uL2Z1bmN0aW9ucy9fcHgtdG8tcmVtLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9mdW5jdGlvbnMvX3N0cmlwLXVuaXRzLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9mdW5jdGlvbnMvX3RpbnQtc2hhZGUuc2NzcyIsInZlbmRvci9ib3VyYm9uL2Z1bmN0aW9ucy9fdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9mdW5jdGlvbnMvX3VucGFjay5zY3NzIiwidmVuZG9yL2JvdXJib24vY3NzMy9fYW5pbWF0aW9uLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9jc3MzL19hcHBlYXJhbmNlLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9jc3MzL19iYWNrZmFjZS12aXNpYmlsaXR5LnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9jc3MzL19iYWNrZ3JvdW5kLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9jc3MzL19iYWNrZ3JvdW5kLWltYWdlLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9jc3MzL19ib3JkZXItaW1hZ2Uuc2NzcyIsInZlbmRvci9ib3VyYm9uL2NzczMvX2JvcmRlci1yYWRpdXMuc2NzcyIsInZlbmRvci9ib3VyYm9uL2NzczMvX2JveC1zaXppbmcuc2NzcyIsInZlbmRvci9ib3VyYm9uL2NzczMvX2NhbGMuc2NzcyIsInZlbmRvci9ib3VyYm9uL2NzczMvX2NvbHVtbnMuc2NzcyIsInZlbmRvci9ib3VyYm9uL2NzczMvX2ZpbHRlci5zY3NzIiwidmVuZG9yL2JvdXJib24vY3NzMy9fZmxleC1ib3guc2NzcyIsInZlbmRvci9ib3VyYm9uL2NzczMvX2ZvbnQtZmFjZS5zY3NzIiwidmVuZG9yL2JvdXJib24vY3NzMy9faHlwaGVucy5zY3NzIiwidmVuZG9yL2JvdXJib24vY3NzMy9faGlkcGktbWVkaWEtcXVlcnkuc2NzcyIsInZlbmRvci9ib3VyYm9uL2NzczMvX2ltYWdlLXJlbmRlcmluZy5zY3NzIiwidmVuZG9yL2JvdXJib24vY3NzMy9fa2V5ZnJhbWVzLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9jc3MzL19saW5lYXItZ3JhZGllbnQuc2NzcyIsInZlbmRvci9ib3VyYm9uL2NzczMvX3BlcnNwZWN0aXZlLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9jc3MzL19yYWRpYWwtZ3JhZGllbnQuc2NzcyIsInZlbmRvci9ib3VyYm9uL2NzczMvX3RyYW5zZm9ybS5zY3NzIiwidmVuZG9yL2JvdXJib24vY3NzMy9fdHJhbnNpdGlvbi5zY3NzIiwidmVuZG9yL2JvdXJib24vY3NzMy9fdXNlci1zZWxlY3Quc2NzcyIsInZlbmRvci9ib3VyYm9uL2NzczMvX3BsYWNlaG9sZGVyLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9hZGRvbnMvX2J1dHRvbi5zY3NzIiwidmVuZG9yL2JvdXJib24vYWRkb25zL19jbGVhcmZpeC5zY3NzIiwidmVuZG9yL2JvdXJib24vYWRkb25zL19kaXJlY3Rpb25hbC12YWx1ZXMuc2NzcyIsInZlbmRvci9ib3VyYm9uL2FkZG9ucy9fZWxsaXBzaXMuc2NzcyIsInZlbmRvci9ib3VyYm9uL2FkZG9ucy9fZm9udC1mYW1pbHkuc2NzcyIsInZlbmRvci9ib3VyYm9uL2FkZG9ucy9faGlkZS10ZXh0LnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9hZGRvbnMvX2h0bWw1LWlucHV0LXR5cGVzLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9hZGRvbnMvX3Bvc2l0aW9uLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9hZGRvbnMvX3ByZWZpeGVyLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9hZGRvbnMvX3JldGluYS1pbWFnZS5zY3NzIiwidmVuZG9yL2JvdXJib24vYWRkb25zL19zaXplLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9hZGRvbnMvX3RpbWluZy1mdW5jdGlvbnMuc2NzcyIsInZlbmRvci9ib3VyYm9uL2FkZG9ucy9fdHJpYW5nbGUuc2NzcyIsInZlbmRvci9ib3VyYm9uL2FkZG9ucy9fd29yZC13cmFwLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9fYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nLnNjc3MiLCJjb25maWd1cmF0aW9uL251Y2xldXMvX2Jhc2Uuc2NzcyIsImNvbmZpZ3VyYXRpb24vbnVjbGV1cy9fY29yZS5zY3NzIiwiY29uZmlndXJhdGlvbi9udWNsZXVzL19icmVha3BvaW50cy5zY3NzIiwiY29uZmlndXJhdGlvbi9udWNsZXVzL19sYXlvdXQuc2NzcyIsImNvbmZpZ3VyYXRpb24vbnVjbGV1cy9fdHlwb2dyYXBoeS5zY3NzIiwiY29uZmlndXJhdGlvbi9udWNsZXVzL19uYXYuc2NzcyIsIm51Y2xldXMvZnVuY3Rpb25zL19iYXNlLnNjc3MiLCJudWNsZXVzL2Z1bmN0aW9ucy9fZGlyZWN0aW9uLnNjc3MiLCJudWNsZXVzL2Z1bmN0aW9ucy9fcmFuZ2Uuc2NzcyIsIm51Y2xldXMvZnVuY3Rpb25zL191dGlsaXRpZXMuc2NzcyIsIm51Y2xldXMvbWl4aW5zL19iYXNlLnNjc3MiLCJudWNsZXVzL21peGlucy9fYnJlYWtwb2ludHMuc2NzcyIsIm51Y2xldXMvbWl4aW5zL19uYXYuc2NzcyIsIm51Y2xldXMvbWl4aW5zL190eXBvZ3JhcGh5LnNjc3MiLCJudWNsZXVzL21peGlucy9fdXRpbGl0aWVzLnNjc3MiLCJudWNsZXVzL19jb3JlLnNjc3MiLCJudWNsZXVzL19mbGV4LnNjc3MiLCJudWNsZXVzL190eXBvZ3JhcGh5LnNjc3MiLCJudWNsZXVzL19mb3Jtcy5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFJFUVVJUkVEIERFUEVOREVOQ0lFUyAtIERPIE5PVCBDSEFOR0VcblxuLy8gTG9hZCBUaGlyZCBQYXJ0eSBMaWJyYXJpZXNcbkBpbXBvcnQgXCJ2ZW5kb3IvYm91cmJvbi9ib3VyYm9uXCI7XG5cbi8vIExvYWQgTnVjbGV1cyBDb25maWd1cmF0aW9uXG5AaW1wb3J0IFwiY29uZmlndXJhdGlvbi9udWNsZXVzL2Jhc2VcIjtcblxuLy8gTG9hZCBOdWNsZXVzIE1peGlucyBhbmQgRnVuY3Rpb25zXG5AaW1wb3J0IFwibnVjbGV1cy9mdW5jdGlvbnMvYmFzZVwiO1xuQGltcG9ydCBcIm51Y2xldXMvbWl4aW5zL2Jhc2VcIjtcblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIExPQUQgTlVDTEVVUyBDT01QT05FTlRTXG5cbi8vIENvcmVcbkBpbXBvcnQgXCJudWNsZXVzL2NvcmVcIjtcblxuLy8gRmxleFxuQGltcG9ydCBcIm51Y2xldXMvZmxleFwiO1xuXG4vLyBUeXBvZ3JhcGh5XG5AaW1wb3J0IFwibnVjbGV1cy90eXBvZ3JhcGh5XCI7XG5cbi8vIEZvcm1zXG5AaW1wb3J0IFwibnVjbGV1cy9mb3Jtc1wiO1xuIiwiLy8gU2V0dGluZ3NcbkBpbXBvcnQgXCJzZXR0aW5ncy9wcmVmaXhlclwiO1xuQGltcG9ydCBcInNldHRpbmdzL3B4LXRvLWVtXCI7XG5cbi8vIEN1c3RvbSBIZWxwZXJzXG5AaW1wb3J0IFwiaGVscGVycy9jb252ZXJ0LXVuaXRzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9pcy1udW1cIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1hbmdsZS1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1ncmFkaWVudC1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtYXJnLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JlbmRlci1ncmFkaWVudHNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3NoYXBlLXNpemUtc3RyaXBwZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3N0ci10by1udW1cIjtcblxuLy8gQ3VzdG9tIEZ1bmN0aW9uc1xuQGltcG9ydCBcImZ1bmN0aW9ucy9hc3NpZ25cIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvY29sb3ItbGlnaHRuZXNzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2ZsZXgtZ3JpZFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9nb2xkZW4tcmF0aW9cIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvZ3JpZC13aWR0aFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9tb2R1bGFyLXNjYWxlXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3B4LXRvLWVtXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3B4LXRvLXJlbVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9zdHJpcC11bml0c1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy90aW50LXNoYWRlXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3RyYW5zaXRpb24tcHJvcGVydHktbmFtZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy91bnBhY2tcIjtcblxuLy8gQ1NTMyBNaXhpbnNcbkBpbXBvcnQgXCJjc3MzL2FuaW1hdGlvblwiO1xuQGltcG9ydCBcImNzczMvYXBwZWFyYW5jZVwiO1xuQGltcG9ydCBcImNzczMvYmFja2ZhY2UtdmlzaWJpbGl0eVwiO1xuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZFwiO1xuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZC1pbWFnZVwiO1xuQGltcG9ydCBcImNzczMvYm9yZGVyLWltYWdlXCI7XG5AaW1wb3J0IFwiY3NzMy9ib3JkZXItcmFkaXVzXCI7XG5AaW1wb3J0IFwiY3NzMy9ib3gtc2l6aW5nXCI7XG5AaW1wb3J0IFwiY3NzMy9jYWxjXCI7XG5AaW1wb3J0IFwiY3NzMy9jb2x1bW5zXCI7XG5AaW1wb3J0IFwiY3NzMy9maWx0ZXJcIjtcbkBpbXBvcnQgXCJjc3MzL2ZsZXgtYm94XCI7XG5AaW1wb3J0IFwiY3NzMy9mb250LWZhY2VcIjtcbkBpbXBvcnQgXCJjc3MzL2h5cGhlbnNcIjtcbkBpbXBvcnQgXCJjc3MzL2hpZHBpLW1lZGlhLXF1ZXJ5XCI7XG5AaW1wb3J0IFwiY3NzMy9pbWFnZS1yZW5kZXJpbmdcIjtcbkBpbXBvcnQgXCJjc3MzL2tleWZyYW1lc1wiO1xuQGltcG9ydCBcImNzczMvbGluZWFyLWdyYWRpZW50XCI7XG5AaW1wb3J0IFwiY3NzMy9wZXJzcGVjdGl2ZVwiO1xuQGltcG9ydCBcImNzczMvcmFkaWFsLWdyYWRpZW50XCI7XG5AaW1wb3J0IFwiY3NzMy90cmFuc2Zvcm1cIjtcbkBpbXBvcnQgXCJjc3MzL3RyYW5zaXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3VzZXItc2VsZWN0XCI7XG5AaW1wb3J0IFwiY3NzMy9wbGFjZWhvbGRlclwiO1xuXG4vLyBBZGRvbnMgJiBvdGhlciBtaXhpbnNcbkBpbXBvcnQgXCJhZGRvbnMvYnV0dG9uXCI7XG5AaW1wb3J0IFwiYWRkb25zL2NsZWFyZml4XCI7XG5AaW1wb3J0IFwiYWRkb25zL2RpcmVjdGlvbmFsLXZhbHVlc1wiO1xuQGltcG9ydCBcImFkZG9ucy9lbGxpcHNpc1wiO1xuQGltcG9ydCBcImFkZG9ucy9mb250LWZhbWlseVwiO1xuQGltcG9ydCBcImFkZG9ucy9oaWRlLXRleHRcIjtcbkBpbXBvcnQgXCJhZGRvbnMvaHRtbDUtaW5wdXQtdHlwZXNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvcG9zaXRpb25cIjtcbkBpbXBvcnQgXCJhZGRvbnMvcHJlZml4ZXJcIjtcbkBpbXBvcnQgXCJhZGRvbnMvcmV0aW5hLWltYWdlXCI7XG5AaW1wb3J0IFwiYWRkb25zL3NpemVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdGltaW5nLWZ1bmN0aW9uc1wiO1xuQGltcG9ydCBcImFkZG9ucy90cmlhbmdsZVwiO1xuQGltcG9ydCBcImFkZG9ucy93b3JkLXdyYXBcIjtcblxuLy8gU29vbiB0byBiZSBkZXByZWNhdGVkIE1peGluc1xuQGltcG9ydCBcImJvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZ1wiO1xuIiwiLy8gVmFyaWFibGUgc2V0dGluZ3MgZm9yIC9hZGRvbnMvcHJlZml4ZXIuc2Nzc1xuJHByZWZpeC1mb3Itd2Via2l0OiAgICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3ItbW96aWxsYTogICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3ItbWljcm9zb2Z0OiB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3Itb3BlcmE6ICAgICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3Itc3BlYzogICAgICB0cnVlICFkZWZhdWx0OyAvLyByZXF1aXJlZCBmb3Iga2V5ZnJhbWUgbWl4aW5cbiIsIiRlbS1iYXNlOiAxNnB4ICFkZWZhdWx0O1xuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBzdHItdG8tbnVtIGZuLlxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIF9jb252ZXJ0LXVuaXRzKCRudW1iZXIsICR1bml0KSB7XG4gICRzdHJpbmdzOiAncHgnICdjbScgJ21tJyAnJScgJ2NoJyAncGljYScgJ2luJyAnZW0nICdyZW0nICdwdCcgJ3BjJyAnZXgnICd2dycgJ3ZoJyAndm1pbicgJ3ZtYXgnLCAnZGVnJywgJ3JhZCcsICdncmFkJywgJ3R1cm4nO1xuICAkdW5pdHM6ICAgMXB4ICAxY20gIDFtbSAgMSUgIDFjaCAgMXBpY2EgIDFpbiAgMWVtICAxcmVtICAxcHQgIDFwYyAgMWV4ICAxdncgIDF2aCAgMXZtaW4gIDF2bWF4LCAgMWRlZywgIDFyYWQsICAxZ3JhZCwgMXR1cm47XG4gICRpbmRleDogaW5kZXgoJHN0cmluZ3MsICR1bml0KTtcblxuICBAaWYgbm90ICRpbmRleCB7XG4gICAgQHdhcm4gXCJVbmtub3duIHVuaXQgYCN7JHVuaXR9YC5cIjtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG4gIEByZXR1cm4gJG51bWJlciAqIG50aCgkdW5pdHMsICRpbmRleCk7XG59XG4iLCJAZnVuY3Rpb24gX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXR5cGUsICRncmFkaWVudC1wb3NpdGlvbnMpIHtcbiAgQGlmICRncmFkaWVudC1wb3NpdGlvbnNcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIpXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcbiAgfVxuICBAZWxzZSBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsKVxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XG4gIH1cbiAgQHJldHVybiAkZ3JhZGllbnQtcG9zaXRpb25zO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZvciBsaW5lYXItZ3JhZGllbnQtcGFyc2VyXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gX2lzLW51bSgkY2hhcikge1xuICAkdmFsdWVzOiAnMCcgJzEnICcyJyAnMycgJzQnICc1JyAnNicgJzcnICc4JyAnOScgMCAxIDIgMyA0IDUgNiA3IDggOTtcbiAgJGluZGV4OiBpbmRleCgkdmFsdWVzLCAkY2hhcik7XG4gIEByZXR1cm4gaWYoJGluZGV4LCB0cnVlLCBmYWxzZSk7XG59XG4iLCIvLyBQcml2YXRlIGZ1bmN0aW9uIGZvciBsaW5lYXItZ3JhZGllbnQtcGFyc2VyXG5AZnVuY3Rpb24gX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KSB7XG4gICRvZmZzZXQ6IG51bGw7XG4gICR1bml0LXNob3J0OiAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAyLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgJHVuaXQtbG9uZzogICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuXG4gIEBpZiAoJHVuaXQtbG9uZyA9PSBcImdyYWRcIikgb3JcbiAgICAgICgkdW5pdC1sb25nID09IFwidHVyblwiKSB7XG4gICAgJG9mZnNldDogaWYoJHVuaXQtbG9uZyA9PSBcImdyYWRcIiwgLTEwMGdyYWQgKiAzLCAtMC43NXR1cm4pO1xuICB9XG5cbiAgQGVsc2UgaWYgKCR1bml0LXNob3J0ID09IFwiZGVnXCIpIG9yXG4gICAgICAgICAgICgkdW5pdC1zaG9ydCA9PSBcInJhZFwiKSB7XG4gICAgJG9mZnNldDogaWYoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIiwgLTkwICogMywgMS42cmFkKTtcbiAgfVxuXG4gIEBpZiAkb2Zmc2V0IHtcbiAgICAkbnVtOiBfc3RyLXRvLW51bSgkZmlyc3QtdmFsKTtcblxuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAoJG9mZnNldCAtICRudW0pICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XG4gICRncmFkaWVudHM6ICgpO1xuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XG5cbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMCwgJHN0YXJ0KTtcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcblxuICAkaGFzLW11bHRpcGxlLXZhbHM6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcIiBcIik7XG4gICRoYXMtc2luZ2xlLXBvc2l0aW9uOiB1bnF1b3RlKF9wb3NpdGlvbi1mbGlwcGVyKCRmaXJzdC12YWwpICsgXCJcIik7XG4gICRoYXMtYW5nbGU6IF9pcy1udW0oc3RyLXNsaWNlKCRmaXJzdC12YWwsIDAsIDApKTtcblxuICBAaWYgJGhhcy1tdWx0aXBsZS12YWxzIHtcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscyk7XG4gIH1cblxuICBAZWxzZSBpZiAkaGFzLXNpbmdsZS1wb3NpdGlvbiAhPSBcIlwiIHtcbiAgICAkcG9zOiB1bnF1b3RlKCRoYXMtc2luZ2xlLXBvc2l0aW9uICsgXCJcIik7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiAkaGFzLWFuZ2xlIHtcbiAgICAvLyBSb3RhdGUgZGVncmVlIGZvciB3ZWJraXRcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQHJldHVybiAkZ3JhZGllbnRzO1xufVxuIiwiQGZ1bmN0aW9uIF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKSB7XG4gICR0eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XG4gICRzcGVjOiBudWxsO1xuICAkZGVncmVlOiBudWxsO1xuICAkc2lkZTogbnVsbDtcbiAgJGNvcm5lcjogbnVsbDtcbiAgJGxlbmd0aDogbGVuZ3RoKCRwb3MpO1xuICAvLyBQYXJzZSBTaWRlIGFuZCBjb3JuZXIgcG9zaXRpb25zXG4gIEBpZiAoJGxlbmd0aCA+IDEpIHtcbiAgICBAaWYgbnRoKCRwb3MsIDEpID09IFwidG9cIiB7IC8vIE5ld2VyIHN5bnRheFxuICAgICAgJHNpZGU6IG50aCgkcG9zLCAyKTtcblxuICAgICAgQGlmICRsZW5ndGggPT0gMiB7IC8vIGVnLiB0byB0b3BcbiAgICAgICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGFiaWxpdHlcbiAgICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMyB7IC8vIGVnLiB0byB0b3AgbGVmdFxuICAgICAgICAkY29ybmVyOiBudGgoJHBvcywgMyk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMiB7IC8vIE9sZGVyIHN5bnRheCAoXCJ0b3AgbGVmdFwiKVxuICAgICAgJHNpZGU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAxKSk7XG4gICAgICAkY29ybmVyOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xuICAgIH1cblxuICAgIEBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgbGVmdFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgcmlnaHRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIHJpZ2h0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIGxlZnRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICAkc3BlYzogdG8gJHNpZGUgJGNvcm5lcjtcbiAgfVxuICBAZWxzZSBpZiAkbGVuZ3RoID09IDEge1xuICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRhYmlsaXR5XG4gICAgQGlmICR0eXBlID09IHN0cmluZyB7XG4gICAgICAkZGVncmVlOiAkcG9zO1xuICAgICAgJHNwZWM6IHRvIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkZGVncmVlOiAtMjcwIC0gJHBvczsgLy9yb3RhdGUgdGhlIGdyYWRpZW50IG9wcG9zaXRlIGZyb20gc3BlY1xuICAgICAgJHNwZWM6ICRwb3M7XG4gICAgfVxuICB9XG4gICRkZWdyZWU6IHVucXVvdGUoJGRlZ3JlZSArIFwiLFwiKTtcbiAgJHNwZWM6ICAgdW5xdW90ZSgkc3BlYyArIFwiLFwiKTtcbiAgQHJldHVybiAkZGVncmVlICRzcGVjO1xufVxuXG5AZnVuY3Rpb24gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcykge1xuIEByZXR1cm4gaWYoJHBvcyA9PSBsZWZ0LCByaWdodCwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gcmlnaHQsIGxlZnQsIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IHRvcCwgYm90dG9tLCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSBib3R0b20sIHRvcCwgbnVsbCk7XG59XG4iLCIvLyBQcml2YXRlIGZ1bmN0aW9uIGZvciBsaW5lYXItZ3JhZGllbnQtcGFyc2VyXG5AZnVuY3Rpb24gX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpIHtcbiAgJHZhbC0xOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMCwgJGhhcy1tdWx0aXBsZS12YWxzIC0gMSApO1xuICAkdmFsLTI6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaGFzLW11bHRpcGxlLXZhbHMgKyAxLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgJHZhbC0zOiBudWxsO1xuICAkaGFzLXZhbC0zOiBzdHItaW5kZXgoJHZhbC0yLCBcIiBcIik7XG5cbiAgQGlmICRoYXMtdmFsLTMge1xuICAgICR2YWwtMzogc3RyLXNsaWNlKCR2YWwtMiwgJGhhcy12YWwtMyArIDEsIHN0ci1sZW5ndGgoJHZhbC0yKSk7XG4gICAgJHZhbC0yOiBzdHItc2xpY2UoJHZhbC0yLCAwLCAkaGFzLXZhbC0zIC0gMSk7XG4gIH1cblxuICAkcG9zOiBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTEpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMikgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0zKTtcbiAgJHBvczogdW5xdW90ZSgkcG9zICsgXCJcIik7XG5cbiAgLy8gVXNlIG9sZCBzcGVjIGZvciB3ZWJraXRcbiAgQGlmICR2YWwtMSA9PSBcInRvXCIge1xuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICAvLyBCcmluZyB0aGUgY29kZSB1cCB0byBzcGVjXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XG4gICAgKTtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtYXJnLXBhcnNlcigkRzEsICRHMiwgJHBvcywgJHNoYXBlLXNpemUpIHtcbiAgQGVhY2ggJHZhbHVlIGluICRHMSwgJEcyIHtcbiAgICAkZmlyc3QtdmFsOiBudGgoJHZhbHVlLCAxKTtcbiAgICAkcG9zLXR5cGU6ICB0eXBlLW9mKCRmaXJzdC12YWwpO1xuICAgICRzcGVjLWF0LWluZGV4OiBudWxsO1xuXG4gICAgLy8gRGV0ZXJtaW5lIGlmIHNwZWMgd2FzIHBhc3NlZCB0byBtaXhpblxuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbGlzdCB7XG4gICAgICAkc3BlYy1hdC1pbmRleDogaWYoaW5kZXgoJHZhbHVlLCBhdCksIGluZGV4KCR2YWx1ZSwgYXQpLCBmYWxzZSk7XG4gICAgfVxuICAgIEBpZiAkc3BlYy1hdC1pbmRleCB7XG4gICAgICBAaWYgJHNwZWMtYXQtaW5kZXggPiAxIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAoJHNwZWMtYXQtaW5kZXggLSAxKSB7XG4gICAgICAgICAgJHNoYXBlLXNpemU6ICRzaGFwZS1zaXplIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRzcGVjLWF0LWluZGV4ID09IDEge1xuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICRHMTogbnVsbDtcbiAgICB9XG5cbiAgICAvLyBJZiBub3Qgc3BlYyBjYWxjdWxhdGUgY29ycmVjdCB2YWx1ZXNcbiAgICBAZWxzZSB7XG4gICAgICBAaWYgKCRwb3MtdHlwZSAhPSBjb2xvcikgb3IgKCRmaXJzdC12YWwgIT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgICAgIEBpZiAoJHBvcy10eXBlID09IG51bWJlcilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjZW50ZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJ0b3BcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJyaWdodFwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImJvdHRvbVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImxlZnRcIikge1xuXG4gICAgICAgICAgJHBvczogJHZhbHVlO1xuXG4gICAgICAgICAgQGlmICRwb3MgPT0gJEcxIHtcbiAgICAgICAgICAgICRHMTogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSBpZlxuICAgICAgICAgICAoJGZpcnN0LXZhbCA9PSBcImVsbGlwc2VcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjaXJjbGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LXNpZGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LWNvcm5lclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LXNpZGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1jb3JuZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb250YWluXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY292ZXJcIikge1xuXG4gICAgICAgICAgJHNoYXBlLXNpemU6ICR2YWx1ZTtcblxuICAgICAgICAgIEBpZiAkdmFsdWUgPT0gJEcxIHtcbiAgICAgICAgICAgICRHMTogbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZWxzZSBpZiAkdmFsdWUgPT0gJEcyIHtcbiAgICAgICAgICAgICRHMjogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQHJldHVybiAkRzEsICRHMiwgJHBvcywgJHNoYXBlLXNpemU7XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3MpIHtcbiAgJHNoYXBlLXNpemU6IG50aCgkZ3JhZGllbnQtcG9zLCAxKTtcbiAgJHBvczogICAgICAgIG50aCgkZ3JhZGllbnQtcG9zLCAyKTtcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gICRwcmUtc3BlYzogdW5xdW90ZShpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKSlcbiAgICAgICAgICAgICB1bnF1b3RlKGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LFwiLCBudWxsKSk7XG4gICRwb3Mtc3BlYzogaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xuXG4gICRzcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skcG9zLXNwZWN9XCI7XG5cbiAgLy8gQWRkIGNvbW1hXG4gIEBpZiAoJHNwZWMgIT0gJyAgJykge1xuICAgICRzcGVjOiBcIiN7JHNwZWN9LFwiXG4gIH1cblxuICBAcmV0dXJuICRwcmUtc3BlYyAkc3BlYztcbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XG4gICRncmFkaWVudHM6ICgpO1xuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XG5cbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMCwgJHN0YXJ0KTtcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcblxuICAkaXMtc3BlYy1zeW50YXg6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcImF0XCIpO1xuXG4gIEBpZiAkaXMtc3BlYy1zeW50YXggYW5kICRpcy1zcGVjLXN5bnRheCA+IDEge1xuICAgICRrZXl3b3JkOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgJGlzLXNwZWMtc3ludGF4IC0gMik7XG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAgICRwb3M6IGFwcGVuZCgkcG9zLCAka2V5d29yZCwgY29tbWEpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgIClcbiAgfVxuXG4gIEBlbHNlIGlmICRpcy1zcGVjLXN5bnRheCA9PSAxIHtcbiAgICAkcG9zOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGlzLXNwZWMtc3ludGF4ICsgMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKVxuICB9XG5cbiAgQGVsc2UgaWYgc3RyLWluZGV4KCRpbWFnZSwgXCJjb3ZlclwiKSBvciBzdHItaW5kZXgoJGltYWdlLCBcImNvbnRhaW5cIikge1xuICAgIEB3YXJuIFwiUmFkaWFsLWdyYWRpZW50IG5lZWRzIHRvIGJlIHVwZGF0ZWQgdG8gY29uZm9ybSB0byBsYXRlc3Qgc3BlYy5cIjtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogbnVsbCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgIClcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKVxuICB9XG5cbiAgQHJldHVybiAkZ3JhZGllbnRzO1xufVxuIiwiLy8gVXNlciBmb3IgbGluZWFyIGFuZCByYWRpYWwgZ3JhZGllbnRzIHdpdGhpbiBiYWNrZ3JvdW5kLWltYWdlIG9yIGJvcmRlci1pbWFnZSBwcm9wZXJ0aWVzXG5cbkBmdW5jdGlvbiBfcmVuZGVyLWdyYWRpZW50cygkZ3JhZGllbnQtcG9zaXRpb25zLCAkZ3JhZGllbnRzLCAkZ3JhZGllbnQtdHlwZSwgJHZlbmRvcjogZmFsc2UpIHtcbiAgJHByZS1zcGVjOiBudWxsO1xuICAkc3BlYzogbnVsbDtcbiAgJHZlbmRvci1ncmFkaWVudHM6IG51bGw7XG4gIEBpZiAkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIge1xuICAgIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zIHtcbiAgICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xuICAgICAgJHNwZWM6ICAgICBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMik7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IHJhZGlhbCB7XG4gICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XG4gICAgJHNwZWM6ICAgICBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMik7XG4gIH1cblxuICBAaWYgJHZlbmRvciB7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IC0jeyR2ZW5kb3J9LSN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHByZS1zcGVjfSAkZ3JhZGllbnRzKTtcbiAgfVxuICBAZWxzZSBpZiAkdmVuZG9yID09IGZhbHNlIHtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogXCIjeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRzcGVjfSAjeyRncmFkaWVudHN9KVwiO1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiB1bnF1b3RlKCR2ZW5kb3ItZ3JhZGllbnRzKTtcbiAgfVxuICBAcmV0dXJuICR2ZW5kb3ItZ3JhZGllbnRzO1xufVxuIiwiQGZ1bmN0aW9uIF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKSB7XG4gICRzaGFwZS1zaXplLXNwZWM6IG51bGw7XG4gIEBlYWNoICR2YWx1ZSBpbiAkc2hhcGUtc2l6ZSB7XG4gICAgQGlmICgkdmFsdWUgPT0gXCJjb3ZlclwiKSBvciAoJHZhbHVlID09IFwiY29udGFpblwiKSB7XG4gICAgICAkdmFsdWU6IG51bGw7XG4gICAgfVxuICAgICRzaGFwZS1zaXplLXNwZWM6IFwiI3skc2hhcGUtc2l6ZS1zcGVjfSAjeyR2YWx1ZX1cIjtcbiAgfVxuICBAcmV0dXJuICRzaGFwZS1zaXplLXNwZWM7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIGxpbmVhci9yYWRpYWwtZ3JhZGllbnQtcGFyc2Vycy5cbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiBfc3RyLXRvLW51bSgkc3RyaW5nKSB7XG4gIC8vIE1hdHJpY2VzXG4gICRzdHJpbmdzOiAnMCcgJzEnICcyJyAnMycgJzQnICc1JyAnNicgJzcnICc4JyAnOSc7XG4gICRudW1iZXJzOiAgMCAgIDEgICAyICAgMyAgIDQgICA1ICAgNiAgIDcgICA4ICAgOTtcblxuICAvLyBSZXN1bHRcbiAgJHJlc3VsdDogMDtcbiAgJGRpdmlkZXI6IDA7XG4gICRtaW51czogZmFsc2U7XG5cbiAgLy8gTG9vcGluZyB0aHJvdWdoIGFsbCBjaGFyYWN0ZXJzXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkc3RyaW5nKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCRzdHJpbmcsICRpLCAkaSk7XG4gICAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJGNoYXJhY3Rlcik7XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSAnLScge1xuICAgICAgJG1pbnVzOiB0cnVlO1xuICAgIH1cblxuICAgIEBlbHNlIGlmICRjaGFyYWN0ZXIgPT0gJy4nIHtcbiAgICAgICRkaXZpZGVyOiAxO1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiBub3QgJGluZGV4IHtcbiAgICAgICAgJHJlc3VsdDogaWYoJG1pbnVzLCAkcmVzdWx0ICogLTEsICRyZXN1bHQpO1xuICAgICAgICBAcmV0dXJuIF9jb252ZXJ0LXVuaXRzKCRyZXN1bHQsIHN0ci1zbGljZSgkc3RyaW5nLCAkaSkpO1xuICAgICAgfVxuXG4gICAgICAkbnVtYmVyOiBudGgoJG51bWJlcnMsICRpbmRleCk7XG5cbiAgICAgIEBpZiAkZGl2aWRlciA9PSAwIHtcbiAgICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgIC8vIE1vdmUgdGhlIGRlY2ltYWwgZG90IHRvIHRoZSBsZWZ0XG4gICAgICAgICRkaXZpZGVyOiAkZGl2aWRlciAqIDEwO1xuICAgICAgICAkbnVtYmVyOiAkbnVtYmVyIC8gJGRpdmlkZXI7XG4gICAgICB9XG5cbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyAkbnVtYmVyO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcbn1cbiIsIkBmdW5jdGlvbiBhc3NpZ24taW5wdXRzKCRpbnB1dHMsICRwc2V1ZG86IG51bGwpIHtcbiAgJGxpc3QgOiAoKTtcblxuICBAZWFjaCAkaW5wdXQgaW4gJGlucHV0cyB7XG4gICAgJGlucHV0OiB1bnF1b3RlKCRpbnB1dCk7XG4gICAgJGlucHV0OiBpZigkcHNldWRvLCAkaW5wdXQgKyBcIjpcIiArICRwc2V1ZG8sICRpbnB1dCk7XG4gICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJGlucHV0LCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRsaXN0O1xufSIsIi8vIFByb2dyYW1hdGljYWxseSBkZXRlcm1pbmVzIHdoZXRoZXIgYSBjb2xvciBpcyBsaWdodCBvciBkYXJrXG4vLyBSZXR1cm5zIGEgYm9vbGVhblxuLy8gTW9yZSBkZXRhaWxzIGhlcmUgaHR0cDovL3JvYm90cy50aG91Z2h0Ym90LmNvbS9jbG9zZXItbG9vay1jb2xvci1saWdodG5lc3NcblxuQGZ1bmN0aW9uIGlzLWxpZ2h0KCRoZXgtY29sb3IpIHtcbiAgJC1sb2NhbC1yZWQ6IHJlZChyZ2JhKCRoZXgtY29sb3IsIDEuMCkpO1xuICAkLWxvY2FsLWdyZWVuOiBncmVlbihyZ2JhKCRoZXgtY29sb3IsIDEuMCkpO1xuICAkLWxvY2FsLWJsdWU6IGJsdWUocmdiYSgkaGV4LWNvbG9yLCAxLjApKTtcblxuICAkLWxvY2FsLWxpZ2h0bmVzczogKCQtbG9jYWwtcmVkICogMC4yMTI2ICsgJC1sb2NhbC1ncmVlbiAqIDAuNzE1MiArICQtbG9jYWwtYmx1ZSAqIDAuMDcyMikgLyAyNTU7XG5cbiAgQHJldHVybiAkLWxvY2FsLWxpZ2h0bmVzcyA+IC42O1xufVxuIiwiLy8gRmxleGlibGUgZ3JpZFxuQGZ1bmN0aW9uIGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMpIHtcbiAgJHdpZHRoOiAkY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJHdpZHRoIC8gJGNvbnRhaW5lci13aWR0aCk7XG59XG5cbi8vIEZsZXhpYmxlIGd1dHRlclxuQGZ1bmN0aW9uIGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zLCAkZ3V0dGVyOiAkZmctZ3V0dGVyKSB7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJGd1dHRlciAvICRjb250YWluZXItd2lkdGgpO1xufVxuXG4vLyBUaGUgJGZnLWNvbHVtbiwgJGZnLWd1dHRlciBhbmQgJGZnLW1heC1jb2x1bW5zIHZhcmlhYmxlcyBtdXN0IGJlIGRlZmluZWQgaW4geW91ciBiYXNlIHN0eWxlc2hlZXQgdG8gcHJvcGVybHkgdXNlIHRoZSBmbGV4LWdyaWQgZnVuY3Rpb24uXG4vLyBUaGlzIGZ1bmN0aW9uIHRha2VzIHRoZSBmbHVpZCBncmlkIGVxdWF0aW9uICh0YXJnZXQgLyBjb250ZXh0ID0gcmVzdWx0KSBhbmQgdXNlcyBjb2x1bW5zIHRvIGhlbHAgZGVmaW5lIGVhY2guXG4vL1xuLy8gVGhlIGNhbGN1bGF0aW9uIHByZXN1bWVzIHRoYXQgeW91ciBjb2x1bW4gc3RydWN0dXJlIHdpbGwgYmUgbWlzc2luZyB0aGUgbGFzdCBndXR0ZXI6XG4vL1xuLy8gICAtLSBjb2x1bW4gLS0gZ3V0dGVyIC0tIGNvbHVtbiAtLSBndXR0ZXIgLS0gY29sdW1uXG4vL1xuLy8gICRmZy1jb2x1bW46IDYwcHg7ICAgICAgICAgICAgIC8vIENvbHVtbiBXaWR0aFxuLy8gICRmZy1ndXR0ZXI6IDI1cHg7ICAgICAgICAgICAgIC8vIEd1dHRlciBXaWR0aFxuLy8gICRmZy1tYXgtY29sdW1uczogMTI7ICAgICAgICAgIC8vIFRvdGFsIENvbHVtbnMgRm9yIE1haW4gQ29udGFpbmVyXG4vL1xuLy8gIGRpdiB7XG4vLyAgICB3aWR0aDogZmxleC1ncmlkKDQpOyAgICAgICAgLy8gcmV0dXJucyAoMzE1cHggLyA5OTVweCkgPSAzMS42NTgyOSU7XG4vLyAgICBtYXJnaW4tbGVmdDogZmxleC1ndXR0ZXIoKTsgLy8gcmV0dXJucyAoMjVweCAvIDk5NXB4KSA9IDIuNTEyNTYlO1xuLy9cbi8vICAgIHAge1xuLy8gICAgICB3aWR0aDogZmxleC1ncmlkKDIsIDQpOyAgLy8gcmV0dXJucyAoMTQ1cHggLyAzMTVweCkgPSA0Ni4wMzE3NDYlO1xuLy8gICAgICBmbG9hdDogbGVmdDtcbi8vICAgICAgbWFyZ2luOiBmbGV4LWd1dHRlcig0KTsgIC8vIHJldHVybnMgKDI1cHggLyAzMTVweCkgPSA3LjkzNjUwOCU7XG4vLyAgICB9XG4vL1xuLy8gICAgYmxvY2txdW90ZSB7XG4vLyAgICAgIGZsb2F0OiBsZWZ0O1xuLy8gICAgICB3aWR0aDogZmxleC1ncmlkKDIsIDQpOyAvLyByZXR1cm5zICgxNDVweCAvIDMxNXB4KSA9IDQ2LjAzMTc0NiU7XG4vLyAgICB9XG4vLyAgfSIsIkBmdW5jdGlvbiBnb2xkZW4tcmF0aW8oJHZhbHVlLCAkaW5jcmVtZW50KSB7XG4gIEByZXR1cm4gbW9kdWxhci1zY2FsZSgkdmFsdWUsICRpbmNyZW1lbnQsICRnb2xkZW4pXG59XG4iLCJAZnVuY3Rpb24gZ3JpZC13aWR0aCgkbikge1xuICBAcmV0dXJuICRuICogJGd3LWNvbHVtbiArICgkbiAtIDEpICogJGd3LWd1dHRlcjtcbn1cblxuLy8gVGhlICRndy1jb2x1bW4gYW5kICRndy1ndXR0ZXIgdmFyaWFibGVzIG11c3QgYmUgZGVmaW5lZCBpbiB5b3VyIGJhc2Ugc3R5bGVzaGVldCB0byBwcm9wZXJseSB1c2UgdGhlIGdyaWQtd2lkdGggZnVuY3Rpb24uXG4vL1xuLy8gICRndy1jb2x1bW46IDEwMHB4OyAgICAgICAgIC8vIENvbHVtbiBXaWR0aFxuLy8gICRndy1ndXR0ZXI6IDQwcHg7ICAgICAgICAgIC8vIEd1dHRlciBXaWR0aFxuLy9cbi8vICBkaXYge1xuLy8gICAgd2lkdGg6IGdyaWQtd2lkdGgoNCk7ICAgIC8vIHJldHVybnMgNTIwcHg7XG4vLyAgICBtYXJnaW4tbGVmdDogJGd3LWd1dHRlcjsgLy8gcmV0dXJucyA0MHB4O1xuLy8gIH1cbiIsIi8vIFNjYWxpbmcgVmFyaWFibGVzXG4kZ29sZGVuOiAgICAgICAgICAgMS42MTg7XG4kbWlub3Itc2Vjb25kOiAgICAgMS4wNjc7XG4kbWFqb3Itc2Vjb25kOiAgICAgMS4xMjU7XG4kbWlub3ItdGhpcmQ6ICAgICAgMS4yO1xuJG1ham9yLXRoaXJkOiAgICAgIDEuMjU7XG4kcGVyZmVjdC1mb3VydGg6ICAgMS4zMzM7XG4kYXVnbWVudGVkLWZvdXJ0aDogMS40MTQ7XG4kcGVyZmVjdC1maWZ0aDogICAgMS41O1xuJG1pbm9yLXNpeHRoOiAgICAgIDEuNjtcbiRtYWpvci1zaXh0aDogICAgICAxLjY2NztcbiRtaW5vci1zZXZlbnRoOiAgICAxLjc3ODtcbiRtYWpvci1zZXZlbnRoOiAgICAxLjg3NTtcbiRvY3RhdmU6ICAgICAgICAgICAyO1xuJG1ham9yLXRlbnRoOiAgICAgIDIuNTtcbiRtYWpvci1lbGV2ZW50aDogICAyLjY2NztcbiRtYWpvci10d2VsZnRoOiAgICAzO1xuJGRvdWJsZS1vY3RhdmU6ICAgIDQ7XG5cbkBmdW5jdGlvbiBtb2R1bGFyLXNjYWxlKCR2YWx1ZSwgJGluY3JlbWVudCwgJHJhdGlvKSB7XG4gICR2MTogbnRoKCR2YWx1ZSwgMSk7XG4gICR2MjogbnRoKCR2YWx1ZSwgbGVuZ3RoKCR2YWx1ZSkpO1xuICAkdmFsdWU6ICR2MTtcblxuICAvLyBzY2FsZSAkdjIgdG8ganVzdCBhYm92ZSAkdjFcbiAgQHdoaWxlICR2MiA+ICR2MSB7XG4gICAgJHYyOiAoJHYyIC8gJHJhdGlvKTsgLy8gd2lsbCBiZSBvZmYtYnktMVxuICB9XG4gIEB3aGlsZSAkdjIgPCAkdjEge1xuICAgICR2MjogKCR2MiAqICRyYXRpbyk7IC8vIHdpbGwgZml4IG9mZi1ieS0xXG4gIH1cblxuICAvLyBjaGVjayBBRlRFUiBzY2FsaW5nICR2MiB0byBwcmV2ZW50IGRvdWJsZS1jb3VudGluZyBjb3JuZXItY2FzZVxuICAkZG91YmxlLXN0cmFuZGVkOiAkdjIgPiAkdjE7XG5cbiAgQGlmICRpbmNyZW1lbnQgPiAwIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRpbmNyZW1lbnQge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgKiAkcmF0aW8pID4gJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAqICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxICogJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRpbmNyZW1lbnQgPCAwIHtcbiAgICAvLyBhZGp1c3QgJHYyIHRvIGp1c3QgYmVsb3cgJHYxXG4gICAgQGlmICRkb3VibGUtc3RyYW5kZWQge1xuICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICB9XG5cbiAgICBAZm9yICRpIGZyb20gJGluY3JlbWVudCB0aHJvdWdoIC0xIHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxIC8gJHJhdGlvKSA8ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAvICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiLy8gQ29udmVydCBwaXhlbHMgdG8gZW1zXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIGVtKDEyKSB3aGVuIHRoZSBwYXJlbnQgaXMgMTZweFxuLy8gaWYgdGhlIHBhcmVudCBpcyBhbm90aGVyIHZhbHVlIHNheSAyNHB4IHdyaXRlIGVtKDEyLCAyNClcblxuQGZ1bmN0aW9uIGVtKCRweHZhbCwgJGJhc2U6ICRlbS1iYXNlKSB7XG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XG4gICAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XG4gIH1cbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xuICAgICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcbiAgfVxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxZW07XG59XG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byByZW1zXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIHJlbSgxMilcbi8vIEFzc3VtZXMgJGVtLWJhc2UgaXMgdGhlIGZvbnQtc2l6ZSBvZiA8aHRtbD5cblxuQGZ1bmN0aW9uIHJlbSgkcHh2YWwpIHtcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgfVxuXG4gICRiYXNlOiAkZW0tYmFzZTtcbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xuICAgICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcbiAgfVxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxcmVtO1xufVxuIiwiLy8gU3J0aXBzIHRoZSB1bml0cyBmcm9tIGEgdmFsdWUuIGUuZy4gMTJweCAtPiAxMlxuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdHMoJHZhbCkge1xuICBAcmV0dXJuICgkdmFsIC8gKCR2YWwgKiAwICsgMSkpO1xufVxuIiwiLy8gQWRkIHBlcmNlbnRhZ2Ugb2Ygd2hpdGUgdG8gYSBjb2xvclxuQGZ1bmN0aW9uIHRpbnQoJGNvbG9yLCAkcGVyY2VudCl7XG4gIEByZXR1cm4gbWl4KHdoaXRlLCAkY29sb3IsICRwZXJjZW50KTtcbn1cblxuLy8gQWRkIHBlcmNlbnRhZ2Ugb2YgYmxhY2sgdG8gYSBjb2xvclxuQGZ1bmN0aW9uIHNoYWRlKCRjb2xvciwgJHBlcmNlbnQpe1xuICBAcmV0dXJuIG1peChibGFjaywgJGNvbG9yLCAkcGVyY2VudCk7XG59XG4iLCIvLyBSZXR1cm4gdmVuZG9yLXByZWZpeGVkIHByb3BlcnR5IG5hbWVzIGlmIGFwcHJvcHJpYXRlXG4vLyBFeGFtcGxlOiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCh0cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kKSwgbW96KSAtPiAtbW96LXRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmRcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wcywgJHZlbmRvcjogZmFsc2UpIHtcblx0JG5ldy1wcm9wczogKCk7XG5cdFxuXHRAZWFjaCAkcHJvcCBpbiAkcHJvcHMge1xuXHRcdCRuZXctcHJvcHM6IGFwcGVuZCgkbmV3LXByb3BzLCB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUoJHByb3AsICR2ZW5kb3IpLCBjb21tYSk7XG5cdH1cblxuXHRAcmV0dXJuICRuZXctcHJvcHM7XG59XG5cbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUoJHByb3AsICR2ZW5kb3I6IGZhbHNlKSB7XG5cdC8vIHB1dCBvdGhlciBwcm9wZXJ0aWVzIHRoYXQgbmVlZCB0byBiZSBwcmVmaXhlZCBoZXJlIGFzd2VsbFxuXHRAaWYgJHZlbmRvciBhbmQgJHByb3AgPT0gdHJhbnNmb3JtIHtcblx0XHRAcmV0dXJuIHVucXVvdGUoJy0nKyR2ZW5kb3IrJy0nKyRwcm9wKTtcblx0fVxuXHRAZWxzZSB7XG5cdFx0QHJldHVybiAkcHJvcDtcblx0fVxufSIsIi8vIENvbnZlcnQgc2hvcnRoYW5kIHRvIHRoZSA0LXZhbHVlIHN5bnRheFxuXG5AZnVuY3Rpb24gdW5wYWNrKCRzaG9ydGhhbmQpIHtcbiAgQGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAxIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKTtcbiAgfVxuICBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMiB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMik7XG4gIH1cbiAgQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDMge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKSBudGgoJHNob3J0aGFuZCwgMykgbnRoKCRzaG9ydGhhbmQsIDIpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICRzaG9ydGhhbmQ7XG4gIH1cbn1cblxuIiwiLy8gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1hbmltYXRpb25zLyN0aGUtYW5pbWF0aW9uLW5hbWUtcHJvcGVydHktXG4vLyBFYWNoIG9mIHRoZXNlIG1peGlucyBzdXBwb3J0IGNvbW1hIHNlcGFyYXRlZCBsaXN0cyBvZiB2YWx1ZXMsIHdoaWNoIGFsbG93cyBkaWZmZXJlbnQgdHJhbnNpdGlvbnMgZm9yIGluZGl2aWR1YWwgcHJvcGVydGllcyB0byBiZSBkZXNjcmliZWQgaW4gYSBzaW5nbGUgc3R5bGUgcnVsZS4gRWFjaCB2YWx1ZSBpbiB0aGUgbGlzdCBjb3JyZXNwb25kcyB0byB0aGUgdmFsdWUgYXQgdGhhdCBzYW1lIHBvc2l0aW9uIGluIHRoZSBvdGhlciBwcm9wZXJ0aWVzLlxuXG4vLyBPZmZpY2lhbCBhbmltYXRpb24gc2hvcnRoYW5kIHByb3BlcnR5LlxuQG1peGluIGFuaW1hdGlvbiAoJGFuaW1hdGlvbnMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLCAkYW5pbWF0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gSW5kaXZpZHVhbCBBbmltYXRpb24gUHJvcGVydGllc1xuQG1peGluIGFuaW1hdGlvbi1uYW1lICgkbmFtZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLW5hbWUsICRuYW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLWR1cmF0aW9uICgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cblxuQG1peGluIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24gKCRtb3Rpb25zLi4uKSB7XG4vLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cblxuQG1peGluIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQgKCR2YWx1ZXMuLi4pIHtcbi8vIGluZmluaXRlIHwgPG51bWJlcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgJHZhbHVlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLWRpcmVjdGlvbiAoJGRpcmVjdGlvbnMuLi4pIHtcbi8vIG5vcm1hbCB8IGFsdGVybmF0ZVxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGlyZWN0aW9uLCAkZGlyZWN0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLXBsYXktc3RhdGUgKCRzdGF0ZXMuLi4pIHtcbi8vIHJ1bm5pbmcgfCBwYXVzZWRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXBsYXktc3RhdGUsICRzdGF0ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cblxuQG1peGluIGFuaW1hdGlvbi1kZWxheSAoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24tZmlsbC1tb2RlICgkbW9kZXMuLi4pIHtcbi8vIG5vbmUgfCBmb3J3YXJkcyB8IGJhY2t3YXJkcyB8IGJvdGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWZpbGwtbW9kZSwgJG1vZGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIGFwcGVhcmFuY2UgKCR2YWx1ZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhcHBlYXJhbmNlLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tmYWNlLXZpc2liaWxpdHkgbWl4aW5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBtaXhpbiBiYWNrZmFjZS12aXNpYmlsaXR5KCR2aXNpYmlsaXR5KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJhY2tmYWNlLXZpc2liaWxpdHksICR2aXNpYmlsaXR5LCB3ZWJraXQgc3BlYyk7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZ3JvdW5kIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZHMgdXNpbmcgc2hvcnRoYW5kXG4vLyBub3RhdGlvbi5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuQG1peGluIGJhY2tncm91bmQoJGJhY2tncm91bmRzLi4uKSB7XG4gICR3ZWJraXQtYmFja2dyb3VuZHM6ICgpO1xuICAkc3BlYy1iYWNrZ3JvdW5kczogKCk7XG5cbiAgQGVhY2ggJGJhY2tncm91bmQgaW4gJGJhY2tncm91bmRzIHtcbiAgICAkd2Via2l0LWJhY2tncm91bmQ6ICgpO1xuICAgICRzcGVjLWJhY2tncm91bmQ6ICgpO1xuICAgICRiYWNrZ3JvdW5kLXR5cGU6IHR5cGUtb2YoJGJhY2tncm91bmQpO1xuXG4gICAgQGlmICRiYWNrZ3JvdW5kLXR5cGUgPT0gc3RyaW5nIG9yIGxpc3Qge1xuICAgICAgJGJhY2tncm91bmQtc3RyOiBpZigkYmFja2dyb3VuZC10eXBlID09IGxpc3QsIG50aCgkYmFja2dyb3VuZCwgMSksICRiYWNrZ3JvdW5kKTtcblxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYmFja2dyb3VuZC1zdHIsIDAsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkYmFja2dyb3VuZC1zdHIsIDAsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICR3ZWJraXQtYmFja2dyb3VuZHM6IGFwcGVuZCgkd2Via2l0LWJhY2tncm91bmRzLCAkd2Via2l0LWJhY2tncm91bmQsIGNvbW1hKTtcbiAgICAkc3BlYy1iYWNrZ3JvdW5kczogICBhcHBlbmQoJHNwZWMtYmFja2dyb3VuZHMsICAgJHNwZWMtYmFja2dyb3VuZCwgICBjb21tYSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kOiAkd2Via2l0LWJhY2tncm91bmRzO1xuICBiYWNrZ3JvdW5kOiAkc3BlYy1iYWNrZ3JvdW5kcztcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tncm91bmQtaW1hZ2UgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kIGltYWdlcyB3aXRoXG4vLyBncmFkaWVudHMsIG9yIGZvciBzdHJpbmdpbmcgbXVsdGlwbGUgZ3JhZGllbnRzIHRvZ2V0aGVyLlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuXG5AbWl4aW4gYmFja2dyb3VuZC1pbWFnZSgkaW1hZ2VzLi4uKSB7XG4gICR3ZWJraXQtaW1hZ2VzOiAoKTtcbiAgJHNwZWMtaW1hZ2VzOiAoKTtcblxuICBAZWFjaCAkaW1hZ2UgaW4gJGltYWdlcyB7XG4gICAgJHdlYmtpdC1pbWFnZTogKCk7XG4gICAgJHNwZWMtaW1hZ2U6ICgpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRpbWFnZSkgPT0gc3RyaW5nKSB7XG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRpbWFnZSwgMCwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRpbWFnZSwgMCwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogJGltYWdlO1xuICAgICAgICAgICRzcGVjLWltYWdlOiAkaW1hZ2U7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xuICAgICAgICAkd2Via2l0LWltYWdlOiAgbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1pbWFnZTogICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAkd2Via2l0LWltYWdlczogYXBwZW5kKCR3ZWJraXQtaW1hZ2VzLCAkd2Via2l0LWltYWdlLCBjb21tYSk7XG4gICAgJHNwZWMtaW1hZ2VzOiAgIGFwcGVuZCgkc3BlYy1pbWFnZXMsICAgJHNwZWMtaW1hZ2UsICAgY29tbWEpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogJHdlYmtpdC1pbWFnZXM7XG4gIGJhY2tncm91bmQtaW1hZ2U6ICRzcGVjLWltYWdlcztcbn1cbiIsIkBtaXhpbiBib3JkZXItaW1hZ2UoJGJvcmRlcnMuLi4pIHtcbiAgJHdlYmtpdC1ib3JkZXJzOiAoKTtcbiAgJHNwZWMtYm9yZGVyczogKCk7XG5cbiAgQGVhY2ggJGJvcmRlciBpbiAkYm9yZGVycyB7XG4gICAgJHdlYmtpdC1ib3JkZXI6ICgpO1xuICAgICRzcGVjLWJvcmRlcjogKCk7XG4gICAgJGJvcmRlci10eXBlOiB0eXBlLW9mKCRib3JkZXIpO1xuXG4gICAgQGlmICRib3JkZXItdHlwZSA9PSBzdHJpbmcgb3IgbGlzdCB7XG4gICAgICAkYm9yZGVyLXN0cjogaWYoJGJvcmRlci10eXBlID09IGxpc3QsIG50aCgkYm9yZGVyLCAxKSwgJGJvcmRlcik7XG5cbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDAsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkYm9yZGVyLXN0ciwgMCwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAgICAgJHNwZWMtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAgICAgJHNwZWMtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICRib3JkZXI7XG4gICAgfVxuXG4gICAgJHdlYmtpdC1ib3JkZXJzOiBhcHBlbmQoJHdlYmtpdC1ib3JkZXJzLCAkd2Via2l0LWJvcmRlciwgY29tbWEpO1xuICAgICRzcGVjLWJvcmRlcnM6ICAgYXBwZW5kKCRzcGVjLWJvcmRlcnMsICAgJHNwZWMtYm9yZGVyLCAgIGNvbW1hKTtcbiAgfVxuXG4gIC13ZWJraXQtYm9yZGVyLWltYWdlOiAkd2Via2l0LWJvcmRlcnM7XG4gICAgICAgICAgYm9yZGVyLWltYWdlOiAkc3BlYy1ib3JkZXJzO1xuICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG59XG5cbi8vRXhhbXBsZXM6XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikgMjAgc3RyZXRjaCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpIHN0cmV0Y2gpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpIDIwIDMwIDQwIDUwIHN0cmV0Y2ggcm91bmQpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHJhZGlhbC1ncmFkaWVudCh0b3AsIGNvdmVyLCBvcmFuZ2UsIHllbGxvdywgb3JhbmdlKSk7XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBTaG9ydGhhbmQgQm9yZGVyLXJhZGl1cyBtaXhpbnNcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaWkpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cywgJHJhZGlpLCBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMsICRyYWRpaSwgc3BlYyk7XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJhZGl1cygkcmFkaWkpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cywgJHJhZGlpLCBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMsICRyYWRpaSwgc3BlYyk7XG59XG5cbkBtaXhpbiBib3JkZXItbGVmdC1yYWRpdXMoJHJhZGlpKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci10b3AtbGVmdC1yYWRpdXMsICRyYWRpaSwgc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMsICRyYWRpaSwgc3BlYyk7XG59XG5cbkBtaXhpbiBib3JkZXItcmlnaHQtcmFkaXVzKCRyYWRpaSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItdG9wLXJpZ2h0LXJhZGl1cywgJHJhZGlpLCBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMsICRyYWRpaSwgc3BlYyk7XG59XG4iLCJAbWl4aW4gYm94LXNpemluZyAoJGJveCkge1xuLy8gIGNvbnRlbnQtYm94IHwgYm9yZGVyLWJveCB8IGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXNpemluZywgJGJveCwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBjYWxjKCRwcm9wZXJ0eSwgJHZhbHVlKSB7XG4gICN7JHByb3BlcnR5fTogLXdlYmtpdC1jYWxjKCN7JHZhbHVlfSk7XG4gICN7JHByb3BlcnR5fTogICAgICAgICBjYWxjKCN7JHZhbHVlfSk7XG59XG4iLCJAbWl4aW4gY29sdW1ucygkYXJnOiBhdXRvKSB7XG4vLyA8Y29sdW1uLWNvdW50PiB8fCA8Y29sdW1uLXdpZHRoPlxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW5zLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCRpbnQ6IGF1dG8pIHtcbi8vIGF1dG8gfHwgaW50ZWdlclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tY291bnQsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCRsZW5ndGg6IG5vcm1hbCkge1xuLy8gbm9ybWFsIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZ2FwLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWZpbGwoJGFyZzogYXV0bykge1xuLy8gYXV0byB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWZpbGwsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZSgkYXJnKSB7XG4vLyA8Ym9yZGVyLXdpZHRoPiB8fCA8Ym9yZGVyLXN0eWxlPiB8fCA8Y29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtY29sb3IoJGNvbG9yKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLWNvbG9yLCAkY29sb3IsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS1zdHlsZSgkc3R5bGU6IG5vbmUpIHtcbi8vIG5vbmUgfCBoaWRkZW4gfCBkYXNoZWQgfCBkb3R0ZWQgfCBkb3VibGUgfCBncm9vdmUgfCBpbnNldCB8IGluc2V0IHwgb3V0c2V0IHwgcmlkZ2UgfCBzb2xpZFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtd2lkdGggKCR3aWR0aDogbm9uZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS13aWR0aCwgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXNwYW4oJGFyZzogbm9uZSkge1xuLy8gbm9uZSB8fCBhbGxcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXNwYW4sICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4td2lkdGgoJGxlbmd0aDogYXV0bykge1xuLy8gYXV0byB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXdpZHRoLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIGZpbHRlcigkZnVuY3Rpb246IG5vbmUpIHtcbiAgLy8gPGZpbHRlci1mdW5jdGlvbj4gWzxmaWx0ZXItZnVuY3Rpb25dKiB8IG5vbmVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmlsdGVyLCAkZnVuY3Rpb24sIHdlYmtpdCBzcGVjKTtcbn1cblxuIiwiLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG5cbi8vIEN1c3RvbSBzaG9ydGhhbmQgbm90YXRpb24gZm9yIGZsZXhib3hcbkBtaXhpbiBib3goJG9yaWVudDogaW5saW5lLWF4aXMsICRwYWNrOiBzdGFydCwgJGFsaWduOiBzdHJldGNoKSB7XG4gIEBpbmNsdWRlIGRpc3BsYXktYm94O1xuICBAaW5jbHVkZSBib3gtb3JpZW50KCRvcmllbnQpO1xuICBAaW5jbHVkZSBib3gtcGFjaygkcGFjayk7XG4gIEBpbmNsdWRlIGJveC1hbGlnbigkYWxpZ24pO1xufVxuXG5AbWl4aW4gZGlzcGxheS1ib3gge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1vei1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyBJRSAxMFxuICBkaXNwbGF5OiBib3g7XG59XG5cbkBtaXhpbiBib3gtb3JpZW50KCRvcmllbnQ6IGlubGluZS1heGlzKSB7XG4vLyBob3Jpem9udGFsfHZlcnRpY2FsfGlubGluZS1heGlzfGJsb2NrLWF4aXN8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkb3JpZW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LXBhY2soJHBhY2s6IHN0YXJ0KSB7XG4vLyBzdGFydHxlbmR8Y2VudGVyfGp1c3RpZnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRwYWNrLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wYWNrOiAkcGFjazsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1hbGlnbigkYWxpZ246IHN0cmV0Y2gpIHtcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8YmFzZWxpbmV8c3RyZXRjaFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbGlnbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtYWxpZ246ICRhbGlnbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogbm9ybWFsKSB7XG4vLyBub3JtYWx8cmV2ZXJzZXxpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1saW5lcygkbGluZXM6IHNpbmdsZSkge1xuLy8gc2luZ2xlfG11bHRpcGxlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGxpbmVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LW9yZGluYWwtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleCgkdmFsdWU6IDAuMCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleDogJHZhbHVlOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG4vLyBVbmlmaWVkIGF0dHJpYnV0ZXMgZm9yIDIwMDksIDIwMTEsIGFuZCAyMDEyIGZsYXZvdXJzLlxuXG4vLyAyMDA5IC0gZGlzcGxheSAoYm94IHwgaW5saW5lLWJveClcbi8vIDIwMTEgLSBkaXNwbGF5IChmbGV4Ym94IHwgaW5saW5lLWZsZXhib3gpXG4vLyAyMDEyIC0gZGlzcGxheSAoZmxleCB8IGlubGluZS1mbGV4KVxuQG1peGluIGRpc3BsYXkoJHZhbHVlKSB7XG4vLyAgZmxleCB8IGlubGluZS1mbGV4XG4gICAgQGlmICR2YWx1ZSA9PSBcImZsZXhcIiB7XG4gICAgICAgIC8vIDIwMDlcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgIGRpc3BsYXk6IC1tb3otYm94O1xuICAgICAgICBkaXNwbGF5OiBib3g7XG5cbiAgICAgICAgLy8gMjAxMlxuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgICAgIGRpc3BsYXk6IC1tb3otZmxleDtcbiAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIDIwMTEgKElFIDEwKVxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwiaW5saW5lLWZsZXhcIiB7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcbiAgICAgICAgZGlzcGxheTogLW1vei1pbmxpbmUtYm94O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYm94O1xuXG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XG4gICAgICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWZsZXg7XG4gICAgICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgICBkaXNwbGF5OiAkdmFsdWU7XG4gICAgfVxufVxuXG4vLyAyMDA5IC0gYm94LWZsZXggKGludGVnZXIpXG4vLyAyMDExIC0gZmxleCAoZGVjaW1hbCB8IHdpZHRoIGRlY2ltYWwpXG4vLyAyMDEyIC0gZmxleCAoaW50ZWdlciBpbnRlZ2VyIHdpZHRoKVxuQG1peGluIGZsZXgoJHZhbHVlKSB7XG5cbiAgICAvLyBHcmFiIGZsZXgtZ3JvdyBmb3Igb2xkZXIgYnJvd3NlcnMuXG4gICAgJGZsZXgtZ3JvdzogbnRoKCR2YWx1ZSwgMSk7XG5cbiAgICAvLyAyMDA5XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICRmbGV4LWdyb3csIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDExIChJRSAxMCksIDIwMTJcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JpZW50ICggaG9yaXpvbnRhbCB8IHZlcnRpY2FsIHwgaW5saW5lLWF4aXMgfCBibG9jay1heGlzKVxuLy8gICAgICAtIGJveC1kaXJlY3Rpb24gKG5vcm1hbCB8IHJldmVyc2UpICAgICAgXG4vLyAyMDExIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlOiByb3cpIHtcblxuICAgIC8vIEFsdCB2YWx1ZXMuXG4gICAgJHZhbHVlLTIwMDk6ICR2YWx1ZTtcbiAgICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICAgICRkaXJlY3Rpb246IFwibm9ybWFsXCI7XG5cbiAgICBAaWYgJHZhbHVlID09IHJvdyB7XG4gICAgICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwicm93LXJldmVyc2VcIiB7XG4gICAgICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICAgICAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IGNvbHVtbiB7XG4gICAgICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcImNvbHVtbi1yZXZlcnNlXCIge1xuICAgICAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gICAgICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gICAgfVxuXG4gICAgLy8gMjAwOVxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICR2YWx1ZS0yMDA5LCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIEBpZiAkZGlyZWN0aW9uID09IFwicmV2ZXJzZVwiIHtcbiAgICAgICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1kaXJlY3Rpb24sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAgIC8vIDIwMTEgKElFIDEwKVxuICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWxpbmVzIChzaW5nbGUgfCBtdWx0aXBsZSlcbi8vIDIwMTEgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWU6IG5vd3JhcCkge1xuXG4gICAgLy8gQWx0IHZhbHVlcy5cbiAgICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gICAgQGlmICR2YWx1ZSA9PSBub3dyYXAge1xuICAgICAgICAkYWx0LXZhbHVlOiBzaW5nbGU7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gd3JhcCB7XG4gICAgICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwid3JhcC1yZXZlcnNlXCIge1xuICAgICAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC13cmFwLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTEgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTIgLSBmbGV4LWZsb3cgKGZsZXgtZGlyZWN0aW9uIHx8IGZsZXgtd3JhcClcbkBtaXhpbiBmbGV4LWZsb3coJHZhbHVlKSB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1mbG93LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JkaW5hbC1ncm91cCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4LW9yZGVyIChpbnRlZ2VyKVxuLy8gMjAxMiAtIG9yZGVyIChpbnRlZ2VyKVxuQG1peGluIG9yZGVyKCRpbnQ6IDApIHtcbiAgICAvLyAyMDA5XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIob3JkZXIsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDExIChJRSAxMClcbiAgICAtbXMtZmxleC1vcmRlcjogJGludDtcbn1cblxuLy8gMjAxMiAtIGZsZXgtZ3JvdyAobnVtYmVyKVxuQG1peGluIGZsZXgtZ3JvdygkbnVtYmVyOiAwKSB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1ncm93LCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1zaHJpbmsgKG51bWJlcilcbkBtaXhpbiBmbGV4LXNocmluaygkbnVtYmVyOiAxKSB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1zaHJpbmssICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgLW1zLWZsZXgtbmVnYXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWJhc2lzIChudW1iZXIpXG5AbWl4aW4gZmxleC1iYXNpcygkd2lkdGg6IGF1dG8pIHtcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWJhc2lzLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6ICR3aWR0aDtcbn1cblxuLy8gMjAwOSAtIGJveC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDExIC0gZmxleC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDEyIC0ganVzdGlmeS1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kKVxuQG1peGluIGp1c3RpZnktY29udGVudCAoJHZhbHVlOiBmbGV4LXN0YXJ0KSB7XG5cbiAgICAvLyBBbHQgdmFsdWVzLlxuICAgICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogZW5kO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAgICAgJGFsdC12YWx1ZToganVzdGlmeTtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogY2VudGVyO1xuICAgIH1cblxuICAgIC8vIDIwMDlcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAgIC8vIDIwMTJcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihqdXN0aWZ5LWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gICAgLy8gMjAxMSAoSUUgMTApXG4gICAgLW1zLWZsZXgtcGFjazogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDExIC0gZmxleC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24taXRlbXMgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1pdGVtcygkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAgICRhbHQtdmFsdWU6ICR2YWx1ZTtcblxuICAgIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgICB9ICAgIFxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogZW5kO1xuICAgIH1cblxuICAgIC8vIDIwMDlcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24taXRlbXMsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuICAgIFxuICAgIC8vIDIwMTEgKElFIDEwKVxuICAgIC1tcy1mbGV4LWFsaWduOiAkYWx0LXZhbHVlOyAgICBcbn1cblxuLy8gMjAxMSAtIGZsZXgtaXRlbS1hbGlnbiAoYXV0byB8IHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLXNlbGYgKGF1dG8gfCBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tc2VsZigkdmFsdWU6IGF1dG8pIHtcblxuICAgICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gICAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgICB9ICAgIFxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAgICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgICB9XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tc2VsZiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMSAoSUUgMTApXG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogJHZhbHVlLTIwMTE7XG59XG5cbi8vIDIwMTEgLSBmbGV4LWxpbmUtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5IHwgZGlzdHJpYnV0ZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZCB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tY29udGVudCgkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAgICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gICAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgICB9ICAgIFxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAgICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgICAgICR2YWx1ZS0yMDExOiBqdXN0aWZ5O1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICAgICAkdmFsdWUtMjAxMTogZGlzdHJpYnV0ZTtcbiAgICB9XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMSAoSUUgMTApXG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiAkdmFsdWUtMjAxMTtcbn1cblxuIiwiLy8gT3JkZXIgb2YgdGhlIGluY2x1ZGVzIG1hdHRlcnMsIGFuZCBpdCBpczogbm9ybWFsLCBib2xkLCBpdGFsaWMsIGJvbGQraXRhbGljLlxuXG5AbWl4aW4gZm9udC1mYWNlKCRmb250LWZhbWlseSwgJGZpbGUtcGF0aCwgJHdlaWdodDogbm9ybWFsLCAkc3R5bGU6IG5vcm1hbCwgJGFzc2V0LXBpcGVsaW5lOiBmYWxzZSApIHtcbiAgQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogJHdlaWdodDtcbiAgICBmb250LXN0eWxlOiAkc3R5bGU7XG5cbiAgICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xuICAgICAgc3JjOiBmb250LXVybCgnI3skZmlsZS1wYXRofS5lb3QnKTtcbiAgICAgIHNyYzogZm9udC11cmwoJyN7JGZpbGUtcGF0aH0uZW90PyNpZWZpeCcpICAgICAgICAgIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICAgICAgZm9udC11cmwoJyN7JGZpbGUtcGF0aH0ud29mZicpICAgICAgICAgICAgICAgIGZvcm1hdCgnd29mZicpLFxuICAgICAgICAgICBmb250LXVybCgnI3skZmlsZS1wYXRofS50dGYnKSAgICAgICAgICAgICAgICAgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICAgICBmb250LXVybCgnI3skZmlsZS1wYXRofS5zdmcjI3skZm9udC1mYW1pbHl9JykgZm9ybWF0KCdzdmcnKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHNyYzogdXJsKCcjeyRmaWxlLXBhdGh9LmVvdCcpO1xuICAgICAgc3JjOiB1cmwoJyN7JGZpbGUtcGF0aH0uZW90PyNpZWZpeCcpICAgICAgICAgICAgICAgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgICB1cmwoJyN7JGZpbGUtcGF0aH0ud29mZicpICAgICAgICAgICAgICAgICAgICAgZm9ybWF0KCd3b2ZmJyksXG4gICAgICAgICAgIHVybCgnI3skZmlsZS1wYXRofS50dGYnKSAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICAgICAgIHVybCgnI3skZmlsZS1wYXRofS5zdmcjI3skZm9udC1mYW1pbHl9JykgICAgICBmb3JtYXQoJ3N2ZycpO1xuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIGh5cGhlbnMoJGh5cGhlbmF0aW9uOiBub25lKSB7XG4vLyBub25lIHwgbWFudWFsIHwgYXV0b1xuICBAaW5jbHVkZSBwcmVmaXhlcihoeXBoZW5zLCAkaHlwaGVuYXRpb24sIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59IiwiLy8gSGlEUEkgbWl4aW4uIERlZmF1bHQgdmFsdWUgc2V0IHRvIDEuMyB0byB0YXJnZXQgR29vZ2xlIE5leHVzIDcgKGh0dHA6Ly9iamFuZ28uY29tL2FydGljbGVzL21pbi1kZXZpY2UtcGl4ZWwtcmF0aW8vKVxuQG1peGluIGhpZHBpKCRyYXRpbzogMS4zKSB7XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gIG9ubHkgc2NyZWVuIGFuZCAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogI3skcmF0aW99LzEpLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAje3JvdW5kKCRyYXRpbyo5Nil9ZHBpKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogI3skcmF0aW99ZHBweCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCJAbWl4aW4gaW1hZ2UtcmVuZGVyaW5nICgkbW9kZTphdXRvKSB7XG5cbiAgQGlmICgkbW9kZSA9PSBjcmlzcC1lZGdlcykge1xuICAgICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogbmVhcmVzdC1uZWlnaGJvcjsgLy8gSUU4K1xuICAgICAgaW1hZ2UtcmVuZGVyaW5nOiAtbW96LWNyaXNwLWVkZ2VzO1xuICAgICAgaW1hZ2UtcmVuZGVyaW5nOiAtby1jcmlzcC1lZGdlcztcbiAgICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDtcbiAgICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgICBpbWFnZS1yZW5kZXJpbmc6ICRtb2RlO1xuICB9XG59XG4iLCIvLyBBZGRzIGtleWZyYW1lcyBibG9ja3MgZm9yIHN1cHBvcnRlZCBwcmVmaXhlcywgcmVtb3ZpbmcgcmVkdW5kYW50IHByZWZpeGVzIGluIHRoZSBibG9jaydzIGNvbnRlbnRcbkBtaXhpbiBrZXlmcmFtZXMoJG5hbWUpIHtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0OiAgICAkcHJlZml4LWZvci13ZWJraXQ7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGE6ICAgJHByZWZpeC1mb3ItbW96aWxsYTtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0OiAkcHJlZml4LWZvci1taWNyb3NvZnQ7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhOiAgICAgJHByZWZpeC1mb3Itb3BlcmE7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWM6ICAgICAgJHByZWZpeC1mb3Itc3BlYztcblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0IHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XG4gICAgJHByZWZpeC1mb3Itd2Via2l0OiB0cnVlICFnbG9iYWw7XG4gICAgQC13ZWJraXQta2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLW1vemlsbGE6IHRydWUgIWdsb2JhbDtcbiAgICBALW1vei1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQgICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYSAgICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjICAgICAgIWdsb2JhbDtcblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyB7XG4gICAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBsaW5lYXItZ3JhZGllbnQoJHBvcywgJEcxLCAkRzI6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRHMzogbnVsbCwgJEc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkRzU6IG51bGwsICRHNjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJEc3OiBudWxsLCAkRzg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRHOTogbnVsbCwgJEcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XG4gIC8vIERldGVjdCB3aGF0IHR5cGUgb2YgdmFsdWUgZXhpc3RzIGluICRwb3NcbiAgJHBvcy10eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XG4gICRwb3Mtc3BlYzogbnVsbDtcbiAgJHBvcy1kZWdyZWU6IG51bGw7XG5cbiAgLy8gSWYgJHBvcyBpcyBtaXNzaW5nIGZyb20gbWl4aW4sIHJlYXNzaWduIHZhcnMgYW5kIGFkZCBkZWZhdWx0IHBvc2l0aW9uXG4gIEBpZiAoJHBvcy10eXBlID09IGNvbG9yKSBvciAobnRoKCRwb3MsIDEpID09IFwidHJhbnNwYXJlbnRcIikgIHtcbiAgICAkRzEwOiAkRzk7ICRHOTogJEc4OyAkRzg6ICRHNzsgJEc3OiAkRzY7ICRHNjogJEc1O1xuICAgICAkRzU6ICRHNDsgJEc0OiAkRzM7ICRHMzogJEcyOyAkRzI6ICRHMTsgJEcxOiAkcG9zO1xuICAgICAkcG9zOiBudWxsO1xuICB9XG5cbiAgQGlmICRwb3Mge1xuICAgICRwb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKTtcbiAgICAkcG9zLWRlZ3JlZTogbnRoKCRwb3NpdGlvbnMsIDEpO1xuICAgICRwb3Mtc3BlYzogICBudGgoJHBvc2l0aW9ucywgMik7XG4gIH1cblxuICAkZnVsbDogJEcxLCAkRzIsICRHMywgJEc0LCAkRzUsICRHNiwgJEc3LCAkRzgsICRHOSwgJEcxMDtcblxuICAvLyBTZXQgJEcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXG4gICRmYWxsYmFjay1jb2xvcjogbnRoKCRHMSwgMSk7XG5cbiAgLy8gSWYgJGZhbGxiYWNrIGlzIGEgY29sb3IgdXNlIHRoYXQgY29sb3IgYXMgdGhlIGZhbGxiYWNrIGNvbG9yXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGZhbGxiYWNrLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkcG9zLWRlZ3JlZSAkZnVsbCk7IC8vIFNhZmFyaSA1LjErLCBDaHJvbWVcbiAgYmFja2dyb3VuZC1pbWFnZTogdW5xdW90ZShcImxpbmVhci1ncmFkaWVudCgjeyRwb3Mtc3BlY30jeyRmdWxsfSlcIik7XG59XG4iLCJAbWl4aW4gcGVyc3BlY3RpdmUoJGRlcHRoOiBub25lKSB7XG4gIC8vIG5vbmUgfCA8bGVuZ3RoPlxuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZSwgJGRlcHRoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gcGVyc3BlY3RpdmUtb3JpZ2luKCR2YWx1ZTogNTAlIDUwJSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZS1vcmlnaW4sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIi8vIFJlcXVpcmVzIFNhc3MgMy4xK1xuQG1peGluIHJhZGlhbC1ncmFkaWVudCgkRzEsICAgICAgICAkRzIsXG4gICAgICAgICAgICAgICAgICAgICAgICRHMzogbnVsbCwgJEc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkRzU6IG51bGwsICRHNjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJEc3OiBudWxsLCAkRzg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRHOTogbnVsbCwgJEcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJHBvczogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJHNoYXBlLXNpemU6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuXG4gICRkYXRhOiBfcmFkaWFsLWFyZy1wYXJzZXIoJEcxLCAkRzIsICRwb3MsICRzaGFwZS1zaXplKTtcbiAgJEcxOiAgbnRoKCRkYXRhLCAxKTtcbiAgJEcyOiAgbnRoKCRkYXRhLCAyKTtcbiAgJHBvczogbnRoKCRkYXRhLCAzKTtcbiAgJHNoYXBlLXNpemU6IG50aCgkZGF0YSwgNCk7XG5cbiAgJGZ1bGw6ICRHMSwgJEcyLCAkRzMsICRHNCwgJEc1LCAkRzYsICRHNywgJEc4LCAkRzksICRHMTA7XG5cbiAgLy8gU3RyaXAgZGVwcmVjYXRlZCBjb3Zlci9jb250YWluIGZvciBzcGVjXG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcblxuICAvLyBTZXQgJEcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXG4gICRmaXJzdC1jb2xvcjogbnRoKCRmdWxsLCAxKTtcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGZpcnN0LWNvbG9yLCAxKTtcblxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcbiAgfVxuXG4gIC8vIEFkZCBDb21tYXMgYW5kIHNwYWNlc1xuICAkc2hhcGUtc2l6ZTogaWYoJHNoYXBlLXNpemUsICcjeyRzaGFwZS1zaXplfSwgJywgbnVsbCk7XG4gICRwb3M6ICAgICAgICBpZigkcG9zLCAnI3skcG9zfSwgJywgbnVsbCk7XG4gICRwb3Mtc3BlYzogICBpZigkcG9zLCAnYXQgI3skcG9zfScsIG51bGwpO1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBpZigoJHNoYXBlLXNpemUtc3BlYyAhPSAnICcpIGFuZCAoJHBvcyA9PSBudWxsKSwgJyN7JHNoYXBlLXNpemUtc3BlY30sICcsICcjeyRzaGFwZS1zaXplLXNwZWN9ICcpO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICAkZmFsbGJhY2stY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KHVucXVvdGUoI3skcG9zfSN7JHNoYXBlLXNpemV9I3skZnVsbH0pKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdW5xdW90ZShcInJhZGlhbC1ncmFkaWVudCgjeyRzaGFwZS1zaXplLXNwZWN9I3skcG9zLXNwZWN9I3skZnVsbH0pXCIpO1xufVxuIiwiQG1peGluIHRyYW5zZm9ybSgkcHJvcGVydHk6IG5vbmUpIHtcbi8vICBub25lIHwgPHRyYW5zZm9ybS1mdW5jdGlvbj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCAkcHJvcGVydHksIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zZm9ybS1vcmlnaW4oJGF4ZXM6IDUwJSkge1xuLy8geC1heGlzIC0gbGVmdCB8IGNlbnRlciB8IHJpZ2h0ICB8IGxlbmd0aCB8ICVcbi8vIHktYXhpcyAtIHRvcCAgfCBjZW50ZXIgfCBib3R0b20gfCBsZW5ndGggfCAlXG4vLyB6LWF4aXMgLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1vcmlnaW4sICRheGVzLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tc3R5bGUgKCRzdHlsZTogZmxhdCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuIiwiLy8gU2hvcnRoYW5kIG1peGluLiBTdXBwb3J0cyBtdWx0aXBsZSBwYXJlbnRoZXNlcy1kZWxpbWluYXRlZCB2YWx1ZXMgZm9yIGVhY2ggdmFyaWFibGUuXG4vLyBFeGFtcGxlOiBAaW5jbHVkZSB0cmFuc2l0aW9uIChhbGwgMnMgZWFzZS1pbi1vdXQpO1xuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbiAob3BhY2l0eSAxcyBlYXNlLWluIDJzLCB3aWR0aCAycyBlYXNlLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLXByb3BlcnR5ICh0cmFuc2Zvcm0sIG9wYWNpdHkpO1xuXG5AbWl4aW4gdHJhbnNpdGlvbiAoJHByb3BlcnRpZXMuLi4pIHtcbiAgLy8gRml4IGZvciB2ZW5kb3ItcHJlZml4IHRyYW5zZm9ybSBwcm9wZXJ0eVxuICAkbmVlZHMtcHJlZml4ZXM6IGZhbHNlO1xuICAkd2Via2l0OiAoKTtcbiAgJG1vejogKCk7XG4gICRzcGVjOiAoKTtcblxuICAvLyBDcmVhdGUgbGlzdHMgZm9yIHZlbmRvci1wcmVmaXhlZCB0cmFuc2Zvcm1cbiAgQGVhY2ggJGxpc3QgaW4gJHByb3BlcnRpZXMge1xuICAgIEBpZiBudGgoJGxpc3QsIDEpID09IFwidHJhbnNmb3JtXCIge1xuICAgICAgJG5lZWRzLXByZWZpeGVzOiB0cnVlO1xuICAgICAgJGxpc3QxOiAtd2Via2l0LXRyYW5zZm9ybTtcbiAgICAgICRsaXN0MjogLW1vei10cmFuc2Zvcm07XG4gICAgICAkbGlzdDM6ICgpO1xuXG4gICAgICBAZWFjaCAkdmFyIGluICRsaXN0IHtcbiAgICAgICAgJGxpc3QzOiBqb2luKCRsaXN0MywgJHZhcik7XG5cbiAgICAgICAgQGlmICR2YXIgIT0gXCJ0cmFuc2Zvcm1cIiB7XG4gICAgICAgICAgJGxpc3QxOiBqb2luKCRsaXN0MSwgJHZhcik7XG4gICAgICAgICAgJGxpc3QyOiBqb2luKCRsaXN0MiwgJHZhcik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0MSk7XG4gICAgICAgICAkbW96OiBhcHBlbmQoJG1veiwgICAgJGxpc3QyKTtcbiAgICAgICAgJHNwZWM6IGFwcGVuZCgkc3BlYywgICAkbGlzdDMpO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSBsaXN0cyBmb3Igbm9uLXByZWZpeGVkIHRyYW5zaXRpb24gcHJvcGVydGllc1xuICAgIEBlbHNlIHtcbiAgICAgICR3ZWJraXQ6ICBhcHBlbmQoJHdlYmtpdCwgJGxpc3QsIGNvbW1hKTtcbiAgICAgICRtb3o6ICAgICBhcHBlbmQoJG1veiwgICAgJGxpc3QsIGNvbW1hKTtcbiAgICAgICRzcGVjOiAgICBhcHBlbmQoJHNwZWMsICAgJGxpc3QsIGNvbW1hKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJG5lZWRzLXByZWZpeGVzIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR3ZWJraXQ7XG4gICAgICAgLW1vei10cmFuc2l0aW9uOiAkbW96O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogJHNwZWM7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiBsZW5ndGgoJHByb3BlcnRpZXMpID49IDEge1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJHByb3BlcnRpZXM6IGFsbCAwLjE1cyBlYXNlLW91dCAwcztcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1wcm9wZXJ0eSAoJHByb3BlcnRpZXMuLi4pIHtcbiAgIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgJ3dlYmtpdCcpO1xuICAgICAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCAnbW96Jyk7XG4gICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIGZhbHNlKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tZHVyYXRpb24gKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiAoJG1vdGlvbnMuLi4pIHtcbi8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dCB8IGN1YmljLWJlemllcigpXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tZGVsYXkgKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gdXNlci1zZWxlY3QoJGFyZzogbm9uZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcih1c2VyLXNlbGVjdCwgJGFyZywgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICRwbGFjZWhvbGRlcnM6IFwiOi13ZWJraXQtaW5wdXRcIiBcIjotbW96XCIgXCItbW96XCIgXCItbXMtaW5wdXRcIjtcbiAgQGVhY2ggJHBsYWNlaG9sZGVyIGluICRwbGFjZWhvbGRlcnMge1xuICAgICY6I3skcGxhY2Vob2xkZXJ9LXBsYWNlaG9sZGVyIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIGJ1dHRvbiAoJHN0eWxlOiBzaW1wbGUsICRiYXNlLWNvbG9yOiAjNDI5NGYwLCAkdGV4dC1zaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xuICAgICRiYXNlLWNvbG9yOiAjNDI5NGYwO1xuXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xuICAgICRzdHlsZTogc2ltcGxlO1xuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICRiYXNlLWNvbG9yO1xuICAgICR0ZXh0LXNpemU6ICRzdHlsZTtcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSAjNDI5NGYwIHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjU7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgfVxufVxuXG5cbi8vIFNlbGVjdG9yIFN0eWxlIEJ1dHRvblxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQG1peGluIGJ1dHRvbnN0eWxlKCR0eXBlLCAkYi1jb2xvciwgJHQtc2l6ZSwgJHBhZCkge1xuICAvLyBHcmF5c2NhbGUgYnV0dG9uXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gc2hpbnkgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBwaWxsIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBmbGF0IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIC8vIENvbG9yZWQgYnV0dG9uXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUge1xuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gc2hpbnkge1xuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBwaWxsIHtcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBmbGF0IHtcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cbn1cblxuXG4vLyBTaW1wbGUgQnV0dG9uXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AbWl4aW4gc2ltcGxlKCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xNCUpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTglLCAgJGxpZ2h0bmVzczogIDE1JSk7XG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTElKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICAxNSUsICRsaWdodG5lc3M6IC0xOCUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc3RvcC1ncmFkaWVudDogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50KTtcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XG4gIH1cblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvciwgJHN0b3AtZ3JhZGllbnQpO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMCAkdGV4dC1zaGFkb3c7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcbiAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTclLCAkbGlnaHRuZXNzOiAgNSUpO1xuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOCUsICRsaWdodG5lc3M6IC0xNCUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1ob3Zlcik7XG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcbiAgICB9XG5cbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRib3JkZXItYWN0aXZlOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA5JSwgJGxpZ2h0bmVzczogLTE0JSk7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDclLCAkbGlnaHRuZXNzOiAtMTclKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWFjdGl2ZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZSwgaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuXG4vLyBTaGlueSBCdXR0b25cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBtaXhpbiBzaGlueSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXI6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTcsICRncmVlbjogLTExMSwgJGJsdWU6IC04MSk7XG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMjYsICRncmVlbjogLTEyNywgJGJsdWU6IC0xMjIpO1xuICAkZm91cnRoLXN0b3A6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNzksICAkZ3JlZW46IC03MCwgICRibHVlOiAtNDYpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAgMzcsICAkZ3JlZW46ICAyOSwgICRibHVlOiAgMTIpO1xuICAkc2Vjb25kLXN0b3A6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNTYsICAkZ3JlZW46IC01MCwgICRibHVlOiAtMzMpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTQwLCAkZ3JlZW46IC0xNDEsICRibHVlOiAtMTE0KTtcbiAgJHRoaXJkLXN0b3A6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTg2LCAgJGdyZWVuOiAtNzUsICAkYmx1ZTogLTQ4KTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xuICAgICRib3JkZXItYm90dG9tOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICRmb3VydGgtc3RvcDogICBncmF5c2NhbGUoJGZvdXJ0aC1zdG9wKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzZWNvbmQtc3RvcDogICBncmF5c2NhbGUoJHNlY29uZC1zdG9wKTtcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XG4gICAgJHRoaXJkLXN0b3A6ICAgIGdyYXlzY2FsZSgkdGhpcmQtc3RvcCk7XG4gIH1cblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG9wLCAkYmFzZS1jb2xvciAwJSwgJHNlY29uZC1zdG9wIDUwJSwgJHRoaXJkLXN0b3AgNTAlLCAkZm91cnRoLXN0b3AgMTAwJSk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTMsICRncmVlbjogLTE1LCAkYmx1ZTogLTE4KTtcbiAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTY2LCAkZ3JlZW46IC02MiwgJGJsdWU6IC01MSk7XG4gICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC05MywgJGdyZWVuOiAtODUsICRibHVlOiAtNjYpO1xuICAgICRmb3VydGgtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICRncmVlbjogLTgwLCAkYmx1ZTogLTYzKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJGZpcnN0LXN0b3AtaG92ZXIpO1xuICAgICAgJHNlY29uZC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJHNlY29uZC1zdG9wLWhvdmVyKTtcbiAgICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wLWhvdmVyKTtcbiAgICAgICRmb3VydGgtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRmb3VydGgtc3RvcC1ob3Zlcik7XG4gICAgfVxuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRmaXJzdC1zdG9wLWhvdmVyICAwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2Vjb25kLXN0b3AtaG92ZXIgNTAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlyZC1zdG9wLWhvdmVyICA1MCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyIDEwMCUpO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTEsICRncmVlbjogLTExNiwgJGJsdWU6IC0xMjIpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMjBweCAwICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cblxuLy8gUGlsbCBCdXR0b25cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBtaXhpbiBwaWxsKCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtMTElLCAkbGlnaHRuZXNzOiAtMjYlKTtcbiAgJGJvcmRlci1zaWRlczogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDQsICRzYXR1cmF0aW9uOiAtMjElLCAkbGlnaHRuZXNzOiAtMjElKTtcbiAgJGJvcmRlci10b3A6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMzAlLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMSUsICAkbGlnaHRuZXNzOiAgNyUpO1xuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246ICAxNCUsICRsaWdodG5lc3M6IC0xMCUpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNSwgJHNhdHVyYXRpb246IC0xOSUsICRsaWdodG5lc3M6IC0xNSUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXItYm90dG9tOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICRib3JkZXItc2lkZXM6ICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XG4gICAgJGJvcmRlci10b3A6ICAgIGdyYXlzY2FsZSgkYm9yZGVyLXRvcCk7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc3RvcC1ncmFkaWVudDogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50KTtcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XG4gIH1cblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLXRvcDtcbiAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3c7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaWdodG5lc3M6IC00LjUlKTtcbiAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246ICAxMy41JSwgJGxpZ2h0bmVzczogLTMyJSk7XG4gICAgJGJvcmRlci1zaWRlczogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDQsICRzYXR1cmF0aW9uOiAtMiUsICAgICRsaWdodG5lc3M6IC0yNyUpO1xuICAgICRib3JkZXItdG9wOiAgICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTE3JSwgICAkbGlnaHRuZXNzOiAtMjElKTtcbiAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgJHNhdHVyYXRpb246IC0xJSwgICAgJGxpZ2h0bmVzczogIDMlKTtcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC00JSwgICAgJGxpZ2h0bmVzczogLTE1LjUlKTtcbiAgICAkdGV4dC1zaGFkb3ctaG92ZXI6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNSwgJHNhdHVyYXRpb246IC01JSwgICAgJGxpZ2h0bmVzczogLTIyJSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgICAgJGJvcmRlci1ib3R0b206ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xuICAgICAgJGJvcmRlci10b3A6ICAgICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLXRvcCk7XG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG4gICAgICAkdGV4dC1zaGFkb3ctaG92ZXI6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdy1ob3Zlcik7XG4gICAgfVxuXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWhvdmVyO1xuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDQsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0xMCUpO1xuICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA2LCAgJHNhdHVyYXRpb246IC0yLjUlLCAkbGlnaHRuZXNzOiAtMzAlKTtcbiAgICAkYm9yZGVyLWJvdHRvbS1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogMTEsICRzYXR1cmF0aW9uOiAgNiUsICAgJGxpZ2h0bmVzczogLTMxJSk7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDksICAkc2F0dXJhdGlvbjogIDIlLCAgICRsaWdodG5lc3M6IC0yMS41JSk7XG4gICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDUsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0yMS41JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgZ3JheXNjYWxlKCRhY3RpdmUtY29sb3IpO1xuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xuICAgICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20tYWN0aXZlKTtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQ6ICRhY3RpdmUtY29sb3I7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tLWFjdGl2ZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IDNweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cblxuXG4vLyBGbGF0IEJ1dHRvblxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQG1peGluIGZsYXQoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZzogN3B4IDE4cHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpe1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA0JSwgJGxpZ2h0bmVzczogNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJhc2UtY29sb3ItYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNCUsICRsaWdodG5lc3M6IC01JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWFjdGl2ZTogZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3ItYWN0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuIiwiLy8gTW9kZXJuIG1pY3JvIGNsZWFyZml4IHByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGNvbnRhaW4gZmxvYXRzIHdpdGhvdXQgYWRkaW5nIGFkZGl0aW9uYWwgbWFya3VwLlxuLy9cbi8vIEV4YW1wbGUgdXNhZ2U6XG4vL1xuLy8gICAgLy8gQ29udGFpbiBhbGwgZmxvYXRzIHdpdGhpbiAud3JhcHBlclxuLy8gICAgLndyYXBwZXIge1xuLy8gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbi8vICAgICAgLmNvbnRlbnQsXG4vLyAgICAgIC5zaWRlYmFyIHtcbi8vICAgICAgICBmbG9hdCA6IGxlZnQ7XG4vLyAgICAgIH1cbi8vICAgIH1cblxuQG1peGluIGNsZWFyZml4IHtcbiAgJjphZnRlciB7XG4gICAgY29udGVudDpcIlwiO1xuICAgIGRpc3BsYXk6dGFibGU7XG4gICAgY2xlYXI6Ym90aDtcbiAgfVxufVxuXG4vLyBBY2tub3dsZWRnZW1lbnRzXG4vLyBCZWF0ICp0aGF0KiBjbGVhcmZpeDogW1RoaWVycnkgS29ibGVudHpdKGh0dHA6Ly93d3cuY3NzLTEwMS5vcmcvYXJ0aWNsZXMvY2xlYXJmaXgvbGF0ZXN0LW5ldy1jbGVhcmZpeC1zby1mYXIucGhwKVxuIiwiLy8gZGlyZWN0aW9uYWwtcHJvcGVydHkgbWl4aW5zIGFyZSBzaG9ydGhhbmRzXG4vLyBmb3Igd3JpdGluZyBwcm9wZXJ0aWVzIGxpa2UgdGhlIGZvbGxvd2luZ1xuLy9cbi8vIEBpbmNsdWRlIG1hcmdpbihudWxsIDAgMTBweCk7XG4vLyAtLS0tLS1cbi8vIG1hcmdpbi1yaWdodDogMDtcbi8vIG1hcmdpbi1ib3R0b206IDEwcHg7XG4vLyBtYXJnaW4tbGVmdDogMDtcbi8vXG4vLyAtIG9yIC1cbi8vXG4vLyBAaW5jbHVkZSBib3JkZXItc3R5bGUoZG90dGVkIG51bGwpO1xuLy8gLS0tLS0tXG4vLyBib3JkZXItdG9wLXN0eWxlOiBkb3R0ZWQ7XG4vLyBib3JkZXItYm90dG9tLXN0eWxlOiBkb3R0ZWQ7XG4vL1xuLy8gLS0tLS0tXG4vL1xuLy8gTm90ZTogWW91IGNhbiBhbHNvIHVzZSBmYWxzZSBpbnN0ZWFkIG9mIG51bGxcblxuQGZ1bmN0aW9uIGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscykge1xuICAkb3V0cHV0OiBudWxsO1xuXG4gICRBOiBudGgoICR2YWxzLCAxICk7XG4gICRCOiBpZiggbGVuZ3RoKCR2YWxzKSA8IDIsICRBLCBudGgoJHZhbHMsIDIpKTtcbiAgJEM6IGlmKCBsZW5ndGgoJHZhbHMpIDwgMywgJEEsIG50aCgkdmFscywgMykpO1xuICAkRDogaWYoIGxlbmd0aCgkdmFscykgPCAyLCAkQSwgbnRoKCR2YWxzLCBpZiggbGVuZ3RoKCR2YWxzKSA8IDQsIDIsIDQpICkpO1xuXG4gIEBpZiAkQSA9PSAwIHsgJEE6IDAgfVxuICBAaWYgJEIgPT0gMCB7ICRCOiAwIH1cbiAgQGlmICRDID09IDAgeyAkQzogMCB9XG4gIEBpZiAkRCA9PSAwIHsgJEQ6IDAgfVxuXG4gIEBpZiAkQSA9PSAkQiBhbmQgJEEgPT0gJEMgYW5kICRBID09ICREIHsgJG91dHB1dDogJEEgICAgICAgICAgfVxuICBAZWxzZSBpZiAkQSA9PSAkQyBhbmQgJEIgPT0gJEQgICAgICAgICB7ICRvdXRwdXQ6ICRBICRCICAgICAgIH1cbiAgQGVsc2UgaWYgJEIgPT0gJEQgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkQSAkQiAkQyAgICB9XG4gIEBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJEEgJEIgJEMgJEQgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cblxuQGZ1bmN0aW9uIGNvbnRhaW5zLWZhbHN5KCRsaXN0KSB7XG4gIEBlYWNoICRpdGVtIGluICRsaXN0IHtcbiAgICBAaWYgbm90ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG5AbWl4aW4gZGlyZWN0aW9uYWwtcHJvcGVydHkoJHByZSwgJHN1ZiwgJHZhbHMpIHtcbiAgLy8gUHJvcGVydHkgTmFtZXNcbiAgJHRvcDogICAgJHByZSArIFwiLXRvcFwiICAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGJvdHRvbTogJHByZSArIFwiLWJvdHRvbVwiICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGxlZnQ6ICAgJHByZSArIFwiLWxlZnRcIiAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJHJpZ2h0OiAgJHByZSArIFwiLXJpZ2h0XCIgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGFsbDogICAgJHByZSArICAgICAgICAgICAgIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG5cbiAgJHZhbHM6IGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscyk7XG5cbiAgQGlmIGNvbnRhaW5zLWZhbHN5KCR2YWxzKSB7XG4gICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyR0b3B9OiBudGgoJHZhbHMsIDEpOyB9XG5cbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAxIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDEpOyB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAyKTsgfVxuICAgIH1cblxuICAgIC8vIHByb3A6IHRvcC9ib3R0b20gcmlnaHQvbGVmdFxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDIge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDEpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cblxuICAgIC8vIHByb3A6IHRvcCByaWdodC9sZWZ0IGJvdHRvbVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSAzIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XG5cbiAgICAvLyBwcm9wOiB0b3AgcmlnaHQgYm90dG9tIGxlZnRcbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gNCB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDQpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCA0KTsgfVxuICAgIH1cblxuICAvLyBwcm9wOiB0b3AvcmlnaHQvYm90dG9tL2xlZnRcbiAgfSBAZWxzZSB7XG4gICAgI3skYWxsfTogJHZhbHM7XG4gIH1cbn1cblxuQG1peGluIG1hcmdpbigkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShtYXJnaW4sIGZhbHNlLCAkdmFscy4uLik7XG59XG5cbkBtaXhpbiBwYWRkaW5nKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KHBhZGRpbmcsIGZhbHNlLCAkdmFscy4uLik7XG59XG5cbkBtaXhpbiBib3JkZXItc3R5bGUoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBzdHlsZSwgJHZhbHMuLi4pO1xufVxuXG5AbWl4aW4gYm9yZGVyLWNvbG9yKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgY29sb3IsICR2YWxzLi4uKTtcbn1cblxuQG1peGluIGJvcmRlci13aWR0aCgkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHdpZHRoLCAkdmFscy4uLik7XG59XG4iLCJAbWl4aW4gZWxsaXBzaXMoJHdpZHRoOiAxMDAlKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAkd2lkdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuIiwiJGdlb3JnaWE6IEdlb3JnaWEsIENhbWJyaWEsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFRpbWVzLCBzZXJpZjtcbiRoZWx2ZXRpY2E6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xuJGx1Y2lkYS1ncmFuZGU6IFwiTHVjaWRhIEdyYW5kZVwiLCBUYWhvbWEsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJG1vbm9zcGFjZTogXCJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm9cIiwgQ29uc29sYXMsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiR2ZXJkYW5hOiBWZXJkYW5hLCBHZW5ldmEsIHNhbnMtc2VyaWY7XG4iLCJAbWl4aW4gaGlkZS10ZXh0IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEdlbmVyYXRlIGEgdmFyaWFibGUgKCRhbGwtdGV4dC1pbnB1dHMpIHdpdGggYSBsaXN0IG9mIGFsbCBodG1sNVxuLy8gaW5wdXQgdHlwZXMgdGhhdCBoYXZlIGEgdGV4dC1iYXNlZCBpbnB1dCwgZXhjbHVkaW5nIHRleHRhcmVhLlxuLy8gaHR0cDovL2RpdmVpbnRvaHRtbDUub3JnL2Zvcm1zLmh0bWxcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbiRpbnB1dHMtbGlzdDogJ2lucHV0W3R5cGU9XCJlbWFpbFwiXScsXG4gICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibnVtYmVyXCJdJyxcbiAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJwYXNzd29yZFwiXScsXG4gICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic2VhcmNoXCJdJyxcbiAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZWxcIl0nLFxuICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRleHRcIl0nLFxuICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInVybFwiXScsXG5cbiAgICAgICAgICAgICAgLy8gV2Via2l0ICYgR2Vja28gbWF5IGNoYW5nZSB0aGUgZGlzcGxheSBvZiB0aGVzZSBpbiB0aGUgZnV0dXJlXG4gICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiY29sb3JcIl0nLFxuICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGVcIl0nLFxuICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdJyxcbiAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXScsXG4gICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibW9udGhcIl0nLFxuICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRpbWVcIl0nLFxuICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIndlZWtcIl0nO1xuXG4vLyBCYXJlIGlucHV0c1xuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuJGFsbC10ZXh0LWlucHV0czogYXNzaWduLWlucHV0cygkaW5wdXRzLWxpc3QpO1xuXG4vLyBIb3ZlciBQc2V1ZG8tY2xhc3Ncbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbiRhbGwtdGV4dC1pbnB1dHMtaG92ZXI6IGFzc2lnbi1pbnB1dHMoJGlucHV0cy1saXN0LCBob3Zlcik7XG5cbi8vIEZvY3VzIFBzZXVkby1jbGFzc1xuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuJGFsbC10ZXh0LWlucHV0cy1mb2N1czogYXNzaWduLWlucHV0cygkaW5wdXRzLWxpc3QsIGZvY3VzKTtcblxuXG5cbi8vIFlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTpcbi8vICN7JGFsbC10ZXh0LWlucHV0c31cbi8vICN7JGFsbC10ZXh0LWlucHV0cy1ob3Zlcn1cbi8vICN7JGFsbC10ZXh0LWlucHV0cy1mb2N1c31cblxuLy8gRXhhbXBsZVxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gICAjeyRhbGwtdGV4dC1pbnB1dHN9LCB0ZXh0YXJlYSB7XG4vLyAgICAgYm9yZGVyOiAxcHggc29saWQgcmVkO1xuLy8gICB9XG5cblxuXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBHZW5lcmF0ZSBhIHZhcmlhYmxlICgkYWxsLWJ1dHRvbi1pbnB1dHMpIHdpdGggYSBsaXN0IG9mIGFsbCBodG1sNVxuLy8gaW5wdXQgdHlwZXMgdGhhdCBoYXZlIGEgYnV0dG9uLWJhc2VkIGlucHV0LCBleGNsdWRpbmcgYnV0dG9uLlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuJGlucHV0cy1idXR0b24tbGlzdDogJ2lucHV0W3R5cGU9XCJidXR0b25cIl0nLFxuICAgICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJyZXNldFwiXScsXG4gICAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSc7XG5cbi8vIEJhcmUgaW5wdXRzXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4kYWxsLWJ1dHRvbi1pbnB1dHM6IGFzc2lnbi1pbnB1dHMoJGlucHV0cy1idXR0b24tbGlzdCk7XG5cbi8vIEhvdmVyIFBzZXVkby1jbGFzc1xuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuJGFsbC1idXR0b24taW5wdXRzLWhvdmVyOiBhc3NpZ24taW5wdXRzKCRpbnB1dHMtYnV0dG9uLWxpc3QsIGhvdmVyKTtcblxuLy8gRm9jdXMgUHNldWRvLWNsYXNzXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4kYWxsLWJ1dHRvbi1pbnB1dHMtZm9jdXM6IGFzc2lnbi1pbnB1dHMoJGlucHV0cy1idXR0b24tbGlzdCwgZm9jdXMpO1xuXG4vLyBBY3RpdmUgUHNldWRvLWNsYXNzXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4kYWxsLWJ1dHRvbi1pbnB1dHMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCRpbnB1dHMtYnV0dG9uLWxpc3QsIGFjdGl2ZSk7XG5cblxuXG4vLyBZb3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6XG4vLyAjeyRhbGwtYnV0dG9uLWlucHV0c31cbi8vICN7JGFsbC1idXR0b24taW5wdXRzLWhvdmVyfVxuLy8gI3skYWxsLWJ1dHRvbi1pbnB1dHMtZm9jdXN9XG4vLyAjeyRhbGwtYnV0dG9uLWlucHV0cy1hY3RpdmV9XG5cbi8vIEV4YW1wbGVcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vICAgI3skYWxsLWJ1dHRvbi1pbnB1dHN9LCBidXR0b24ge1xuLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkIHJlZDtcbi8vICAgfVxuIiwiQG1peGluIHBvc2l0aW9uICgkcG9zaXRpb246IHJlbGF0aXZlLCAkY29vcmRpbmF0ZXM6IG51bGwgbnVsbCBudWxsIG51bGwpIHtcblxuICBAaWYgdHlwZS1vZigkcG9zaXRpb24pID09IGxpc3Qge1xuICAgICRjb29yZGluYXRlczogJHBvc2l0aW9uO1xuICAgICRwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAkY29vcmRpbmF0ZXM6IHVucGFjaygkY29vcmRpbmF0ZXMpO1xuXG4gICR0b3A6IG50aCgkY29vcmRpbmF0ZXMsIDEpO1xuICAkcmlnaHQ6IG50aCgkY29vcmRpbmF0ZXMsIDIpO1xuICAkYm90dG9tOiBudGgoJGNvb3JkaW5hdGVzLCAzKTtcbiAgJGxlZnQ6IG50aCgkY29vcmRpbmF0ZXMsIDQpO1xuXG4gIHBvc2l0aW9uOiAkcG9zaXRpb247XG5cbiAgQGlmICgkdG9wIGFuZCAkdG9wID09IGF1dG8pIG9yICh0eXBlLW9mKCR0b3ApID09IG51bWJlcikge1xuICAgIHRvcDogJHRvcDtcbiAgfVxuXG4gIEBpZiAoJHJpZ2h0IGFuZCAkcmlnaHQgPT0gYXV0bykgb3IgKHR5cGUtb2YoJHJpZ2h0KSA9PSBudW1iZXIpIHtcbiAgICByaWdodDogJHJpZ2h0O1xuICB9XG5cbiAgQGlmICgkYm90dG9tIGFuZCAkYm90dG9tID09IGF1dG8pIG9yICh0eXBlLW9mKCRib3R0b20pID09IG51bWJlcikge1xuICAgIGJvdHRvbTogJGJvdHRvbTtcbiAgfVxuXG4gIEBpZiAoJGxlZnQgYW5kICRsZWZ0ID09IGF1dG8pIG9yICh0eXBlLW9mKCRsZWZ0KSA9PSBudW1iZXIpIHtcbiAgICBsZWZ0OiAkbGVmdDtcbiAgfVxufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gRXhhbXBsZTogQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXJhZGl1cywgJHJhZGlpLCB3ZWJraXQgbXMgc3BlYyk7XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBWYXJpYWJsZXMgbG9jYXRlZCBpbiAvc2V0dGluZ3MvX3ByZWZpeGVyLnNjc3NcblxuQG1peGluIHByZWZpeGVyICgkcHJvcGVydHksICR2YWx1ZSwgJHByZWZpeGVzKSB7XG4gIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVzIHtcbiAgICBAaWYgJHByZWZpeCA9PSB3ZWJraXQge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgICAgIC13ZWJraXQtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRwcmVmaXggPT0gbW96IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICAgICAgLW1vei0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJHByZWZpeCA9PSBtcyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbWljcm9zb2Z0IHtcbiAgICAgICAgLW1zLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkcHJlZml4ID09IG8ge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW9wZXJhIHtcbiAgICAgICAgLW8tI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRwcmVmaXggPT0gc3BlYyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itc3BlYyB7XG4gICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSAge1xuICAgICAgQHdhcm4gXCJVbnJlY29nbml6ZWQgcHJlZml4OiAjeyRwcmVmaXh9XCI7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCkge1xuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgZmFsc2UgIWdsb2JhbDtcbn1cbiIsIkBtaXhpbiByZXRpbmEtaW1hZ2UoJGZpbGVuYW1lLCAkYmFja2dyb3VuZC1zaXplLCAkZXh0ZW5zaW9uOiBwbmcsICRyZXRpbmEtZmlsZW5hbWU6IG51bGwsICRyZXRpbmEtc3VmZml4OiBfMngsICRhc3NldC1waXBlbGluZTogZmFsc2UpIHtcbiAgQGlmICRhc3NldC1waXBlbGluZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgIHVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICB9XG5cbiAgQGluY2x1ZGUgaGlkcGkge1xuICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1zaXplOiAkYmFja2dyb3VuZC1zaXplO1xuXG4gIH1cbn1cbiIsIkBtaXhpbiBzaXplKCRzaXplKSB7XG4gICRoZWlnaHQ6IG50aCgkc2l6ZSwgMSk7XG4gICR3aWR0aDogJGhlaWdodDtcblxuICBAaWYgbGVuZ3RoKCRzaXplKSA+IDEge1xuICAgICRoZWlnaHQ6IG50aCgkc2l6ZSwgMik7XG4gIH1cblxuICBAaWYgJGhlaWdodCA9PSBhdXRvIG9yICh0eXBlLW9mKCRoZWlnaHQpID09IG51bWJlciBhbmQgbm90IHVuaXRsZXNzKCRoZWlnaHQpKSB7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICB9XG5cbiAgQGlmICR3aWR0aCA9PSBhdXRvIG9yICh0eXBlLW9mKCRoZWlnaHQpID09IG51bWJlciBhbmQgbm90IHVuaXRsZXNzKCR3aWR0aCkpIHtcbiAgICB3aWR0aDogJHdpZHRoO1xuICB9XG59XG4iLCIvLyBDU1MgY3ViaWMtYmV6aWVyIHRpbWluZyBmdW5jdGlvbnMuIFRpbWluZyBmdW5jdGlvbnMgY291cnRlc3kgb2YganF1ZXJ5LmVhc2llIChnaXRodWIuY29tL2phdWtpYS9lYXNpZSlcbi8vIFRpbWluZyBmdW5jdGlvbnMgYXJlIHRoZSBzYW1lIGFzIGRlbW8nZWQgaGVyZTogaHR0cDovL2pxdWVyeXVpLmNvbS9kZW1vcy9lZmZlY3QvZWFzaW5nLmh0bWxcblxuLy8gRUFTRSBJTlxuJGVhc2UtaW4tcXVhZDogICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA4NSwgMC42ODAsIDAuNTMwKTtcbiRlYXNlLWluLWN1YmljOiAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4kZWFzZS1pbi1xdWFydDogICAgIGN1YmljLWJlemllcigwLjg5NSwgIDAuMDMwLCAwLjY4NSwgMC4yMjApO1xuJGVhc2UtaW4tcXVpbnQ6ICAgICBjdWJpYy1iZXppZXIoMC43NTUsICAwLjA1MCwgMC44NTUsIDAuMDYwKTtcbiRlYXNlLWluLXNpbmU6ICAgICAgY3ViaWMtYmV6aWVyKDAuNDcwLCAgMC4wMDAsIDAuNzQ1LCAwLjcxNSk7XG4kZWFzZS1pbi1leHBvOiAgICAgIGN1YmljLWJlemllcigwLjk1MCwgIDAuMDUwLCAwLjc5NSwgMC4wMzUpO1xuJGVhc2UtaW4tY2lyYzogICAgICBjdWJpYy1iZXppZXIoMC42MDAsICAwLjA0MCwgMC45ODAsIDAuMzM1KTtcbiRlYXNlLWluLWJhY2s6ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAtMC4yODAsIDAuNzM1LCAwLjA0NSk7XG5cbi8vIEVBU0UgT1VUXG4kZWFzZS1vdXQtcXVhZDogICAgIGN1YmljLWJlemllcigwLjI1MCwgIDAuNDYwLCAwLjQ1MCwgMC45NDApO1xuJGVhc2Utb3V0LWN1YmljOiAgICBjdWJpYy1iZXppZXIoMC4yMTUsICAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiRlYXNlLW91dC1xdWFydDogICAgY3ViaWMtYmV6aWVyKDAuMTY1LCAgMC44NDAsIDAuNDQwLCAxLjAwMCk7XG4kZWFzZS1vdXQtcXVpbnQ6ICAgIGN1YmljLWJlemllcigwLjIzMCwgIDEuMDAwLCAwLjMyMCwgMS4wMDApO1xuJGVhc2Utb3V0LXNpbmU6ICAgICBjdWJpYy1iZXppZXIoMC4zOTAsICAwLjU3NSwgMC41NjUsIDEuMDAwKTtcbiRlYXNlLW91dC1leHBvOiAgICAgY3ViaWMtYmV6aWVyKDAuMTkwLCAgMS4wMDAsIDAuMjIwLCAxLjAwMCk7XG4kZWFzZS1vdXQtY2lyYzogICAgIGN1YmljLWJlemllcigwLjA3NSwgIDAuODIwLCAwLjE2NSwgMS4wMDApO1xuJGVhc2Utb3V0LWJhY2s6ICAgICBjdWJpYy1iZXppZXIoMC4xNzUsICAwLjg4NSwgMC4zMjAsIDEuMjc1KTtcblxuLy8gRUFTRSBJTiBPVVRcbiRlYXNlLWluLW91dC1xdWFkOiAgY3ViaWMtYmV6aWVyKDAuNDU1LCAgMC4wMzAsIDAuNTE1LCAwLjk1NSk7XG4kZWFzZS1pbi1vdXQtY3ViaWM6IGN1YmljLWJlemllcigwLjY0NSwgIDAuMDQ1LCAwLjM1NSwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXF1YXJ0OiBjdWJpYy1iZXppZXIoMC43NzAsICAwLjAwMCwgMC4xNzUsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1xdWludDogY3ViaWMtYmV6aWVyKDAuODYwLCAgMC4wMDAsIDAuMDcwLCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtc2luZTogIGN1YmljLWJlemllcigwLjQ0NSwgIDAuMDUwLCAwLjU1MCwgMC45NTApO1xuJGVhc2UtaW4tb3V0LWV4cG86ICBjdWJpYy1iZXppZXIoMS4wMDAsICAwLjAwMCwgMC4wMDAsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1jaXJjOiAgY3ViaWMtYmV6aWVyKDAuNzg1LCAgMC4xMzUsIDAuMTUwLCAwLjg2MCk7XG4kZWFzZS1pbi1vdXQtYmFjazogIGN1YmljLWJlemllcigwLjY4MCwgLTAuNTUwLCAwLjI2NSwgMS41NTApO1xuIiwiQG1peGluIHRyaWFuZ2xlICgkc2l6ZSwgJGNvbG9yLCAkZGlyZWN0aW9uKSB7XG4gIGhlaWdodDogMDtcbiAgd2lkdGg6IDA7XG5cbiAgJHdpZHRoOiBudGgoJHNpemUsIDEpO1xuICAkaGVpZ2h0OiBudGgoJHNpemUsIGxlbmd0aCgkc2l6ZSkpO1xuXG4gICRmb3JlZ3JvdW5kLWNvbG9yOiBudGgoJGNvbG9yLCAxKTtcbiAgJGJhY2tncm91bmQtY29sb3I6IGlmKGxlbmd0aCgkY29sb3IpID09IDIsIG50aCgkY29sb3IsIDIpLCB0cmFuc3BhcmVudCk7XG5cbiAgQGlmICgkZGlyZWN0aW9uID09IHVwKSBvciAoJGRpcmVjdGlvbiA9PSBkb3duKSBvciAoJGRpcmVjdGlvbiA9PSByaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gbGVmdCkge1xuXG4gICAgJHdpZHRoOiAkd2lkdGggLyAyO1xuICAgICRoZWlnaHQ6IGlmKGxlbmd0aCgkc2l6ZSkgPiAxLCAkaGVpZ2h0LCAkaGVpZ2h0LzIpO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAge1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSByaWdodCB7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gdXAtcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IHVwLWxlZnQpIHtcbiAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAtcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG5cbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gdXAtbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQpIHtcbiAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcblxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtdXApIHtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgfVxuXG4gIEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWRvd24pIHtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgfVxuXG4gIEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXJpZ2h0KSB7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gIH1cblxuICBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1sZWZ0KSB7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XG4gIH1cbn1cbiIsIkBtaXhpbiB3b3JkLXdyYXAoJHdyYXA6IGJyZWFrLXdvcmQpIHtcbiAgd29yZC13cmFwOiAkd3JhcDtcblxuICBAaWYgJHdyYXAgPT0gYnJlYWstd29yZCB7XG4gICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIH1cbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIFRoZXNlIG1peGlucy9mdW5jdGlvbnMgYXJlIGRlcHJlY2F0ZWRcbi8vIFRoZXkgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IE1BSk9SIHZlcnNpb24gcmVsZWFzZVxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQG1peGluIGlubGluZS1ibG9jayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgQHdhcm4gXCJpbmxpbmUtYmxvY2sgbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuIiwiLy8gQ29yZVxuQGltcG9ydCBcImNvcmVcIjtcblxuLy8gQnJlYWtwb2ludHNcbkBpbXBvcnQgXCJicmVha3BvaW50c1wiO1xuXG4vLyBMYXlvdXRcbkBpbXBvcnQgXCJsYXlvdXRcIjtcblxuLy8gVHlwb2dyYXBoeVxuQGltcG9ydCBcInR5cG9ncmFwaHlcIjtcblxuLy8gTmF2XG5AaW1wb3J0IFwibmF2XCI7IiwiLy8gQm9yZGVyIFJhZGl1c1xuJGNvcmUtYm9yZGVyLXJhZGl1czpcdFx0XHQwICFkZWZhdWx0O1xuXG4vLyBQcmUgYW5kIENvZGUgRm9udCBGYW1pbHlcbiRwcmVmb3JtYXR0ZWQtZm9udC1mYW1pbHk6ICAgICAgaW5oZXJpdCAhZGVmYXVsdDsiLCIvLyBNZWRpYSBEZXZpY2UgQnJlYWtwb2ludHNcbiRsYXJnZS1kZXNrdG9wLWNvbnRhaW5lcjpcdFx0NzUuMDAwZW0gIWRlZmF1bHQ7XG4kZGVza3RvcC1jb250YWluZXI6XHRcdFx0XHQ2MC4wMDBlbSAhZGVmYXVsdDtcbiR0YWJsZXQtY29udGFpbmVyOlx0XHRcdFx0NDguMDAwZW0gIWRlZmF1bHQ7XG4kbGFyZ2UtbW9iaWxlLWNvbnRhaW5lcjpcdFx0MzAuMDAwZW0gIWRlZmF1bHQ7XG4kbW9iaWxlLWNvbnRhaW5lcjpcdFx0XHRcdDEwMCUgIWRlZmF1bHQ7XG5cbi8vIEJyZWFrcG9pbnQgVmFyaWFibGVzIEZvciBQYXJ0aWNsZXNcbiRtZWRpYTogXCJhbGxcIiAhZGVmYXVsdDtcbiRtb2JpbGUtb25seTogXCIjeyRtZWRpYX0gYW5kIChtYXgtd2lkdGg6I3skdGFibGV0LWNvbnRhaW5lciAtIDAuMDYyfSlcIiAhZGVmYXVsdDtcbiRuby1tb2JpbGU6IFwiI3skbWVkaWF9IGFuZCAobWluLXdpZHRoOiN7JHRhYmxldC1jb250YWluZXJ9KVwiICFkZWZhdWx0O1xuJHNtYWxsLW1vYmlsZS1yYW5nZTogXCIjeyRtZWRpYX0gYW5kIChtYXgtd2lkdGg6I3skbGFyZ2UtbW9iaWxlLWNvbnRhaW5lcn0pXCIgIWRlZmF1bHQ7XG4kbGFyZ2UtbW9iaWxlLXJhbmdlOiBcIiN7JG1lZGlhfSBhbmQgKG1pbi13aWR0aDojeyRsYXJnZS1tb2JpbGUtY29udGFpbmVyICsgMC4wNjN9KSBhbmQgKG1heC13aWR0aDojeyR0YWJsZXQtY29udGFpbmVyIC0gMC4wNjJ9KVwiICFkZWZhdWx0O1xuJHRhYmxldC1yYW5nZTogXCIjeyRtZWRpYX0gYW5kIChtaW4td2lkdGg6I3skdGFibGV0LWNvbnRhaW5lcn0pIGFuZCAobWF4LXdpZHRoOiN7JGRlc2t0b3AtY29udGFpbmVyIC0gMC4wNjJ9KVwiICFkZWZhdWx0O1xuJGRlc2t0b3AtcmFuZ2U6IFwiI3skbWVkaWF9IGFuZCAobWluLXdpZHRoOiN7JGRlc2t0b3AtY29udGFpbmVyfSkgYW5kIChtYXgtd2lkdGg6I3skbGFyZ2UtZGVza3RvcC1jb250YWluZXIgLSAwLjA2Mn0pXCIgIWRlZmF1bHQ7XG4kbGFyZ2UtZGVza3RvcC1yYW5nZTogXCIjeyRtZWRpYX0gYW5kIChtaW4td2lkdGg6I3skbGFyZ2UtZGVza3RvcC1jb250YWluZXJ9KVwiICFkZWZhdWx0O1xuIiwiLy8gQ29udGVudCBCbG9jayBTcGFjaW5nIFZhcmlhYmxlc1xuJGNvbnRlbnQtbWFyZ2luOlx0XHRcdFx0MC42MjVyZW0gIWRlZmF1bHQ7XG4kY29udGVudC1wYWRkaW5nOlx0XHRcdFx0MC45MzhyZW0gIWRlZmF1bHQ7XG5cbi8vIEZpeGVkIEJsb2NrIFZhcmlhYmxlc1xuJGZpeGVkLWJsb2NrLWZ1bGw6XHRcdFx0XHRwZXJjZW50YWdlKDEvNCkgIWRlZmF1bHQ7XG4kZml4ZWQtYmxvY2stZGVza3RvcDpcdFx0XHRwZXJjZW50YWdlKDEvMykgIWRlZmF1bHQ7XG4kZml4ZWQtYmxvY2stdGFibGV0Olx0XHRcdHBlcmNlbnRhZ2UoMS8yKSAhZGVmYXVsdDsiLCIvLyBCYXNlIFNpemVzXG4kY29yZS1mb250LXNpemU6XHRcdFx0XHQxcmVtICFkZWZhdWx0O1xuJGNvcmUtbGluZS1oZWlnaHQ6XHRcdFx0XHQxLjcgIWRlZmF1bHQ7XG5cbi8vIEhlYWRpbmcgU2l6ZXNcbiRoMS1mb250LXNpemU6XHRcdFx0XHRcdCRjb3JlLWZvbnQtc2l6ZSArIDIuMjAgIWRlZmF1bHQ7XG4kaDItZm9udC1zaXplOlx0XHRcdFx0XHQkY29yZS1mb250LXNpemUgLSAxLjYwICFkZWZhdWx0O1xuJGgzLWZvbnQtc2l6ZTpcdFx0XHRcdFx0JGNvcmUtZm9udC1zaXplIC0gMS41MCAhZGVmYXVsdDtcbiRoNC1mb250LXNpemU6XHRcdFx0XHRcdCRjb3JlLWZvbnQtc2l6ZSArIDAuNzUgIWRlZmF1bHQ7XG4kaDUtZm9udC1zaXplOlx0XHRcdFx0XHQkY29yZS1mb250LXNpemUgKyAwLjM1ICFkZWZhdWx0O1xuJGg2LWZvbnQtc2l6ZTpcdFx0XHRcdFx0JGNvcmUtZm9udC1zaXplIC0gMC4xNSAhZGVmYXVsdDtcblxuLy8gU3BhY2luZ1xuJGxlYWRpbmctbWFyZ2luOlx0XHRcdFx0JGNvcmUtbGluZS1oZWlnaHQgKiAxcmVtICFkZWZhdWx0O1xuIiwiLy8gRHJvcGRvd25zXG4kZHJvcGRvd24td2lkdGg6XHRcdFx0XHQxNDBweCAhZGVmYXVsdDtcbiRmbHlvdXQtd2lkdGg6XHRcdFx0XHRcdDE0MHB4ICFkZWZhdWx0O1xuJGRyb3Bkb3duLWNvbC13aWR0aDogICAgICAgICAgICAxNzBweCAhZGVmYXVsdDtcbiRkcm9wZG93bi1jb2wtaGVpZ2h0OiAgICAgICAgICAgMjAwcHggIWRlZmF1bHQ7IiwiQGltcG9ydCBcImRpcmVjdGlvblwiO1xuQGltcG9ydCBcInJhbmdlXCI7XG5AaW1wb3J0IFwidXRpbGl0aWVzXCI7IiwiQGZ1bmN0aW9uIG9wcG9zaXRlLWRpcmVjdGlvbigkZGlyKSB7XG5cdEBpZiAkZGlyID09ICdsZWZ0JyB7XG5cdFx0QHJldHVybiByaWdodDtcblx0fVxuXHRAZWxzZSBpZiAgJGRpciA9PSAncmlnaHQnIHtcblx0XHRAcmV0dXJuIGxlZnQ7XG5cdH1cblx0QGVsc2UgaWYgJGRpciA9PSAnbHRyJyB7XG5cdFx0QHJldHVybiBydGw7XG5cdH1cblx0QGVsc2UgaWYgJGRpciA9PSAncnRsJyB7XG5cdFx0QHJldHVybiBsdHI7XG5cdH1cblx0QGVsc2UgaWYgJGRpciA9PSAndG9wJyB7XG5cdFx0QHJldHVybiBib3R0b207XG5cdH1cblx0QGVsc2UgaWYgJGRpciA9PSAnYm90dG9tJyB7XG5cdFx0QHJldHVybiB0b3A7XG5cdH1cblx0QGVsc2Uge1xuXHRcdEB3YXJuIFwiI3skZGlyfSBpcyBub3QgYSBkaXJlY3Rpb24hIE1ha2Ugc3VyZSB5b3VyIGRpcmVjdGlvbiBpcyBhbGwgbG93ZXJjYXNlIVwiO1xuXHRcdEByZXR1cm4gZmFsc2U7XG5cdH1cbn1cblxuQGZ1bmN0aW9uIG5hbWVkLWRpcmVjdGlvbigkZGlyKSB7XG5cdEBpZiAkZGlyID09ICdsdHInIHtcblx0XHRAcmV0dXJuIGxlZnQ7XG5cdH1cblx0QGVsc2UgaWYgJGRpciA9PSAncnRsJyB7XG5cdFx0QHJldHVybiByaWdodDtcblx0fVxuXHRAZWxzZSB7XG5cdFx0QHdhcm4gXCIjeyRkaXJ9IGlzIG5vdCBhIHZhbGlkIEhUTUwgZGlyZWN0aW9uISBNYWtlIHN1cmUgeW91IGFyZSB1c2luZyBhIHZhbGlkIEhUTUwgZGlyZWN0aW9uXCI7XG5cdFx0QHJldHVybiBmYWxzZTtcblx0fVxufSIsIkBmdW5jdGlvbiBsb3dlci1ib3VuZCgkcmFuZ2Upe1xuXHRAaWYgbGVuZ3RoKCRyYW5nZSkgPD0gMCB7XG5cdFx0QHJldHVybiAwO1xuXHR9XG5cdEByZXR1cm4gbnRoKCRyYW5nZSwxKTtcbn1cblxuQGZ1bmN0aW9uIHVwcGVyLWJvdW5kKCRyYW5nZSkge1xuXHRAaWYgbGVuZ3RoKCRyYW5nZSkgPCAyIHtcblx0XHRAcmV0dXJuIDk5OTk5OTk5OTk5OTtcblx0fVxuXHRAcmV0dXJuIG50aCgkcmFuZ2UsIDIpO1xufSIsIkBmdW5jdGlvbiB0ZXh0Y29sb3ItdGludCgkY29sb3IsICRhbW91bnQ6IDY1JSkge1xuIFx0QGlmIChsaWdodG5lc3MoJGNvbG9yKSA+IDUwKSB7XG4gXHRcdEByZXR1cm4gZGFya2VuKCRjb2xvciwgJGFtb3VudCk7XG5cdH0gQGVsc2Uge1xuICAgIFx0QHJldHVybiBsaWdodGVuKCRjb2xvciwgJGFtb3VudCk7XG4gIFx0fVx0XG59IiwiQGltcG9ydCBcImJyZWFrcG9pbnRzXCI7XG5AaW1wb3J0IFwibmF2XCI7XG5AaW1wb3J0IFwidHlwb2dyYXBoeVwiO1xuQGltcG9ydCBcInV0aWxpdGllc1wiOyIsIi8vIEJyZWFrcG9pbnRzXG5AbWl4aW4gYnJlYWtwb2ludCgkYnJlYWtwb2ludCwgJG1lZGlhOiBhbGwpIHtcblx0QGlmICRicmVha3BvaW50ID09IGxhcmdlLWRlc2t0b3AtcmFuZ2Uge1xuXHRcdEBtZWRpYSBvbmx5ICN7JG1lZGlhfSBhbmQgKG1pbi13aWR0aDogJGxhcmdlLWRlc2t0b3AtY29udGFpbmVyKSB7IEBjb250ZW50OyB9XG5cdH1cblx0QGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gZGVza3RvcC1yYW5nZSB7XG5cdFx0QG1lZGlhIG9ubHkgI3skbWVkaWF9IGFuZCAobWluLXdpZHRoOiAkZGVza3RvcC1jb250YWluZXIpIGFuZCAobWF4LXdpZHRoOiAkbGFyZ2UtZGVza3RvcC1jb250YWluZXIgLSAwLjA2MikgeyBAY29udGVudDsgfVxuXHR9XG5cdEBlbHNlIGlmICRicmVha3BvaW50ID09IHRhYmxldC1yYW5nZSB7XG5cdFx0QG1lZGlhIG9ubHkgI3skbWVkaWF9IGFuZCAobWluLXdpZHRoOiAkdGFibGV0LWNvbnRhaW5lcikgYW5kIChtYXgtd2lkdGg6ICRkZXNrdG9wLWNvbnRhaW5lciAtIDAuMDYyKSB7IEBjb250ZW50OyB9XG5cdH1cblx0QGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gbGFyZ2UtbW9iaWxlLXJhbmdlIHtcblx0XHRAbWVkaWEgb25seSAjeyRtZWRpYX0gYW5kIChtaW4td2lkdGg6ICRsYXJnZS1tb2JpbGUtY29udGFpbmVyICsgMC4wNjMpIGFuZCAobWF4LXdpZHRoOiAkdGFibGV0LWNvbnRhaW5lciAtIDAuMDYyKSB7IEBjb250ZW50OyB9XG5cdH1cblx0QGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gc21hbGwtbW9iaWxlLXJhbmdlIHtcblx0XHRAbWVkaWEgb25seSAjeyRtZWRpYX0gYW5kIChtYXgtd2lkdGg6ICRsYXJnZS1tb2JpbGUtY29udGFpbmVyKSB7IEBjb250ZW50OyB9XG5cdH1cblx0QGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gbm8tbW9iaWxlIHtcblx0XHRAbWVkaWEgb25seSAjeyRtZWRpYX0gYW5kIChtaW4td2lkdGg6ICR0YWJsZXQtY29udGFpbmVyKSB7IEBjb250ZW50OyB9XG5cdH1cblx0QGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gbW9iaWxlLW9ubHkge1xuXHRcdEBtZWRpYSBvbmx5ICN7JG1lZGlhfSBhbmQgKG1heC13aWR0aDogJHRhYmxldC1jb250YWluZXIgLSAwLjA2MikgeyBAY29udGVudDsgfVxuXHR9XG5cdEBlbHNlIGlmICRicmVha3BvaW50ID09IGRlc2t0b3Atb25seSB7XG5cdFx0QG1lZGlhIG9ubHkgI3skbWVkaWF9IGFuZCAobWF4LXdpZHRoOiAkZGVza3RvcC1jb250YWluZXIgLSAwLjA2MikgeyBAY29udGVudDsgfVxuXHR9XG59IiwiLy8gSW5hY3RpdmUgRHJvcGRvd25cbiVpbmFjdGl2ZS1kcm9wZG93biB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiBhdXRvO1xuXHRsZWZ0OiBhdXRvO1xuXHRvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLyBJbmFjdGl2ZSBEcm9wZG93blxuJWFjdGl2ZS1kcm9wZG93biB7XG5cdG9wYWNpdHk6IDE7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vLyBJbmFjdGl2ZSBEcm9wZG93blxuJWRyb3Bkb3duLWNvbHVtbiB7XG5cdHdpZHRoOiAkZHJvcGRvd24tY29sLXdpZHRoO1xuXHQvL2hlaWdodDogJGRyb3Bkb3duLWhlaWdodDtcblx0ZmxvYXQ6IGxlZnQ7XG59IiwiLy8gSGVhZGVyc1xuQG1peGluIGhlYWRlcigkbWFyZ2luLXRvcDogJGxlYWRpbmctbWFyZ2luIC8gMiwgJG1hcmdpbi1ib3R0b206ICRsZWFkaW5nLW1hcmdpbikge1xuXHRtYXJnaW46ICRtYXJnaW4tdG9wIDAgJG1hcmdpbi1ib3R0b20gMDtcbn0iLCIvLyBMaXN0IFJlc2V0XG4lbGlzdC1yZXNldCB7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0bGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLy8gVmVydGljYWwgQ2VudGVyaW5nXG4ldmVydGljYWwtYWxpZ24ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHRvcDogNTAlO1xuXHRAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XG59XG5cbi8vIENvbHVtbnNcbkBtaXhpbiBjb2x1bW5zKCRjb2x1bW5zKSB7XG5cdHdpZHRoOiBwZXJjZW50YWdlKDEvJGNvbHVtbnMpO1xufVxuXG4vLyBGbG9hdCB3aXRoIG1hcmdpbiB2YXJpYWJsZVxuQG1peGluIGZsb2F0KCRkaXJlY3Rpb24sICRtYXJnaW46IDApIHtcblx0ZmxvYXQ6ICRkaXJlY3Rpb247XG5cdG1hcmdpbi0je29wcG9zaXRlLWRpcmVjdGlvbigkZGlyZWN0aW9uKX06ICRtYXJnaW47XG59XG4iLCIqLCAqOjpiZWZvcmUsICo6OmFmdGVyIHtcblx0QGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcbn1cblxuQC13ZWJraXQtdmlld3BvcnR7d2lkdGg6ZGV2aWNlLXdpZHRofVxuQC1tb3otdmlld3BvcnR7d2lkdGg6ZGV2aWNlLXdpZHRofVxuQC1tcy12aWV3cG9ydHt3aWR0aDpkZXZpY2Utd2lkdGh9XG5ALW8tdmlld3BvcnR7d2lkdGg6ZGV2aWNlLXdpZHRofVxuQHZpZXdwb3J0e3dpZHRoOmRldmljZS13aWR0aH1cblxuaHRtbCB7XG5cdGZvbnQtc2l6ZTogMTAwJTtcblx0LW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG5cdC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbn1cblxuYm9keSB7XG5cdG1hcmdpbjogMDtcbn1cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdGhlaWdodDogMDtcbn1cblxuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbmEge1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuXHRvdXRsaW5lOiAwO1xufVxuXG5hYmJyW3RpdGxlXSB7XG5cdGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5cbmIsXG5zdHJvbmcge1xuXHRmb250LXdlaWdodDogYm9sZDtcbn1cblxuZGZuIHtcblx0Zm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5tYXJrIHtcblx0YmFja2dyb3VuZDogI2ZmMDtcblx0Y29sb3I6ICMwMDA7XG59XG5cbnN1YixcbnN1cCB7XG5cdGZvbnQtc2l6ZTogJGNvcmUtZm9udC1zaXplIC0gMC4yNTA7XG5cdGxpbmUtaGVpZ2h0OiAwO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHtcblx0dG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG5cdGJvdHRvbTogLTAuMjVlbTtcbn1cblxuaW1nIHtcblx0d2lkdGg6IGF1dG9cXDk7XG5cdGhlaWdodDogYXV0bztcblx0bWF4LXdpZHRoOiAxMDAlO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdGJvcmRlcjogMDtcblx0LW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcbn1cblxuaWZyYW1lLFxuc3ZnIHtcblx0bWF4LXdpZHRoOiAxMDAlO1xufVxuXG5zdmc6bm90KDpyb290KSB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbmZpZ3VyZSB7XG5cdG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbmhyIHtcblx0aGVpZ2h0OiAwO1xufVxuXG5wcmUge1xuXHRvdmVyZmxvdzogYXV0bztcbn1cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuXHRmb250LWZhbWlseTogJHByZWZvcm1hdHRlZC1mb250LWZhbWlseTtcblx0Zm9udC1zaXplOiAkY29yZS1mb250LXNpemU7XG59XG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG5cdGNvbG9yOiBpbmhlcml0O1xuXHRmb250OiBpbmhlcml0O1xuXHRtYXJnaW46IDA7XG59XG5cbmJ1dHRvbiB7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5idXR0b24sXG5zZWxlY3Qge1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuXHRib3JkZXI6IDA7XG5cdHBhZGRpbmc6IDA7XG59XG5cbmlucHV0IHtcblx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcblx0cGFkZGluZzogMDtcbn1cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuXHRoZWlnaHQ6IGF1dG87XG59XG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbn1cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbmxlZ2VuZCB7XG5cdGJvcmRlcjogMDtcblx0cGFkZGluZzogMDtcbn1cblxudGV4dGFyZWEge1xuXHRvdmVyZmxvdzogYXV0bztcbn1cblxub3B0Z3JvdXAge1xuXHRmb250LXdlaWdodDogYm9sZDtcbn1cblxudGFibGUge1xuXHRib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuXHRib3JkZXItc3BhY2luZzogMDtcblx0dGFibGUtbGF5b3V0OiBmaXhlZDtcblx0d2lkdGg6IDEwMCU7XG59XG5cbnRyLCB0ZCwgdGgge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG50aCwgdGQge1xuXHRwYWRkaW5nOiAoJGxlYWRpbmctbWFyZ2luIC8gNCkgMDtcbn1cblxudGgge1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xufSIsIi8vIFBhZ2UgQ29udGFpbmVyXG4uZy1jb250YWluZXIge1xuXHR3aWR0aDogJGxhcmdlLWRlc2t0b3AtY29udGFpbmVyO1xuXHRtYXJnaW46IDAgYXV0bztcblx0cGFkZGluZzogMDtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wLXJhbmdlKSB7XG5cdFx0d2lkdGg6ICRkZXNrdG9wLWNvbnRhaW5lcjtcblx0fVxuXHRAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldC1yYW5nZSkge1xuXHRcdHdpZHRoOiAkdGFibGV0LWNvbnRhaW5lcjtcblx0fVxuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlLW1vYmlsZS1yYW5nZSkge1xuXHRcdHdpZHRoOiAkbGFyZ2UtbW9iaWxlLWNvbnRhaW5lcjtcblx0fVxuXHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsLW1vYmlsZS1yYW5nZSkge1xuXHRcdHdpZHRoOiAkbW9iaWxlLWNvbnRhaW5lcjtcblx0fVxufVxuXG4vLyBHcmlkIFJvdyBhbmQgQ29sdW1uIFNldHVwXG4uZy1ncmlkIHtcblx0QGluY2x1ZGUgZGlzcGxheShmbGV4KTtcblx0QGluY2x1ZGUgZmxleC1mbG93KHJvdyB3cmFwKTtcblx0bGlzdC1zdHlsZTogbm9uZTtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHQmLm5vd3JhcCB7XG5cdFx0QGluY2x1ZGUgZmxleC1mbG93KHJvdyk7XG5cdH1cbn1cblxuLmctYmxvY2sge1xuXHRAaW5jbHVkZSBmbGV4KDEpO1xuXHRtaW4td2lkdGg6IDA7XG5cdG1pbi1oZWlnaHQ6IDA7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlLW9ubHkpIHtcblx0XHRAaW5jbHVkZSBmbGV4KDAgMTAwJSk7XG5cdH1cbn1cblxuLy8gQ29udGVudCBCbG9jayBTcGFjaW5nXG4uZy1jb250ZW50IHtcblx0bWFyZ2luOiAkY29udGVudC1tYXJnaW47XG5cdHBhZGRpbmc6ICRjb250ZW50LXBhZGRpbmc7XG59XG5cbmJvZHkgW2NsYXNzKj1cInNpemUtXCJdIHtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUtb25seSkge1xuXHRcdEBpbmNsdWRlIGZsZXgoMCAxMDAlKTtcblx0fVxufVxuXG4vLyBDdXN0b20gU2l6ZSBNb2RpZmllcnNcbi5zaXplLTEtMiB7XG5cdEBpbmNsdWRlIGZsZXgoMCBwZXJjZW50YWdlKDEvMikpO1xufVxuXG4uc2l6ZS0xLTMge1xuXHRAaW5jbHVkZSBmbGV4KDAgcGVyY2VudGFnZSgxLzMpKTtcbn1cblxuLnNpemUtMS00IHtcblx0QGluY2x1ZGUgZmxleCgwIHBlcmNlbnRhZ2UoMS80KSk7XG59XG5cbi5zaXplLTEtNSB7XG5cdEBpbmNsdWRlIGZsZXgoMCBwZXJjZW50YWdlKDEvNSkpO1xufVxuXG4uc2l6ZS0xLTYge1xuXHRAaW5jbHVkZSBmbGV4KDAgcGVyY2VudGFnZSgxLzYpKTtcbn1cblxuLnNpemUtMS03IHtcblx0QGluY2x1ZGUgZmxleCgwIHBlcmNlbnRhZ2UoMS83KSk7XG59XG5cbi5zaXplLTEtOCB7XG5cdEBpbmNsdWRlIGZsZXgoMCBwZXJjZW50YWdlKDEvOCkpO1xufVxuXG4uc2l6ZS0xLTkge1xuXHRAaW5jbHVkZSBmbGV4KDAgcGVyY2VudGFnZSgxLzkpKTtcbn1cblxuLnNpemUtMS0xMCB7XG5cdEBpbmNsdWRlIGZsZXgoMCBwZXJjZW50YWdlKDEvMTApKTtcbn1cblxuLnNpemUtMS0xMSB7XG5cdEBpbmNsdWRlIGZsZXgoMCBwZXJjZW50YWdlKDEvMTEpKTtcbn1cblxuLnNpemUtMS0xMiB7XG5cdEBpbmNsdWRlIGZsZXgoMCBwZXJjZW50YWdlKDEvMTIpKTtcbn1cblxuLy8gRml4IGZvciBGaXJlZm94IHZlcnNpb25zIDI3IGFuZCBiZWxvd1xuQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUtb25seSkge1xuXHRAc3VwcG9ydHMgbm90IChmbGV4LXdyYXA6IHdyYXApIHtcblx0XHQuZy1ncmlkIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0QGluY2x1ZGUgZmxleC13cmFwKGluaGVyaXQpO1xuXHRcdH1cblx0XHQuZy1ibG9jayB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdEBpbmNsdWRlIGZsZXgoaW5oZXJpdCk7XG5cdFx0fVxuXHR9XG59XG5cbi8vIFJlb3JkZXJpbmdcbi5maXJzdC1ibG9jayB7XG4gIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDA7XG4gIC13ZWJraXQtb3JkZXI6IC0xO1xuICAtbXMtZmxleC1vcmRlcjogLTE7XG4gIG9yZGVyOiAtMTtcbn1cblxuLmxhc3QtYmxvY2sge1xuICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAyO1xuICAtd2Via2l0LW9yZGVyOiAxO1xuICAtbXMtZmxleC1vcmRlcjogMTtcbiAgb3JkZXI6IDE7XG59XG5cbi8vIEZpeGVkIEdyaWQgU3R5bGVcbi5maXhlZC1ibG9ja3Mge1xuXHRAaW5jbHVkZSBmbGV4LWZsb3cocm93IHdyYXApO1xuXHQuZy1ibG9jayB7XG5cdFx0QGluY2x1ZGUgZmxleChpbmhlcml0KTtcblx0XHR3aWR0aDogJGZpeGVkLWJsb2NrLWZ1bGw7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wLXJhbmdlKSB7XG5cdFx0XHR3aWR0aDogJGZpeGVkLWJsb2NrLWRlc2t0b3A7XG5cdFx0fVxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0LXJhbmdlKSB7XG5cdFx0XHR3aWR0aDogJGZpeGVkLWJsb2NrLXRhYmxldDtcblx0XHR9XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUtb25seSkge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXHR9XG59XG5cbi8vIEZpeCBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IGZsZXgtd3JhcFxuQHN1cHBvcnRzIG5vdCAoZmxleC13cmFwOiB3cmFwKSB7XG5cdC5maXhlZC1ibG9ja3Mge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdEBpbmNsdWRlIGZsZXgtZmxvdyhpbmhlcml0KTtcblx0fVxufSIsIi8vIEJvZHkgQmFzZVxuYm9keSB7XG5cdGZvbnQtc2l6ZTogJGNvcmUtZm9udC1zaXplO1xuXHRsaW5lLWhlaWdodDogJGNvcmUtbGluZS1oZWlnaHQ7XG59XG5cbi8vIEhlYWRpbmdzXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcblx0bWFyZ2luOiAkbGVhZGluZy1tYXJnaW4gLyAyIDAgJGxlYWRpbmctbWFyZ2luIDA7XG5cdHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG59XG5cbmgxIHtcblx0Zm9udC1zaXplOiAkaDEtZm9udC1zaXplO1xufVxuXG5oMiB7XG5cdGZvbnQtc2l6ZTogJGgyLWZvbnQtc2l6ZTtcbn1cblxuaDMge1xuXHRmb250LXNpemU6ICRoMy1mb250LXNpemU7XG59XG5cbmg0IHtcblx0Zm9udC1zaXplOiAkaDQtZm9udC1zaXplO1xufVxuXG5oNSB7XG5cdGZvbnQtc2l6ZTogJGg1LWZvbnQtc2l6ZTtcbn1cblxuaDYge1xuXHRmb250LXNpemU6ICRoNi1mb250LXNpemU7XG59XG5cbi8vIFBhcmFncmFwaFxucCB7XG5cdG1hcmdpbjogJGxlYWRpbmctbWFyZ2luIDA7XG59XG5cbi8vIExpc3RzXG51bCwgb2wsIGRsIHtcblx0bWFyZ2luLXRvcDogJGxlYWRpbmctbWFyZ2luO1xuXHRtYXJnaW4tYm90dG9tOiAkbGVhZGluZy1tYXJnaW47XG5cdHVsLCBvbCwgZGwge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxufVxuXG51bCwgZGwge1xuXHRtYXJnaW4tbGVmdDogJGxlYWRpbmctbWFyZ2luO1xuXHRwYWRkaW5nOiAwO1xufVxuXG5vbCB7XG5cdHBhZGRpbmctbGVmdDogJGxlYWRpbmctbWFyZ2luO1xufVxuXG4vLyBCbG9ja3F1b3RlXG5ibG9ja3F1b3RlIHtcblx0bWFyZ2luOiAkbGVhZGluZy1tYXJnaW4gMDtcblx0cGFkZGluZy1sZWZ0OiAkbGVhZGluZy1tYXJnaW4gLyAyO1xufVxuXG5jaXRlIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGZvbnQtc2l6ZTogJGNvcmUtZm9udC1zaXplIC0gMC4xMjU7XG5cdCY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXFwyMDE0IFxcMDAyMFwiO1xuICAgIH1cbn1cblxuLy8gSW5saW5lIGFuZCBDb2RlXG5wcmUge1xuXHRtYXJnaW46ICRsZWFkaW5nLW1hcmdpbiAwO1xuIFx0cGFkZGluZzogJGNvbnRlbnQtcGFkZGluZztcbn1cblxuY29kZSB7XG5cdHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG5cbi8vIEV4dHJhc1xuc21hbGwge1xuXHRmb250LXNpemU6ICRjb3JlLWZvbnQtc2l6ZSAtIDAuMTI1O1xufVxuXG5ociB7XG5cdGJvcmRlci1sZWZ0OiBub25lO1xuXHRib3JkZXItcmlnaHQ6IG5vbmU7XG5cdGJvcmRlci10b3A6IG5vbmU7XG5cdG1hcmdpbjogJGxlYWRpbmctbWFyZ2luIDA7XG59XG4iLCJmaWVsZHNldCB7XG5cdGJvcmRlcjogMDtcblx0cGFkZGluZzogJGNvbnRlbnQtcGFkZGluZztcblx0bWFyZ2luOiAwIDAgJGxlYWRpbmctbWFyZ2luIDA7XG59XG5cbmlucHV0LFxubGFiZWwsXG5zZWxlY3Qge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxubGFiZWwge1xuXHRtYXJnaW4tYm90dG9tOiAkbGVhZGluZy1tYXJnaW4gLyA0O1xuXG5cdCYucmVxdWlyZWQ6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IFwiKlwiO1xuXHR9XG5cblx0YWJiciB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG50ZXh0YXJlYSwgI3skYWxsLXRleHQtaW5wdXRzfSwgc2VsZWN0W211bHRpcGxlPW11bHRpcGxlXSB7XG5cdEBpbmNsdWRlIHRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcblx0Ym9yZGVyLXJhZGl1czogJGNvcmUtYm9yZGVyLXJhZGl1cztcblx0bWFyZ2luLWJvdHRvbTogJGxlYWRpbmctbWFyZ2luIC8gMjtcblx0cGFkZGluZzogKCRsZWFkaW5nLW1hcmdpbiAvIDQpICgkbGVhZGluZy1tYXJnaW4gLyA0KTtcblxuXHQmOmZvY3VzIHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG59XG5cbnRleHRhcmVhIHtcblx0cmVzaXplOiB2ZXJ0aWNhbDtcbn1cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLCBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuXHRkaXNwbGF5OiBpbmxpbmU7XG5cdG1hcmdpbi1yaWdodDogJGxlYWRpbmctbWFyZ2luIC8gNDtcbn1cblxuaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuc2VsZWN0IHtcblx0d2lkdGg6IGF1dG87XG5cdG1heC13aWR0aDogMTAwJTtcblx0bWFyZ2luLWJvdHRvbTogJGxlYWRpbmctbWFyZ2luO1xufVxuXG5idXR0b24sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0Ym9yZGVyOiBpbmhlcml0O1xufSJdLCJuYW1lcyI6W10sIm1h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 */ diff --git a/css-compiled/nucleus.min.css b/css-compiled/nucleus.min.css new file mode 100644 index 0000000..60f8270 --- /dev/null +++ b/css-compiled/nucleus.min.css @@ -0,0 +1 @@ +*,::after,::before{box-sizing:border-box}@-webkit-viewport{width:device-width}@-moz-viewport{width:device-width}@-ms-viewport{width:device-width}@viewport{width:device-width}html{font-size:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{text-decoration:none;background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}mark{color:#000;background:#ff0}sub,sup{font-size:.75rem;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{display:inline-block;max-width:100%;height:auto;vertical-align:middle;-ms-interpolation-mode:bicubic;border:0}iframe,svg{max-width:100%}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:inherit;font-size:1rem}button,input,optgroup,select,textarea{font:inherit;margin:0;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{width:100%;table-layout:fixed;border-spacing:0;border-collapse:collapse}td,th,tr{vertical-align:middle}td,th{padding:.425rem 0}th{text-align:left}.g-container{width:75em;margin:0 auto;padding:0}@media only all and (min-width:60em) and (max-width:74.938em){.g-container{width:60em}}@media only all and (min-width:48em) and (max-width:59.938em){.g-container{width:48em}}@media only all and (min-width:30.063em) and (max-width:47.938em){.g-container{width:30em}}@media only all and (max-width:30em){.g-container{width:100%}}.g-grid{display:-webkit-box;display:-moz-box;display:box;display:-moz-flex;display:-ms-flexbox;display:flex;margin:0;padding:0;list-style:none;-ms-flex-flow:row wrap;flex-flow:row wrap}.g-grid.nowrap{-ms-flex-flow:row;flex-flow:row}.g-block{min-width:0;min-height:0;box-flex:1;-moz-flex:1;-ms-flex:1;flex:1}@media only all and (max-width:47.938em){.g-block{box-flex:0;-moz-flex:0 100%;-ms-flex:0 100%;flex:0 100%}}.g-content{margin:.625rem;padding:.938rem}@media only all and (max-width:47.938em){body [class*=size-]{box-flex:0;-moz-flex:0 100%;-ms-flex:0 100%;flex:0 100%}}.size-1-2{box-flex:0;-moz-flex:0 50%;-ms-flex:0 50%;flex:0 50%}.size-1-3{box-flex:0;-moz-flex:0 33.3333333333%;-ms-flex:0 33.3333333333%;flex:0 33.3333333333%}.size-1-4{box-flex:0;-moz-flex:0 25%;-ms-flex:0 25%;flex:0 25%}.size-1-5{box-flex:0;-moz-flex:0 20%;-ms-flex:0 20%;flex:0 20%}.size-1-6{box-flex:0;-moz-flex:0 16.6666666667%;-ms-flex:0 16.6666666667%;flex:0 16.6666666667%}.size-1-7{box-flex:0;-moz-flex:0 14.2857142857%;-ms-flex:0 14.2857142857%;flex:0 14.2857142857%}.size-1-8{box-flex:0;-moz-flex:0 12.5%;-ms-flex:0 12.5%;flex:0 12.5%}.size-1-9{box-flex:0;-moz-flex:0 11.1111111111%;-ms-flex:0 11.1111111111%;flex:0 11.1111111111%}.size-1-10{box-flex:0;-moz-flex:0 10%;-ms-flex:0 10%;flex:0 10%}.size-1-11{box-flex:0;-moz-flex:0 9.0909090909%;-ms-flex:0 9.0909090909%;flex:0 9.0909090909%}.size-1-12{box-flex:0;-moz-flex:0 8.3333333333%;-ms-flex:0 8.3333333333%;flex:0 8.3333333333%}@media only all and (max-width:47.938em){@supports not (flex-wrap:wrap){.g-grid{display:block;-webkit-box-lines:inherit;-moz-box-lines:inherit;box-lines:inherit;-ms-flex-wrap:inherit;flex-wrap:inherit}.g-block{display:block;box-flex:inherit;-moz-flex:inherit;-ms-flex:inherit;flex:inherit}}}.first-block{-ms-flex-order:-1;order:-1}.last-block{-ms-flex-order:1;order:1}.fixed-blocks{-ms-flex-flow:row wrap;flex-flow:row wrap}.fixed-blocks .g-block{width:25%;box-flex:inherit;-moz-flex:inherit;-ms-flex:inherit;flex:inherit}@media only all and (min-width:60em) and (max-width:74.938em){.fixed-blocks .g-block{width:33.3333333333%}}@media only all and (min-width:48em) and (max-width:59.938em){.fixed-blocks .g-block{width:50%}}@media only all and (max-width:47.938em){.fixed-blocks .g-block{width:100%}}@supports not (flex-wrap:wrap){.fixed-blocks{display:block;-ms-flex-flow:inherit;flex-flow:inherit}}body{font-size:1rem;line-height:1.7}h1,h2,h3,h4,h5,h6{margin:.85rem 0 1.7rem 0;text-rendering:optimizeLegibility}h1{font-size:3.2rem}h2{font-size:-.6rem}h3{font-size:-.5rem}h4{font-size:1.75rem}h5{font-size:1.35rem}h6{font-size:.85rem}p{margin:1.7rem 0}dl,ol,ul{margin-top:1.7rem;margin-bottom:1.7rem}dl dl,dl ol,dl ul,ol dl,ol ol,ol ul,ul dl,ul ol,ul ul{margin-top:0;margin-bottom:0}dl,ul{margin-left:1.7rem;padding:0}ol{padding-left:1.7rem}blockquote{margin:1.7rem 0;padding-left:.85rem}cite{font-size:.875rem;display:block}cite:before{content:'\2014 \0020'}pre{margin:1.7rem 0;padding:.938rem}code{vertical-align:bottom}small{font-size:.875rem}hr{margin:1.7rem 0;border-top:none;border-right:none;border-left:none}fieldset{margin:0 0 1.7rem 0;padding:.938rem;border:0}input,label,select{display:block}label{margin-bottom:.425rem}label.required:after{content:'*'}label abbr{display:none}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select[multiple=multiple],textarea{margin-bottom:.85rem;padding:.425rem .425rem;transition:border-color;border-radius:0}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,select[multiple=multiple]:focus,textarea:focus{outline:0}textarea{resize:vertical}input[type=checkbox],input[type=radio]{display:inline;margin-right:.425rem}input[type=file]{width:100%}select{width:auto;max-width:100%;margin-bottom:1.7rem}button,input[type=submit]{cursor:pointer;-webkit-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap;border:inherit} \ No newline at end of file diff --git a/css-compiled/particles.css b/css-compiled/particles.css index ef40206..76448b8 100644 --- a/css-compiled/particles.css +++ b/css-compiled/particles.css @@ -1,3 +1,2 @@ - -/*# sourceMappingURL=particles.css.map */ +/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGljbGVzLmNzcyIsInNvdXJjZXMiOlsicGFydGljbGVzLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9fYm91cmJvbi5zY3NzIiwidmVuZG9yL2JvdXJib24vc2V0dGluZ3MvX3ByZWZpeGVyLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9zZXR0aW5ncy9fcHgtdG8tZW0uc2NzcyIsInZlbmRvci9ib3VyYm9uL2hlbHBlcnMvX2NvbnZlcnQtdW5pdHMuc2NzcyIsInZlbmRvci9ib3VyYm9uL2hlbHBlcnMvX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsInZlbmRvci9ib3VyYm9uL2hlbHBlcnMvX2lzLW51bS5zY3NzIiwidmVuZG9yL2JvdXJib24vaGVscGVycy9fbGluZWFyLWFuZ2xlLXBhcnNlci5zY3NzIiwidmVuZG9yL2JvdXJib24vaGVscGVycy9fbGluZWFyLWdyYWRpZW50LXBhcnNlci5zY3NzIiwidmVuZG9yL2JvdXJib24vaGVscGVycy9fbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsInZlbmRvci9ib3VyYm9uL2hlbHBlcnMvX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIuc2NzcyIsInZlbmRvci9ib3VyYm9uL2hlbHBlcnMvX3JhZGlhbC1hcmctcGFyc2VyLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9oZWxwZXJzL19yYWRpYWwtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwidmVuZG9yL2JvdXJib24vaGVscGVycy9fcmFkaWFsLWdyYWRpZW50LXBhcnNlci5zY3NzIiwidmVuZG9yL2JvdXJib24vaGVscGVycy9fcmVuZGVyLWdyYWRpZW50cy5zY3NzIiwidmVuZG9yL2JvdXJib24vaGVscGVycy9fc2hhcGUtc2l6ZS1zdHJpcHBlci5zY3NzIiwidmVuZG9yL2JvdXJib24vaGVscGVycy9fc3RyLXRvLW51bS5zY3NzIiwidmVuZG9yL2JvdXJib24vZnVuY3Rpb25zL19hc3NpZ24uc2NzcyIsInZlbmRvci9ib3VyYm9uL2Z1bmN0aW9ucy9fY29sb3ItbGlnaHRuZXNzLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9mdW5jdGlvbnMvX2ZsZXgtZ3JpZC5zY3NzIiwidmVuZG9yL2JvdXJib24vZnVuY3Rpb25zL19nb2xkZW4tcmF0aW8uc2NzcyIsInZlbmRvci9ib3VyYm9uL2Z1bmN0aW9ucy9fZ3JpZC13aWR0aC5zY3NzIiwidmVuZG9yL2JvdXJib24vZnVuY3Rpb25zL19tb2R1bGFyLXNjYWxlLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9mdW5jdGlvbnMvX3B4LXRvLWVtLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9mdW5jdGlvbnMvX3B4LXRvLXJlbS5zY3NzIiwidmVuZG9yL2JvdXJib24vZnVuY3Rpb25zL19zdHJpcC11bml0cy5zY3NzIiwidmVuZG9yL2JvdXJib24vZnVuY3Rpb25zL190aW50LXNoYWRlLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9mdW5jdGlvbnMvX3RyYW5zaXRpb24tcHJvcGVydHktbmFtZS5zY3NzIiwidmVuZG9yL2JvdXJib24vZnVuY3Rpb25zL191bnBhY2suc2NzcyIsInZlbmRvci9ib3VyYm9uL2NzczMvX2FuaW1hdGlvbi5zY3NzIiwidmVuZG9yL2JvdXJib24vY3NzMy9fYXBwZWFyYW5jZS5zY3NzIiwidmVuZG9yL2JvdXJib24vY3NzMy9fYmFja2ZhY2UtdmlzaWJpbGl0eS5zY3NzIiwidmVuZG9yL2JvdXJib24vY3NzMy9fYmFja2dyb3VuZC5zY3NzIiwidmVuZG9yL2JvdXJib24vY3NzMy9fYmFja2dyb3VuZC1pbWFnZS5zY3NzIiwidmVuZG9yL2JvdXJib24vY3NzMy9fYm9yZGVyLWltYWdlLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9jc3MzL19ib3JkZXItcmFkaXVzLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9jc3MzL19ib3gtc2l6aW5nLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9jc3MzL19jYWxjLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9jc3MzL19jb2x1bW5zLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9jc3MzL19maWx0ZXIuc2NzcyIsInZlbmRvci9ib3VyYm9uL2NzczMvX2ZsZXgtYm94LnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9jc3MzL19mb250LWZhY2Uuc2NzcyIsInZlbmRvci9ib3VyYm9uL2NzczMvX2h5cGhlbnMuc2NzcyIsInZlbmRvci9ib3VyYm9uL2NzczMvX2hpZHBpLW1lZGlhLXF1ZXJ5LnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9jc3MzL19pbWFnZS1yZW5kZXJpbmcuc2NzcyIsInZlbmRvci9ib3VyYm9uL2NzczMvX2tleWZyYW1lcy5zY3NzIiwidmVuZG9yL2JvdXJib24vY3NzMy9fbGluZWFyLWdyYWRpZW50LnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9jc3MzL19wZXJzcGVjdGl2ZS5zY3NzIiwidmVuZG9yL2JvdXJib24vY3NzMy9fcmFkaWFsLWdyYWRpZW50LnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9jc3MzL190cmFuc2Zvcm0uc2NzcyIsInZlbmRvci9ib3VyYm9uL2NzczMvX3RyYW5zaXRpb24uc2NzcyIsInZlbmRvci9ib3VyYm9uL2NzczMvX3VzZXItc2VsZWN0LnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9jc3MzL19wbGFjZWhvbGRlci5zY3NzIiwidmVuZG9yL2JvdXJib24vYWRkb25zL19idXR0b24uc2NzcyIsInZlbmRvci9ib3VyYm9uL2FkZG9ucy9fY2xlYXJmaXguc2NzcyIsInZlbmRvci9ib3VyYm9uL2FkZG9ucy9fZGlyZWN0aW9uYWwtdmFsdWVzLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9hZGRvbnMvX2VsbGlwc2lzLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9hZGRvbnMvX2ZvbnQtZmFtaWx5LnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9hZGRvbnMvX2hpZGUtdGV4dC5zY3NzIiwidmVuZG9yL2JvdXJib24vYWRkb25zL19odG1sNS1pbnB1dC10eXBlcy5zY3NzIiwidmVuZG9yL2JvdXJib24vYWRkb25zL19wb3NpdGlvbi5zY3NzIiwidmVuZG9yL2JvdXJib24vYWRkb25zL19wcmVmaXhlci5zY3NzIiwidmVuZG9yL2JvdXJib24vYWRkb25zL19yZXRpbmEtaW1hZ2Uuc2NzcyIsInZlbmRvci9ib3VyYm9uL2FkZG9ucy9fc2l6ZS5zY3NzIiwidmVuZG9yL2JvdXJib24vYWRkb25zL190aW1pbmctZnVuY3Rpb25zLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9hZGRvbnMvX3RyaWFuZ2xlLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9hZGRvbnMvX3dvcmQtd3JhcC5zY3NzIiwidmVuZG9yL2JvdXJib24vX2JvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZy5zY3NzIiwiY29uZmlndXJhdGlvbi9udWNsZXVzL19iYXNlLnNjc3MiLCJjb25maWd1cmF0aW9uL251Y2xldXMvX2NvcmUuc2NzcyIsImNvbmZpZ3VyYXRpb24vbnVjbGV1cy9fYnJlYWtwb2ludHMuc2NzcyIsImNvbmZpZ3VyYXRpb24vbnVjbGV1cy9fbGF5b3V0LnNjc3MiLCJjb25maWd1cmF0aW9uL251Y2xldXMvX3R5cG9ncmFwaHkuc2NzcyIsImNvbmZpZ3VyYXRpb24vbnVjbGV1cy9fbmF2LnNjc3MiLCJjb25maWd1cmF0aW9uL3RlbXBsYXRlL19iYXNlLnNjc3MiLCJjb25maWd1cmF0aW9uL3RlbXBsYXRlL19jb2xvcnMuc2NzcyIsImNvbmZpZ3VyYXRpb24vdGVtcGxhdGUvX3R5cG9ncmFwaHkuc2NzcyIsImNvbmZpZ3VyYXRpb24vdGVtcGxhdGUvX2J1bGxldHMuc2NzcyIsImNvbmZpZ3VyYXRpb24vdGVtcGxhdGUvX3ZhcmlhYmxlcy5zY3NzIiwibnVjbGV1cy9mdW5jdGlvbnMvX2Jhc2Uuc2NzcyIsIm51Y2xldXMvZnVuY3Rpb25zL19kaXJlY3Rpb24uc2NzcyIsIm51Y2xldXMvZnVuY3Rpb25zL19yYW5nZS5zY3NzIiwibnVjbGV1cy9mdW5jdGlvbnMvX3V0aWxpdGllcy5zY3NzIiwibnVjbGV1cy9taXhpbnMvX2Jhc2Uuc2NzcyIsIm51Y2xldXMvbWl4aW5zL19icmVha3BvaW50cy5zY3NzIiwibnVjbGV1cy9taXhpbnMvX25hdi5zY3NzIiwibnVjbGV1cy9taXhpbnMvX3R5cG9ncmFwaHkuc2NzcyIsIm51Y2xldXMvbWl4aW5zL191dGlsaXRpZXMuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBSRVFVSVJFRCBERVBFTkRFTkNJRVMgLSBETyBOT1QgQ0hBTkdFXG5cbi8vIExvYWQgVGhpcmQgUGFydHkgTGlicmFyaWVzXG5AaW1wb3J0IFwidmVuZG9yL2JvdXJib24vYm91cmJvblwiO1xuXG4vLyBMb2FkIE51Y2xldXMgQ29uZmlndXJhdGlvblxuQGltcG9ydCBcImNvbmZpZ3VyYXRpb24vbnVjbGV1cy9iYXNlXCI7XG5cbi8vIExvYWQgVGVtcGxhdGUgQ29uZmlndXJhdGlvblxuQGltcG9ydCBcImNvbmZpZ3VyYXRpb24vdGVtcGxhdGUvYmFzZVwiO1xuXG4vLyBMb2FkIE51Y2xldXMgTWl4aW5zIGFuZCBGdW5jdGlvbnNcbkBpbXBvcnQgXCJudWNsZXVzL2Z1bmN0aW9ucy9iYXNlXCI7XG5AaW1wb3J0IFwibnVjbGV1cy9taXhpbnMvYmFzZVwiOyIsIi8vIFNldHRpbmdzXG5AaW1wb3J0IFwic2V0dGluZ3MvcHJlZml4ZXJcIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9weC10by1lbVwiO1xuXG4vLyBDdXN0b20gSGVscGVyc1xuQGltcG9ydCBcImhlbHBlcnMvY29udmVydC11bml0c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvaXMtbnVtXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItYW5nbGUtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItZ3JhZGllbnQtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWFyZy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yZW5kZXItZ3JhZGllbnRzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9zaGFwZS1zaXplLXN0cmlwcGVyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9zdHItdG8tbnVtXCI7XG5cbi8vIEN1c3RvbSBGdW5jdGlvbnNcbkBpbXBvcnQgXCJmdW5jdGlvbnMvYXNzaWduXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbG9yLWxpZ2h0bmVzc1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9mbGV4LWdyaWRcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvZ29sZGVuLXJhdGlvXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2dyaWQtd2lkdGhcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvbW9kdWxhci1zY2FsZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1lbVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1yZW1cIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc3RyaXAtdW5pdHNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdGludC1zaGFkZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy90cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdW5wYWNrXCI7XG5cbi8vIENTUzMgTWl4aW5zXG5AaW1wb3J0IFwiY3NzMy9hbmltYXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL2FwcGVhcmFuY2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tmYWNlLXZpc2liaWxpdHlcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmRcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmQtaW1hZ2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JvcmRlci1pbWFnZVwiO1xuQGltcG9ydCBcImNzczMvYm9yZGVyLXJhZGl1c1wiO1xuQGltcG9ydCBcImNzczMvYm94LXNpemluZ1wiO1xuQGltcG9ydCBcImNzczMvY2FsY1wiO1xuQGltcG9ydCBcImNzczMvY29sdW1uc1wiO1xuQGltcG9ydCBcImNzczMvZmlsdGVyXCI7XG5AaW1wb3J0IFwiY3NzMy9mbGV4LWJveFwiO1xuQGltcG9ydCBcImNzczMvZm9udC1mYWNlXCI7XG5AaW1wb3J0IFwiY3NzMy9oeXBoZW5zXCI7XG5AaW1wb3J0IFwiY3NzMy9oaWRwaS1tZWRpYS1xdWVyeVwiO1xuQGltcG9ydCBcImNzczMvaW1hZ2UtcmVuZGVyaW5nXCI7XG5AaW1wb3J0IFwiY3NzMy9rZXlmcmFtZXNcIjtcbkBpbXBvcnQgXCJjc3MzL2xpbmVhci1ncmFkaWVudFwiO1xuQGltcG9ydCBcImNzczMvcGVyc3BlY3RpdmVcIjtcbkBpbXBvcnQgXCJjc3MzL3JhZGlhbC1ncmFkaWVudFwiO1xuQGltcG9ydCBcImNzczMvdHJhbnNmb3JtXCI7XG5AaW1wb3J0IFwiY3NzMy90cmFuc2l0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy91c2VyLXNlbGVjdFwiO1xuQGltcG9ydCBcImNzczMvcGxhY2Vob2xkZXJcIjtcblxuLy8gQWRkb25zICYgb3RoZXIgbWl4aW5zXG5AaW1wb3J0IFwiYWRkb25zL2J1dHRvblwiO1xuQGltcG9ydCBcImFkZG9ucy9jbGVhcmZpeFwiO1xuQGltcG9ydCBcImFkZG9ucy9kaXJlY3Rpb25hbC12YWx1ZXNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZWxsaXBzaXNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZm9udC1mYW1pbHlcIjtcbkBpbXBvcnQgXCJhZGRvbnMvaGlkZS10ZXh0XCI7XG5AaW1wb3J0IFwiYWRkb25zL2h0bWw1LWlucHV0LXR5cGVzXCI7XG5AaW1wb3J0IFwiYWRkb25zL3Bvc2l0aW9uXCI7XG5AaW1wb3J0IFwiYWRkb25zL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwiYWRkb25zL3JldGluYS1pbWFnZVwiO1xuQGltcG9ydCBcImFkZG9ucy9zaXplXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RpbWluZy1mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdHJpYW5nbGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvd29yZC13cmFwXCI7XG5cbi8vIFNvb24gdG8gYmUgZGVwcmVjYXRlZCBNaXhpbnNcbkBpbXBvcnQgXCJib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmdcIjtcbiIsIi8vIFZhcmlhYmxlIHNldHRpbmdzIGZvciAvYWRkb25zL3ByZWZpeGVyLnNjc3NcbiRwcmVmaXgtZm9yLXdlYmtpdDogICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1vemlsbGE6ICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1pY3Jvc29mdDogdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW9wZXJhOiAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLXNwZWM6ICAgICAgdHJ1ZSAhZGVmYXVsdDsgLy8gcmVxdWlyZWQgZm9yIGtleWZyYW1lIG1peGluXG4iLCIkZW0tYmFzZTogMTZweCAhZGVmYXVsdDtcbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEhlbHBlciBmdW5jdGlvbiBmb3Igc3RyLXRvLW51bSBmbi5cbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiBfY29udmVydC11bml0cygkbnVtYmVyLCAkdW5pdCkge1xuICAkc3RyaW5nczogJ3B4JyAnY20nICdtbScgJyUnICdjaCcgJ3BpY2EnICdpbicgJ2VtJyAncmVtJyAncHQnICdwYycgJ2V4JyAndncnICd2aCcgJ3ZtaW4nICd2bWF4JywgJ2RlZycsICdyYWQnLCAnZ3JhZCcsICd0dXJuJztcbiAgJHVuaXRzOiAgIDFweCAgMWNtICAxbW0gIDElICAxY2ggIDFwaWNhICAxaW4gIDFlbSAgMXJlbSAgMXB0ICAxcGMgIDFleCAgMXZ3ICAxdmggIDF2bWluICAxdm1heCwgIDFkZWcsICAxcmFkLCAgMWdyYWQsIDF0dXJuO1xuICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkdW5pdCk7XG5cbiAgQGlmIG5vdCAkaW5kZXgge1xuICAgIEB3YXJuIFwiVW5rbm93biB1bml0IGAjeyR1bml0fWAuXCI7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuICBAcmV0dXJuICRudW1iZXIgKiBudGgoJHVuaXRzLCAkaW5kZXgpO1xufVxuIiwiQGZ1bmN0aW9uIF9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC10eXBlLCAkZ3JhZGllbnQtcG9zaXRpb25zKSB7XG4gIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyKVxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XG4gIH1cbiAgQGVsc2UgaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xuICBhbmQgKCRncmFkaWVudC10eXBlID09IHJhZGlhbClcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xuICB9XG4gIEByZXR1cm4gJGdyYWRpZW50LXBvc2l0aW9ucztcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEhlbHBlciBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIF9pcy1udW0oJGNoYXIpIHtcbiAgJHZhbHVlczogJzAnICcxJyAnMicgJzMnICc0JyAnNScgJzYnICc3JyAnOCcgJzknIDAgMSAyIDMgNCA1IDYgNyA4IDk7XG4gICRpbmRleDogaW5kZXgoJHZhbHVlcywgJGNoYXIpO1xuICBAcmV0dXJuIGlmKCRpbmRleCwgdHJ1ZSwgZmFsc2UpO1xufVxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxuQGZ1bmN0aW9uIF9saW5lYXItYW5nbGUtcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCkge1xuICAkb2Zmc2V0OiBudWxsO1xuICAkdW5pdC1zaG9ydDogIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMiwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICR1bml0LWxvbmc6ICAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcblxuICBAaWYgKCR1bml0LWxvbmcgPT0gXCJncmFkXCIpIG9yXG4gICAgICAoJHVuaXQtbG9uZyA9PSBcInR1cm5cIikge1xuICAgICRvZmZzZXQ6IGlmKCR1bml0LWxvbmcgPT0gXCJncmFkXCIsIC0xMDBncmFkICogMywgLTAuNzV0dXJuKTtcbiAgfVxuXG4gIEBlbHNlIGlmICgkdW5pdC1zaG9ydCA9PSBcImRlZ1wiKSBvclxuICAgICAgICAgICAoJHVuaXQtc2hvcnQgPT0gXCJyYWRcIikge1xuICAgICRvZmZzZXQ6IGlmKCR1bml0LXNob3J0ID09IFwiZGVnXCIsIC05MCAqIDMsIDEuNnJhZCk7XG4gIH1cblxuICBAaWYgJG9mZnNldCB7XG4gICAgJG51bTogX3N0ci10by1udW0oJGZpcnN0LXZhbCk7XG5cbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgKCRvZmZzZXQgLSAkbnVtKSArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG59XG4iLCJAZnVuY3Rpb24gX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xuICAkZ3JhZGllbnRzOiAoKTtcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xuXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDAsICRzdGFydCk7XG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XG5cbiAgJGhhcy1tdWx0aXBsZS12YWxzOiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCIgXCIpO1xuICAkaGFzLXNpbmdsZS1wb3NpdGlvbjogdW5xdW90ZShfcG9zaXRpb24tZmxpcHBlcigkZmlyc3QtdmFsKSArIFwiXCIpO1xuICAkaGFzLWFuZ2xlOiBfaXMtbnVtKHN0ci1zbGljZSgkZmlyc3QtdmFsLCAwLCAwKSk7XG5cbiAgQGlmICRoYXMtbXVsdGlwbGUtdmFscyB7XG4gICAgJGdyYWRpZW50czogX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpO1xuICB9XG5cbiAgQGVsc2UgaWYgJGhhcy1zaW5nbGUtcG9zaXRpb24gIT0gXCJcIiB7XG4gICAgJHBvczogdW5xdW90ZSgkaGFzLXNpbmdsZS1wb3NpdGlvbiArIFwiXCIpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgJGhhcy1hbmdsZSB7XG4gICAgLy8gUm90YXRlIGRlZ3JlZSBmb3Igd2Via2l0XG4gICAgJGdyYWRpZW50czogX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEByZXR1cm4gJGdyYWRpZW50cztcbn1cbiIsIkBmdW5jdGlvbiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcykge1xuICAkdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkc3BlYzogbnVsbDtcbiAgJGRlZ3JlZTogbnVsbDtcbiAgJHNpZGU6IG51bGw7XG4gICRjb3JuZXI6IG51bGw7XG4gICRsZW5ndGg6IGxlbmd0aCgkcG9zKTtcbiAgLy8gUGFyc2UgU2lkZSBhbmQgY29ybmVyIHBvc2l0aW9uc1xuICBAaWYgKCRsZW5ndGggPiAxKSB7XG4gICAgQGlmIG50aCgkcG9zLCAxKSA9PSBcInRvXCIgeyAvLyBOZXdlciBzeW50YXhcbiAgICAgICRzaWRlOiBudGgoJHBvcywgMik7XG5cbiAgICAgIEBpZiAkbGVuZ3RoID09IDIgeyAvLyBlZy4gdG8gdG9wXG4gICAgICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRhYmlsaXR5XG4gICAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDMgeyAvLyBlZy4gdG8gdG9wIGxlZnRcbiAgICAgICAgJGNvcm5lcjogbnRoKCRwb3MsIDMpO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDIgeyAvLyBPbGRlciBzeW50YXggKFwidG9wIGxlZnRcIilcbiAgICAgICRzaWRlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMSkpO1xuICAgICAgJGNvcm5lcjogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcbiAgICB9XG5cbiAgICBAaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIGxlZnRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIHJpZ2h0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSByaWdodFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSBsZWZ0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgJHNwZWM6IHRvICRzaWRlICRjb3JuZXI7XG4gIH1cbiAgQGVsc2UgaWYgJGxlbmd0aCA9PSAxIHtcbiAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0YWJpbGl0eVxuICAgIEBpZiAkdHlwZSA9PSBzdHJpbmcge1xuICAgICAgJGRlZ3JlZTogJHBvcztcbiAgICAgICRzcGVjOiB0byBfcG9zaXRpb24tZmxpcHBlcigkcG9zKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGRlZ3JlZTogLTI3MCAtICRwb3M7IC8vcm90YXRlIHRoZSBncmFkaWVudCBvcHBvc2l0ZSBmcm9tIHNwZWNcbiAgICAgICRzcGVjOiAkcG9zO1xuICAgIH1cbiAgfVxuICAkZGVncmVlOiB1bnF1b3RlKCRkZWdyZWUgKyBcIixcIik7XG4gICRzcGVjOiAgIHVucXVvdGUoJHNwZWMgKyBcIixcIik7XG4gIEByZXR1cm4gJGRlZ3JlZSAkc3BlYztcbn1cblxuQGZ1bmN0aW9uIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpIHtcbiBAcmV0dXJuIGlmKCRwb3MgPT0gbGVmdCwgcmlnaHQsIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IHJpZ2h0LCBsZWZ0LCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSB0b3AsIGJvdHRvbSwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gYm90dG9tLCB0b3AsIG51bGwpO1xufVxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxuQGZ1bmN0aW9uIF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCwgJGhhcy1tdWx0aXBsZS12YWxzKSB7XG4gICR2YWwtMTogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDAsICRoYXMtbXVsdGlwbGUtdmFscyAtIDEgKTtcbiAgJHZhbC0yOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGhhcy1tdWx0aXBsZS12YWxzICsgMSwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICR2YWwtMzogbnVsbDtcbiAgJGhhcy12YWwtMzogc3RyLWluZGV4KCR2YWwtMiwgXCIgXCIpO1xuXG4gIEBpZiAkaGFzLXZhbC0zIHtcbiAgICAkdmFsLTM6IHN0ci1zbGljZSgkdmFsLTIsICRoYXMtdmFsLTMgKyAxLCBzdHItbGVuZ3RoKCR2YWwtMikpO1xuICAgICR2YWwtMjogc3RyLXNsaWNlKCR2YWwtMiwgMCwgJGhhcy12YWwtMyAtIDEpO1xuICB9XG5cbiAgJHBvczogX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0xKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTIpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMyk7XG4gICRwb3M6IHVucXVvdGUoJHBvcyArIFwiXCIpO1xuXG4gIC8vIFVzZSBvbGQgc3BlYyBmb3Igd2Via2l0XG4gIEBpZiAkdmFsLTEgPT0gXCJ0b1wiIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgLy8gQnJpbmcgdGhlIGNvZGUgdXAgdG8gc3BlY1xuICBAZWxzZSB7XG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxuICAgICk7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWFyZy1wYXJzZXIoJEcxLCAkRzIsICRwb3MsICRzaGFwZS1zaXplKSB7XG4gIEBlYWNoICR2YWx1ZSBpbiAkRzEsICRHMiB7XG4gICAgJGZpcnN0LXZhbDogbnRoKCR2YWx1ZSwgMSk7XG4gICAgJHBvcy10eXBlOiAgdHlwZS1vZigkZmlyc3QtdmFsKTtcbiAgICAkc3BlYy1hdC1pbmRleDogbnVsbDtcblxuICAgIC8vIERldGVybWluZSBpZiBzcGVjIHdhcyBwYXNzZWQgdG8gbWl4aW5cbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09IGxpc3Qge1xuICAgICAgJHNwZWMtYXQtaW5kZXg6IGlmKGluZGV4KCR2YWx1ZSwgYXQpLCBpbmRleCgkdmFsdWUsIGF0KSwgZmFsc2UpO1xuICAgIH1cbiAgICBAaWYgJHNwZWMtYXQtaW5kZXgge1xuICAgICAgQGlmICRzcGVjLWF0LWluZGV4ID4gMSB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggKCRzcGVjLWF0LWluZGV4IC0gMSkge1xuICAgICAgICAgICRzaGFwZS1zaXplOiAkc2hhcGUtc2l6ZSBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkc3BlYy1hdC1pbmRleCA9PSAxIHtcbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAkRzE6IG51bGw7XG4gICAgfVxuXG4gICAgLy8gSWYgbm90IHNwZWMgY2FsY3VsYXRlIGNvcnJlY3QgdmFsdWVzXG4gICAgQGVsc2Uge1xuICAgICAgQGlmICgkcG9zLXR5cGUgIT0gY29sb3IpIG9yICgkZmlyc3QtdmFsICE9IFwidHJhbnNwYXJlbnRcIikge1xuICAgICAgICBAaWYgKCRwb3MtdHlwZSA9PSBudW1iZXIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2VudGVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwidG9wXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwicmlnaHRcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJib3R0b21cIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJsZWZ0XCIpIHtcblxuICAgICAgICAgICRwb3M6ICR2YWx1ZTtcblxuICAgICAgICAgIEBpZiAkcG9zID09ICRHMSB7XG4gICAgICAgICAgICAkRzE6IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2UgaWZcbiAgICAgICAgICAgKCRmaXJzdC12YWwgPT0gXCJlbGxpcHNlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2lyY2xlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1zaWRlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1jb3JuZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1zaWRlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3QtY29ybmVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY29udGFpblwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvdmVyXCIpIHtcblxuICAgICAgICAgICRzaGFwZS1zaXplOiAkdmFsdWU7XG5cbiAgICAgICAgICBAaWYgJHZhbHVlID09ICRHMSB7XG4gICAgICAgICAgICAkRzE6IG51bGw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGVsc2UgaWYgJHZhbHVlID09ICRHMiB7XG4gICAgICAgICAgICAkRzI6IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJEcxLCAkRzIsICRwb3MsICRzaGFwZS1zaXplO1xufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zKSB7XG4gICRzaGFwZS1zaXplOiBudGgoJGdyYWRpZW50LXBvcywgMSk7XG4gICRwb3M6ICAgICAgICBudGgoJGdyYWRpZW50LXBvcywgMik7XG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcblxuICAkcHJlLXNwZWM6IHVucXVvdGUoaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCkpXG4gICAgICAgICAgICAgdW5xdW90ZShpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSxcIiwgbnVsbCkpO1xuICAkcG9zLXNwZWM6IGlmKCRwb3MsIFwiYXQgI3skcG9zfVwiLCBudWxsKTtcblxuICAkc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHBvcy1zcGVjfVwiO1xuXG4gIC8vIEFkZCBjb21tYVxuICBAaWYgKCRzcGVjICE9ICcgICcpIHtcbiAgICAkc3BlYzogXCIjeyRzcGVjfSxcIlxuICB9XG5cbiAgQHJldHVybiAkcHJlLXNwZWMgJHNwZWM7XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xuICAkZ3JhZGllbnRzOiAoKTtcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xuXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDAsICRzdGFydCk7XG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XG5cbiAgJGlzLXNwZWMtc3ludGF4OiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCJhdFwiKTtcblxuICBAaWYgJGlzLXNwZWMtc3ludGF4IGFuZCAkaXMtc3BlYy1zeW50YXggPiAxIHtcbiAgICAka2V5d29yZDogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRpcy1zcGVjLXN5bnRheCAtIDIpO1xuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgICAkcG9zOiBhcHBlbmQoJHBvcywgJGtleXdvcmQsIGNvbW1hKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApXG4gIH1cblxuICBAZWxzZSBpZiAkaXMtc3BlYy1zeW50YXggPT0gMSB7XG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgIClcbiAgfVxuXG4gIEBlbHNlIGlmIHN0ci1pbmRleCgkaW1hZ2UsIFwiY292ZXJcIikgb3Igc3RyLWluZGV4KCRpbWFnZSwgXCJjb250YWluXCIpIHtcbiAgICBAd2FybiBcIlJhZGlhbC1ncmFkaWVudCBuZWVkcyB0byBiZSB1cGRhdGVkIHRvIGNvbmZvcm0gdG8gbGF0ZXN0IHNwZWMuXCI7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IG51bGwsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApXG4gIH1cblxuICBAZWxzZSB7XG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgIClcbiAgfVxuXG4gIEByZXR1cm4gJGdyYWRpZW50cztcbn1cbiIsIi8vIFVzZXIgZm9yIGxpbmVhciBhbmQgcmFkaWFsIGdyYWRpZW50cyB3aXRoaW4gYmFja2dyb3VuZC1pbWFnZSBvciBib3JkZXItaW1hZ2UgcHJvcGVydGllc1xuXG5AZnVuY3Rpb24gX3JlbmRlci1ncmFkaWVudHMoJGdyYWRpZW50LXBvc2l0aW9ucywgJGdyYWRpZW50cywgJGdyYWRpZW50LXR5cGUsICR2ZW5kb3I6IGZhbHNlKSB7XG4gICRwcmUtc3BlYzogbnVsbDtcbiAgJHNwZWM6IG51bGw7XG4gICR2ZW5kb3ItZ3JhZGllbnRzOiBudWxsO1xuICBAaWYgJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyIHtcbiAgICBAaWYgJGdyYWRpZW50LXBvc2l0aW9ucyB7XG4gICAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcbiAgICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwge1xuICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xuICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgQGlmICR2ZW5kb3Ige1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiAtI3skdmVuZG9yfS0jeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRwcmUtc3BlY30gJGdyYWRpZW50cyk7XG4gIH1cbiAgQGVsc2UgaWYgJHZlbmRvciA9PSBmYWxzZSB7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IFwiI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skc3BlY30gI3skZ3JhZGllbnRzfSlcIjtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogdW5xdW90ZSgkdmVuZG9yLWdyYWRpZW50cyk7XG4gIH1cbiAgQHJldHVybiAkdmVuZG9yLWdyYWRpZW50cztcbn1cbiIsIkBmdW5jdGlvbiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSkge1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBudWxsO1xuICBAZWFjaCAkdmFsdWUgaW4gJHNoYXBlLXNpemUge1xuICAgIEBpZiAoJHZhbHVlID09IFwiY292ZXJcIikgb3IgKCR2YWx1ZSA9PSBcImNvbnRhaW5cIikge1xuICAgICAgJHZhbHVlOiBudWxsO1xuICAgIH1cbiAgICAkc2hhcGUtc2l6ZS1zcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skdmFsdWV9XCI7XG4gIH1cbiAgQHJldHVybiAkc2hhcGUtc2l6ZS1zcGVjO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBsaW5lYXIvcmFkaWFsLWdyYWRpZW50LXBhcnNlcnMuXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gX3N0ci10by1udW0oJHN0cmluZykge1xuICAvLyBNYXRyaWNlc1xuICAkc3RyaW5nczogJzAnICcxJyAnMicgJzMnICc0JyAnNScgJzYnICc3JyAnOCcgJzknO1xuICAkbnVtYmVyczogIDAgICAxICAgMiAgIDMgICA0ICAgNSAgIDYgICA3ICAgOCAgIDk7XG5cbiAgLy8gUmVzdWx0XG4gICRyZXN1bHQ6IDA7XG4gICRkaXZpZGVyOiAwO1xuICAkbWludXM6IGZhbHNlO1xuXG4gIC8vIExvb3BpbmcgdGhyb3VnaCBhbGwgY2hhcmFjdGVyc1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHN0cmluZykge1xuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkc3RyaW5nLCAkaSwgJGkpO1xuICAgICRpbmRleDogaW5kZXgoJHN0cmluZ3MsICRjaGFyYWN0ZXIpO1xuXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gJy0nIHtcbiAgICAgICRtaW51czogdHJ1ZTtcbiAgICB9XG5cbiAgICBAZWxzZSBpZiAkY2hhcmFjdGVyID09ICcuJyB7XG4gICAgICAkZGl2aWRlcjogMTtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgbm90ICRpbmRleCB7XG4gICAgICAgICRyZXN1bHQ6IGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcbiAgICAgICAgQHJldHVybiBfY29udmVydC11bml0cygkcmVzdWx0LCBzdHItc2xpY2UoJHN0cmluZywgJGkpKTtcbiAgICAgIH1cblxuICAgICAgJG51bWJlcjogbnRoKCRudW1iZXJzLCAkaW5kZXgpO1xuXG4gICAgICBAaWYgJGRpdmlkZXIgPT0gMCB7XG4gICAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMDtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAvLyBNb3ZlIHRoZSBkZWNpbWFsIGRvdCB0byB0aGUgbGVmdFxuICAgICAgICAkZGl2aWRlcjogJGRpdmlkZXIgKiAxMDtcbiAgICAgICAgJG51bWJlcjogJG51bWJlciAvICRkaXZpZGVyO1xuICAgICAgfVxuXG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgJG51bWJlcjtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XG59XG4iLCJAZnVuY3Rpb24gYXNzaWduLWlucHV0cygkaW5wdXRzLCAkcHNldWRvOiBudWxsKSB7XG4gICRsaXN0IDogKCk7XG5cbiAgQGVhY2ggJGlucHV0IGluICRpbnB1dHMge1xuICAgICRpbnB1dDogdW5xdW90ZSgkaW5wdXQpO1xuICAgICRpbnB1dDogaWYoJHBzZXVkbywgJGlucHV0ICsgXCI6XCIgKyAkcHNldWRvLCAkaW5wdXQpO1xuICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRpbnB1dCwgY29tbWEpO1xuICB9XG5cbiAgQHJldHVybiAkbGlzdDtcbn0iLCIvLyBQcm9ncmFtYXRpY2FsbHkgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgY29sb3IgaXMgbGlnaHQgb3IgZGFya1xuLy8gUmV0dXJucyBhIGJvb2xlYW5cbi8vIE1vcmUgZGV0YWlscyBoZXJlIGh0dHA6Ly9yb2JvdHMudGhvdWdodGJvdC5jb20vY2xvc2VyLWxvb2stY29sb3ItbGlnaHRuZXNzXG5cbkBmdW5jdGlvbiBpcy1saWdodCgkaGV4LWNvbG9yKSB7XG4gICQtbG9jYWwtcmVkOiByZWQocmdiYSgkaGV4LWNvbG9yLCAxLjApKTtcbiAgJC1sb2NhbC1ncmVlbjogZ3JlZW4ocmdiYSgkaGV4LWNvbG9yLCAxLjApKTtcbiAgJC1sb2NhbC1ibHVlOiBibHVlKHJnYmEoJGhleC1jb2xvciwgMS4wKSk7XG5cbiAgJC1sb2NhbC1saWdodG5lc3M6ICgkLWxvY2FsLXJlZCAqIDAuMjEyNiArICQtbG9jYWwtZ3JlZW4gKiAwLjcxNTIgKyAkLWxvY2FsLWJsdWUgKiAwLjA3MjIpIC8gMjU1O1xuXG4gIEByZXR1cm4gJC1sb2NhbC1saWdodG5lc3MgPiAuNjtcbn1cbiIsIi8vIEZsZXhpYmxlIGdyaWRcbkBmdW5jdGlvbiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zKSB7XG4gICR3aWR0aDogJGNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCR3aWR0aCAvICRjb250YWluZXItd2lkdGgpO1xufVxuXG4vLyBGbGV4aWJsZSBndXR0ZXJcbkBmdW5jdGlvbiBmbGV4LWd1dHRlcigkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucywgJGd1dHRlcjogJGZnLWd1dHRlcikge1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCRndXR0ZXIgLyAkY29udGFpbmVyLXdpZHRoKTtcbn1cblxuLy8gVGhlICRmZy1jb2x1bW4sICRmZy1ndXR0ZXIgYW5kICRmZy1tYXgtY29sdW1ucyB2YXJpYWJsZXMgbXVzdCBiZSBkZWZpbmVkIGluIHlvdXIgYmFzZSBzdHlsZXNoZWV0IHRvIHByb3Blcmx5IHVzZSB0aGUgZmxleC1ncmlkIGZ1bmN0aW9uLlxuLy8gVGhpcyBmdW5jdGlvbiB0YWtlcyB0aGUgZmx1aWQgZ3JpZCBlcXVhdGlvbiAodGFyZ2V0IC8gY29udGV4dCA9IHJlc3VsdCkgYW5kIHVzZXMgY29sdW1ucyB0byBoZWxwIGRlZmluZSBlYWNoLlxuLy9cbi8vIFRoZSBjYWxjdWxhdGlvbiBwcmVzdW1lcyB0aGF0IHlvdXIgY29sdW1uIHN0cnVjdHVyZSB3aWxsIGJlIG1pc3NpbmcgdGhlIGxhc3QgZ3V0dGVyOlxuLy9cbi8vICAgLS0gY29sdW1uIC0tIGd1dHRlciAtLSBjb2x1bW4gLS0gZ3V0dGVyIC0tIGNvbHVtblxuLy9cbi8vICAkZmctY29sdW1uOiA2MHB4OyAgICAgICAgICAgICAvLyBDb2x1bW4gV2lkdGhcbi8vICAkZmctZ3V0dGVyOiAyNXB4OyAgICAgICAgICAgICAvLyBHdXR0ZXIgV2lkdGhcbi8vICAkZmctbWF4LWNvbHVtbnM6IDEyOyAgICAgICAgICAvLyBUb3RhbCBDb2x1bW5zIEZvciBNYWluIENvbnRhaW5lclxuLy9cbi8vICBkaXYge1xuLy8gICAgd2lkdGg6IGZsZXgtZ3JpZCg0KTsgICAgICAgIC8vIHJldHVybnMgKDMxNXB4IC8gOTk1cHgpID0gMzEuNjU4MjklO1xuLy8gICAgbWFyZ2luLWxlZnQ6IGZsZXgtZ3V0dGVyKCk7IC8vIHJldHVybnMgKDI1cHggLyA5OTVweCkgPSAyLjUxMjU2JTtcbi8vXG4vLyAgICBwIHtcbi8vICAgICAgd2lkdGg6IGZsZXgtZ3JpZCgyLCA0KTsgIC8vIHJldHVybnMgKDE0NXB4IC8gMzE1cHgpID0gNDYuMDMxNzQ2JTtcbi8vICAgICAgZmxvYXQ6IGxlZnQ7XG4vLyAgICAgIG1hcmdpbjogZmxleC1ndXR0ZXIoNCk7ICAvLyByZXR1cm5zICgyNXB4IC8gMzE1cHgpID0gNy45MzY1MDglO1xuLy8gICAgfVxuLy9cbi8vICAgIGJsb2NrcXVvdGUge1xuLy8gICAgICBmbG9hdDogbGVmdDtcbi8vICAgICAgd2lkdGg6IGZsZXgtZ3JpZCgyLCA0KTsgLy8gcmV0dXJucyAoMTQ1cHggLyAzMTVweCkgPSA0Ni4wMzE3NDYlO1xuLy8gICAgfVxuLy8gIH0iLCJAZnVuY3Rpb24gZ29sZGVuLXJhdGlvKCR2YWx1ZSwgJGluY3JlbWVudCkge1xuICBAcmV0dXJuIG1vZHVsYXItc2NhbGUoJHZhbHVlLCAkaW5jcmVtZW50LCAkZ29sZGVuKVxufVxuIiwiQGZ1bmN0aW9uIGdyaWQtd2lkdGgoJG4pIHtcbiAgQHJldHVybiAkbiAqICRndy1jb2x1bW4gKyAoJG4gLSAxKSAqICRndy1ndXR0ZXI7XG59XG5cbi8vIFRoZSAkZ3ctY29sdW1uIGFuZCAkZ3ctZ3V0dGVyIHZhcmlhYmxlcyBtdXN0IGJlIGRlZmluZWQgaW4geW91ciBiYXNlIHN0eWxlc2hlZXQgdG8gcHJvcGVybHkgdXNlIHRoZSBncmlkLXdpZHRoIGZ1bmN0aW9uLlxuLy9cbi8vICAkZ3ctY29sdW1uOiAxMDBweDsgICAgICAgICAvLyBDb2x1bW4gV2lkdGhcbi8vICAkZ3ctZ3V0dGVyOiA0MHB4OyAgICAgICAgICAvLyBHdXR0ZXIgV2lkdGhcbi8vXG4vLyAgZGl2IHtcbi8vICAgIHdpZHRoOiBncmlkLXdpZHRoKDQpOyAgICAvLyByZXR1cm5zIDUyMHB4O1xuLy8gICAgbWFyZ2luLWxlZnQ6ICRndy1ndXR0ZXI7IC8vIHJldHVybnMgNDBweDtcbi8vICB9XG4iLCIvLyBTY2FsaW5nIFZhcmlhYmxlc1xuJGdvbGRlbjogICAgICAgICAgIDEuNjE4O1xuJG1pbm9yLXNlY29uZDogICAgIDEuMDY3O1xuJG1ham9yLXNlY29uZDogICAgIDEuMTI1O1xuJG1pbm9yLXRoaXJkOiAgICAgIDEuMjtcbiRtYWpvci10aGlyZDogICAgICAxLjI1O1xuJHBlcmZlY3QtZm91cnRoOiAgIDEuMzMzO1xuJGF1Z21lbnRlZC1mb3VydGg6IDEuNDE0O1xuJHBlcmZlY3QtZmlmdGg6ICAgIDEuNTtcbiRtaW5vci1zaXh0aDogICAgICAxLjY7XG4kbWFqb3Itc2l4dGg6ICAgICAgMS42Njc7XG4kbWlub3Itc2V2ZW50aDogICAgMS43Nzg7XG4kbWFqb3Itc2V2ZW50aDogICAgMS44NzU7XG4kb2N0YXZlOiAgICAgICAgICAgMjtcbiRtYWpvci10ZW50aDogICAgICAyLjU7XG4kbWFqb3ItZWxldmVudGg6ICAgMi42Njc7XG4kbWFqb3ItdHdlbGZ0aDogICAgMztcbiRkb3VibGUtb2N0YXZlOiAgICA0O1xuXG5AZnVuY3Rpb24gbW9kdWxhci1zY2FsZSgkdmFsdWUsICRpbmNyZW1lbnQsICRyYXRpbykge1xuICAkdjE6IG50aCgkdmFsdWUsIDEpO1xuICAkdjI6IG50aCgkdmFsdWUsIGxlbmd0aCgkdmFsdWUpKTtcbiAgJHZhbHVlOiAkdjE7XG5cbiAgLy8gc2NhbGUgJHYyIHRvIGp1c3QgYWJvdmUgJHYxXG4gIEB3aGlsZSAkdjIgPiAkdjEge1xuICAgICR2MjogKCR2MiAvICRyYXRpbyk7IC8vIHdpbGwgYmUgb2ZmLWJ5LTFcbiAgfVxuICBAd2hpbGUgJHYyIDwgJHYxIHtcbiAgICAkdjI6ICgkdjIgKiAkcmF0aW8pOyAvLyB3aWxsIGZpeCBvZmYtYnktMVxuICB9XG5cbiAgLy8gY2hlY2sgQUZURVIgc2NhbGluZyAkdjIgdG8gcHJldmVudCBkb3VibGUtY291bnRpbmcgY29ybmVyLWNhc2VcbiAgJGRvdWJsZS1zdHJhbmRlZDogJHYyID4gJHYxO1xuXG4gIEBpZiAkaW5jcmVtZW50ID4gMCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkaW5jcmVtZW50IHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxICogJHJhdGlvKSA+ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgKiAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAqICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkaW5jcmVtZW50IDwgMCB7XG4gICAgLy8gYWRqdXN0ICR2MiB0byBqdXN0IGJlbG93ICR2MVxuICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIHtcbiAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XG4gICAgfVxuXG4gICAgQGZvciAkaSBmcm9tICRpbmNyZW1lbnQgdGhyb3VnaCAtMSB7XG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAvICRyYXRpbykgPCAkdjIge1xuICAgICAgICAkdmFsdWU6ICR2MjtcbiAgICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdjE6ICgkdjEgLyAkcmF0aW8pO1xuICAgICAgICAkdmFsdWU6ICR2MTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIGVtc1xuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSBlbSgxMikgd2hlbiB0aGUgcGFyZW50IGlzIDE2cHhcbi8vIGlmIHRoZSBwYXJlbnQgaXMgYW5vdGhlciB2YWx1ZSBzYXkgMjRweCB3cml0ZSBlbSgxMiwgMjQpXG5cbkBmdW5jdGlvbiBlbSgkcHh2YWwsICRiYXNlOiAkZW0tYmFzZSkge1xuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xuICAgICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xuICB9XG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcbiAgICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XG4gIH1cbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMWVtO1xufVxuIiwiLy8gQ29udmVydCBwaXhlbHMgdG8gcmVtc1xuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSByZW0oMTIpXG4vLyBBc3N1bWVzICRlbS1iYXNlIGlzIHRoZSBmb250LXNpemUgb2YgPGh0bWw+XG5cbkBmdW5jdGlvbiByZW0oJHB4dmFsKSB7XG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XG4gICAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XG4gIH1cblxuICAkYmFzZTogJGVtLWJhc2U7XG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcbiAgICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XG4gIH1cbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMXJlbTtcbn1cbiIsIi8vIFNydGlwcyB0aGUgdW5pdHMgZnJvbSBhIHZhbHVlLiBlLmcuIDEycHggLT4gMTJcblxuQGZ1bmN0aW9uIHN0cmlwLXVuaXRzKCR2YWwpIHtcbiAgQHJldHVybiAoJHZhbCAvICgkdmFsICogMCArIDEpKTtcbn1cbiIsIi8vIEFkZCBwZXJjZW50YWdlIG9mIHdoaXRlIHRvIGEgY29sb3JcbkBmdW5jdGlvbiB0aW50KCRjb2xvciwgJHBlcmNlbnQpe1xuICBAcmV0dXJuIG1peCh3aGl0ZSwgJGNvbG9yLCAkcGVyY2VudCk7XG59XG5cbi8vIEFkZCBwZXJjZW50YWdlIG9mIGJsYWNrIHRvIGEgY29sb3JcbkBmdW5jdGlvbiBzaGFkZSgkY29sb3IsICRwZXJjZW50KXtcbiAgQHJldHVybiBtaXgoYmxhY2ssICRjb2xvciwgJHBlcmNlbnQpO1xufVxuIiwiLy8gUmV0dXJuIHZlbmRvci1wcmVmaXhlZCBwcm9wZXJ0eSBuYW1lcyBpZiBhcHByb3ByaWF0ZVxuLy8gRXhhbXBsZTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygodHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZCksIG1veikgLT4gLW1vei10cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcHMsICR2ZW5kb3I6IGZhbHNlKSB7XG5cdCRuZXctcHJvcHM6ICgpO1xuXHRcblx0QGVhY2ggJHByb3AgaW4gJHByb3BzIHtcblx0XHQkbmV3LXByb3BzOiBhcHBlbmQoJG5ldy1wcm9wcywgdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yKSwgY29tbWEpO1xuXHR9XG5cblx0QHJldHVybiAkbmV3LXByb3BzO1xufVxuXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yOiBmYWxzZSkge1xuXHQvLyBwdXQgb3RoZXIgcHJvcGVydGllcyB0aGF0IG5lZWQgdG8gYmUgcHJlZml4ZWQgaGVyZSBhc3dlbGxcblx0QGlmICR2ZW5kb3IgYW5kICRwcm9wID09IHRyYW5zZm9ybSB7XG5cdFx0QHJldHVybiB1bnF1b3RlKCctJyskdmVuZG9yKyctJyskcHJvcCk7XG5cdH1cblx0QGVsc2Uge1xuXHRcdEByZXR1cm4gJHByb3A7XG5cdH1cbn0iLCIvLyBDb252ZXJ0IHNob3J0aGFuZCB0byB0aGUgNC12YWx1ZSBzeW50YXhcblxuQGZ1bmN0aW9uIHVucGFjaygkc2hvcnRoYW5kKSB7XG4gIEBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMSB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSk7XG4gIH1cbiAgQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDIge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpO1xuICB9XG4gIEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAzIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDMpIG50aCgkc2hvcnRoYW5kLCAyKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkc2hvcnRoYW5kO1xuICB9XG59XG5cbiIsIi8vIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtYW5pbWF0aW9ucy8jdGhlLWFuaW1hdGlvbi1uYW1lLXByb3BlcnR5LVxuLy8gRWFjaCBvZiB0aGVzZSBtaXhpbnMgc3VwcG9ydCBjb21tYSBzZXBhcmF0ZWQgbGlzdHMgb2YgdmFsdWVzLCB3aGljaCBhbGxvd3MgZGlmZmVyZW50IHRyYW5zaXRpb25zIGZvciBpbmRpdmlkdWFsIHByb3BlcnRpZXMgdG8gYmUgZGVzY3JpYmVkIGluIGEgc2luZ2xlIHN0eWxlIHJ1bGUuIEVhY2ggdmFsdWUgaW4gdGhlIGxpc3QgY29ycmVzcG9uZHMgdG8gdGhlIHZhbHVlIGF0IHRoYXQgc2FtZSBwb3NpdGlvbiBpbiB0aGUgb3RoZXIgcHJvcGVydGllcy5cblxuLy8gT2ZmaWNpYWwgYW5pbWF0aW9uIHNob3J0aGFuZCBwcm9wZXJ0eS5cbkBtaXhpbiBhbmltYXRpb24gKCRhbmltYXRpb25zLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbiwgJGFuaW1hdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIEluZGl2aWR1YWwgQW5pbWF0aW9uIFByb3BlcnRpZXNcbkBtaXhpbiBhbmltYXRpb24tbmFtZSAoJG5hbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1uYW1lLCAkbmFtZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cblxuQG1peGluIGFuaW1hdGlvbi1kdXJhdGlvbiAoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uICgkbW90aW9ucy4uLikge1xuLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50ICgkdmFsdWVzLi4uKSB7XG4vLyBpbmZpbml0ZSB8IDxudW1iZXI+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsICR2YWx1ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cblxuQG1peGluIGFuaW1hdGlvbi1kaXJlY3Rpb24gKCRkaXJlY3Rpb25zLi4uKSB7XG4vLyBub3JtYWwgfCBhbHRlcm5hdGVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRpcmVjdGlvbiwgJGRpcmVjdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cblxuQG1peGluIGFuaW1hdGlvbi1wbGF5LXN0YXRlICgkc3RhdGVzLi4uKSB7XG4vLyBydW5uaW5nIHwgcGF1c2VkXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1wbGF5LXN0YXRlLCAkc3RhdGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24tZGVsYXkgKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLWZpbGwtbW9kZSAoJG1vZGVzLi4uKSB7XG4vLyBub25lIHwgZm9yd2FyZHMgfCBiYWNrd2FyZHMgfCBib3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1maWxsLW1vZGUsICRtb2Rlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBhcHBlYXJhbmNlICgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYXBwZWFyYW5jZSwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZmFjZS12aXNpYmlsaXR5IG1peGluXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmlzaWJpbGl0eSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihiYWNrZmFjZS12aXNpYmlsaXR5LCAkdmlzaWJpbGl0eSwgd2Via2l0IHNwZWMpO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gQmFja2dyb3VuZCBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmRzIHVzaW5nIHNob3J0aGFuZFxuLy8gbm90YXRpb24uXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5cbkBtaXhpbiBiYWNrZ3JvdW5kKCRiYWNrZ3JvdW5kcy4uLikge1xuICAkd2Via2l0LWJhY2tncm91bmRzOiAoKTtcbiAgJHNwZWMtYmFja2dyb3VuZHM6ICgpO1xuXG4gIEBlYWNoICRiYWNrZ3JvdW5kIGluICRiYWNrZ3JvdW5kcyB7XG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAoKTtcbiAgICAkc3BlYy1iYWNrZ3JvdW5kOiAoKTtcbiAgICAkYmFja2dyb3VuZC10eXBlOiB0eXBlLW9mKCRiYWNrZ3JvdW5kKTtcblxuICAgIEBpZiAkYmFja2dyb3VuZC10eXBlID09IHN0cmluZyBvciBsaXN0IHtcbiAgICAgICRiYWNrZ3JvdW5kLXN0cjogaWYoJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0LCBudGgoJGJhY2tncm91bmQsIDEpLCAkYmFja2dyb3VuZCk7XG5cbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAwLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAwLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAkd2Via2l0LWJhY2tncm91bmRzOiBhcHBlbmQoJHdlYmtpdC1iYWNrZ3JvdW5kcywgJHdlYmtpdC1iYWNrZ3JvdW5kLCBjb21tYSk7XG4gICAgJHNwZWMtYmFja2dyb3VuZHM6ICAgYXBwZW5kKCRzcGVjLWJhY2tncm91bmRzLCAgICRzcGVjLWJhY2tncm91bmQsICAgY29tbWEpO1xuICB9XG5cbiAgYmFja2dyb3VuZDogJHdlYmtpdC1iYWNrZ3JvdW5kcztcbiAgYmFja2dyb3VuZDogJHNwZWMtYmFja2dyb3VuZHM7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZ3JvdW5kLWltYWdlIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZCBpbWFnZXMgd2l0aFxuLy8gZ3JhZGllbnRzLCBvciBmb3Igc3RyaW5naW5nIG11bHRpcGxlIGdyYWRpZW50cyB0b2dldGhlci5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuQG1peGluIGJhY2tncm91bmQtaW1hZ2UoJGltYWdlcy4uLikge1xuICAkd2Via2l0LWltYWdlczogKCk7XG4gICRzcGVjLWltYWdlczogKCk7XG5cbiAgQGVhY2ggJGltYWdlIGluICRpbWFnZXMge1xuICAgICR3ZWJraXQtaW1hZ2U6ICgpO1xuICAgICRzcGVjLWltYWdlOiAoKTtcblxuICAgIEBpZiAodHlwZS1vZigkaW1hZ2UpID09IHN0cmluZykge1xuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkaW1hZ2UsIDAsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkaW1hZ2UsIDAsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICRpbWFnZTtcbiAgICAgICAgICAkc3BlYy1pbWFnZTogJGltYWdlO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogIG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xuICAgICAgICAkd2Via2l0LWltYWdlOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWltYWdlOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJHdlYmtpdC1pbWFnZXM6IGFwcGVuZCgkd2Via2l0LWltYWdlcywgJHdlYmtpdC1pbWFnZSwgY29tbWEpO1xuICAgICRzcGVjLWltYWdlczogICBhcHBlbmQoJHNwZWMtaW1hZ2VzLCAgICRzcGVjLWltYWdlLCAgIGNvbW1hKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtaW1hZ2U6ICR3ZWJraXQtaW1hZ2VzO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAkc3BlYy1pbWFnZXM7XG59XG4iLCJAbWl4aW4gYm9yZGVyLWltYWdlKCRib3JkZXJzLi4uKSB7XG4gICR3ZWJraXQtYm9yZGVyczogKCk7XG4gICRzcGVjLWJvcmRlcnM6ICgpO1xuXG4gIEBlYWNoICRib3JkZXIgaW4gJGJvcmRlcnMge1xuICAgICR3ZWJraXQtYm9yZGVyOiAoKTtcbiAgICAkc3BlYy1ib3JkZXI6ICgpO1xuICAgICRib3JkZXItdHlwZTogdHlwZS1vZigkYm9yZGVyKTtcblxuICAgIEBpZiAkYm9yZGVyLXR5cGUgPT0gc3RyaW5nIG9yIGxpc3Qge1xuICAgICAgJGJvcmRlci1zdHI6IGlmKCRib3JkZXItdHlwZSA9PSBsaXN0LCBudGgoJGJvcmRlciwgMSksICRib3JkZXIpO1xuXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRib3JkZXItc3RyLCAwLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDAsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAgICRzcGVjLWJvcmRlcjogJGJvcmRlcjtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAgICRzcGVjLWJvcmRlcjogJGJvcmRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAkYm9yZGVyO1xuICAgIH1cblxuICAgICR3ZWJraXQtYm9yZGVyczogYXBwZW5kKCR3ZWJraXQtYm9yZGVycywgJHdlYmtpdC1ib3JkZXIsIGNvbW1hKTtcbiAgICAkc3BlYy1ib3JkZXJzOiAgIGFwcGVuZCgkc3BlYy1ib3JkZXJzLCAgICRzcGVjLWJvcmRlciwgICBjb21tYSk7XG4gIH1cblxuICAtd2Via2l0LWJvcmRlci1pbWFnZTogJHdlYmtpdC1ib3JkZXJzO1xuICAgICAgICAgIGJvcmRlci1pbWFnZTogJHNwZWMtYm9yZGVycztcbiAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuXG4vL0V4YW1wbGVzOlxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpIDIwIHN0cmV0Y2gpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSBzdHJldGNoKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSAyMCAzMCA0MCA1MCBzdHJldGNoIHJvdW5kKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShyYWRpYWwtZ3JhZGllbnQodG9wLCBjb3Zlciwgb3JhbmdlLCB5ZWxsb3csIG9yYW5nZSkpO1xuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gU2hvcnRoYW5kIEJvcmRlci1yYWRpdXMgbWl4aW5zXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGlpKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci10b3AtbGVmdC1yYWRpdXMsICRyYWRpaSwgc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci10b3AtcmlnaHQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGlpKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMsICRyYWRpaSwgc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpaSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItdG9wLWxlZnQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaWkpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMsICRyYWRpaSwgc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xufVxuIiwiQG1peGluIGJveC1zaXppbmcgKCRib3gpIHtcbi8vICBjb250ZW50LWJveCB8IGJvcmRlci1ib3ggfCBpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1zaXppbmcsICRib3gsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gY2FsYygkcHJvcGVydHksICR2YWx1ZSkge1xuICAjeyRwcm9wZXJ0eX06IC13ZWJraXQtY2FsYygjeyR2YWx1ZX0pO1xuICAjeyRwcm9wZXJ0eX06ICAgICAgICAgY2FsYygjeyR2YWx1ZX0pO1xufVxuIiwiQG1peGluIGNvbHVtbnMoJGFyZzogYXV0bykge1xuLy8gPGNvbHVtbi1jb3VudD4gfHwgPGNvbHVtbi13aWR0aD5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1ucywgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkaW50OiBhdXRvKSB7XG4vLyBhdXRvIHx8IGludGVnZXJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWNvdW50LCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkbGVuZ3RoOiBub3JtYWwpIHtcbi8vIG5vcm1hbCB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWdhcCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1maWxsKCRhcmc6IGF1dG8pIHtcbi8vIGF1dG8gfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1maWxsLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUoJGFyZykge1xuLy8gPGJvcmRlci13aWR0aD4gfHwgPGJvcmRlci1zdHlsZT4gfHwgPGNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZSwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLWNvbG9yKCRjb2xvcikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1jb2xvciwgJGNvbG9yLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtc3R5bGUoJHN0eWxlOiBub25lKSB7XG4vLyBub25lIHwgaGlkZGVuIHwgZGFzaGVkIHwgZG90dGVkIHwgZG91YmxlIHwgZ3Jvb3ZlIHwgaW5zZXQgfCBpbnNldCB8IG91dHNldCB8IHJpZGdlIHwgc29saWRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLXdpZHRoICgkd2lkdGg6IG5vbmUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtd2lkdGgsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1zcGFuKCRhcmc6IG5vbmUpIHtcbi8vIG5vbmUgfHwgYWxsXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1zcGFuLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXdpZHRoKCRsZW5ndGg6IGF1dG8pIHtcbi8vIGF1dG8gfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi13aWR0aCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBmaWx0ZXIoJGZ1bmN0aW9uOiBub25lKSB7XG4gIC8vIDxmaWx0ZXItZnVuY3Rpb24+IFs8ZmlsdGVyLWZ1bmN0aW9uXSogfCBub25lXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZpbHRlciwgJGZ1bmN0aW9uLCB3ZWJraXQgc3BlYyk7XG59XG5cbiIsIi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuXG4vLyBDdXN0b20gc2hvcnRoYW5kIG5vdGF0aW9uIGZvciBmbGV4Ym94XG5AbWl4aW4gYm94KCRvcmllbnQ6IGlubGluZS1heGlzLCAkcGFjazogc3RhcnQsICRhbGlnbjogc3RyZXRjaCkge1xuICBAaW5jbHVkZSBkaXNwbGF5LWJveDtcbiAgQGluY2x1ZGUgYm94LW9yaWVudCgkb3JpZW50KTtcbiAgQGluY2x1ZGUgYm94LXBhY2soJHBhY2spO1xuICBAaW5jbHVkZSBib3gtYWxpZ24oJGFsaWduKTtcbn1cblxuQG1peGluIGRpc3BsYXktYm94IHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIGRpc3BsYXk6IC1tb3otYm94O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gSUUgMTBcbiAgZGlzcGxheTogYm94O1xufVxuXG5AbWl4aW4gYm94LW9yaWVudCgkb3JpZW50OiBpbmxpbmUtYXhpcykge1xuLy8gaG9yaXpvbnRhbHx2ZXJ0aWNhbHxpbmxpbmUtYXhpc3xibG9jay1heGlzfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJG9yaWVudCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1wYWNrKCRwYWNrOiBzdGFydCkge1xuLy8gc3RhcnR8ZW5kfGNlbnRlcnxqdXN0aWZ5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkcGFjaywgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcGFjazogJHBhY2s7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtYWxpZ24oJGFsaWduOiBzdHJldGNoKSB7XG4vLyBzdGFydHxlbmR8Y2VudGVyfGJhc2VsaW5lfHN0cmV0Y2hcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWxpZ24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWFsaWduOiAkYWxpZ247IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZGlyZWN0aW9uKCRkaXJlY3Rpb246IG5vcm1hbCkge1xuLy8gbm9ybWFsfHJldmVyc2V8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtbGluZXMoJGxpbmVzOiBzaW5nbGUpIHtcbi8vIHNpbmdsZXxtdWx0aXBsZVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRsaW5lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1vcmRpbmFsLWdyb3VwKCRpbnQ6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50OyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgoJHZhbHVlOiAwLjApIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXg6ICR2YWx1ZTsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1mbGV4LWdyb3VwKCRpbnQ6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuLy8gVW5pZmllZCBhdHRyaWJ1dGVzIGZvciAyMDA5LCAyMDExLCBhbmQgMjAxMiBmbGF2b3Vycy5cblxuLy8gMjAwOSAtIGRpc3BsYXkgKGJveCB8IGlubGluZS1ib3gpXG4vLyAyMDExIC0gZGlzcGxheSAoZmxleGJveCB8IGlubGluZS1mbGV4Ym94KVxuLy8gMjAxMiAtIGRpc3BsYXkgKGZsZXggfCBpbmxpbmUtZmxleClcbkBtaXhpbiBkaXNwbGF5KCR2YWx1ZSkge1xuLy8gIGZsZXggfCBpbmxpbmUtZmxleFxuICAgIEBpZiAkdmFsdWUgPT0gXCJmbGV4XCIge1xuICAgICAgICAvLyAyMDA5XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICBkaXNwbGF5OiAtbW96LWJveDtcbiAgICAgICAgZGlzcGxheTogYm94O1xuXG4gICAgICAgIC8vIDIwMTJcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgICAgICBkaXNwbGF5OiAtbW96LWZsZXg7XG4gICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyAyMDExIChJRSAxMClcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcImlubGluZS1mbGV4XCIge1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XG4gICAgICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWJveDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJveDtcblxuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xuICAgICAgICBkaXNwbGF5OiAtbW96LWlubGluZS1mbGV4O1xuICAgICAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICAgZGlzcGxheTogJHZhbHVlO1xuICAgIH1cbn1cblxuLy8gMjAwOSAtIGJveC1mbGV4IChpbnRlZ2VyKVxuLy8gMjAxMSAtIGZsZXggKGRlY2ltYWwgfCB3aWR0aCBkZWNpbWFsKVxuLy8gMjAxMiAtIGZsZXggKGludGVnZXIgaW50ZWdlciB3aWR0aClcbkBtaXhpbiBmbGV4KCR2YWx1ZSkge1xuXG4gICAgLy8gR3JhYiBmbGV4LWdyb3cgZm9yIG9sZGVyIGJyb3dzZXJzLlxuICAgICRmbGV4LWdyb3c6IG50aCgkdmFsdWUsIDEpO1xuXG4gICAgLy8gMjAwOVxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkZmxleC1ncm93LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMSAoSUUgMTApLCAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yaWVudCAoIGhvcml6b250YWwgfCB2ZXJ0aWNhbCB8IGlubGluZS1heGlzIHwgYmxvY2stYXhpcylcbi8vICAgICAgLSBib3gtZGlyZWN0aW9uIChub3JtYWwgfCByZXZlcnNlKSAgICAgIFxuLy8gMjAxMSAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZTogcm93KSB7XG5cbiAgICAvLyBBbHQgdmFsdWVzLlxuICAgICR2YWx1ZS0yMDA5OiAkdmFsdWU7XG4gICAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgICAkZGlyZWN0aW9uOiBcIm5vcm1hbFwiO1xuXG4gICAgQGlmICR2YWx1ZSA9PSByb3cge1xuICAgICAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcInJvdy1yZXZlcnNlXCIge1xuICAgICAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgICAgICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBjb2x1bW4ge1xuICAgICAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJjb2x1bW4tcmV2ZXJzZVwiIHtcbiAgICAgICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICAgICAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICAgIH1cblxuICAgIC8vIDIwMDlcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkdmFsdWUtMjAwOSwgd2Via2l0IG1veiBzcGVjKTtcbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBcInJldmVyc2VcIiB7XG4gICAgICAgIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfVxuXG4gICAgLy8gMjAxMlxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZGlyZWN0aW9uLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDExIChJRSAxMClcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1saW5lcyAoc2luZ2xlIHwgbXVsdGlwbGUpXG4vLyAyMDExIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlOiBub3dyYXApIHtcblxuICAgIC8vIEFsdCB2YWx1ZXMuXG4gICAgJGFsdC12YWx1ZTogJHZhbHVlO1xuICAgIEBpZiAkdmFsdWUgPT0gbm93cmFwIHtcbiAgICAgICAgJGFsdC12YWx1ZTogc2luZ2xlO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IHdyYXAge1xuICAgICAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcIndyYXAtcmV2ZXJzZVwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtd3JhcCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDExIC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDEyIC0gZmxleC1mbG93IChmbGV4LWRpcmVjdGlvbiB8fCBmbGV4LXdyYXApXG5AbWl4aW4gZmxleC1mbG93KCR2YWx1ZSkge1xuICAgIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZmxvdywgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yZGluYWwtZ3JvdXAgKGludGVnZXIpXG4vLyAyMDExIC0gZmxleC1vcmRlciAoaW50ZWdlcilcbi8vIDIwMTIgLSBvcmRlciAoaW50ZWdlcilcbkBtaXhpbiBvcmRlcigkaW50OiAwKSB7XG4gICAgLy8gMjAwOVxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMlxuICAgIEBpbmNsdWRlIHByZWZpeGVyKG9yZGVyLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMSAoSUUgMTApXG4gICAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWdyb3cgKG51bWJlcilcbkBtaXhpbiBmbGV4LWdyb3coJG51bWJlcjogMCkge1xuICAgIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZ3JvdywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgICAtbXMtZmxleC1wb3NpdGl2ZTogJG51bWJlcjtcbn1cblxuLy8gMjAxMiAtIGZsZXgtc2hyaW5rIChudW1iZXIpXG5AbWl4aW4gZmxleC1zaHJpbmsoJG51bWJlcjogMSkge1xuICAgIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtc2hyaW5rLCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1iYXNpcyAobnVtYmVyKVxuQG1peGluIGZsZXgtYmFzaXMoJHdpZHRoOiBhdXRvKSB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1iYXNpcywgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAkd2lkdGg7XG59XG5cbi8vIDIwMDkgLSBib3gtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMSAtIGZsZXgtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMiAtIGp1c3RpZnktY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZClcbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQgKCR2YWx1ZTogZmxleC1zdGFydCkge1xuXG4gICAgLy8gQWx0IHZhbHVlcy5cbiAgICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gICAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgICAgICRhbHQtdmFsdWU6IGp1c3RpZnk7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgICAgICRhbHQtdmFsdWU6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAvLyAyMDA5XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoanVzdGlmeS1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcblxuICAgIC8vIDIwMTEgKElFIDEwKVxuICAgIC1tcy1mbGV4LXBhY2s6ICRhbHQtdmFsdWU7XG59XG5cbi8vIDIwMDkgLSBib3gtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMSAtIGZsZXgtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWl0ZW1zIChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24taXRlbXMoJHZhbHVlOiBzdHJldGNoKSB7XG5cbiAgICAkYWx0LXZhbHVlOiAkdmFsdWU7XG5cbiAgICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gICAgfSAgICBcblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgICB9XG5cbiAgICAvLyAyMDA5XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMlxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWl0ZW1zLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbiAgICBcbiAgICAvLyAyMDExIChJRSAxMClcbiAgICAtbXMtZmxleC1hbGlnbjogJGFsdC12YWx1ZTsgICAgXG59XG5cbi8vIDIwMTEgLSBmbGV4LWl0ZW0tYWxpZ24gKGF1dG8gfCBzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1zZWxmIChhdXRvIHwgZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLXNlbGYoJHZhbHVlOiBhdXRvKSB7XG5cbiAgICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICAgIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gICAgfSAgICBcblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gICAgfVxuXG4gICAgLy8gMjAxMlxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLXNlbGYsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAgIC8vIDIwMTEgKElFIDEwKVxuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246ICR2YWx1ZS0yMDExO1xufVxuXG4vLyAyMDExIC0gZmxleC1saW5lLXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSB8IGRpc3RyaWJ1dGUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWNvbnRlbnQoJHZhbHVlOiBzdHJldGNoKSB7XG5cbiAgICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICAgIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gICAgfSAgICBcblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xuICAgICAgICAkdmFsdWUtMjAxMToganVzdGlmeTtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAgICAgJHZhbHVlLTIwMTE6IGRpc3RyaWJ1dGU7XG4gICAgfVxuXG4gICAgLy8gMjAxMlxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAgIC8vIDIwMTEgKElFIDEwKVxuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogJHZhbHVlLTIwMTE7XG59XG5cbiIsIi8vIE9yZGVyIG9mIHRoZSBpbmNsdWRlcyBtYXR0ZXJzLCBhbmQgaXQgaXM6IG5vcm1hbCwgYm9sZCwgaXRhbGljLCBib2xkK2l0YWxpYy5cblxuQG1peGluIGZvbnQtZmFjZSgkZm9udC1mYW1pbHksICRmaWxlLXBhdGgsICR3ZWlnaHQ6IG5vcm1hbCwgJHN0eWxlOiBub3JtYWwsICRhc3NldC1waXBlbGluZTogZmFsc2UgKSB7XG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG4gICAgZm9udC1zdHlsZTogJHN0eWxlO1xuXG4gICAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcbiAgICAgIHNyYzogZm9udC11cmwoJyN7JGZpbGUtcGF0aH0uZW90Jyk7XG4gICAgICBzcmM6IGZvbnQtdXJsKCcjeyRmaWxlLXBhdGh9LmVvdD8jaWVmaXgnKSAgICAgICAgICBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgICAgIGZvbnQtdXJsKCcjeyRmaWxlLXBhdGh9LndvZmYnKSAgICAgICAgICAgICAgICBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgICAgZm9udC11cmwoJyN7JGZpbGUtcGF0aH0udHRmJykgICAgICAgICAgICAgICAgIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICAgICAgICAgZm9udC11cmwoJyN7JGZpbGUtcGF0aH0uc3ZnIyN7JGZvbnQtZmFtaWx5fScpIGZvcm1hdCgnc3ZnJyk7XG4gICAgfSBAZWxzZSB7XG4gICAgICBzcmM6IHVybCgnI3skZmlsZS1wYXRofS5lb3QnKTtcbiAgICAgIHNyYzogdXJsKCcjeyRmaWxlLXBhdGh9LmVvdD8jaWVmaXgnKSAgICAgICAgICAgICAgIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICAgICAgdXJsKCcjeyRmaWxlLXBhdGh9LndvZmYnKSAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCgnd29mZicpLFxuICAgICAgICAgICB1cmwoJyN7JGZpbGUtcGF0aH0udHRmJykgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICAgICB1cmwoJyN7JGZpbGUtcGF0aH0uc3ZnIyN7JGZvbnQtZmFtaWx5fScpICAgICAgZm9ybWF0KCdzdmcnKTtcbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBoeXBoZW5zKCRoeXBoZW5hdGlvbjogbm9uZSkge1xuLy8gbm9uZSB8IG1hbnVhbCB8IGF1dG9cbiAgQGluY2x1ZGUgcHJlZml4ZXIoaHlwaGVucywgJGh5cGhlbmF0aW9uLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufSIsIi8vIEhpRFBJIG1peGluLiBEZWZhdWx0IHZhbHVlIHNldCB0byAxLjMgdG8gdGFyZ2V0IEdvb2dsZSBOZXh1cyA3IChodHRwOi8vYmphbmdvLmNvbS9hcnRpY2xlcy9taW4tZGV2aWNlLXBpeGVsLXJhdGlvLylcbkBtaXhpbiBoaWRwaSgkcmF0aW86IDEuMykge1xuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICBvbmx5IHNjcmVlbiBhbmQgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHJhdGlvfS8xKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogI3tyb3VuZCgkcmF0aW8qOTYpfWRwaSksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246ICN7JHJhdGlvfWRwcHgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiQG1peGluIGltYWdlLXJlbmRlcmluZyAoJG1vZGU6YXV0bykge1xuXG4gIEBpZiAoJG1vZGUgPT0gY3Jpc3AtZWRnZXMpIHtcbiAgICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IG5lYXJlc3QtbmVpZ2hib3I7IC8vIElFOCtcbiAgICAgIGltYWdlLXJlbmRlcmluZzogLW1vei1jcmlzcC1lZGdlcztcbiAgICAgIGltYWdlLXJlbmRlcmluZzogLW8tY3Jpc3AtZWRnZXM7XG4gICAgICBpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7XG4gICAgICBpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICAgaW1hZ2UtcmVuZGVyaW5nOiAkbW9kZTtcbiAgfVxufVxuIiwiLy8gQWRkcyBrZXlmcmFtZXMgYmxvY2tzIGZvciBzdXBwb3J0ZWQgcHJlZml4ZXMsIHJlbW92aW5nIHJlZHVuZGFudCBwcmVmaXhlcyBpbiB0aGUgYmxvY2sncyBjb250ZW50XG5AbWl4aW4ga2V5ZnJhbWVzKCRuYW1lKSB7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdDogICAgJHByZWZpeC1mb3Itd2Via2l0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhOiAgICRwcmVmaXgtZm9yLW1vemlsbGE7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdDogJHByZWZpeC1mb3ItbWljcm9zb2Z0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYTogICAgICRwcmVmaXgtZm9yLW9wZXJhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjOiAgICAgICRwcmVmaXgtZm9yLXNwZWM7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLXdlYmtpdDogdHJ1ZSAhZ2xvYmFsO1xuICAgIEAtd2Via2l0LWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci1tb3ppbGxhOiB0cnVlICFnbG9iYWw7XG4gICAgQC1tb3ota2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0ICAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0ICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmEgICAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyAgICAgICFnbG9iYWw7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMge1xuICAgIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gbGluZWFyLWdyYWRpZW50KCRwb3MsICRHMSwgJEcyOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkRzM6IG51bGwsICRHNDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJEc1OiBudWxsLCAkRzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRHNzogbnVsbCwgJEc4OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkRzk6IG51bGwsICRHMTA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuICAvLyBEZXRlY3Qgd2hhdCB0eXBlIG9mIHZhbHVlIGV4aXN0cyBpbiAkcG9zXG4gICRwb3MtdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkcG9zLXNwZWM6IG51bGw7XG4gICRwb3MtZGVncmVlOiBudWxsO1xuXG4gIC8vIElmICRwb3MgaXMgbWlzc2luZyBmcm9tIG1peGluLCByZWFzc2lnbiB2YXJzIGFuZCBhZGQgZGVmYXVsdCBwb3NpdGlvblxuICBAaWYgKCRwb3MtdHlwZSA9PSBjb2xvcikgb3IgKG50aCgkcG9zLCAxKSA9PSBcInRyYW5zcGFyZW50XCIpICB7XG4gICAgJEcxMDogJEc5OyAkRzk6ICRHODsgJEc4OiAkRzc7ICRHNzogJEc2OyAkRzY6ICRHNTtcbiAgICAgJEc1OiAkRzQ7ICRHNDogJEczOyAkRzM6ICRHMjsgJEcyOiAkRzE7ICRHMTogJHBvcztcbiAgICAgJHBvczogbnVsbDtcbiAgfVxuXG4gIEBpZiAkcG9zIHtcbiAgICAkcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcyk7XG4gICAgJHBvcy1kZWdyZWU6IG50aCgkcG9zaXRpb25zLCAxKTtcbiAgICAkcG9zLXNwZWM6ICAgbnRoKCRwb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgJGZ1bGw6ICRHMSwgJEcyLCAkRzMsICRHNCwgJEc1LCAkRzYsICRHNywgJEc4LCAkRzksICRHMTA7XG5cbiAgLy8gU2V0ICRHMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxuICAkZmFsbGJhY2stY29sb3I6IG50aCgkRzEsIDEpO1xuXG4gIC8vIElmICRmYWxsYmFjayBpcyBhIGNvbG9yIHVzZSB0aGF0IGNvbG9yIGFzIHRoZSBmYWxsYmFjayBjb2xvclxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoJHBvcy1kZWdyZWUgJGZ1bGwpOyAvLyBTYWZhcmkgNS4xKywgQ2hyb21lXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJsaW5lYXItZ3JhZGllbnQoI3skcG9zLXNwZWN9I3skZnVsbH0pXCIpO1xufVxuIiwiQG1peGluIHBlcnNwZWN0aXZlKCRkZXB0aDogbm9uZSkge1xuICAvLyBub25lIHwgPGxlbmd0aD5cbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUsICRkZXB0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHBlcnNwZWN0aXZlLW9yaWdpbigkdmFsdWU6IDUwJSA1MCUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUtb3JpZ2luLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCIvLyBSZXF1aXJlcyBTYXNzIDMuMStcbkBtaXhpbiByYWRpYWwtZ3JhZGllbnQoJEcxLCAgICAgICAgJEcyLFxuICAgICAgICAgICAgICAgICAgICAgICAkRzM6IG51bGwsICRHNDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJEc1OiBudWxsLCAkRzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRHNzogbnVsbCwgJEc4OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkRzk6IG51bGwsICRHMTA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRwb3M6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRzaGFwZS1zaXplOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcblxuICAkZGF0YTogX3JhZGlhbC1hcmctcGFyc2VyKCRHMSwgJEcyLCAkcG9zLCAkc2hhcGUtc2l6ZSk7XG4gICRHMTogIG50aCgkZGF0YSwgMSk7XG4gICRHMjogIG50aCgkZGF0YSwgMik7XG4gICRwb3M6IG50aCgkZGF0YSwgMyk7XG4gICRzaGFwZS1zaXplOiBudGgoJGRhdGEsIDQpO1xuXG4gICRmdWxsOiAkRzEsICRHMiwgJEczLCAkRzQsICRHNSwgJEc2LCAkRzcsICRHOCwgJEc5LCAkRzEwO1xuXG4gIC8vIFN0cmlwIGRlcHJlY2F0ZWQgY292ZXIvY29udGFpbiBmb3Igc3BlY1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSk7XG5cbiAgLy8gU2V0ICRHMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxuICAkZmlyc3QtY29sb3I6IG50aCgkZnVsbCwgMSk7XG4gICRmYWxsYmFjay1jb2xvcjogbnRoKCRmaXJzdC1jb2xvciwgMSk7XG5cbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XG4gIH1cblxuICAvLyBBZGQgQ29tbWFzIGFuZCBzcGFjZXNcbiAgJHNoYXBlLXNpemU6IGlmKCRzaGFwZS1zaXplLCAnI3skc2hhcGUtc2l6ZX0sICcsIG51bGwpO1xuICAkcG9zOiAgICAgICAgaWYoJHBvcywgJyN7JHBvc30sICcsIG51bGwpO1xuICAkcG9zLXNwZWM6ICAgaWYoJHBvcywgJ2F0ICN7JHBvc30nLCBudWxsKTtcbiAgJHNoYXBlLXNpemUtc3BlYzogaWYoKCRzaGFwZS1zaXplLXNwZWMgIT0gJyAnKSBhbmQgKCRwb3MgPT0gbnVsbCksICcjeyRzaGFwZS1zaXplLXNwZWN9LCAnLCAnI3skc2hhcGUtc2l6ZS1zcGVjfSAnKTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAgJGZhbGxiYWNrLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudCh1bnF1b3RlKCN7JHBvc30jeyRzaGFwZS1zaXplfSN7JGZ1bGx9KSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJyYWRpYWwtZ3JhZGllbnQoI3skc2hhcGUtc2l6ZS1zcGVjfSN7JHBvcy1zcGVjfSN7JGZ1bGx9KVwiKTtcbn1cbiIsIkBtaXhpbiB0cmFuc2Zvcm0oJHByb3BlcnR5OiBub25lKSB7XG4vLyAgbm9uZSB8IDx0cmFuc2Zvcm0tZnVuY3Rpb24+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybSwgJHByb3BlcnR5LCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tb3JpZ2luKCRheGVzOiA1MCUpIHtcbi8vIHgtYXhpcyAtIGxlZnQgfCBjZW50ZXIgfCByaWdodCAgfCBsZW5ndGggfCAlXG4vLyB5LWF4aXMgLSB0b3AgIHwgY2VudGVyIHwgYm90dG9tIHwgbGVuZ3RoIHwgJVxuLy8gei1heGlzIC0gICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tb3JpZ2luLCAkYXhlcywgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLXN0eWxlICgkc3R5bGU6IGZsYXQpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLXN0eWxlLCAkc3R5bGUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cbiIsIi8vIFNob3J0aGFuZCBtaXhpbi4gU3VwcG9ydHMgbXVsdGlwbGUgcGFyZW50aGVzZXMtZGVsaW1pbmF0ZWQgdmFsdWVzIGZvciBlYWNoIHZhcmlhYmxlLlxuLy8gRXhhbXBsZTogQGluY2x1ZGUgdHJhbnNpdGlvbiAoYWxsIDJzIGVhc2UtaW4tb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24gKG9wYWNpdHkgMXMgZWFzZS1pbiAycywgd2lkdGggMnMgZWFzZS1vdXQpO1xuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1wcm9wZXJ0eSAodHJhbnNmb3JtLCBvcGFjaXR5KTtcblxuQG1peGluIHRyYW5zaXRpb24gKCRwcm9wZXJ0aWVzLi4uKSB7XG4gIC8vIEZpeCBmb3IgdmVuZG9yLXByZWZpeCB0cmFuc2Zvcm0gcHJvcGVydHlcbiAgJG5lZWRzLXByZWZpeGVzOiBmYWxzZTtcbiAgJHdlYmtpdDogKCk7XG4gICRtb3o6ICgpO1xuICAkc3BlYzogKCk7XG5cbiAgLy8gQ3JlYXRlIGxpc3RzIGZvciB2ZW5kb3ItcHJlZml4ZWQgdHJhbnNmb3JtXG4gIEBlYWNoICRsaXN0IGluICRwcm9wZXJ0aWVzIHtcbiAgICBAaWYgbnRoKCRsaXN0LCAxKSA9PSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICRuZWVkcy1wcmVmaXhlczogdHJ1ZTtcbiAgICAgICRsaXN0MTogLXdlYmtpdC10cmFuc2Zvcm07XG4gICAgICAkbGlzdDI6IC1tb3otdHJhbnNmb3JtO1xuICAgICAgJGxpc3QzOiAoKTtcblxuICAgICAgQGVhY2ggJHZhciBpbiAkbGlzdCB7XG4gICAgICAgICRsaXN0Mzogam9pbigkbGlzdDMsICR2YXIpO1xuXG4gICAgICAgIEBpZiAkdmFyICE9IFwidHJhbnNmb3JtXCIge1xuICAgICAgICAgICRsaXN0MTogam9pbigkbGlzdDEsICR2YXIpO1xuICAgICAgICAgICRsaXN0Mjogam9pbigkbGlzdDIsICR2YXIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdDEpO1xuICAgICAgICAgJG1vejogYXBwZW5kKCRtb3osICAgICRsaXN0Mik7XG4gICAgICAgICRzcGVjOiBhcHBlbmQoJHNwZWMsICAgJGxpc3QzKTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgbGlzdHMgZm9yIG5vbi1wcmVmaXhlZCB0cmFuc2l0aW9uIHByb3BlcnRpZXNcbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0OiAgYXBwZW5kKCR3ZWJraXQsICRsaXN0LCBjb21tYSk7XG4gICAgICAkbW96OiAgICAgYXBwZW5kKCRtb3osICAgICRsaXN0LCBjb21tYSk7XG4gICAgICAkc3BlYzogICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0LCBjb21tYSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICRuZWVkcy1wcmVmaXhlcyB7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkd2Via2l0O1xuICAgICAgIC1tb3otdHJhbnNpdGlvbjogJG1vejtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRzcGVjO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgbGVuZ3RoKCRwcm9wZXJ0aWVzKSA+PSAxIHtcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICRwcm9wZXJ0aWVzOiBhbGwgMC4xNXMgZWFzZS1vdXQgMHM7XG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHRyYW5zaXRpb24tcHJvcGVydHkgKCRwcm9wZXJ0aWVzLi4uKSB7XG4gICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsICd3ZWJraXQnKTtcbiAgICAgIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgJ21veicpO1xuICAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBmYWxzZSk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWR1cmF0aW9uICgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24gKCRtb3Rpb25zLi4uKSB7XG4vLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXQgfCBjdWJpYy1iZXppZXIoKVxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWRlbGF5ICgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIHVzZXItc2VsZWN0KCRhcmc6IG5vbmUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodXNlci1zZWxlY3QsICRhcmcsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG4iLCJAbWl4aW4gcGxhY2Vob2xkZXIge1xuICAkcGxhY2Vob2xkZXJzOiBcIjotd2Via2l0LWlucHV0XCIgXCI6LW1velwiIFwiLW1velwiIFwiLW1zLWlucHV0XCI7XG4gIEBlYWNoICRwbGFjZWhvbGRlciBpbiAkcGxhY2Vob2xkZXJzIHtcbiAgICAmOiN7JHBsYWNlaG9sZGVyfS1wbGFjZWhvbGRlciB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBidXR0b24gKCRzdHlsZTogc2ltcGxlLCAkYmFzZS1jb2xvcjogIzQyOTRmMCwgJHRleHQtc2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBzdHJpbmcgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJHRleHQtc2l6ZTtcbiAgICAkdGV4dC1zaXplOiAkYmFzZS1jb2xvcjtcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcblxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcbiAgICAkc3R5bGU6IHNpbXBsZTtcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xuICAgICRiYXNlLWNvbG9yOiAkc3R5bGU7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkYmFzZS1jb2xvcjtcbiAgICAkdGV4dC1zaXplOiAkc3R5bGU7XG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gIzQyOTRmMCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC41O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIH1cbn1cblxuXG4vLyBTZWxlY3RvciBTdHlsZSBCdXR0b25cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBtaXhpbiBidXR0b25zdHlsZSgkdHlwZSwgJGItY29sb3IsICR0LXNpemUsICRwYWQpIHtcbiAgLy8gR3JheXNjYWxlIGJ1dHRvblxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IHNoaW55IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gcGlsbCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gZmxhdCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICAvLyBDb2xvcmVkIGJ1dHRvblxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIHtcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IHNoaW55IHtcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gcGlsbCB7XG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gZmxhdCB7XG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG59XG5cblxuLy8gU2ltcGxlIEJ1dHRvblxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQG1peGluIHNpbXBsZSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXI6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTQlKTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC04JSwgICRsaWdodG5lc3M6ICAxNSUpO1xuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTExJSk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgMTUlLCAkbGlnaHRuZXNzOiAtMTglKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgJHRleHQtc2hhZG93O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNCUsICRsaWdodG5lc3M6IC01JSk7XG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC03JSwgJGxpZ2h0bmVzczogIDUlKTtcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDglLCAkbGlnaHRuZXNzOiAtMTQlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG4gICAgfVxuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3ctaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogOSUsICRsaWdodG5lc3M6IC0xNCUpO1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA3JSwgJGxpZ2h0bmVzczogLTE3JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmUsIGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cblxuLy8gU2hpbnkgQnV0dG9uXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AbWl4aW4gc2hpbnkoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTE3LCAkZ3JlZW46IC0xMTEsICRibHVlOiAtODEpO1xuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTI2LCAkZ3JlZW46IC0xMjcsICRibHVlOiAtMTIyKTtcbiAgJGZvdXJ0aC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTc5LCAgJGdyZWVuOiAtNzAsICAkYmx1ZTogLTQ2KTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogIDM3LCAgJGdyZWVuOiAgMjksICAkYmx1ZTogIDEyKTtcbiAgJHNlY29uZC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTU2LCAgJGdyZWVuOiAtNTAsICAkYmx1ZTogLTMzKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTE0MCwgJGdyZWVuOiAtMTQxLCAkYmx1ZTogLTExNCk7XG4gICR0aGlyZC1zdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgICRncmVlbjogLTc1LCAgJGJsdWU6IC00OCk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAkZm91cnRoLXN0b3A6ICAgZ3JheXNjYWxlKCRmb3VydGgtc3RvcCk7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc2Vjb25kLXN0b3A6ICAgZ3JheXNjYWxlKCRzZWNvbmQtc3RvcCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICAgICR0aGlyZC1zdG9wOiAgICBncmF5c2NhbGUoJHRoaXJkLXN0b3ApO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGJhc2UtY29sb3IgMCUsICRzZWNvbmQtc3RvcCA1MCUsICR0aGlyZC1zdG9wIDUwJSwgJGZvdXJ0aC1zdG9wIDEwMCUpO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkZmlyc3Qtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEzLCAkZ3JlZW46IC0xNSwgJGJsdWU6IC0xOCk7XG4gICAgJHNlY29uZC1zdG9wLWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC02NiwgJGdyZWVuOiAtNjIsICRibHVlOiAtNTEpO1xuICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtOTMsICRncmVlbjogLTg1LCAkYmx1ZTogLTY2KTtcbiAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTg2LCAkZ3JlZW46IC04MCwgJGJsdWU6IC02Myk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCRmaXJzdC1zdG9wLWhvdmVyKTtcbiAgICAgICRzZWNvbmQtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRzZWNvbmQtc3RvcC1ob3Zlcik7XG4gICAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkdGhpcmQtc3RvcC1ob3Zlcik7XG4gICAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkZm91cnRoLXN0b3AtaG92ZXIpO1xuICAgIH1cblxuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG9wLCAkZmlyc3Qtc3RvcC1ob3ZlciAgMCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlY29uZC1zdG9wLWhvdmVyIDUwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcmQtc3RvcC1ob3ZlciAgNTAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmb3VydGgtc3RvcC1ob3ZlciAxMDAlKTtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTExLCAkZ3JlZW46IC0xMTYsICRibHVlOiAtMTIyKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDIwcHggMCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG5cbi8vIFBpbGwgQnV0dG9uXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AbWl4aW4gcGlsbCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTExJSwgJGxpZ2h0bmVzczogLTI2JSk7XG4gICRib3JkZXItc2lkZXM6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIxJSwgJGxpZ2h0bmVzczogLTIxJSk7XG4gICRib3JkZXItdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTMwJSwgJGxpZ2h0bmVzczogLTE1JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTElLCAgJGxpZ2h0bmVzczogIDclKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTQlLCAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtMTklLCAkbGlnaHRuZXNzOiAtMTUlKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAkYm9yZGVyLXNpZGVzOiAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xuICAgICRib3JkZXItdG9wOiAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XG4gIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGlnaHRuZXNzOiAtNC41JSk7XG4gICAgJGJvcmRlci1ib3R0b206ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTMuNSUsICRsaWdodG5lc3M6IC0zMiUpO1xuICAgICRib3JkZXItc2lkZXM6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIlLCAgICAkbGlnaHRuZXNzOiAtMjclKTtcbiAgICAkYm9yZGVyLXRvcDogICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xNyUsICAgJGxpZ2h0bmVzczogLTIxJSk7XG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICRzYXR1cmF0aW9uOiAtMSUsICAgICRsaWdodG5lc3M6ICAzJSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtNCUsICAgICRsaWdodG5lc3M6IC0xNS41JSk7XG4gICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtNSUsICAgICRsaWdodG5lc3M6IC0yMiUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICAgICRib3JkZXItYm90dG9tOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICAgJGJvcmRlci1zaWRlczogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcbiAgICAgICRib3JkZXItdG9wOiAgICAgICAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctaG92ZXIpO1xuICAgIH1cblxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdy1ob3ZlcjtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA0LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNiwgICRzYXR1cmF0aW9uOiAtMi41JSwgJGxpZ2h0bmVzczogLTMwJSk7XG4gICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDExLCAkc2F0dXJhdGlvbjogIDYlLCAgICRsaWdodG5lc3M6IC0zMSUpO1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA5LCAgJHNhdHVyYXRpb246ICAyJSwgICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA1LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYWN0aXZlLWNvbG9yOiAgICAgICAgIGdyYXlzY2FsZSgkYWN0aXZlLWNvbG9yKTtcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcbiAgICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tLWFjdGl2ZSk7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kOiAkYWN0aXZlLWNvbG9yO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbS1hY3RpdmU7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCAzcHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG5cblxuLy8gRmxhdCBCdXR0b25cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBtaXhpbiBmbGF0KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IDdweCAxOHB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKXtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNCUsICRsaWdodG5lc3M6IDUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3ItaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWFjdGl2ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cbiIsIi8vIE1vZGVybiBtaWNybyBjbGVhcmZpeCBwcm92aWRlcyBhbiBlYXN5IHdheSB0byBjb250YWluIGZsb2F0cyB3aXRob3V0IGFkZGluZyBhZGRpdGlvbmFsIG1hcmt1cC5cbi8vXG4vLyBFeGFtcGxlIHVzYWdlOlxuLy9cbi8vICAgIC8vIENvbnRhaW4gYWxsIGZsb2F0cyB3aXRoaW4gLndyYXBwZXJcbi8vICAgIC53cmFwcGVyIHtcbi8vICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4vLyAgICAgIC5jb250ZW50LFxuLy8gICAgICAuc2lkZWJhciB7XG4vLyAgICAgICAgZmxvYXQgOiBsZWZ0O1xuLy8gICAgICB9XG4vLyAgICB9XG5cbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6XCJcIjtcbiAgICBkaXNwbGF5OnRhYmxlO1xuICAgIGNsZWFyOmJvdGg7XG4gIH1cbn1cblxuLy8gQWNrbm93bGVkZ2VtZW50c1xuLy8gQmVhdCAqdGhhdCogY2xlYXJmaXg6IFtUaGllcnJ5IEtvYmxlbnR6XShodHRwOi8vd3d3LmNzcy0xMDEub3JnL2FydGljbGVzL2NsZWFyZml4L2xhdGVzdC1uZXctY2xlYXJmaXgtc28tZmFyLnBocClcbiIsIi8vIGRpcmVjdGlvbmFsLXByb3BlcnR5IG1peGlucyBhcmUgc2hvcnRoYW5kc1xuLy8gZm9yIHdyaXRpbmcgcHJvcGVydGllcyBsaWtlIHRoZSBmb2xsb3dpbmdcbi8vXG4vLyBAaW5jbHVkZSBtYXJnaW4obnVsbCAwIDEwcHgpO1xuLy8gLS0tLS0tXG4vLyBtYXJnaW4tcmlnaHQ6IDA7XG4vLyBtYXJnaW4tYm90dG9tOiAxMHB4O1xuLy8gbWFyZ2luLWxlZnQ6IDA7XG4vL1xuLy8gLSBvciAtXG4vL1xuLy8gQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRvdHRlZCBudWxsKTtcbi8vIC0tLS0tLVxuLy8gYm9yZGVyLXRvcC1zdHlsZTogZG90dGVkO1xuLy8gYm9yZGVyLWJvdHRvbS1zdHlsZTogZG90dGVkO1xuLy9cbi8vIC0tLS0tLVxuLy9cbi8vIE5vdGU6IFlvdSBjYW4gYWxzbyB1c2UgZmFsc2UgaW5zdGVhZCBvZiBudWxsXG5cbkBmdW5jdGlvbiBjb2xsYXBzZS1kaXJlY3Rpb25hbHMoJHZhbHMpIHtcbiAgJG91dHB1dDogbnVsbDtcblxuICAkQTogbnRoKCAkdmFscywgMSApO1xuICAkQjogaWYoIGxlbmd0aCgkdmFscykgPCAyLCAkQSwgbnRoKCR2YWxzLCAyKSk7XG4gICRDOiBpZiggbGVuZ3RoKCR2YWxzKSA8IDMsICRBLCBudGgoJHZhbHMsIDMpKTtcbiAgJEQ6IGlmKCBsZW5ndGgoJHZhbHMpIDwgMiwgJEEsIG50aCgkdmFscywgaWYoIGxlbmd0aCgkdmFscykgPCA0LCAyLCA0KSApKTtcblxuICBAaWYgJEEgPT0gMCB7ICRBOiAwIH1cbiAgQGlmICRCID09IDAgeyAkQjogMCB9XG4gIEBpZiAkQyA9PSAwIHsgJEM6IDAgfVxuICBAaWYgJEQgPT0gMCB7ICREOiAwIH1cblxuICBAaWYgJEEgPT0gJEIgYW5kICRBID09ICRDIGFuZCAkQSA9PSAkRCB7ICRvdXRwdXQ6ICRBICAgICAgICAgIH1cbiAgQGVsc2UgaWYgJEEgPT0gJEMgYW5kICRCID09ICREICAgICAgICAgeyAkb3V0cHV0OiAkQSAkQiAgICAgICB9XG4gIEBlbHNlIGlmICRCID09ICREICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJEEgJEIgJEMgICAgfVxuICBAZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRBICRCICRDICREIH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG5cbkBmdW5jdGlvbiBjb250YWlucy1mYWxzeSgkbGlzdCkge1xuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgQGlmIG5vdCAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuQG1peGluIGRpcmVjdGlvbmFsLXByb3BlcnR5KCRwcmUsICRzdWYsICR2YWxzKSB7XG4gIC8vIFByb3BlcnR5IE5hbWVzXG4gICR0b3A6ICAgICRwcmUgKyBcIi10b3BcIiAgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRib3R0b206ICRwcmUgKyBcIi1ib3R0b21cIiArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRsZWZ0OiAgICRwcmUgKyBcIi1sZWZ0XCIgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRyaWdodDogICRwcmUgKyBcIi1yaWdodFwiICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRhbGw6ICAgICRwcmUgKyAgICAgICAgICAgICBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuXG4gICR2YWxzOiBjb2xsYXBzZS1kaXJlY3Rpb25hbHMoJHZhbHMpO1xuXG4gIEBpZiBjb250YWlucy1mYWxzeSgkdmFscykge1xuICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skdG9wfTogbnRoKCR2YWxzLCAxKTsgfVxuXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMSB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAxKTsgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRyaWdodH06IG50aCgkdmFscywgMik7IH1cbiAgICB9XG5cbiAgICAvLyBwcm9wOiB0b3AvYm90dG9tIHJpZ2h0L2xlZnRcbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAyIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAxKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XG5cbiAgICAvLyBwcm9wOiB0b3AgcmlnaHQvbGVmdCBib3R0b21cbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gMyB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuXG4gICAgLy8gcHJvcDogdG9wIHJpZ2h0IGJvdHRvbSBsZWZ0XG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDQge1xuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCA0KSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgNCk7IH1cbiAgICB9XG5cbiAgLy8gcHJvcDogdG9wL3JpZ2h0L2JvdHRvbS9sZWZ0XG4gIH0gQGVsc2Uge1xuICAgICN7JGFsbH06ICR2YWxzO1xuICB9XG59XG5cbkBtaXhpbiBtYXJnaW4oJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkobWFyZ2luLCBmYWxzZSwgJHZhbHMuLi4pO1xufVxuXG5AbWl4aW4gcGFkZGluZygkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShwYWRkaW5nLCBmYWxzZSwgJHZhbHMuLi4pO1xufVxuXG5AbWl4aW4gYm9yZGVyLXN0eWxlKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgc3R5bGUsICR2YWxzLi4uKTtcbn1cblxuQG1peGluIGJvcmRlci1jb2xvcigkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIGNvbG9yLCAkdmFscy4uLik7XG59XG5cbkBtaXhpbiBib3JkZXItd2lkdGgoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCB3aWR0aCwgJHZhbHMuLi4pO1xufVxuIiwiQG1peGluIGVsbGlwc2lzKCR3aWR0aDogMTAwJSkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogJHdpZHRoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiIsIiRnZW9yZ2lhOiBHZW9yZ2lhLCBDYW1icmlhLCBcIlRpbWVzIE5ldyBSb21hblwiLCBUaW1lcywgc2VyaWY7XG4kaGVsdmV0aWNhOiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiRsdWNpZGEtZ3JhbmRlOiBcIkx1Y2lkYSBHcmFuZGVcIiwgVGFob21hLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiRtb25vc3BhY2U6IFwiQml0c3RyZWFtIFZlcmEgU2FucyBNb25vXCIsIENvbnNvbGFzLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4kdmVyZGFuYTogVmVyZGFuYSwgR2VuZXZhLCBzYW5zLXNlcmlmO1xuIiwiQG1peGluIGhpZGUtdGV4dCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBHZW5lcmF0ZSBhIHZhcmlhYmxlICgkYWxsLXRleHQtaW5wdXRzKSB3aXRoIGEgbGlzdCBvZiBhbGwgaHRtbDVcbi8vIGlucHV0IHR5cGVzIHRoYXQgaGF2ZSBhIHRleHQtYmFzZWQgaW5wdXQsIGV4Y2x1ZGluZyB0ZXh0YXJlYS5cbi8vIGh0dHA6Ly9kaXZlaW50b2h0bWw1Lm9yZy9mb3Jtcy5odG1sXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4kaW5wdXRzLWxpc3Q6ICdpbnB1dFt0eXBlPVwiZW1haWxcIl0nLFxuICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIm51bWJlclwiXScsXG4gICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0nLFxuICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInNlYXJjaFwiXScsXG4gICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGVsXCJdJyxcbiAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZXh0XCJdJyxcbiAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ1cmxcIl0nLFxuXG4gICAgICAgICAgICAgIC8vIFdlYmtpdCAmIEdlY2tvIG1heSBjaGFuZ2UgdGhlIGRpc3BsYXkgb2YgdGhlc2UgaW4gdGhlIGZ1dHVyZVxuICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImNvbG9yXCJdJyxcbiAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRlXCJdJyxcbiAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZVwiXScsXG4gICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0nLFxuICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIm1vbnRoXCJdJyxcbiAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0aW1lXCJdJyxcbiAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ3ZWVrXCJdJztcblxuLy8gQmFyZSBpbnB1dHNcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbiRhbGwtdGV4dC1pbnB1dHM6IGFzc2lnbi1pbnB1dHMoJGlucHV0cy1saXN0KTtcblxuLy8gSG92ZXIgUHNldWRvLWNsYXNzXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4kYWxsLXRleHQtaW5wdXRzLWhvdmVyOiBhc3NpZ24taW5wdXRzKCRpbnB1dHMtbGlzdCwgaG92ZXIpO1xuXG4vLyBGb2N1cyBQc2V1ZG8tY2xhc3Ncbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbiRhbGwtdGV4dC1pbnB1dHMtZm9jdXM6IGFzc2lnbi1pbnB1dHMoJGlucHV0cy1saXN0LCBmb2N1cyk7XG5cblxuXG4vLyBZb3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6XG4vLyAjeyRhbGwtdGV4dC1pbnB1dHN9XG4vLyAjeyRhbGwtdGV4dC1pbnB1dHMtaG92ZXJ9XG4vLyAjeyRhbGwtdGV4dC1pbnB1dHMtZm9jdXN9XG5cbi8vIEV4YW1wbGVcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vICAgI3skYWxsLXRleHQtaW5wdXRzfSwgdGV4dGFyZWEge1xuLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkIHJlZDtcbi8vICAgfVxuXG5cblxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gR2VuZXJhdGUgYSB2YXJpYWJsZSAoJGFsbC1idXR0b24taW5wdXRzKSB3aXRoIGEgbGlzdCBvZiBhbGwgaHRtbDVcbi8vIGlucHV0IHR5cGVzIHRoYXQgaGF2ZSBhIGJ1dHRvbi1iYXNlZCBpbnB1dCwgZXhjbHVkaW5nIGJ1dHRvbi5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbiRpbnB1dHMtYnV0dG9uLWxpc3Q6ICdpbnB1dFt0eXBlPVwiYnV0dG9uXCJdJyxcbiAgICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicmVzZXRcIl0nLFxuICAgICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJzdWJtaXRcIl0nO1xuXG4vLyBCYXJlIGlucHV0c1xuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuJGFsbC1idXR0b24taW5wdXRzOiBhc3NpZ24taW5wdXRzKCRpbnB1dHMtYnV0dG9uLWxpc3QpO1xuXG4vLyBIb3ZlciBQc2V1ZG8tY2xhc3Ncbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbiRhbGwtYnV0dG9uLWlucHV0cy1ob3ZlcjogYXNzaWduLWlucHV0cygkaW5wdXRzLWJ1dHRvbi1saXN0LCBob3Zlcik7XG5cbi8vIEZvY3VzIFBzZXVkby1jbGFzc1xuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuJGFsbC1idXR0b24taW5wdXRzLWZvY3VzOiBhc3NpZ24taW5wdXRzKCRpbnB1dHMtYnV0dG9uLWxpc3QsIGZvY3VzKTtcblxuLy8gQWN0aXZlIFBzZXVkby1jbGFzc1xuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuJGFsbC1idXR0b24taW5wdXRzLWFjdGl2ZTogYXNzaWduLWlucHV0cygkaW5wdXRzLWJ1dHRvbi1saXN0LCBhY3RpdmUpO1xuXG5cblxuLy8gWW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOlxuLy8gI3skYWxsLWJ1dHRvbi1pbnB1dHN9XG4vLyAjeyRhbGwtYnV0dG9uLWlucHV0cy1ob3Zlcn1cbi8vICN7JGFsbC1idXR0b24taW5wdXRzLWZvY3VzfVxuLy8gI3skYWxsLWJ1dHRvbi1pbnB1dHMtYWN0aXZlfVxuXG4vLyBFeGFtcGxlXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyAgICN7JGFsbC1idXR0b24taW5wdXRzfSwgYnV0dG9uIHtcbi8vICAgICBib3JkZXI6IDFweCBzb2xpZCByZWQ7XG4vLyAgIH1cbiIsIkBtaXhpbiBwb3NpdGlvbiAoJHBvc2l0aW9uOiByZWxhdGl2ZSwgJGNvb3JkaW5hdGVzOiBudWxsIG51bGwgbnVsbCBudWxsKSB7XG5cbiAgQGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSBsaXN0IHtcbiAgICAkY29vcmRpbmF0ZXM6ICRwb3NpdGlvbjtcbiAgICAkcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgJGNvb3JkaW5hdGVzOiB1bnBhY2soJGNvb3JkaW5hdGVzKTtcblxuICAkdG9wOiBudGgoJGNvb3JkaW5hdGVzLCAxKTtcbiAgJHJpZ2h0OiBudGgoJGNvb3JkaW5hdGVzLCAyKTtcbiAgJGJvdHRvbTogbnRoKCRjb29yZGluYXRlcywgMyk7XG4gICRsZWZ0OiBudGgoJGNvb3JkaW5hdGVzLCA0KTtcblxuICBwb3NpdGlvbjogJHBvc2l0aW9uO1xuXG4gIEBpZiAoJHRvcCBhbmQgJHRvcCA9PSBhdXRvKSBvciAodHlwZS1vZigkdG9wKSA9PSBudW1iZXIpIHtcbiAgICB0b3A6ICR0b3A7XG4gIH1cblxuICBAaWYgKCRyaWdodCBhbmQgJHJpZ2h0ID09IGF1dG8pIG9yICh0eXBlLW9mKCRyaWdodCkgPT0gbnVtYmVyKSB7XG4gICAgcmlnaHQ6ICRyaWdodDtcbiAgfVxuXG4gIEBpZiAoJGJvdHRvbSBhbmQgJGJvdHRvbSA9PSBhdXRvKSBvciAodHlwZS1vZigkYm90dG9tKSA9PSBudW1iZXIpIHtcbiAgICBib3R0b206ICRib3R0b207XG4gIH1cblxuICBAaWYgKCRsZWZ0IGFuZCAkbGVmdCA9PSBhdXRvKSBvciAodHlwZS1vZigkbGVmdCkgPT0gbnVtYmVyKSB7XG4gICAgbGVmdDogJGxlZnQ7XG4gIH1cbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1yYWRpdXMsICRyYWRpaSwgd2Via2l0IG1zIHNwZWMpO1xuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gVmFyaWFibGVzIGxvY2F0ZWQgaW4gL3NldHRpbmdzL19wcmVmaXhlci5zY3NzXG5cbkBtaXhpbiBwcmVmaXhlciAoJHByb3BlcnR5LCAkdmFsdWUsICRwcmVmaXhlcykge1xuICBAZWFjaCAkcHJlZml4IGluICRwcmVmaXhlcyB7XG4gICAgQGlmICRwcmVmaXggPT0gd2Via2l0IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci13ZWJraXQge1xuICAgICAgICAtd2Via2l0LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkcHJlZml4ID09IG1veiB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgICAgIC1tb3otI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRwcmVmaXggPT0gbXMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1pY3Jvc29mdCB7XG4gICAgICAgIC1tcy0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJHByZWZpeCA9PSBvIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1vcGVyYSB7XG4gICAgICAgIC1vLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkcHJlZml4ID09IHNwZWMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXNwZWMge1xuICAgICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgIHtcbiAgICAgIEB3YXJuIFwiVW5yZWNvZ25pemVkIHByZWZpeDogI3skcHJlZml4fVwiO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpIHtcbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgIGZhbHNlICFnbG9iYWw7XG59XG4iLCJAbWl4aW4gcmV0aW5hLWltYWdlKCRmaWxlbmFtZSwgJGJhY2tncm91bmQtc2l6ZSwgJGV4dGVuc2lvbjogcG5nLCAkcmV0aW5hLWZpbGVuYW1lOiBudWxsLCAkcmV0aW5hLXN1ZmZpeDogXzJ4LCAkYXNzZXQtcGlwZWxpbmU6IGZhbHNlKSB7XG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgICB1cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGhpZHBpIHtcbiAgICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGJhY2tncm91bmQtc2l6ZTogJGJhY2tncm91bmQtc2l6ZTtcblxuICB9XG59XG4iLCJAbWl4aW4gc2l6ZSgkc2l6ZSkge1xuICAkaGVpZ2h0OiBudGgoJHNpemUsIDEpO1xuICAkd2lkdGg6ICRoZWlnaHQ7XG5cbiAgQGlmIGxlbmd0aCgkc2l6ZSkgPiAxIHtcbiAgICAkaGVpZ2h0OiBudGgoJHNpemUsIDIpO1xuICB9XG5cbiAgQGlmICRoZWlnaHQgPT0gYXV0byBvciAodHlwZS1vZigkaGVpZ2h0KSA9PSBudW1iZXIgYW5kIG5vdCB1bml0bGVzcygkaGVpZ2h0KSkge1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgfVxuXG4gIEBpZiAkd2lkdGggPT0gYXV0byBvciAodHlwZS1vZigkaGVpZ2h0KSA9PSBudW1iZXIgYW5kIG5vdCB1bml0bGVzcygkd2lkdGgpKSB7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgfVxufVxuIiwiLy8gQ1NTIGN1YmljLWJlemllciB0aW1pbmcgZnVuY3Rpb25zLiBUaW1pbmcgZnVuY3Rpb25zIGNvdXJ0ZXN5IG9mIGpxdWVyeS5lYXNpZSAoZ2l0aHViLmNvbS9qYXVraWEvZWFzaWUpXG4vLyBUaW1pbmcgZnVuY3Rpb25zIGFyZSB0aGUgc2FtZSBhcyBkZW1vJ2VkIGhlcmU6IGh0dHA6Ly9qcXVlcnl1aS5jb20vZGVtb3MvZWZmZWN0L2Vhc2luZy5odG1sXG5cbi8vIEVBU0UgSU5cbiRlYXNlLWluLXF1YWQ6ICAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wODUsIDAuNjgwLCAwLjUzMCk7XG4kZWFzZS1pbi1jdWJpYzogICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuJGVhc2UtaW4tcXVhcnQ6ICAgICBjdWJpYy1iZXppZXIoMC44OTUsICAwLjAzMCwgMC42ODUsIDAuMjIwKTtcbiRlYXNlLWluLXF1aW50OiAgICAgY3ViaWMtYmV6aWVyKDAuNzU1LCAgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4kZWFzZS1pbi1zaW5lOiAgICAgIGN1YmljLWJlemllcigwLjQ3MCwgIDAuMDAwLCAwLjc0NSwgMC43MTUpO1xuJGVhc2UtaW4tZXhwbzogICAgICBjdWJpYy1iZXppZXIoMC45NTAsICAwLjA1MCwgMC43OTUsIDAuMDM1KTtcbiRlYXNlLWluLWNpcmM6ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAgMC4wNDAsIDAuOTgwLCAwLjMzNSk7XG4kZWFzZS1pbi1iYWNrOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgLTAuMjgwLCAwLjczNSwgMC4wNDUpO1xuXG4vLyBFQVNFIE9VVFxuJGVhc2Utb3V0LXF1YWQ6ICAgICBjdWJpYy1iZXppZXIoMC4yNTAsICAwLjQ2MCwgMC40NTAsIDAuOTQwKTtcbiRlYXNlLW91dC1jdWJpYzogICAgY3ViaWMtYmV6aWVyKDAuMjE1LCAgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4kZWFzZS1vdXQtcXVhcnQ6ICAgIGN1YmljLWJlemllcigwLjE2NSwgIDAuODQwLCAwLjQ0MCwgMS4wMDApO1xuJGVhc2Utb3V0LXF1aW50OiAgICBjdWJpYy1iZXppZXIoMC4yMzAsICAxLjAwMCwgMC4zMjAsIDEuMDAwKTtcbiRlYXNlLW91dC1zaW5lOiAgICAgY3ViaWMtYmV6aWVyKDAuMzkwLCAgMC41NzUsIDAuNTY1LCAxLjAwMCk7XG4kZWFzZS1vdXQtZXhwbzogICAgIGN1YmljLWJlemllcigwLjE5MCwgIDEuMDAwLCAwLjIyMCwgMS4wMDApO1xuJGVhc2Utb3V0LWNpcmM6ICAgICBjdWJpYy1iZXppZXIoMC4wNzUsICAwLjgyMCwgMC4xNjUsIDEuMDAwKTtcbiRlYXNlLW91dC1iYWNrOiAgICAgY3ViaWMtYmV6aWVyKDAuMTc1LCAgMC44ODUsIDAuMzIwLCAxLjI3NSk7XG5cbi8vIEVBU0UgSU4gT1VUXG4kZWFzZS1pbi1vdXQtcXVhZDogIGN1YmljLWJlemllcigwLjQ1NSwgIDAuMDMwLCAwLjUxNSwgMC45NTUpO1xuJGVhc2UtaW4tb3V0LWN1YmljOiBjdWJpYy1iZXppZXIoMC42NDUsICAwLjA0NSwgMC4zNTUsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1xdWFydDogY3ViaWMtYmV6aWVyKDAuNzcwLCAgMC4wMDAsIDAuMTc1LCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtcXVpbnQ6IGN1YmljLWJlemllcigwLjg2MCwgIDAuMDAwLCAwLjA3MCwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXNpbmU6ICBjdWJpYy1iZXppZXIoMC40NDUsICAwLjA1MCwgMC41NTAsIDAuOTUwKTtcbiRlYXNlLWluLW91dC1leHBvOiAgY3ViaWMtYmV6aWVyKDEuMDAwLCAgMC4wMDAsIDAuMDAwLCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtY2lyYzogIGN1YmljLWJlemllcigwLjc4NSwgIDAuMTM1LCAwLjE1MCwgMC44NjApO1xuJGVhc2UtaW4tb3V0LWJhY2s6ICBjdWJpYy1iZXppZXIoMC42ODAsIC0wLjU1MCwgMC4yNjUsIDEuNTUwKTtcbiIsIkBtaXhpbiB0cmlhbmdsZSAoJHNpemUsICRjb2xvciwgJGRpcmVjdGlvbikge1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwO1xuXG4gICR3aWR0aDogbnRoKCRzaXplLCAxKTtcbiAgJGhlaWdodDogbnRoKCRzaXplLCBsZW5ndGgoJHNpemUpKTtcblxuICAkZm9yZWdyb3VuZC1jb2xvcjogbnRoKCRjb2xvciwgMSk7XG4gICRiYWNrZ3JvdW5kLWNvbG9yOiBpZihsZW5ndGgoJGNvbG9yKSA9PSAyLCBudGgoJGNvbG9yLCAyKSwgdHJhbnNwYXJlbnQpO1xuXG4gIEBpZiAoJGRpcmVjdGlvbiA9PSB1cCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bikgb3IgKCRkaXJlY3Rpb24gPT0gcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGxlZnQpIHtcblxuICAgICR3aWR0aDogJHdpZHRoIC8gMjtcbiAgICAkaGVpZ2h0OiBpZihsZW5ndGgoJHNpemUpID4gMSwgJGhlaWdodCwgJGhlaWdodC8yKTtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93biB7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIEBlbHNlIGlmICgkZGlyZWN0aW9uID09IHVwLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSB1cC1sZWZ0KSB7XG4gICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHVwLWxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0KSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IGRvd24tcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG5cbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXVwKSB7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gIH1cblxuICBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1kb3duKSB7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XG4gIH1cblxuICBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1yaWdodCkge1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICB9XG5cbiAgQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtbGVmdCkge1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICB9XG59XG4iLCJAbWl4aW4gd29yZC13cmFwKCR3cmFwOiBicmVhay13b3JkKSB7XG4gIHdvcmQtd3JhcDogJHdyYXA7XG5cbiAgQGlmICR3cmFwID09IGJyZWFrLXdvcmQge1xuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB9XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBUaGVzZSBtaXhpbnMvZnVuY3Rpb25zIGFyZSBkZXByZWNhdGVkXG4vLyBUaGV5IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBNQUpPUiB2ZXJzaW9uIHJlbGVhc2Vcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBtaXhpbiBpbmxpbmUtYmxvY2sge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIEB3YXJuIFwiaW5saW5lLWJsb2NrIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cbiIsIi8vIENvcmVcbkBpbXBvcnQgXCJjb3JlXCI7XG5cbi8vIEJyZWFrcG9pbnRzXG5AaW1wb3J0IFwiYnJlYWtwb2ludHNcIjtcblxuLy8gTGF5b3V0XG5AaW1wb3J0IFwibGF5b3V0XCI7XG5cbi8vIFR5cG9ncmFwaHlcbkBpbXBvcnQgXCJ0eXBvZ3JhcGh5XCI7XG5cbi8vIE5hdlxuQGltcG9ydCBcIm5hdlwiOyIsIi8vIEJvcmRlciBSYWRpdXNcbiRjb3JlLWJvcmRlci1yYWRpdXM6XHRcdFx0MCAhZGVmYXVsdDtcblxuLy8gUHJlIGFuZCBDb2RlIEZvbnQgRmFtaWx5XG4kcHJlZm9ybWF0dGVkLWZvbnQtZmFtaWx5OiAgICAgIGluaGVyaXQgIWRlZmF1bHQ7IiwiLy8gTWVkaWEgRGV2aWNlIEJyZWFrcG9pbnRzXG4kbGFyZ2UtZGVza3RvcC1jb250YWluZXI6XHRcdDc1LjAwMGVtICFkZWZhdWx0O1xuJGRlc2t0b3AtY29udGFpbmVyOlx0XHRcdFx0NjAuMDAwZW0gIWRlZmF1bHQ7XG4kdGFibGV0LWNvbnRhaW5lcjpcdFx0XHRcdDQ4LjAwMGVtICFkZWZhdWx0O1xuJGxhcmdlLW1vYmlsZS1jb250YWluZXI6XHRcdDMwLjAwMGVtICFkZWZhdWx0O1xuJG1vYmlsZS1jb250YWluZXI6XHRcdFx0XHQxMDAlICFkZWZhdWx0O1xuXG4vLyBCcmVha3BvaW50IFZhcmlhYmxlcyBGb3IgUGFydGljbGVzXG4kbWVkaWE6IFwiYWxsXCIgIWRlZmF1bHQ7XG4kbW9iaWxlLW9ubHk6IFwiI3skbWVkaWF9IGFuZCAobWF4LXdpZHRoOiN7JHRhYmxldC1jb250YWluZXIgLSAwLjA2Mn0pXCIgIWRlZmF1bHQ7XG4kbm8tbW9iaWxlOiBcIiN7JG1lZGlhfSBhbmQgKG1pbi13aWR0aDojeyR0YWJsZXQtY29udGFpbmVyfSlcIiAhZGVmYXVsdDtcbiRzbWFsbC1tb2JpbGUtcmFuZ2U6IFwiI3skbWVkaWF9IGFuZCAobWF4LXdpZHRoOiN7JGxhcmdlLW1vYmlsZS1jb250YWluZXJ9KVwiICFkZWZhdWx0O1xuJGxhcmdlLW1vYmlsZS1yYW5nZTogXCIjeyRtZWRpYX0gYW5kIChtaW4td2lkdGg6I3skbGFyZ2UtbW9iaWxlLWNvbnRhaW5lciArIDAuMDYzfSkgYW5kIChtYXgtd2lkdGg6I3skdGFibGV0LWNvbnRhaW5lciAtIDAuMDYyfSlcIiAhZGVmYXVsdDtcbiR0YWJsZXQtcmFuZ2U6IFwiI3skbWVkaWF9IGFuZCAobWluLXdpZHRoOiN7JHRhYmxldC1jb250YWluZXJ9KSBhbmQgKG1heC13aWR0aDojeyRkZXNrdG9wLWNvbnRhaW5lciAtIDAuMDYyfSlcIiAhZGVmYXVsdDtcbiRkZXNrdG9wLXJhbmdlOiBcIiN7JG1lZGlhfSBhbmQgKG1pbi13aWR0aDojeyRkZXNrdG9wLWNvbnRhaW5lcn0pIGFuZCAobWF4LXdpZHRoOiN7JGxhcmdlLWRlc2t0b3AtY29udGFpbmVyIC0gMC4wNjJ9KVwiICFkZWZhdWx0O1xuJGxhcmdlLWRlc2t0b3AtcmFuZ2U6IFwiI3skbWVkaWF9IGFuZCAobWluLXdpZHRoOiN7JGxhcmdlLWRlc2t0b3AtY29udGFpbmVyfSlcIiAhZGVmYXVsdDtcbiIsIi8vIENvbnRlbnQgQmxvY2sgU3BhY2luZyBWYXJpYWJsZXNcbiRjb250ZW50LW1hcmdpbjpcdFx0XHRcdDAuNjI1cmVtICFkZWZhdWx0O1xuJGNvbnRlbnQtcGFkZGluZzpcdFx0XHRcdDAuOTM4cmVtICFkZWZhdWx0O1xuXG4vLyBGaXhlZCBCbG9jayBWYXJpYWJsZXNcbiRmaXhlZC1ibG9jay1mdWxsOlx0XHRcdFx0cGVyY2VudGFnZSgxLzQpICFkZWZhdWx0O1xuJGZpeGVkLWJsb2NrLWRlc2t0b3A6XHRcdFx0cGVyY2VudGFnZSgxLzMpICFkZWZhdWx0O1xuJGZpeGVkLWJsb2NrLXRhYmxldDpcdFx0XHRwZXJjZW50YWdlKDEvMikgIWRlZmF1bHQ7IiwiLy8gQmFzZSBTaXplc1xuJGNvcmUtZm9udC1zaXplOlx0XHRcdFx0MXJlbSAhZGVmYXVsdDtcbiRjb3JlLWxpbmUtaGVpZ2h0Olx0XHRcdFx0MS43ICFkZWZhdWx0O1xuXG4vLyBIZWFkaW5nIFNpemVzXG4kaDEtZm9udC1zaXplOlx0XHRcdFx0XHQkY29yZS1mb250LXNpemUgKyAyLjIwICFkZWZhdWx0O1xuJGgyLWZvbnQtc2l6ZTpcdFx0XHRcdFx0JGNvcmUtZm9udC1zaXplIC0gMS42MCAhZGVmYXVsdDtcbiRoMy1mb250LXNpemU6XHRcdFx0XHRcdCRjb3JlLWZvbnQtc2l6ZSAtIDEuNTAgIWRlZmF1bHQ7XG4kaDQtZm9udC1zaXplOlx0XHRcdFx0XHQkY29yZS1mb250LXNpemUgKyAwLjc1ICFkZWZhdWx0O1xuJGg1LWZvbnQtc2l6ZTpcdFx0XHRcdFx0JGNvcmUtZm9udC1zaXplICsgMC4zNSAhZGVmYXVsdDtcbiRoNi1mb250LXNpemU6XHRcdFx0XHRcdCRjb3JlLWZvbnQtc2l6ZSAtIDAuMTUgIWRlZmF1bHQ7XG5cbi8vIFNwYWNpbmdcbiRsZWFkaW5nLW1hcmdpbjpcdFx0XHRcdCRjb3JlLWxpbmUtaGVpZ2h0ICogMXJlbSAhZGVmYXVsdDtcbiIsIi8vIERyb3Bkb3duc1xuJGRyb3Bkb3duLXdpZHRoOlx0XHRcdFx0MTQwcHggIWRlZmF1bHQ7XG4kZmx5b3V0LXdpZHRoOlx0XHRcdFx0XHQxNDBweCAhZGVmYXVsdDtcbiRkcm9wZG93bi1jb2wtd2lkdGg6ICAgICAgICAgICAgMTcwcHggIWRlZmF1bHQ7XG4kZHJvcGRvd24tY29sLWhlaWdodDogICAgICAgICAgIDIwMHB4ICFkZWZhdWx0OyIsIi8vIENvbG9yc1xuQGltcG9ydCBcImNvbG9yc1wiO1xuXG4vLyBUeXBvZ3JhcGh5XG5AaW1wb3J0IFwidHlwb2dyYXBoeVwiO1xuXG4vLyBUeXBvZ3JhcGh5XG5AaW1wb3J0IFwiYnVsbGV0c1wiO1xuXG4vLyBWYXJpYWJsZXNcbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbiIsIi8vIENvcmVcbiRjb3JlLXRleHQ6XHRcdFx0XHRcdFx0IzlBOTg5ODtcbiRjb3JlLWFjY2VudDpcdFx0XHRcdFx0Izg3YjY3MjtcbiRzZWNvbmRhcnktbGluazpcdFx0XHRcdCNGNjYzNUU7XG4kd2hpdGU6XHRcdFx0XHRcdFx0XHQjZmZmO1xuJGJsYWNrOlx0XHRcdFx0XHRcdFx0IzAwMDtcbiRsaWdodC1ncmF5Olx0XHRcdFx0XHQjNjU2MTYxO1xuJGJvcmRlci1jb2xvcjogXHRcdFx0XHRcdCNFRUVFRUU7XG5cbi8vIEJvcmRlcnNcbiRjb3JlLWJvcmRlci1jb2xvcjpcdFx0XHRcdCNDQkNCQ0I7XG4kY29yZS1ib3JkZXItY29sb3ItaG92ZXI6IFx0XHRkYXJrZW4oJGNvcmUtYm9yZGVyLWNvbG9yLCAxMCk7XG4kY29yZS1ib3JkZXItY29sb3ItZm9jdXM6IFx0XHQkY29yZS1hY2NlbnQ7XG5cbi8vIFNoYWRvd3NcbiRjb3JlLWJveC1zaGFkb3c6IFx0XHRcdFx0aW5zZXQgMCAxcHggM3B4IGhzbGEoMCwgMCUsIDAlLCAwLjA2KTtcbiRjb3JlLWJveC1zaGFkb3ctZm9jdXM6IFx0XHQkY29yZS1ib3gtc2hhZG93LCAwIDAgNXB4IHJnYmEoZGFya2VuKCRjb3JlLWJvcmRlci1jb2xvci1mb2N1cywgNSksIDAuNyk7XG5cbi8vIEJhY2tncm91bmRcbiRwYWdlLWJnOlx0XHRcdFx0XHRcdCNmZmY7XG5cbi8vIEhlYWRlclxuJGhlYWRlci10ZXh0OiBcdFx0XHRcdFx0I0ZGRkZGRjtcblxuLy8gTmF2XG4kbmF2YmFyLXRleHQ6IFx0XHRcdFx0XHQjZmZmO1xuJG5hdmJhci1iZzogXHRcdFx0XHRcdCNGRkZGRkY7XG5cbi8vIFNob3djYXNlXG4kc2hvd2Nhc2UtYmc6XHRcdFx0XHRcdGxpZ2h0ZW4oJGNvcmUtYWNjZW50LCA2JSk7XG4kc2hvd2Nhc2UtdGV4dDpcdFx0XHRcdFx0I2ZmZjtcblxuLy8gRmVhdHVyZVxuJGZlYXR1cmUtYmc6XHRcdFx0XHRcdCNmZmY7XG5cbi8vIE1haW4gQm9keVxuJG1haW4tYmc6XHRcdFx0XHRcdFx0I2Y3ZjdmNztcbiRib2R5LWJvcmRlcjpcdFx0XHRcdFx0ZGFya2VuKCRtYWluLWJnLCA1JSk7XG5cbi8vIFNpZGViYXJcbiRzaWRlYmFyLXRleHQ6XHRcdFx0XHRcdCNhYWE7XG5cbi8vIEJvdHRvbVxuJGJvdHRvbS1iZzpcdFx0XHRcdFx0XHQjZjdmN2Y3O1xuJGJvdHRvbS10ZXh0Olx0XHRcdFx0XHQkY29yZS10ZXh0O1xuXG4vLyBGb290ZXJcbiRmb290ZXItYmc6XHRcdFx0XHRcdFx0IzQwNDA0MDtcbiRmb290ZXItdGV4dDpcdFx0XHRcdFx0I2NjYztcblxuJHJ1bGUtY29sb3I6IFx0XHRcdFx0XHQjRjBGMkY0O1xuJGNvZGUtdGV4dDpcdFx0XHRcdFx0XHQjYzcyNTRlO1xuJGNvZGUtYmc6XHRcdFx0XHRcdFx0I2Y5ZjJmNDtcbiRwcmUtdGV4dDpcdFx0XHRcdFx0XHQjMjM3Nzk0O1xuJHByZS1iZzpcdFx0XHRcdFx0XHQjZjZmNmY2O1xuXG4vLyBEYXJrIENvbnRyYXN0IHZhcmlhdGlvblxuJGRhcmstbmF2YmFyLXRleHQ6XHRcdFx0XHQjOTk5O1xuJGRhcmstc2lkZWJhcjpcdFx0XHRcdFx0IzIyMjtcbiRkYXJrLXNpZGViYXItdGV4dDpcdFx0XHRcdCM5OTk7XG4kZGFyay1tYWluLWJnOlx0XHRcdFx0XHQjMzMzO1xuJGRhcmstYm9keS1ib3JkZXI6XHRcdFx0XHQjNjY2O1xuIiwiLy8gRm9udCBGYW1pbHlcbiRmb250LWZhbWlseS1kZWZhdWx0OiAgXHRcdFx0XCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYU5ldWUtTGlnaHRcIiwgXCJIZWx2ZXRpY2EgTmV1ZSBMaWdodFwiLCAgSGVsdmV0aWNhLCBBcmlhbCwgXCJMdWNpZGEgR3JhbmRlXCIsIHNhbnMtc2VyaWY7XG4kZm9udC1mYW1pbHktaGVhZGVyOiAgXHRcdFx0XCJub3ZlY2VudG9fc2Fuc193aWRlZGVtaWJvbGRcIiwgXCJIZWx2ZXRpY2FcIiwgXCJUYWhvbWFcIiwgXCJHZW5ldmFcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuJGZvbnQtZmFtaWx5LWxvZ286ICAgICAgICAgICAgICBcIlBhY2lmaWNvXCIsIFwibW9ub3NwYWNlXCI7XG4kZm9udC1mYW1pbHktbW9ubzogXHRcdFx0XHRcIkluY29uc29sYXRhXCIsIG1vbm9zcGFjZTtcbiRmb250LWZhbWlseS1zZXJpZjpcdFx0XHRcdFwiR2VvcmdpYVwiLCBcIlRpbWVzXCIsIFwiVGltZXMgTmV3IFJvbWFuXCIsIHNlcmlmO1xuXG4kaWNvbnM6IFx0XHRcdFx0XHRcdFwiRm9udEF3ZXNvbWVcIjtcbiIsIiRidWxsZXQtaWNvbi1zaXplOlx0XHRcdFx0My41cmVtO1xuXG4kYnVsbGV0LWljb24tY29sb3ItMTpcdFx0XHQkY29yZS1hY2NlbnQ7XG4kYnVsbGV0LWljb24tY29sb3ItMjpcdFx0XHRhZGp1c3QtaHVlKCRjb3JlLWFjY2VudCwgLTIwKTtcbiRidWxsZXQtaWNvbi1jb2xvci0zOlx0XHRcdGFkanVzdC1odWUoJGNvcmUtYWNjZW50LCAtMTMwKTsiLCIvLyBTaXplc1xuJGhlYWRlci1oZWlnaHQ6IDEycmVtO1xuJGZvb3Rlci1oZWlnaHQ6IDZyZW07XG4kYm9yZGVyLXJhZGl1czogMDtcblxuLy8gRm9udCBXZWlnaHRzXG4kZm9udC13ZWlnaHQtYm9sZDogNjAwO1xuJGZvbnQtd2VpZ2h0LXJlZ3VsYXI6IDQwMDtcbiRmb250LXdlaWdodC1saWdodDozMDA7XG5cbi8vIEdsb2JhbCBQYWRkaW5nc1xuJHBhZGRpbmctaG9yaXo6IDE0cmVtO1xuJHBhZGRpbmctdmVydDogM3JlbTtcbiIsIkBpbXBvcnQgXCJkaXJlY3Rpb25cIjtcbkBpbXBvcnQgXCJyYW5nZVwiO1xuQGltcG9ydCBcInV0aWxpdGllc1wiOyIsIkBmdW5jdGlvbiBvcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcikge1xuXHRAaWYgJGRpciA9PSAnbGVmdCcge1xuXHRcdEByZXR1cm4gcmlnaHQ7XG5cdH1cblx0QGVsc2UgaWYgICRkaXIgPT0gJ3JpZ2h0JyB7XG5cdFx0QHJldHVybiBsZWZ0O1xuXHR9XG5cdEBlbHNlIGlmICRkaXIgPT0gJ2x0cicge1xuXHRcdEByZXR1cm4gcnRsO1xuXHR9XG5cdEBlbHNlIGlmICRkaXIgPT0gJ3J0bCcge1xuXHRcdEByZXR1cm4gbHRyO1xuXHR9XG5cdEBlbHNlIGlmICRkaXIgPT0gJ3RvcCcge1xuXHRcdEByZXR1cm4gYm90dG9tO1xuXHR9XG5cdEBlbHNlIGlmICRkaXIgPT0gJ2JvdHRvbScge1xuXHRcdEByZXR1cm4gdG9wO1xuXHR9XG5cdEBlbHNlIHtcblx0XHRAd2FybiBcIiN7JGRpcn0gaXMgbm90IGEgZGlyZWN0aW9uISBNYWtlIHN1cmUgeW91ciBkaXJlY3Rpb24gaXMgYWxsIGxvd2VyY2FzZSFcIjtcblx0XHRAcmV0dXJuIGZhbHNlO1xuXHR9XG59XG5cbkBmdW5jdGlvbiBuYW1lZC1kaXJlY3Rpb24oJGRpcikge1xuXHRAaWYgJGRpciA9PSAnbHRyJyB7XG5cdFx0QHJldHVybiBsZWZ0O1xuXHR9XG5cdEBlbHNlIGlmICRkaXIgPT0gJ3J0bCcge1xuXHRcdEByZXR1cm4gcmlnaHQ7XG5cdH1cblx0QGVsc2Uge1xuXHRcdEB3YXJuIFwiI3skZGlyfSBpcyBub3QgYSB2YWxpZCBIVE1MIGRpcmVjdGlvbiEgTWFrZSBzdXJlIHlvdSBhcmUgdXNpbmcgYSB2YWxpZCBIVE1MIGRpcmVjdGlvblwiO1xuXHRcdEByZXR1cm4gZmFsc2U7XG5cdH1cbn0iLCJAZnVuY3Rpb24gbG93ZXItYm91bmQoJHJhbmdlKXtcblx0QGlmIGxlbmd0aCgkcmFuZ2UpIDw9IDAge1xuXHRcdEByZXR1cm4gMDtcblx0fVxuXHRAcmV0dXJuIG50aCgkcmFuZ2UsMSk7XG59XG5cbkBmdW5jdGlvbiB1cHBlci1ib3VuZCgkcmFuZ2UpIHtcblx0QGlmIGxlbmd0aCgkcmFuZ2UpIDwgMiB7XG5cdFx0QHJldHVybiA5OTk5OTk5OTk5OTk7XG5cdH1cblx0QHJldHVybiBudGgoJHJhbmdlLCAyKTtcbn0iLCJAZnVuY3Rpb24gdGV4dGNvbG9yLXRpbnQoJGNvbG9yLCAkYW1vdW50OiA2NSUpIHtcbiBcdEBpZiAobGlnaHRuZXNzKCRjb2xvcikgPiA1MCkge1xuIFx0XHRAcmV0dXJuIGRhcmtlbigkY29sb3IsICRhbW91bnQpO1xuXHR9IEBlbHNlIHtcbiAgICBcdEByZXR1cm4gbGlnaHRlbigkY29sb3IsICRhbW91bnQpO1xuICBcdH1cdFxufSIsIkBpbXBvcnQgXCJicmVha3BvaW50c1wiO1xuQGltcG9ydCBcIm5hdlwiO1xuQGltcG9ydCBcInR5cG9ncmFwaHlcIjtcbkBpbXBvcnQgXCJ1dGlsaXRpZXNcIjsiLCIvLyBCcmVha3BvaW50c1xuQG1peGluIGJyZWFrcG9pbnQoJGJyZWFrcG9pbnQsICRtZWRpYTogYWxsKSB7XG5cdEBpZiAkYnJlYWtwb2ludCA9PSBsYXJnZS1kZXNrdG9wLXJhbmdlIHtcblx0XHRAbWVkaWEgb25seSAjeyRtZWRpYX0gYW5kIChtaW4td2lkdGg6ICRsYXJnZS1kZXNrdG9wLWNvbnRhaW5lcikgeyBAY29udGVudDsgfVxuXHR9XG5cdEBlbHNlIGlmICRicmVha3BvaW50ID09IGRlc2t0b3AtcmFuZ2Uge1xuXHRcdEBtZWRpYSBvbmx5ICN7JG1lZGlhfSBhbmQgKG1pbi13aWR0aDogJGRlc2t0b3AtY29udGFpbmVyKSBhbmQgKG1heC13aWR0aDogJGxhcmdlLWRlc2t0b3AtY29udGFpbmVyIC0gMC4wNjIpIHsgQGNvbnRlbnQ7IH1cblx0fVxuXHRAZWxzZSBpZiAkYnJlYWtwb2ludCA9PSB0YWJsZXQtcmFuZ2Uge1xuXHRcdEBtZWRpYSBvbmx5ICN7JG1lZGlhfSBhbmQgKG1pbi13aWR0aDogJHRhYmxldC1jb250YWluZXIpIGFuZCAobWF4LXdpZHRoOiAkZGVza3RvcC1jb250YWluZXIgLSAwLjA2MikgeyBAY29udGVudDsgfVxuXHR9XG5cdEBlbHNlIGlmICRicmVha3BvaW50ID09IGxhcmdlLW1vYmlsZS1yYW5nZSB7XG5cdFx0QG1lZGlhIG9ubHkgI3skbWVkaWF9IGFuZCAobWluLXdpZHRoOiAkbGFyZ2UtbW9iaWxlLWNvbnRhaW5lciArIDAuMDYzKSBhbmQgKG1heC13aWR0aDogJHRhYmxldC1jb250YWluZXIgLSAwLjA2MikgeyBAY29udGVudDsgfVxuXHR9XG5cdEBlbHNlIGlmICRicmVha3BvaW50ID09IHNtYWxsLW1vYmlsZS1yYW5nZSB7XG5cdFx0QG1lZGlhIG9ubHkgI3skbWVkaWF9IGFuZCAobWF4LXdpZHRoOiAkbGFyZ2UtbW9iaWxlLWNvbnRhaW5lcikgeyBAY29udGVudDsgfVxuXHR9XG5cdEBlbHNlIGlmICRicmVha3BvaW50ID09IG5vLW1vYmlsZSB7XG5cdFx0QG1lZGlhIG9ubHkgI3skbWVkaWF9IGFuZCAobWluLXdpZHRoOiAkdGFibGV0LWNvbnRhaW5lcikgeyBAY29udGVudDsgfVxuXHR9XG5cdEBlbHNlIGlmICRicmVha3BvaW50ID09IG1vYmlsZS1vbmx5IHtcblx0XHRAbWVkaWEgb25seSAjeyRtZWRpYX0gYW5kIChtYXgtd2lkdGg6ICR0YWJsZXQtY29udGFpbmVyIC0gMC4wNjIpIHsgQGNvbnRlbnQ7IH1cblx0fVxuXHRAZWxzZSBpZiAkYnJlYWtwb2ludCA9PSBkZXNrdG9wLW9ubHkge1xuXHRcdEBtZWRpYSBvbmx5ICN7JG1lZGlhfSBhbmQgKG1heC13aWR0aDogJGRlc2t0b3AtY29udGFpbmVyIC0gMC4wNjIpIHsgQGNvbnRlbnQ7IH1cblx0fVxufSIsIi8vIEluYWN0aXZlIERyb3Bkb3duXG4laW5hY3RpdmUtZHJvcGRvd24ge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogYXV0bztcblx0bGVmdDogYXV0bztcblx0b3BhY2l0eTogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8gSW5hY3RpdmUgRHJvcGRvd25cbiVhY3RpdmUtZHJvcGRvd24ge1xuXHRvcGFjaXR5OiAxO1xuXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHRvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLy8gSW5hY3RpdmUgRHJvcGRvd25cbiVkcm9wZG93bi1jb2x1bW4ge1xuXHR3aWR0aDogJGRyb3Bkb3duLWNvbC13aWR0aDtcblx0Ly9oZWlnaHQ6ICRkcm9wZG93bi1oZWlnaHQ7XG5cdGZsb2F0OiBsZWZ0O1xufSIsIi8vIEhlYWRlcnNcbkBtaXhpbiBoZWFkZXIoJG1hcmdpbi10b3A6ICRsZWFkaW5nLW1hcmdpbiAvIDIsICRtYXJnaW4tYm90dG9tOiAkbGVhZGluZy1tYXJnaW4pIHtcblx0bWFyZ2luOiAkbWFyZ2luLXRvcCAwICRtYXJnaW4tYm90dG9tIDA7XG59IiwiLy8gTGlzdCBSZXNldFxuJWxpc3QtcmVzZXQge1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDA7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi8vIFZlcnRpY2FsIENlbnRlcmluZ1xuJXZlcnRpY2FsLWFsaWduIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0b3A6IDUwJTtcblx0QGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xufVxuXG4vLyBDb2x1bW5zXG5AbWl4aW4gY29sdW1ucygkY29sdW1ucykge1xuXHR3aWR0aDogcGVyY2VudGFnZSgxLyRjb2x1bW5zKTtcbn1cblxuLy8gRmxvYXQgd2l0aCBtYXJnaW4gdmFyaWFibGVcbkBtaXhpbiBmbG9hdCgkZGlyZWN0aW9uLCAkbWFyZ2luOiAwKSB7XG5cdGZsb2F0OiAkZGlyZWN0aW9uO1xuXHRtYXJnaW4tI3tvcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcmVjdGlvbil9OiAkbWFyZ2luO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ== */ diff --git a/css-compiled/particles.min.css b/css-compiled/particles.min.css new file mode 100644 index 0000000..e69de29 diff --git a/css-compiled/template.css b/css-compiled/template.css index f2f1112..29d0c97 100644 --- a/css-compiled/template.css +++ b/css-compiled/template.css @@ -1,1748 +1,881 @@ -@import url(//fonts.googleapis.com/css?family=Montserrat:400|Raleway:300,400,600|Inconsolata|Pacifico); -#header .logo h3, #header .logo ul.social-icons, #header .search-box, #header #navbar ul.navigation, #header #navbar .panel-activation { - position: relative; - top: 50%; - -webkit-transform: translateY(-50%); - -moz-transform: translateY(-50%); - -ms-transform: translateY(-50%); - -o-transform: translateY(-50%); - transform: translateY(-50%); } - -.button, .archive-list button, .contact button, .button-secondary { - display: inline-block; - padding: 7px 20px; } - .button-small.button, .archive-list button.button-small, .contact button.button-small, .button-small.button-secondary { - padding: 3px 10px; - font-size: 0.9rem; } - -html, body { - height: 100%; } - -body { - background: #fff; - color: #9A9898; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; } - -a { - color: #87b672; } - a:hover { - color: #558042; } - -b, strong, label, th { - font-weight: 600; } - -#container { - min-height: 100%; - position: relative; } - -.fullwidth #body { - padding-left: 0; - padding-right: 0; } - -#body { - background: #fff; - padding-top: 15rem; } - -.left { - float: left; } - -.right { - float: right; } - -@font-face { - font-family: 'novecento_sans_widedemibold'; - src: url("../fonts/Novecentosanswide-DemiBold-webfont.eot"); - src: url("../fonts/Novecentosanswide-DemiBold-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/Novecentosanswide-DemiBold-webfont.woff2") format("woff2"), url("../fonts/Novecentosanswide-DemiBold-webfont.woff") format("woff"), url("../fonts/Novecentosanswide-DemiBold-webfont.ttf") format("truetype"), url("../fonts/Novecentosanswide-DemiBold-webfont.svg#novecento_sans_widedemibold") format("svg"); - font-weight: normal; - font-style: normal; } -@font-face { - font-family: 'novecento_sans_widenormal'; - src: url("../fonts/Novecentosanswide-Normal-webfont.eot"); - src: url("../fonts/Novecentosanswide-Normal-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/Novecentosanswide-Normal-webfont.woff2") format("woff2"), url("../fonts/Novecentosanswide-Normal-webfont.woff") format("woff"), url("../fonts/Novecentosanswide-Normal-webfont.ttf") format("truetype"), url("../fonts/Novecentosanswide-Normal-webfont.svg#novecento_sans_widenormal") format("svg"); - font-weight: normal; - font-style: normal; } -@font-face { - font-family: 'novecento_sans_widemedium'; - src: url("./fonts/Novecentosanswide-Medium-webfont.eot"); - src: url("./fonts/Novecentosanswide-Medium-webfont.eot?#iefix") format("embedded-opentype"), url("./fonts/Novecentosanswide-Medium-webfont.woff2") format("woff2"), url("./fonts/Novecentosanswide-Medium-webfont.woff") format("woff"), url("./fonts/Novecentosanswide-Medium-webfont.ttf") format("truetype"), url("./fonts/Novecentosanswide-Medium-webfont.svg#novecento_sans_widemedium") format("svg"); - font-weight: normal; - font-style: normal; } -.default-animation, #body, .modal, .archive-list button, .modular .showcase .button, .modular .showcase .archive-list button, .archive-list .modular .showcase button, .modular .showcase .contact button, .contact .modular .showcase button, .modular .slideme_container .arrow, .modular .slideme_container .pagination .numbers li, .modular .bottom .button, .modular .bottom .archive-list button, .archive-list .modular .bottom button, .modular .bottom .contact button, .contact .modular .bottom button, .contact input, .contact textarea, .contact button, .callout .pricing-container .pricing-item, .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .foot, .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .archive-list button, .archive-list .callout .pricing-container .pricing-item .foot button, .callout .pricing-container .pricing-item .foot .contact button, .contact .callout .pricing-container .pricing-item .foot button, .team .members .social-icons li, .team .members .social-icons li a, .logo h3, .logo ul.social-icons li, .logo ul.social-icons li a, .notebook .screen .screen-content-hover { - -webkit-transition: all 0.5s ease; - -moz-transition: all 0.5s ease; - transition: all 0.5s ease; } - -.padding-horiz, .fullwidth #header, .fullwidth #breadcrumbs, .fullwidth .blog-header, .fullwidth .blog-content-item, .fullwidth .content-wrapper, .fullwidth ul.pagination, .fullwidth #body > .modular-row, #body, #header, .footer { - padding-left: 14rem; - padding-right: 14rem; } - @media only all and (min-width: 60em) and (max-width: 74.938em) { - .padding-horiz, .fullwidth #header, .fullwidth #breadcrumbs, .fullwidth .blog-header, .fullwidth .blog-content-item, .fullwidth .content-wrapper, .fullwidth ul.pagination, .fullwidth #body > .modular-row, #body, #header, .footer { - padding-left: 7rem; - padding-right: 7rem; } } - @media only all and (min-width: 48em) and (max-width: 59.938em) { - .padding-horiz, .fullwidth #header, .fullwidth #breadcrumbs, .fullwidth .blog-header, .fullwidth .blog-content-item, .fullwidth .content-wrapper, .fullwidth ul.pagination, .fullwidth #body > .modular-row, #body, #header, .footer { - padding-left: 7rem; - padding-right: 7rem; } } - @media only all and (max-width: 47.938em) { - .padding-horiz, .fullwidth #header, .fullwidth #breadcrumbs, .fullwidth .blog-header, .fullwidth .blog-content-item, .fullwidth .content-wrapper, .fullwidth ul.pagination, .fullwidth #body > .modular-row, #body, #header, .footer { - padding-left: 1rem; - padding-right: 1rem; } } - -.padding-vert { - padding-top: 3rem; - padding-bottom: 3rem; } - -#header { - position: absolute; - z-index: 10000; - width: 100%; - height: 12rem; - background-color: rgba(255, 255, 255, 0.9); - box-shadow: 0 0.05rem 1rem rgba(0, 0, 0, 0.15); } - #header > .grid, #header .logo, #header #navbar, #header .social-navigation { - height: 50%; } - #header .fa { - color: #000; } - #header .fixed { - background: #fff; - padding-left: 14rem; - padding-right: 14rem; - position: fixed; - top: 0; - left: 0; - width: 100%; - opacity: 0.9; - box-shadow: 0 0px 20px 0px rgba(0, 0, 0, 0.2); } - @media only all and (max-width: 47.938em) { - #header .fixed { - padding-left: 10px; - padding-right: 10px; } } - @media only all and (max-width: 47.938em) { - #header .logo h3 { - font-size: 1.9rem; } } - #header .search-box { - display: block; - float: right; - text-align: right; } - #header .search-box i { - color: #FFFFFF; - position: absolute; - top: 0.5rem; - right: 0.6rem; - z-index: -1; - cursor: pointer; } - #header .search-box input::-webkit-search-decoration, - #header .search-box input::-webkit-search-cancel-button { - display: none; } - #header .search-box input[type=search] { - outline: none; - cursor: pointer; - -webkit-appearance: textfield; - -webkit-box-sizing: content-box; - font-family: inherit; - font-size: 100%; - border: 0 none; - box-shadow: none; - color: transparent; - background: transparent; - width: 4rem; - height: 1.3rem; - margin-bottom: 0; - font-size: 0.9rem; - -webkit-transition: all 0.5s; - -moz-transition: all 0.5s; - transition: all 0.5s; } - #header .search-box input[type=search]:focus { - width: 10rem; - background-color: rgba(255, 255, 255, 0.3); - cursor: auto; - color: #FFFFFF; } - #header .search-box input:-moz-placeholder { - color: transparent; } - #header .search-box input::-webkit-input-placeholder { - color: transparent; } - @media only all and (max-width: 59.938em) { - #header .search-box { - text-align: right; - position: absolute; - right: 10px; - top: 50%; - -webkit-transform: translateY(1rem); - -moz-transform: translateY(1rem); - -ms-transform: translateY(1rem); - -o-transform: translateY(1rem); - transform: translateY(1rem); } - #header .search-box i { - left: 0.6rem; } - #header .search-box input[type=search] { - padding-right: 2rem; } - #header .search-box input[type=search]:focus { - width: 8rem; } } - @media only all and (max-width: 59.938em) { - #header .fixed .search-box { - top: 50%; - -webkit-transform: translateY(-50%); - -moz-transform: translateY(-50%); - -ms-transform: translateY(-50%); - -o-transform: translateY(-50%); - transform: translateY(-50%); } } - @media only all and (max-width: 59.938em) { - #header .fixed .panel-activation { - top: 50% !important; - -webkit-transform: translateY(-50%) !important; - -moz-transform: translateY(-50%) !important; - -ms-transform: translateY(-50%) !important; - -o-transform: translateY(-50%) !important; - transform: translateY(-50%) !important; } } - #header #navbar { - font-size: 1.1rem; } - @media only all and (max-width: 47.938em) { - #header #navbar { - margin-left: -1rem; - margin-right: -1rem; } - #header #navbar.fixed { - margin: 0; } } - #header #navbar ul { - margin: 0; - padding: 0; - list-style: none; } - #header #navbar ul.navigation { - display: inline-block; - float: left; } - #header #navbar ul.navigation li { - float: left; - position: relative; - text-transform: uppercase; } - #header #navbar ul.navigation li a { - font-family: "novecento_sans_widedemibold", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; - display: inline-block; - padding: 0.3rem 0.8rem; } - #header #navbar ul.navigation li a.active, #header #navbar ul.navigation li a:hover { - color: #87b672; } - #header #navbar ul.navigation li:first-child a { - padding-left: 0; } - #header #navbar ul.navigation li ul { - display: none; - padding: 0; - box-shadow: 0 0.05rem 1rem rgba(0, 0, 0, 0.15) !important; } - #header #navbar ul.navigation li ul ul { - left: 100%; - top: 0; } - #header #navbar ul.navigation li:hover > ul { - display: block; - position: absolute; - background: rgba(255, 255, 255, 0.9); - width: 10rem; } - #header #navbar ul.navigation li:hover li { - float: none; - margin: 0; - padding: 0; } - #header #navbar ul.navigation li:hover li a { - padding: 0.5rem 0.8rem; - display: block; } - #header #navbar ul.navigation li:hover li a:before, #header #navbar ul.navigation li:hover li a:after { - display: none; } - #header #navbar ul.navigation li:hover li.active > a { - background: #87b672; - color: #fff; } - @media only all and (max-width: 59.938em) { - #header #navbar ul.navigation { - display: none; } } - #header #navbar .panel-activation { - padding: 1rem; - display: none; - font-size: 1.8rem; - cursor: pointer; - float: right; } - @media only all and (max-width: 59.938em) { - #header #navbar .panel-activation { - display: inline-block; - position: absolute; - left: 0; - top: 50%; - -webkit-transform: translateY(0); - -moz-transform: translateY(0); - -ms-transform: translateY(0); - -o-transform: translateY(0); - transform: translateY(0); } } - -.modular.header-image #header .fixed { - background: #666; - -webkit-transition: background 0.3s ease-in-out; - -moz-transition: background 0.3s ease-in-out; - transition: background 0.3s ease-in-out; } - -.header-image.fullwidth #body { - padding-left: 0; - padding-right: 0; } - .header-image.fullwidth #body > .listing-row { - padding-left: 14rem; - padding-right: 14rem; } -.header-image .listing-row:last-child { - margin-bottom: 2rem; } -.header-image #body .flush-top { - margin-top: -15.5rem; - padding-top: 16rem; } -.header-image #breadcrumbs { - margin-top: 1rem; } -.header-image #header { - background-color: rgba(255, 255, 255, 0); - box-shadow: none; } - .header-image #header #logo h3, .header-image #header #logo a { - color: #FFFFFF; } - .header-image #header a, .header-image #header .menu-btn { - color: #FFFFFF; } - .header-image #header a:before, .header-image #header a:after { - background-color: rgba(255, 255, 255, 0.7) !important; } - .header-image #header #navbar ul.navigation ul li a { - color: #87b672; } - .header-image #header #navbar ul.navigation ul li a:hover { - color: #558042; } - -.header-lite #body { - padding-top: 12rem; } -.header-lite #header { - box-shadow: none; - color: #656161; } - .header-lite #header a, .header-lite #header .menu-btn { - color: #656161; } - .header-lite #header .search-box i { - color: #656161; } - .header-lite #header .search-box input[type=search]:focus { - background-color: rgba(101, 97, 97, 0.2); } - .header-lite #header li.active a { - color: #87b672; } - .header-lite #header .logo ul.social-icons li { - background: rgba(101, 97, 97, 0.2); } - .header-lite #header .logo ul.social-icons li .fa { - color: white; } - .header-lite #header .logo ul.social-icons li:hover .fa { - color: #656161; } - -.footer { - font-size: 0.9rem; - background: #333; - width: 100%; - padding-top: 2rem; } - .footer:after { - content: ""; - display: table; - clear: both; } - .footer a { - color: #9A9898; } - .footer h4, .footer .archive-list label, .archive-list .footer label, .footer .modular .bottom table th, .modular .bottom table .footer th, .footer .contact label, .contact .footer label, .footer .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .footer .name, .footer .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .footer .button, .footer .callout .pricing-container .pricing-item .foot .archive-list button, .callout .pricing-container .pricing-item .foot .archive-list .footer button, .footer .archive-list .callout .pricing-container .pricing-item .foot button, .archive-list .callout .pricing-container .pricing-item .foot .footer button, .footer .callout .pricing-container .pricing-item .foot .contact button, .callout .pricing-container .pricing-item .foot .contact .footer button, .footer .contact .callout .pricing-container .pricing-item .foot button, .contact .callout .pricing-container .pricing-item .foot .footer button { - line-height: 2rem; - margin-top: 0; - text-align: left; - color: #fff; } - .footer hr { - border-color: rgba(154, 152, 152, 0.5); } - @media only all and (max-width: 47.938em) { - .footer .social-icons { - float: none; - clear: both; - width: 100%; - padding-top: 2rem; } } - @media only all and (min-width: 48em) and (max-width: 59.938em) { - .footer .social-icons { - float: none; - clear: both; - width: 100%; - padding-top: 2rem; } } - .footer .footer-items { - margin-top: 2rem; } - @media only all and (max-width: 47.938em) { - .footer .footer-items { - margin-top: 0; } } - @supports not (flex-wrap: wrap) { - .footer .footer-items { - overflow: hidden; } } - .footer .footer-items:after { - content: ""; - display: table; - clear: both; } - .footer .footer-module { - display: block; - float: left; - width: 20%; - vertical-align: top; - padding-right: 2rem; } - .footer .footer-module.large { - width: 40%; } - @media only all and (min-width: 30.063em) and (max-width: 47.938em) { - .footer .footer-module { - margin-top: 1rem; - width: 50%; } } - @media only all and (max-width: 30em) { - .footer .footer-module { - margin-top: 1rem; - width: 100%; } } - .footer .footer-module span:after { - content: ""; - display: table; - clear: both; } - .footer .footer-module strong, .footer .footer-module label, .footer .footer-module th { - color: #fff; } - @media only all and (max-width: 47.938em) { - .footer .footer-module { - width: 100% !important; - float: none; } } - .footer .logo { - border-bottom: 0 none; - color: #fff; } - .footer .logo:after { - content: ""; - display: table; - clear: both; } - .footer .logo h3 a { - color: #fff; } - .footer .quickmenu { - margin: 0; - padding: 0; - list-style: none; } - .footer .quickmenu i { - padding-right: 0.5rem; - color: #fff; - font-size: 0.7rem; } - .footer .footer-modules { - display: block; - padding-bottom: 1.5rem; } - .footer .footer-modules:after { - content: ""; - display: table; - clear: both; } - .footer .footer-copyright { - width: 50%; - font-family: "novecento_sans_widedemibold", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; - display: inline-block; - float: left; - text-align: left; - text-transform: uppercase; } - @media only all and (max-width: 47.938em) { - .footer .footer-copyright { - width: 100%; - float: none; - text-align: left; - margin-bottom: 1rem; } } - .footer .footer-menu { - float: right; - display: inline-block; - width: 50%; - text-align: right; - text-transform: uppercase; - font-family: "novecento_sans_widedemibold", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; } - @media only all and (max-width: 47.938em) { - .footer .footer-menu { - width: 100%; - float: none; - text-align: left; } } - .footer .footer-menu ul { - margin: 0; - padding: 0; - list-style: none; } - .footer .footer-menu ul li { - display: inline-block; } - .footer .footer-menu ul li:after { - content: "/"; - margin: 0 0.5rem; - display: inline-block; } - .footer .footer-menu ul li:last-child:after { - display: none; } - .footer .newsletter input { - display: inline-block; - height: 2.5rem; - border: 0 none; } - .footer .newsletter input[type=text] { - background-color: rgba(255, 255, 255, 0.2); - color: #fff; } - .footer .newsletter input[type=submit] { - background-color: rgba(255, 255, 255, 0.5); - color: #fff; - padding: 0 1.2rem; - vertical-align: top; } - -body { - font-family: "Helvetica Neue", "HelveticaNeue-Light", "Helvetica Neue Light", Helvetica, Arial, "Lucida Grande", sans-serif; - font-weight: 400; } - -h1, h2, h3, h4, .archive-list label, .modular .bottom table th, .contact label, .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .archive-list button, .archive-list .callout .pricing-container .pricing-item .foot button, .callout .pricing-container .pricing-item .foot .contact button, .contact .callout .pricing-container .pricing-item .foot button, h5, h6 { - font-family: "novecento_sans_widedemibold", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; - text-rendering: optimizeLegibility; } - -h1 { - font-size: 3.2rem; } - @media only all and (max-width: 47.938em) { - h1 { - font-size: 2.5rem; - line-height: 1.2; - margin-bottom: 2.5rem; } } - -h2 { - font-weight: normal; - text-transform: uppercase; - font-size: 1.4rem; } - @media only all and (min-width: 48em) and (max-width: 59.938em) { - h2 { - font-size: -1rem; } } - @media only all and (max-width: 47.938em) { - h2 { - font-size: -1.1rem; } } - -@media only all and (min-width: 48em) and (max-width: 59.938em) { - h3 { - font-size: -0.9rem; } } -@media only all and (max-width: 47.938em) { - h3 { - font-size: -1rem; } } - -h4, .archive-list label, .modular .bottom table th, .contact label, .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .archive-list button, .archive-list .callout .pricing-container .pricing-item .foot button, .callout .pricing-container .pricing-item .foot .contact button, .contact .callout .pricing-container .pricing-item .foot button { - font-size: 1.2rem; - font-weight: normal; - text-align: center; - text-transform: uppercase; - color: #656161; } - @media only all and (min-width: 48em) and (max-width: 59.938em) { - h4, .archive-list label, .modular .bottom table th, .contact label, .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .archive-list button, .archive-list .callout .pricing-container .pricing-item .foot button, .callout .pricing-container .pricing-item .foot .contact button, .contact .callout .pricing-container .pricing-item .foot button { - font-size: 1.35rem; } } - @media only all and (max-width: 47.938em) { - h4, .archive-list label, .modular .bottom table th, .contact label, .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .archive-list button, .archive-list .callout .pricing-container .pricing-item .foot button, .callout .pricing-container .pricing-item .foot .contact button, .contact .callout .pricing-container .pricing-item .foot button { - font-size: 1.25rem; } } - -h1 { - text-align: center; - font-weight: normal; } - -h3 { - letter-spacing: -1px; } - -h1 + h2 { - margin: -2rem 0 2rem 0; - font-size: 1.4rem; - line-height: 1; - text-align: center; - font-family: "Helvetica Neue", "HelveticaNeue-Light", "Helvetica Neue Light", Helvetica, Arial, "Lucida Grande", sans-serif; - font-weight: 300; } - @media only all and (min-width: 48em) and (max-width: 59.938em) { - h1 + h2 { - font-size: 1.3rem; } } - @media only all and (max-width: 47.938em) { - h1 + h2 { - font-size: 1rem; } } - -h2 + h3 { - margin: 0.5rem 0 2rem 0; - font-size: 1.3rem; - line-height: 1; - text-align: center; - font-family: "Helvetica Neue", "HelveticaNeue-Light", "Helvetica Neue Light", Helvetica, Arial, "Lucida Grande", sans-serif; - font-weight: normal; } - @media only all and (min-width: 48em) and (max-width: 59.938em) { - h2 + h3 { - font-size: 1.2rem; } } - @media only all and (max-width: 47.938em) { - h2 + h3 { - font-size: 1.1rem; } } - -blockquote { - border-left: 10px solid #F0F2F4; } - blockquote p { - font-size: 1.1rem; - color: #999; } - blockquote cite { - display: block; - text-align: right; - color: #666; - font-size: 1.2rem; } - -blockquote > blockquote > blockquote { - margin: 0; } - blockquote > blockquote > blockquote p { - padding: 15px; - display: block; - font-size: 1rem; - margin-top: 0rem; - margin-bottom: 0rem; } - blockquote > blockquote > blockquote > p { - margin-left: -71px; - border-left: 10px solid #F0AD4E; - background: #FCF8F2; - color: #df8a13; } - blockquote > blockquote > blockquote > blockquote > p { - margin-left: -94px; - border-left: 10px solid #D9534F; - background: #FDF7F7; - color: #b52b27; } - blockquote > blockquote > blockquote > blockquote > blockquote > p { - margin-left: -118px; - border-left: 10px solid #5BC0DE; - background: #F4F8FA; - color: #28a1c5; } - blockquote > blockquote > blockquote > blockquote > blockquote > blockquote > p { - margin-left: -142px; - border-left: 10px solid #5CB85C; - background: #F1F9F1; - color: #3d8b3d; } - -code, -kbd, -pre, -samp { - font-family: "Inconsolata", monospace; } - -code { - background: #f9f2f4; - color: #9c1d3d; } - -pre { - padding: 2rem; - background: #f6f6f6; - border: 1px solid #CBCBCB; - border-radius: 3px; } - pre code { - color: #237794; - background: inherit; } - -hr { - border-bottom: 1px solid #CBCBCB; } - -.page-title { - margin-top: -25px; - padding: 25px; - float: left; - clear: both; - background: #87b672; - color: #fff; } - -.label { - vertical-align: middle; - background: #87b672; - border-radius: 100%; - color: #fff; - height: 1rem; - min-width: 1rem; - line-height: 1rem; - display: inline-block; - text-align: center; - font-size: 0.7rem; - font-family: "novecento_sans_widedemibold", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; - margin-right: 0.75rem; } - -fieldset { - border: 1px solid #CBCBCB; } - -textarea, input[type="email"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="url"], input[type="color"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="month"], input[type="time"], input[type="week"], select[multiple=multiple] { - background-color: white; - border: 1px solid #CBCBCB; - box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06); } - textarea:hover, input[type="email"]:hover, input[type="number"]:hover, input[type="password"]:hover, input[type="search"]:hover, input[type="tel"]:hover, input[type="text"]:hover, input[type="url"]:hover, input[type="color"]:hover, input[type="date"]:hover, input[type="datetime"]:hover, input[type="datetime-local"]:hover, input[type="month"]:hover, input[type="time"]:hover, input[type="week"]:hover, select[multiple=multiple]:hover { - border-color: #b2b2b2; } - textarea:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="url"]:focus, input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="week"]:focus, select[multiple=multiple]:focus { - border-color: #87b672; - box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 5px rgba(121, 173, 97, 0.7); } - -.form-field .required { - color: #F3443F; - font-size: 2rem; - line-height: 2rem; - vertical-align: top; - height: 1.5rem; - display: inline-block; } - -form .buttons { - text-align: center; } -form input { - font-weight: 400; } - -table { - border: 1px solid #d8d8d8; } - -th { - background: #e5e5e5; - padding: 0.5rem; } - -td { - padding: 0.5rem; - border: 1px solid #d8d8d8; } - -.button, .archive-list button, .contact button { - background: #87b672; - color: #fff; - border: 1px solid #87b672; } - .button:hover, .archive-list button:hover, .contact button:hover { - background: #fff; - color: #87b672; } - .button:active, .archive-list button:active, .contact button:active { - box-shadow: 0 1px 0 #679b50; } - -.button-secondary { - background: #F6635E; - color: #fff; - border: 1px solid #F6635E; } - .button-secondary:hover { - background: #fff; - color: #F6635E; } - .button-secondary:active { - box-shadow: 0 1px 0 #f32b24; } - -.bullets { - margin: 1.7rem 0; - margin-left: -0.85rem; - margin-right: -0.85rem; - overflow: auto; } - -.bullet { - float: left; - padding: 0 0.85rem; } - -.two-column-bullet { - width: 50%; } - @media only all and (max-width: 47.938em) { - .two-column-bullet { - width: 100%; } } - -.three-column-bullet { - width: 33.33333%; } - @media only all and (max-width: 47.938em) { - .three-column-bullet { - width: 100%; } } - -.four-column-bullet { - width: 25%; } - @media only all and (max-width: 47.938em) { - .four-column-bullet { - width: 100%; } } - -.bullet-icon { - float: left; - background: #87b672; - padding: 0.875rem; - width: 3.5rem; - height: 3.5rem; - border-radius: 50%; - color: #fff; - font-size: 1.75rem; - text-align: center; } - -.bullet-icon-1 { - background: #87b672; } - -.bullet-icon-2 { - background: #9eb672; } - -.bullet-icon-3 { - background: #b67292; } - -.bullet-content { - margin-left: 4.55rem; } - -.sb-slidebar { - background-color: #333 !important; } - -#panel { - padding-top: 1rem; - color: #ddd; } - #panel .navigation { - list-style: none; - padding: 0; - margin-left: 0; } - #panel .navigation li { - border-bottom: 1px solid #3d3d3d; } - #panel .navigation li a { - color: #ddd; - display: block; - padding: 0.5rem 1rem; - font-weight: 600; } - #panel .navigation li a:hover { - color: white; - background-color: #262626; } - #panel .navigation li a:last-child { - border-bottom: 0; } - #panel .navigation li.active > a { - background: #fff; - color: #9A9898; } - #panel .navigation li.active > a:hover { - color: #9A9898; } - #panel .navigation li:first-child { - border-top: 1px solid #3d3d3d; } - #panel .navigation li ul { - list-style: none; - padding: 0; } - #panel .navigation li ul li { - border: 0 !important; } - #panel .navigation li ul li a { - color: #c4c4c4; - padding: 0.2rem 1rem 0.2rem 2rem; - font-size: 0.9rem; } - #panel .navigation li ul li li a { - padding-left: 3rem; } - #panel .navigation li ul li li a li a { - padding-left: 4rem; } - #panel .navigation li ul li.active > a { - background: #ccc; } - -.portfolio-modal .close-modal { - position: absolute; - top: 0; - right: 0; - width: 5rem; - height: 5rem; - background-color: transparent; - cursor: pointer; - font-size: 3rem; } - @media only all and (max-width: 47.938em) { - .portfolio-modal .close-modal { - display: none; } } - -.modal { - display: none; - opacity: 0; - overflow: hidden; - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1050; - -webkit-overflow-scrolling: touch; - outline: 0; - background: #fff; - text-align: center; } - @media only all and (max-width: 47.938em) { - .modal h1 { - margin-bottom: 0.5rem; } - .modal p, .modal ul { - margin: 1rem 0; } - .modal ul { - margin-top: 0; } } - .modal.in { - opacity: 1; } - .modal .client-details { - list-style-type: none; } - .modal .client-details li { - display: inline-block; } - .modal .client-details li strong, .modal .client-details li label, .modal .client-details li th { - color: #87b672; - font-weight: normal; } - .modal .modal-content { - margin: 0 auto; - width: 35rem; - min-height: 100%; - margin-top: 10rem; } - @media only all and (min-width: 48em) and (max-width: 59.938em) { - .modal .modal-content { - width: 100%; } } - @media only all and (max-width: 47.938em) { - .modal .modal-content { - margin-top: 0; - width: 100%; } } - .modal .modal-content img { - max-height: 15rem; } - -.blog-header { - padding-top: 1rem !important; - padding-bottom: 1rem; - margin-top: 0 !important; } - .blog-header.blog-header-image { - background-size: cover !important; } - .blog-header.blog-header-image h1, .blog-header.blog-header-image h2 { - color: #FFFFFF; - text-align: left; } - .blog-header h1 { - font-size: 2.5rem; - margin-top: 0; - margin-bottom: 0; - text-transform: uppercase; } - @media only all and (min-width: 48em) and (max-width: 59.938em) { - .blog-header h1 { - font-size: 2rem; } } - @media only all and (max-width: 47.938em) { - .blog-header h1 { - font-size: 1.5rem; - line-height: 1.2; } } - .blog-header + .blog-content { - padding-top: 3rem; } - -.list-item { - border-bottom: 1px solid #dadada; - margin-bottom: 3rem; } - .list-item:last-child { - border-bottom: 0; } - .list-item .list-blog-header { - position: relative; } - .list-item .list-blog-header h4, .list-item .list-blog-header .archive-list label, .archive-list .list-item .list-blog-header label, .list-item .list-blog-header .modular .bottom table th, .modular .bottom table .list-item .list-blog-header th, .list-item .list-blog-header .contact label, .contact .list-item .list-blog-header label, .list-item .list-blog-header .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .list-item .list-blog-header .name, .list-item .list-blog-header .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .list-item .list-blog-header .button, .list-item .list-blog-header .callout .pricing-container .pricing-item .foot .archive-list button, .callout .pricing-container .pricing-item .foot .archive-list .list-item .list-blog-header button, .list-item .list-blog-header .archive-list .callout .pricing-container .pricing-item .foot button, .archive-list .callout .pricing-container .pricing-item .foot .list-item .list-blog-header button, .list-item .list-blog-header .callout .pricing-container .pricing-item .foot .contact button, .callout .pricing-container .pricing-item .foot .contact .list-item .list-blog-header button, .list-item .list-blog-header .contact .callout .pricing-container .pricing-item .foot button, .contact .callout .pricing-container .pricing-item .foot .list-item .list-blog-header button { - text-align: left; - margin-bottom: 1.5rem; } - .list-item .list-blog-header h4 a, .list-item .list-blog-header .archive-list label a, .archive-list .list-item .list-blog-header label a, .list-item .list-blog-header .modular .bottom table th a, .modular .bottom table .list-item .list-blog-header th a, .list-item .list-blog-header .contact label a, .contact .list-item .list-blog-header label a, .list-item .list-blog-header .callout .pricing-container .pricing-item .name a, .callout .pricing-container .pricing-item .list-item .list-blog-header .name a, .list-item .list-blog-header .callout .pricing-container .pricing-item .foot .button a, .callout .pricing-container .pricing-item .foot .list-item .list-blog-header .button a, .list-item .list-blog-header .callout .pricing-container .pricing-item .foot .archive-list button a, .callout .pricing-container .pricing-item .foot .archive-list .list-item .list-blog-header button a, .list-item .list-blog-header .archive-list .callout .pricing-container .pricing-item .foot button a, .archive-list .callout .pricing-container .pricing-item .foot .list-item .list-blog-header button a, .list-item .list-blog-header .callout .pricing-container .pricing-item .foot .contact button a, .callout .pricing-container .pricing-item .foot .contact .list-item .list-blog-header button a, .list-item .list-blog-header .contact .callout .pricing-container .pricing-item .foot button a, .contact .callout .pricing-container .pricing-item .foot .list-item .list-blog-header button a { - color: #656161; } - .list-item .list-blog-header h4 a:hover, .list-item .list-blog-header .archive-list label a:hover, .archive-list .list-item .list-blog-header label a:hover, .list-item .list-blog-header .modular .bottom table th a:hover, .modular .bottom table .list-item .list-blog-header th a:hover, .list-item .list-blog-header .contact label a:hover, .contact .list-item .list-blog-header label a:hover, .list-item .list-blog-header .callout .pricing-container .pricing-item .name a:hover, .callout .pricing-container .pricing-item .list-item .list-blog-header .name a:hover, .list-item .list-blog-header .callout .pricing-container .pricing-item .foot .button a:hover, .callout .pricing-container .pricing-item .foot .list-item .list-blog-header .button a:hover, .list-item .list-blog-header .callout .pricing-container .pricing-item .foot .archive-list button a:hover, .callout .pricing-container .pricing-item .foot .archive-list .list-item .list-blog-header button a:hover, .list-item .list-blog-header .archive-list .callout .pricing-container .pricing-item .foot button a:hover, .archive-list .callout .pricing-container .pricing-item .foot .list-item .list-blog-header button a:hover, .list-item .list-blog-header .callout .pricing-container .pricing-item .foot .contact button a:hover, .callout .pricing-container .pricing-item .foot .contact .list-item .list-blog-header button a:hover, .list-item .list-blog-header .contact .callout .pricing-container .pricing-item .foot button a:hover, .contact .callout .pricing-container .pricing-item .foot .list-item .list-blog-header button a:hover { - color: #87b672; } - .list-item .list-blog-header img { - display: block; - margin-top: 1rem; - border-radius: 0; } - .list-item .list-blog-date, .list-item .list-blog-author { - text-align: center; - background-color: rgba(101, 97, 97, 0.1); - padding: 0.7rem 1rem; - margin-bottom: 0.2rem; - margin-right: 0.5rem; - font-size: 1rem; - text-transform: uppercase; - color: #9A9898; - font-family: "novecento_sans_widedemibold", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; } - @media only all and (min-width: 48em) and (max-width: 59.938em) { - .list-item .list-blog-date, .list-item .list-blog-author { - display: block; - width: 100%; - clear: both; } } - @media only all and (max-width: 47.938em) { - .list-item .list-blog-date, .list-item .list-blog-author { - display: block; - width: 100%; - clear: both; } } - -.blog-content-item .list-blog-padding > p:nth-child(2) { - font-size: 1.2rem; } - -.tags { - margin: 0; - padding: 0; - display: inline; - background-color: rgba(101, 97, 97, 0.1); - padding: 0.7rem 1rem; - margin-bottom: 0.2rem; - list-style: none; - text-align: center; } - .tags li { - display: inline-block; - font-size: 1rem; - text-transform: uppercase; - font-family: "novecento_sans_widedemibold", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; } - .tags li a { - color: #9A9898; } - .tags li a:after { - content: ","; } - .tags li:last-child a:after { - display: none; } - @media only all and (min-width: 48em) and (max-width: 59.938em) { - .tags { - display: block; - width: 100%; - clear: both; } } - @media only all and (max-width: 47.938em) { - .tags { - display: block; - width: 100%; - clear: both; } } - -.archives, .related-pages { - margin: 0; - padding: 0; - list-style: none; } - .archives li, .related-pages li { - line-height: 2rem; } - .archives li:last-child, .related-pages li:last-child { - border-bottom: 0; } - .archives a, .related-pages a { - color: #9A9898; } - .archives a:hover, .related-pages a:hover { - color: #87b672; } - -.related-pages li a { - display: block; } -.related-pages .score { - display: block; - float: right; - color: #999; - font-size: 85%; } - -.syndicate a { - margin-bottom: 1rem; } - -div#breadcrumbs { - padding-left: 0; } - @media only all and (max-width: 47.938em) { - div#breadcrumbs { - display: none; } } - -#sidebar { - padding-left: 3rem; } - @media only all and (max-width: 47.938em) { - #sidebar { - padding-left: 0; } } - #sidebar .sidebar-content { - margin-bottom: 3rem; } - #sidebar .sidebar-content h4, #sidebar .sidebar-content .archive-list label, .archive-list #sidebar .sidebar-content label, #sidebar .sidebar-content .modular .bottom table th, .modular .bottom table #sidebar .sidebar-content th, #sidebar .sidebar-content .contact label, .contact #sidebar .sidebar-content label, #sidebar .sidebar-content .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item #sidebar .sidebar-content .name, #sidebar .sidebar-content .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot #sidebar .sidebar-content .button, #sidebar .sidebar-content .callout .pricing-container .pricing-item .foot .archive-list button, .callout .pricing-container .pricing-item .foot .archive-list #sidebar .sidebar-content button, #sidebar .sidebar-content .archive-list .callout .pricing-container .pricing-item .foot button, .archive-list .callout .pricing-container .pricing-item .foot #sidebar .sidebar-content button, #sidebar .sidebar-content .callout .pricing-container .pricing-item .foot .contact button, .callout .pricing-container .pricing-item .foot .contact #sidebar .sidebar-content button, #sidebar .sidebar-content .contact .callout .pricing-container .pricing-item .foot button, .contact .callout .pricing-container .pricing-item .foot #sidebar .sidebar-content button { - margin-bottom: 1rem; - text-align: left; } - #sidebar .sidebar-content p, #sidebar .sidebar-content ul { - margin-top: 1rem; } - -ul.pagination { - margin: 0 0 3rem; - text-align: center; } - -.prev-next { - margin-top: 5rem; - text-align: center; } - -.archive-list h4, .archive-list label, .archive-list .modular .bottom table th, .modular .bottom table .archive-list th, .archive-list .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .archive-list .name, .archive-list .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .archive-list .button, .callout .pricing-container .pricing-item .foot .archive-list button, .archive-list .callout .pricing-container .pricing-item .foot button { - text-align: left; } -.archive-list input { - width: 50%; - line-height: 2rem; } - @media only all and (max-width: 47.938em) { - .archive-list input { - min-width: 80%; } } - @media only all and (min-width: 48em) and (max-width: 59.938em) { - .archive-list input { - min-width: 70%; } } -.archive-list textarea { - min-width: 80%; - min-height: 25rem; } - @media only all and (max-width: 47.938em) { - .archive-list textarea { - min-width: 100%; } } - @media only all and (min-width: 48em) and (max-width: 59.938em) { - .archive-list textarea { - min-width: 90%; } } -.archive-list input, .archive-list textarea { - border: 0 none; - background: rgba(154, 152, 152, 0.2); - box-shadow: none; } -.archive-list label { - font-size: 1rem; } -.archive-list button { - font-family: "novecento_sans_widedemibold", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; - text-transform: uppercase; } - -#error { - text-align: center; - display: flex; - align-items: center; - justify-content: center; - height: 100%; - padding-bottom: 12rem; } - #error h1 { - font-size: 5rem; } - #error p { - margin: 1rem 0; } - -.error #body { - padding-top: 16rem; } - -.simplesearch h1 { - margin-bottom: 0; } -.simplesearch .center { - text-align: center; } -.simplesearch input { - display: inline-block; - max-width: 30rem; - font-size: 2rem; } -.simplesearch .search-image { - margin-top: 1rem; } - .simplesearch .search-image img { - border-radius: 4px; } - @media only all and (max-width: 47.938em) { - .simplesearch .search-image img { - display: none; } } -@media only all and (max-width: 47.938em) { - .simplesearch .search-item { - margin-left: 0; } } -.simplesearch .search-details { - float: right; - margin-top: -2.5rem; - font-weight: bold; - font-size: 1rem; - color: #cdcccc; } - @media only all and (max-width: 47.938em) { - .simplesearch .search-details { - float: none; - margin-top: -0.2rem; - margin-bottom: 1rem; } } -.simplesearch hr { - border-bottom: 1px solid #eee; } - -.grav-lightslider .lSSlideOuter .lSPager.lSpg > li a { - z-index: 1; } - -#body > script:first-child + .grav-lightslider { - margin-top: -3rem; } - -.modular.header-image #header { - background-color: rgba(255, 255, 255, 0); - box-shadow: none; } - .modular.header-image #header #logo h3 { - color: #FFFFFF; } - .modular.header-image #header #navbar a { - color: #FFFFFF; } -.modular .slideme_container { - overflow: hidden; - margin-top: -15rem; - padding-top: 15rem; - height: 34.7rem; } - .modular .slideme_container:after { - content: ""; - display: table; - clear: both; } -.modular .showcase { - position: relative; - z-index: 1; - padding-bottom: 10rem; - background-color: #666; - background-size: cover; - background-position: center; - text-align: center; - color: #FFFFFF; } - .modular .showcase h1 { - font-size: 2.2rem; - margin-top: 0; - padding-left: 14rem; - padding-right: 14rem; - text-transform: uppercase; } - @media only all and (min-width: 48em) and (max-width: 59.938em) { - .modular .showcase h1 { - font-size: 1.5rem; } } - @media only all and (max-width: 47.938em) { - .modular .showcase h1 { - font-size: 1.3rem; - line-height: 1.2; - padding-left: 0; - padding-right: 0; - margin-left: 4rem; - margin-right: 4rem; } } - .modular .showcase h1 strong, .modular .showcase h1 label, .modular .showcase h1 th { - color: #87b672; } - .modular .showcase h2 { - text-transform: none; - padding-left: 14rem; - padding-right: 14rem; } - @media only all and (max-width: 47.938em) { - .modular .showcase h2 { - padding-left: 0; - padding-right: 0; - margin-left: 4rem; - margin-right: 4rem; } } - .modular .showcase .button, .modular .showcase .archive-list button, .archive-list .modular .showcase button, .modular .showcase .contact button, .contact .modular .showcase button { - color: #FFFFFF; - font-family: "novecento_sans_widedemibold", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; - padding: 0.3rem 1rem; - background: rgba(255, 255, 255, 0); - border: 2px solid #FFFFFF; - border-radius: 0; - box-shadow: none; - font-size: 1rem; } - .modular .showcase .button:hover, .modular .showcase .archive-list button:hover, .archive-list .modular .showcase button:hover, .modular .showcase .contact button:hover, .contact .modular .showcase button:hover { - background: rgba(255, 255, 255, 0.2); } -.modular .slideme_container .arrow { - position: absolute; - display: block; - padding-bottom: 0; - padding-left: 0.8rem; - padding-right: 0.8rem; - padding-top: 0; - cursor: pointer; - z-index: 50; - text-align: center; - line-height: 3.8rem; - background: #fff; - top: 50%; - border-radius: 100%; - font-size: 2.5rem; - opacity: 0.5; - color: #000; } - @media only all and (max-width: 47.938em) { - .modular .slideme_container .arrow { - font-size: 1.5rem; - line-height: 2.8rem; } } - .modular .slideme_container .arrow:hover { - opacity: 1; } - .modular .slideme_container .arrow.prev { - left: 4rem; } - @media only all and (max-width: 47.938em) { - .modular .slideme_container .arrow.prev { - left: 1rem; } } - .modular .slideme_container .arrow.next { - right: 4rem; } - @media only all and (max-width: 47.938em) { - .modular .slideme_container .arrow.next { - right: 1rem; } } - .modular .slideme_container .arrow:disabled { - opacity: 0.1; } - @media only all and (max-width: 47.938em) { - .modular .slideme_container .arrow { - width: 2.7rem; - height: 2.7rem; } } -.modular .slideme_container .arrow.next:before { - content: '\f054'; - font-family: FontAwesome; - margin-left: 0.4rem; } -.modular .slideme_container .arrow.prev:before { - content: '\f053'; - font-family: FontAwesome; - margin-right: 0.5rem; } -.modular .slideme_container .pagination { - text-align: center; - z-index: 10; - position: absolute; - left: 0; - right: 0; - vertical-align: middle; - bottom: 5%; } - .modular .slideme_container .pagination .numbers li { - -webkit-transition-duration: 0.2s; - -moz-transition-duration: 0.2s; - transition-duration: 0.2s; - background: #fff; - width: 0.5rem; - height: 0.5rem; - display: inline-block; - border-radius: 100%; - cursor: pointer; - margin: 0 0.2rem; - vertical-align: middle; } - .modular .slideme_container .pagination .numbers li.current { - width: 1rem; - height: 1rem; } - -.modular .features { - padding: 4rem 0; - padding-bottom: 1rem; - text-align: center; } - .modular .features:after { - content: ""; - display: table; - clear: both; } - .modular .features h2 { - margin: 0; - line-height: 100%; - color: #656161; } - .modular .features hr { - margin-top: 4rem; } - .modular .features p { - margin: 1rem 0; } - @media only all and (max-width: 47.938em) { - .modular .features p { - font-size: 1rem; } } - .modular .features .button, .modular .features .archive-list button, .archive-list .modular .features button, .modular .features .contact button, .contact .modular .features button { - background-color: #87b672; - color: #FFFFFF; - font-family: "novecento_sans_widedemibold", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; - border-radius: 0; - box-shadow: none; - font-size: 1rem; } - .modular .features .feature-items { - margin-top: 2rem; } - @supports not (flex-wrap: wrap) { - .modular .features .feature-items { - overflow: hidden; } } - .modular .features .feature { - display: block; - float: left; - width: 25%; - vertical-align: top; - margin-top: 2rem; - margin-bottom: 1rem; } - @media only all and (min-width: 30.063em) and (max-width: 47.938em) { - .modular .features .feature { - margin-top: 1rem; - width: 50%; } } - @media only all and (max-width: 30em) { - .modular .features .feature { - margin-top: 1rem; - width: 100%; } } - .modular .features .feature i.fa { - font-size: 2rem; } - .modular .features .feature h4, .modular .features .feature .archive-list label, .archive-list .modular .features .feature label, .modular .features .feature .bottom table th, .modular .bottom table .features .feature th, .modular .features .feature .contact label, .contact .modular .features .feature label, .modular .features .feature .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .modular .features .feature .name, .modular .features .feature .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .modular .features .feature .button, .modular .features .feature .callout .pricing-container .pricing-item .foot .archive-list button, .callout .pricing-container .pricing-item .foot .archive-list .modular .features .feature button, .modular .features .feature .archive-list .callout .pricing-container .pricing-item .foot button, .archive-list .callout .pricing-container .pricing-item .foot .modular .features .feature button, .modular .features .feature .callout .pricing-container .pricing-item .foot .contact button, .callout .pricing-container .pricing-item .foot .contact .modular .features .feature button, .modular .features .feature .contact .callout .pricing-container .pricing-item .foot button, .contact .callout .pricing-container .pricing-item .foot .modular .features .feature button { - margin: 0; - font-size: 1.1rem; } - .modular .features .feature p { - display: inline-block; - font-size: 1rem; - margin: 0.2rem 0 1rem; } - .modular .features.big { - text-align: center; } - .modular .features.big .feature { - width: 33.33%; } - @media only all and (max-width: 30em) { - .modular .features.big .feature { - margin-top: 1rem; - width: 100%; } } - .modular .features.big i.fa { - font-size: 4.5rem; - margin-bottom: 1.5rem; } - .modular .features.big .feature-content { - padding-right: 2rem; } - .modular .features.big .feature-content.icon-offset { - margin-left: 1rem; } - .modular .features.big .feature-content h4, .modular .features.big .feature-content .archive-list label, .archive-list .modular .features.big .feature-content label, .modular .features.big .feature-content .bottom table th, .modular .bottom table .features.big .feature-content th, .modular .features.big .feature-content .contact label, .contact .modular .features.big .feature-content label, .modular .features.big .feature-content .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .modular .features.big .feature-content .name, .modular .features.big .feature-content .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .modular .features.big .feature-content .button, .modular .features.big .feature-content .callout .pricing-container .pricing-item .foot .archive-list button, .callout .pricing-container .pricing-item .foot .archive-list .modular .features.big .feature-content button, .modular .features.big .feature-content .archive-list .callout .pricing-container .pricing-item .foot button, .archive-list .callout .pricing-container .pricing-item .foot .modular .features.big .feature-content button, .modular .features.big .feature-content .callout .pricing-container .pricing-item .foot .contact button, .callout .pricing-container .pricing-item .foot .contact .modular .features.big .feature-content button, .modular .features.big .feature-content .contact .callout .pricing-container .pricing-item .foot button, .contact .callout .pricing-container .pricing-item .foot .modular .features.big .feature-content button { - font-size: 1.2rem; } - .modular .features.big .feature-content p { - padding: 0; } - -.modular .bottom { - text-align: center; - padding-bottom: 4rem; } - .modular .bottom:after { - content: ""; - display: table; - clear: both; } - .modular .bottom h2 { - padding-top: 3rem; - margin: 0; - line-height: 100%; - color: #656161; } - .modular .bottom p { - margin: 1rem 0; } - @media only all and (max-width: 47.938em) { - .modular .bottom p { - font-size: 1rem; } } - .modular .bottom .button, .modular .bottom .archive-list button, .archive-list .modular .bottom button, .modular .bottom .contact button, .contact .modular .bottom button { - background-color: #87b672; - color: #FFFFFF; - font-family: "novecento_sans_widedemibold", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; - border-radius: 0; - box-shadow: none; - font-size: 1rem; - border: 0 none; } - .modular .bottom .button:hover, .modular .bottom .archive-list button:hover, .archive-list .modular .bottom button:hover, .modular .bottom .contact button:hover, .contact .modular .bottom button:hover { - background-color: #558042; } - .modular .bottom.borderbottom { - padding-bottom: 0; } - .modular .bottom.borderbottom hr { - padding-top: 3rem; } - .modular .bottom table { - border: 0 none; } - .modular .bottom table th { - background: none; - text-align: left; } - @media only all and (max-width: 47.938em) { - .modular .bottom table th { - display: none; } } - .modular .bottom table td { - text-align: left; - vertical-align: top; - border: 0 none; } - @media only all and (max-width: 47.938em) { - .modular .bottom table td { - display: block; } } - .modular .bottom .services { - padding-top: 2rem; } - .modular .bottom .services .service { - width: 50%; - text-align: left; - display: block; - float: left; } - @media only all and (max-width: 47.938em) { - .modular .bottom .services .service { - width: 100%; } } - .modular .bottom .services .service .fa { - margin-top: 0.5rem; - width: 7rem; - height: 6rem; - font-size: 6rem; - float: left; } - .modular .bottom .services .service p { - margin-left: 7rem; - margin-top: 0.5rem; - margin-right: 1rem; } - .modular .bottom .services .service h4, .modular .bottom .services .service .archive-list label, .archive-list .modular .bottom .services .service label, .modular .bottom .services .service table th, .modular .bottom table .services .service th, .modular .bottom .services .service .contact label, .contact .modular .bottom .services .service label, .modular .bottom .services .service .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .modular .bottom .services .service .name, .modular .bottom .services .service .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .modular .bottom .services .service .button, .modular .bottom .services .service .callout .pricing-container .pricing-item .foot .archive-list button, .callout .pricing-container .pricing-item .foot .archive-list .modular .bottom .services .service button, .modular .bottom .services .service .archive-list .callout .pricing-container .pricing-item .foot button, .archive-list .callout .pricing-container .pricing-item .foot .modular .bottom .services .service button, .modular .bottom .services .service .callout .pricing-container .pricing-item .foot .contact button, .callout .pricing-container .pricing-item .foot .contact .modular .bottom .services .service button, .modular .bottom .services .service .contact .callout .pricing-container .pricing-item .foot button, .contact .callout .pricing-container .pricing-item .foot .modular .bottom .services .service button { - text-align: left; - margin-bottom: 0; } - -.about hr { - margin: 3rem 0; } - -.contact h4, .contact .modular .bottom table th, .modular .bottom table .contact th, .contact label, .contact .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .contact .name, .contact .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .contact .button, .callout .pricing-container .pricing-item .foot .contact button, .contact .callout .pricing-container .pricing-item .foot button { - text-align: left; } -.contact input { - width: 50%; - line-height: 2rem; } - @media only all and (max-width: 47.938em) { - .contact input { - min-width: 80%; } } - @media only all and (min-width: 48em) and (max-width: 59.938em) { - .contact input { - min-width: 70%; } } -.contact textarea { - min-width: 80%; - min-height: 25rem; } - @media only all and (max-width: 47.938em) { - .contact textarea { - min-width: 100%; } } - @media only all and (min-width: 48em) and (max-width: 59.938em) { - .contact textarea { - min-width: 90%; } } -.contact input, .contact textarea { - border: 0 none; - background: rgba(154, 152, 152, 0.2); - box-shadow: none; } - .contact input:focus, .contact textarea:focus { - border-radius: 0 !important; - box-shadow: none; - background: rgba(154, 152, 152, 0.11); } -.contact label { - font-size: 1rem; } -.contact button { - font-family: "novecento_sans_widedemibold", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; - text-transform: uppercase; - display: block; } -.contact #simple_form-success, .contact #simple_form-submit { - display: inline-block; } - .contact #simple_form-success strong, .contact #simple_form-success label, .contact #simple_form-success th, .contact #simple_form-submit strong, .contact #simple_form-submit label, .contact #simple_form-submit th { - margin-left: 1rem; } - .contact #simple_form-success .close, .contact #simple_form-submit .close { - display: none; } - -.callout { - background: #EEEEEE; - padding: 2rem 0.938rem; - padding-top: 2rem; - padding-bottom: 0; - text-align: center; - overflow: hidden; - clear: both; - position: relative; } - @media only all and (max-width: 59.938em) { - .callout { - text-align: center; } } - .callout .callout-line { - background: #fff; - width: 100%; - height: 7rem; - position: absolute; - left: 0; - bottom: 0; - z-index: 0; } - .callout .pricing-container { - position: relative; - z-index: 10; - margin-top: 2rem; - min-height: 31rem; - text-align: center; } - .callout .pricing-container:after { - content: ""; - display: table; - clear: both; } - .callout .pricing-container .pricing-item { - -webkit-transform: translateZ(0); - display: inline-block; - width: 24.3%; - margin-right: 0.3rem; - margin-bottom: 2rem; - position: relative; } - @media only all and (max-width: 47.938em) { - .callout .pricing-container .pricing-item { - width: 100%; } } - @media only all and (min-width: 48em) and (max-width: 59.938em) { - .callout .pricing-container .pricing-item { - width: 100%; } } - @media only all and (min-width: 60em) and (max-width: 74.938em) { - .callout .pricing-container .pricing-item { - width: 22.5%; } } - .callout .pricing-container .pricing-item:hover { - -webkit-transform: scale(1, 1.08); - -moz-transform: scale(1, 1.08); - -ms-transform: scale(1, 1.08); - -o-transform: scale(1, 1.08); - transform: scale(1, 1.08); } - .callout .pricing-container .pricing-item div { - background: #f7f7f7; } - .callout .pricing-container .pricing-item .name { - background: #87b672; - color: #fff; - padding: 0.5rem 0; } - .callout .pricing-container .pricing-item .info { - line-height: 3rem; - border-bottom: #EEEEEE 1px solid; } - .callout .pricing-container .pricing-item .price { - font-weight: bold; - color: #656161; - font-size: 3.5rem; - font-family: "novecento_sans_widedemibold", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; - font-weight: normal; - border-bottom: #EEEEEE 1px solid; - line-height: 5rem; } - .callout .pricing-container .pricing-item .foot { - background: #87b672; - color: #fff; - text-align: center; - padding: 1rem 0; } - .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .archive-list button, .archive-list .callout .pricing-container .pricing-item .foot button, .callout .pricing-container .pricing-item .foot .contact button, .contact .callout .pricing-container .pricing-item .foot button { - margin: 0; - padding: 0; - width: 9rem; - font-size: 1rem; - line-height: 2.5rem; - color: #fff; - display: inline-block; - background: rgba(255, 255, 255, 0.25); } - .callout .pricing-container .pricing-item .foot .button:hover, .callout .pricing-container .pricing-item .foot .archive-list button:hover, .archive-list .callout .pricing-container .pricing-item .foot button:hover, .callout .pricing-container .pricing-item .foot .contact button:hover, .contact .callout .pricing-container .pricing-item .foot button:hover { - background: rgba(255, 255, 255, 0.15); } - .callout .pricing-container .pricing-item sup { - font-size: 2rem; } - -.team { - background: #EEEEEE; - padding: 4rem 0; - text-align: center; } - .team:after { - content: ""; - display: table; - clear: both; } - .team h2 { - color: #656161; - margin: 0; - line-height: 100%; } - .team p { - margin: 1rem 0; } - .team .members { - width: 100%; - text-align: left; - padding-top: 2rem; } - .team .members .member { - display: inline-block; - float: left; - width: 22%; - margin: 0 1rem; - margin-bottom: 2rem; } - @media only all and (max-width: 47.938em) { - .team .members .member { - display: block; - width: 100%; - text-align: center; - margin: 0; - margin-bottom: 2rem; } } - @media only all and (min-width: 48em) and (max-width: 59.938em) { - .team .members .member { - display: block; - width: 44%; - margin-bottom: 2rem; } } - .team .members .member h4, .team .members .member .archive-list label, .archive-list .team .members .member label, .team .members .member .modular .bottom table th, .modular .bottom table .team .members .member th, .team .members .member .contact label, .contact .team .members .member label, .team .members .member .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .team .members .member .name, .team .members .member .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .team .members .member .button, .team .members .member .callout .pricing-container .pricing-item .foot .archive-list button, .callout .pricing-container .pricing-item .foot .archive-list .team .members .member button, .team .members .member .archive-list .callout .pricing-container .pricing-item .foot button, .archive-list .callout .pricing-container .pricing-item .foot .team .members .member button, .team .members .member .callout .pricing-container .pricing-item .foot .contact button, .callout .pricing-container .pricing-item .foot .contact .team .members .member button, .team .members .member .contact .callout .pricing-container .pricing-item .foot button, .contact .callout .pricing-container .pricing-item .foot .team .members .member button { - text-align: left; - margin-bottom: 0; } - @media only all and (max-width: 47.938em) { - .team .members .member h4, .team .members .member .archive-list label, .archive-list .team .members .member label, .team .members .member .modular .bottom table th, .modular .bottom table .team .members .member th, .team .members .member .contact label, .contact .team .members .member label, .team .members .member .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .team .members .member .name, .team .members .member .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .team .members .member .button, .team .members .member .callout .pricing-container .pricing-item .foot .archive-list button, .callout .pricing-container .pricing-item .foot .archive-list .team .members .member button, .team .members .member .archive-list .callout .pricing-container .pricing-item .foot button, .archive-list .callout .pricing-container .pricing-item .foot .team .members .member button, .team .members .member .callout .pricing-container .pricing-item .foot .contact button, .callout .pricing-container .pricing-item .foot .contact .team .members .member button, .team .members .member .contact .callout .pricing-container .pricing-item .foot button, .contact .callout .pricing-container .pricing-item .foot .team .members .member button { - text-align: center; } } - .team .members .member hr { - margin: 1rem 0; } - .team .members .social-icons { - line-height: 2rem; - margin: 0; - list-style: none; } - @media only all and (max-width: 47.938em) { - .team .members .social-icons { - text-align: center; - display: inline-flex; } } - .team .members .social-icons li { - float: left; - width: 2.1rem; - height: 2.1rem; - background: #fff; - border-radius: 100%; - text-align: center; - margin-right: 0.8rem; } - .team .members .social-icons li a { - color: #000; - display: block; - margin-top: 0.1rem; } - .team .members .social-icons li:hover { - background: rgba(255, 255, 255, 0.5); } - .team .members .social-icons li:hover i { - color: #87b672; } - -.portfolio { - padding: 2rem 0.938rem; - padding-top: 2rem; - padding-bottom: 1rem; - text-align: center; } - @media only all and (max-width: 59.938em) { - .portfolio { - text-align: center; } } - .portfolio h2 { - color: #656161; } - .portfolio .notebooks { - margin-top: 4rem; } - .portfolio .notebooks .notebook-row { - box-shadow: inset 0px -90px 0px -20px #f7f7f7; - margin-left: -14rem; - margin-right: -14rem; - padding-left: 14rem; - padding-right: 14rem; - background: #EEEEEE; - padding-bottom: 2rem; } - @media only all and (max-width: 47.938em) { - .portfolio .notebooks .notebook-row { - margin-left: -10rem; - margin-right: -10rem; } } - .portfolio .notebooks .notebook-row .notebook { - min-width: 24%; } - @media only all and (min-width: 48em) and (max-width: 59.938em) { - .portfolio .notebooks .notebook-row .notebook { - width: 100%; } } - @media only all and (min-width: 60em) and (max-width: 74.938em) { - .portfolio .notebooks .notebook-row .notebook { - min-width: 24%; - float: none; } } - @media only all and (max-width: 30em) { - .portfolio .notebooks .notebook-row .notebook { - width: 170%; - margin-left: -4.7rem; } } - .portfolio .notebooks .notebook-row .notebook h4, .portfolio .notebooks .notebook-row .notebook .archive-list label, .archive-list .portfolio .notebooks .notebook-row .notebook label, .portfolio .notebooks .notebook-row .notebook .modular .bottom table th, .modular .bottom table .portfolio .notebooks .notebook-row .notebook th, .portfolio .notebooks .notebook-row .notebook .contact label, .contact .portfolio .notebooks .notebook-row .notebook label, .portfolio .notebooks .notebook-row .notebook .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .portfolio .notebooks .notebook-row .notebook .name, .portfolio .notebooks .notebook-row .notebook .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .portfolio .notebooks .notebook-row .notebook .button, .portfolio .notebooks .notebook-row .notebook .callout .pricing-container .pricing-item .foot .archive-list button, .callout .pricing-container .pricing-item .foot .archive-list .portfolio .notebooks .notebook-row .notebook button, .portfolio .notebooks .notebook-row .notebook .archive-list .callout .pricing-container .pricing-item .foot button, .archive-list .callout .pricing-container .pricing-item .foot .portfolio .notebooks .notebook-row .notebook button, .portfolio .notebooks .notebook-row .notebook .callout .pricing-container .pricing-item .foot .contact button, .callout .pricing-container .pricing-item .foot .contact .portfolio .notebooks .notebook-row .notebook button, .portfolio .notebooks .notebook-row .notebook .contact .callout .pricing-container .pricing-item .foot button, .contact .callout .pricing-container .pricing-item .foot .portfolio .notebooks .notebook-row .notebook button { - text-align: left; - margin-bottom: 0; } - .portfolio .notebooks .notebook-row .notebook p { - margin-top: 0; } - .portfolio .notebooks .notebook-row .notebook .desc { - width: 20rem; - margin-left: 2rem; } - @media only all and (min-width: 60em) and (max-width: 74.938em) { - .portfolio .notebooks .notebook-row .notebook .desc { - width: 100%; } } - @media only all and (max-width: 47.938em) { - .portfolio .notebooks .notebook-row .notebook .desc { - width: 100%; } } - @media only all and (max-width: 30em) { - .portfolio .notebooks .notebook-row .notebook .desc { - width: 90%; } } - @media only all and (min-width: 48em) and (max-width: 59.938em) { - .portfolio .notebooks .notebook-row .notebook .desc { - width: 100%; } } - -.logo { - border-bottom: 1px solid #eaeaea; } - .logo h3 { - font-size: 2.5rem; - font-family: "Pacifico", "monospace"; - line-height: 2rem; - margin: 0; - float: left; } - .logo h3 a { - color: #9A9898; } - .logo h4, .logo .archive-list label, .archive-list .logo label, .logo .modular .bottom table th, .modular .bottom table .logo th, .logo .contact label, .contact .logo label, .logo .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .logo .name, .logo .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .logo .button, .logo .callout .pricing-container .pricing-item .foot .archive-list button, .callout .pricing-container .pricing-item .foot .archive-list .logo button, .logo .archive-list .callout .pricing-container .pricing-item .foot button, .archive-list .callout .pricing-container .pricing-item .foot .logo button, .logo .callout .pricing-container .pricing-item .foot .contact button, .callout .pricing-container .pricing-item .foot .contact .logo button, .logo .contact .callout .pricing-container .pricing-item .foot button, .contact .callout .pricing-container .pricing-item .foot .logo button { - text-align: left; } - .logo ul { - margin: 0; - padding: 0; - list-style: none; } - .logo ul.social-icons { - float: right; - line-height: 2rem; - margin: 0; } - .logo ul.social-icons li { - float: left; - width: 2.1rem; - height: 2.1rem; - background: #fff; - border-radius: 100%; - text-align: center; - margin-right: 0.8rem; } - .logo ul.social-icons li a { - color: #000; - display: block; - margin-top: 0.1rem; } - .logo ul.social-icons li:hover { - background: rgba(255, 255, 255, 0.5); } - -.notebook { - display: inline-block; - text-align: left; - min-width: 33%; - position: relative; - z-index: 10; } - @media only all and (min-width: 60em) and (max-width: 74.938em) { - .notebook { - width: 100%; - float: none; } } - @media only all and (min-width: 48em) and (max-width: 59.938em) { - .notebook { - width: 100%; - float: none; } } - @media only all and (max-width: 47.938em) { - .notebook { - width: 100%; - float: none; } } - @media only all and (max-width: 30em) { - .notebook { - width: 150%; - margin-left: -5.1rem; - float: none; } } - -.notebook .screen:before { - content: ""; - position: absolute; - border-radius: 50%; - background: #E5EBED; - height: 0.25rem; - width: 0.25rem; - margin: 0.3125rem 0 0 8.625rem; } - -.notebook .screen { - background: #464C51; - border-radius: 0.5rem 0.5rem 0 0; - height: 11.72rem; - width: 18.28rem; - margin: 0 auto; } - .notebook .screen .screen-content { - height: 10.1rem; - width: 16.73rem; - position: absolute; - z-index: 1; - margin-top: 0.8rem; - margin-left: 0.8rem; - background-size: cover; - background-repeat: no-repeat; } - .notebook .screen .screen-content-hover { - height: 10.1rem; - width: 16.73rem; - position: absolute; - z-index: 2; - opacity: 0; - margin-top: 0.8rem; - margin-left: 0.8rem; - background-color: #87b672; } - .notebook .screen .screen-content-hover .fa-plus-square { - font-size: 5rem; - color: #464C51; - margin-top: 2.5rem; - margin-left: 5.9rem; } - .notebook .screen .screen-content-hover:hover { - opacity: 0.8; } - -.notebook .screen:after { - content: ""; - position: absolute; - background: #161B21; - height: 10rem; - width: 16.63rem; - border-radius: 0.125rem; - margin: 0.875rem 0 0 0.8125rem; - transition: background 1s ease-in-out; } - -.notebook .keyboard { - background: #DFDCDC; - border-radius: 0 0 0.3125rem 0.3125rem; - height: 1.25rem; - width: 21.88rem; - margin: 0 auto; } - -.notebook .keyboard:after { - content: ""; - position: absolute; - background: #757979; - height: 0.375rem; - width: 3.125rem; - margin: 0 0 0 9.375rem; - border-radius: 0 0 0.5rem 0.5rem; } - -.keyboard:before { - content: ""; - position: absolute; - height: 0.5rem; - width: 23.13rem; - margin: 0.4375rem 0 0 -0.625rem; - z-index: -1; - border-radius: 100%; } - -/*# sourceMappingURL=template.css.map */ +#header .logo h3, #header .logo ul.social-icons, #header .search-box, #header #navbar ul.navigation, #header #navbar .panel-activation { position: relative; top: 50%; transform: translateY(-50%); } + +.button, .archive-list button, .contact button, .button-secondary { display: inline-block; padding: 7px 20px; margin-left: 5px; margin-right: 5px; margin-bottom: 10px; } + +.button-small.button, .archive-list button.button-small, .contact button.button-small, .button-small.button-secondary { padding: 3px 10px; font-size: 0.9rem; } + +html, body { height: 100%; } + +body { background: #fff; color: #9A9898; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } + +a { color: #87b672; } + +a:hover { color: #558042; } + +b, strong, label, th { font-weight: 600; } + +#container { min-height: 100%; position: relative; } + +.fullwidth #body { padding-left: 0; padding-right: 0; } + +#body { background: #fff; padding-top: 15rem; } + +.left { float: left; } + +.right { float: right; } + +@font-face { font-family: 'novecento_sans_widedemibold'; src: url("../fonts/Novecentosanswide-DemiBold-webfont.eot"); src: url("../fonts/Novecentosanswide-DemiBold-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/Novecentosanswide-DemiBold-webfont.woff2") format("woff2"), url("../fonts/Novecentosanswide-DemiBold-webfont.woff") format("woff"), url("../fonts/Novecentosanswide-DemiBold-webfont.ttf") format("truetype"), url("../fonts/Novecentosanswide-DemiBold-webfont.svg#novecento_sans_widedemibold") format("svg"); font-weight: normal; font-style: normal; } + +@font-face { font-family: 'novecento_sans_widenormal'; src: url("../fonts/Novecentosanswide-Normal-webfont.eot"); src: url("../fonts/Novecentosanswide-Normal-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/Novecentosanswide-Normal-webfont.woff2") format("woff2"), url("../fonts/Novecentosanswide-Normal-webfont.woff") format("woff"), url("../fonts/Novecentosanswide-Normal-webfont.ttf") format("truetype"), url("../fonts/Novecentosanswide-Normal-webfont.svg#novecento_sans_widenormal") format("svg"); font-weight: normal; font-style: normal; } + +@font-face { font-family: 'novecento_sans_widemedium'; src: url("../fonts/Novecentosanswide-Medium-webfont.eot"); src: url("../fonts/Novecentosanswide-Medium-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/Novecentosanswide-Medium-webfont.woff2") format("woff2"), url("../fonts/Novecentosanswide-Medium-webfont.woff") format("woff"), url("../fonts/Novecentosanswide-Medium-webfont.ttf") format("truetype"), url("../fonts/Novecentosanswide-Medium-webfont.svg#novecento_sans_widemedium") format("svg"); font-weight: normal; font-style: normal; } + +@font-face { font-family: 'Pacifico'; src: url("../fonts/pacifico.ttf") format("truetype"); font-weight: 400; font-style: normal; } + +.default-animation, #body, .modal, .archive-list button, .modular .showcase .button, .modular .showcase .archive-list button, .archive-list .modular .showcase button, .modular .showcase .contact button, .contact .modular .showcase button, .modular .slideme_container .arrow, .modular .slideme_container .pagination .numbers li, .modular .bottom .button, .modular .bottom .archive-list button, .archive-list .modular .bottom button, .modular .bottom .contact button, .contact .modular .bottom button, .contact input, .contact textarea, .contact button, .callout .pricing-container .pricing-item, .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .foot, .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .archive-list button, .archive-list .callout .pricing-container .pricing-item .foot button, .callout .pricing-container .pricing-item .foot .contact button, .contact .callout .pricing-container .pricing-item .foot button, .team .members .social-icons li, .team .members .social-icons li a, .logo h3, .logo ul.social-icons li, .logo ul.social-icons li a, .notebook .screen .screen-content-hover { transition: all 0.5s ease; } + +.padding-horiz, .fullwidth #header, .fullwidth #breadcrumbs, .fullwidth .blog-header, .fullwidth .blog-content-item, .fullwidth .content-wrapper, .fullwidth ul.pagination, .fullwidth #body > .modular-row, #body, #header, .footer { padding-left: 14rem; padding-right: 14rem; } + +@media only all and (min-width: 60em) and (max-width: 74.938em) { .padding-horiz, .fullwidth #header, .fullwidth #breadcrumbs, .fullwidth .blog-header, .fullwidth .blog-content-item, .fullwidth .content-wrapper, .fullwidth ul.pagination, .fullwidth #body > .modular-row, #body, #header, .footer { padding-left: 7rem; padding-right: 7rem; } } + +@media only all and (min-width: 48em) and (max-width: 59.938em) { .padding-horiz, .fullwidth #header, .fullwidth #breadcrumbs, .fullwidth .blog-header, .fullwidth .blog-content-item, .fullwidth .content-wrapper, .fullwidth ul.pagination, .fullwidth #body > .modular-row, #body, #header, .footer { padding-left: 7rem; padding-right: 7rem; } } + +@media only all and (max-width: 47.938em) { .padding-horiz, .fullwidth #header, .fullwidth #breadcrumbs, .fullwidth .blog-header, .fullwidth .blog-content-item, .fullwidth .content-wrapper, .fullwidth ul.pagination, .fullwidth #body > .modular-row, #body, #header, .footer { padding-left: 1rem; padding-right: 1rem; } } + +.padding-vert { padding-top: 3rem; padding-bottom: 3rem; } + +#header { position: absolute; z-index: 10000; width: 100%; height: 12rem; background-color: rgba(255, 255, 255, 0.9); box-shadow: 0 0.05rem 1rem rgba(0, 0, 0, 0.15); } + +#header > .grid, #header .logo, #header #navbar, #header .social-navigation { height: 50%; } + +#header .fa { color: #000; } + +#header .fixed { background: #fff; padding-left: 14rem; padding-right: 14rem; position: fixed; top: 0; left: 0; width: 100%; opacity: 0.9; box-shadow: 0 0px 20px 0px rgba(0, 0, 0, 0.2); } + +@media only all and (max-width: 47.938em) { #header .fixed { padding-left: 10px; padding-right: 10px; } } + +@media only all and (max-width: 47.938em) { #header .logo h3 { font-size: 1.9rem; } } + +#header .search-box { display: block; float: right; text-align: right; } + +#header .search-box i { color: #FFFFFF; position: absolute; top: 0.5rem; right: 0.6rem; z-index: -1; cursor: pointer; } + +#header .search-box input::-webkit-search-decoration, #header .search-box input::-webkit-search-cancel-button { display: none; } + +#header .search-box input[type=search] { outline: none; cursor: pointer; -webkit-appearance: textfield; -webkit-box-sizing: content-box; font-family: inherit; font-size: 100%; border: 0 none; box-shadow: none; color: transparent; background: transparent; width: 4rem; height: 1.3rem; margin-bottom: 0; font-size: 0.9rem; transition: all 0.5s; } + +#header .search-box input[type=search]:focus { width: 10rem; background-color: rgba(255, 255, 255, 0.3); cursor: auto; color: #FFFFFF; } + +#header .search-box input:-moz-placeholder { color: transparent; } + +#header .search-box input::-webkit-input-placeholder { color: transparent; } + +@media only all and (max-width: 59.938em) { #header .search-box { text-align: right; position: absolute; right: 10px; top: 50%; transform: translateY(1rem); } + #header .search-box i { left: 0.6rem; } + #header .search-box input[type=search] { padding-right: 2rem; } + #header .search-box input[type=search]:focus { width: 8rem; } } + +@media only all and (max-width: 59.938em) { #header .fixed .search-box { top: 50%; transform: translateY(-50%); } } + +@media only all and (max-width: 59.938em) { #header .fixed .panel-activation { top: 50% !important; transform: translateY(-50%) !important; } } + +#header #navbar { font-size: 1.1rem; } + +@media only all and (max-width: 47.938em) { #header #navbar { margin-left: -1rem; margin-right: -1rem; } + #header #navbar.fixed { margin: 0; } } + +#header #navbar ul { margin: 0; padding: 0; list-style: none; } + +#header #navbar ul.navigation { display: inline-block; float: left; } + +#header #navbar ul.navigation li { float: left; position: relative; text-transform: uppercase; } + +#header #navbar ul.navigation li a { font-family: "novecento_sans_widedemibold", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; display: inline-block; padding: 0.3rem 0.8rem; } + +#header #navbar ul.navigation li a.active, #header #navbar ul.navigation li a:hover { color: #87b672; } + +#header #navbar ul.navigation li:first-child a { padding-left: 0; } + +#header #navbar ul.navigation li ul { display: none; padding: 0; box-shadow: 0 0.05rem 1rem rgba(0, 0, 0, 0.15) !important; } + +#header #navbar ul.navigation li ul ul { left: 100%; top: 0; } + +#header #navbar ul.navigation li:hover > ul { display: block; position: absolute; background: rgba(255, 255, 255, 0.9); width: 10rem; } + +#header #navbar ul.navigation li:hover li { float: none; margin: 0; padding: 0; } + +#header #navbar ul.navigation li:hover li a { padding: 0.5rem 0.8rem; display: block; } + +#header #navbar ul.navigation li:hover li a:before, #header #navbar ul.navigation li:hover li a:after { display: none; } + +#header #navbar ul.navigation li:hover li.active > a { background: #87b672; color: #fff; } + +@media only all and (max-width: 59.938em) { #header #navbar ul.navigation { display: none; } } + +#header #navbar .panel-activation { padding: 1rem; display: none; font-size: 1.8rem; cursor: pointer; float: right; } + +@media only all and (max-width: 59.938em) { #header #navbar .panel-activation { display: inline-block; position: absolute; left: 0; top: 50%; transform: translateY(0); } } + +.modular.header-image #header .fixed { background: #666; transition: background 0.3s ease-in-out; } + +.header-image.fullwidth #body { padding-left: 0; padding-right: 0; } + +.header-image.fullwidth #body > .listing-row { padding-left: 14rem; padding-right: 14rem; } + +.header-image .listing-row:last-child { margin-bottom: 2rem; } + +.header-image #body .flush-top { margin-top: -15.5rem; padding-top: 16rem; } + +.header-image #breadcrumbs { margin-top: 1rem; } + +.header-image #header { background-color: rgba(255, 255, 255, 0); box-shadow: none; } + +.header-image #header #logo h3, .header-image #header #logo a { color: #FFFFFF; } + +.header-image #header a, .header-image #header .menu-btn { color: #FFFFFF; } + +.header-image #header a:before, .header-image #header a:after { background-color: rgba(255, 255, 255, 0.7) !important; } + +.header-image #header #navbar ul.navigation ul li a { color: #87b672; text-shadow: 1px 1px 3px #656161; } + +.header-image #header #navbar ul.navigation ul li a:hover { color: #558042; } + +.header-lite #body { padding-top: 12rem; } + +.header-lite #header { box-shadow: none; color: #656161; } + +.header-lite #header a, .header-lite #header .menu-btn { color: #656161; } + +.header-lite #header .search-box i { color: #656161; } + +.header-lite #header .search-box input[type=search]:focus { background-color: rgba(101, 97, 97, 0.2); } + +.header-lite #header li.active a { color: #87b672; } + +.header-lite #header .logo ul.social-icons li { background: rgba(101, 97, 97, 0.2); } + +.header-lite #header .logo ul.social-icons li .fa { color: white; } + +.header-lite #header .logo ul.social-icons li:hover .fa { color: #656161; } + +.footer { font-size: 0.9rem; background: #333; width: 100%; padding-top: 2rem; } + +.footer:after { content: ""; display: table; clear: both; } + +.footer a { color: #9A9898; } + +.footer h4, .footer .archive-list label, .archive-list .footer label, .footer .modular .bottom table th, .modular .bottom table .footer th, .footer .contact label, .contact .footer label, .footer .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .footer .name, .footer .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .footer .button, .footer .callout .pricing-container .pricing-item .foot .archive-list button, .callout .pricing-container .pricing-item .foot .archive-list .footer button, .footer .archive-list .callout .pricing-container .pricing-item .foot button, .archive-list .callout .pricing-container .pricing-item .foot .footer button, .footer .callout .pricing-container .pricing-item .foot .contact button, .callout .pricing-container .pricing-item .foot .contact .footer button, .footer .contact .callout .pricing-container .pricing-item .foot button, .contact .callout .pricing-container .pricing-item .foot .footer button { line-height: 2rem; margin-top: 0; text-align: left; color: #fff; } + +.footer hr { border-color: rgba(154, 152, 152, 0.5); } + +@media only all and (max-width: 47.938em) { .footer .social-icons { float: none; clear: both; width: 100%; padding-top: 2rem; } } + +@media only all and (min-width: 48em) and (max-width: 59.938em) { .footer .social-icons { float: none; clear: both; width: 100%; padding-top: 2rem; } } + +.footer .footer-items { margin-top: 2rem; } + +@media only all and (max-width: 47.938em) { .footer .footer-items { margin-top: 0; } } + +@supports not (flex-wrap: wrap) { .footer .footer-items { overflow: hidden; } } + +.footer .footer-items:after { content: ""; display: table; clear: both; } + +.footer .footer-module { display: block; float: left; width: 25%; vertical-align: top; padding-right: 2rem; } + +.footer .footer-module.large { width: 50%; } + +@media only all and (min-width: 30.063em) and (max-width: 47.938em) { .footer .footer-module { margin-top: 1rem; width: 50%; } } + +@media only all and (max-width: 30em) { .footer .footer-module { margin-top: 1rem; width: 100%; } } + +.footer .footer-module span:after { content: ""; display: table; clear: both; } + +.footer .footer-module strong, .footer .footer-module label, .footer .footer-module th { color: #fff; } + +@media only all and (max-width: 47.938em) { .footer .footer-module { width: 100% !important; float: none; } } + +.footer .logo { border-bottom: 0 none; color: #fff; } + +.footer .logo:after { content: ""; display: table; clear: both; } + +.footer .logo h3 a { color: #fff; } + +.footer .quickmenu { margin: 0; padding: 0; list-style: none; } + +.footer .quickmenu i { padding-right: 0.5rem; color: #fff; font-size: 0.7rem; } + +.footer .footer-modules { display: block; padding-bottom: 1.5rem; } + +.footer .footer-modules:after { content: ""; display: table; clear: both; } + +.footer .footer-copyright { width: 50%; font-family: "novecento_sans_widedemibold", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; display: inline-block; float: left; text-align: left; text-transform: uppercase; } + +@media only all and (max-width: 47.938em) { .footer .footer-copyright { width: 100%; float: none; text-align: left; margin-bottom: 1rem; } } + +.footer .footer-menu { float: right; display: inline-block; width: 50%; text-align: right; text-transform: uppercase; font-family: "novecento_sans_widedemibold", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; } + +@media only all and (max-width: 47.938em) { .footer .footer-menu { width: 100%; float: none; text-align: left; } } + +.footer .footer-menu ul { margin: 0; padding: 0; list-style: none; } + +.footer .footer-menu ul li { display: inline-block; } + +.footer .footer-menu ul li:after { content: "/"; margin: 0 0.5rem; display: inline-block; } + +.footer .footer-menu ul li:last-child:after { display: none; } + +.footer .newsletter input { display: inline-block; height: 2.5rem; border: 0 none; } + +.footer .newsletter input[type=text] { background-color: rgba(255, 255, 255, 0.2); color: #fff; } + +.footer .newsletter input[type=submit] { background-color: rgba(255, 255, 255, 0.5); color: #fff; padding: 0 1.2rem; vertical-align: top; } + +body { font-family: "Helvetica Neue", "HelveticaNeue-Light", "Helvetica Neue Light", Helvetica, Arial, "Lucida Grande", sans-serif; font-weight: 400; } + +h1, h2, h3, h4, .archive-list label, .modular .bottom table th, .contact label, .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .archive-list button, .archive-list .callout .pricing-container .pricing-item .foot button, .callout .pricing-container .pricing-item .foot .contact button, .contact .callout .pricing-container .pricing-item .foot button, h5, h6 { font-family: "novecento_sans_widedemibold", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; text-rendering: optimizeLegibility; } + +h1 { font-size: 3.2rem; } + +@media only all and (max-width: 47.938em) { h1 { font-size: 2.5rem; line-height: 1.2; margin-bottom: 2.5rem; text-shadow: 1px 1px 3px #656161; } } + +h2 { font-weight: normal; text-transform: uppercase; font-size: 1.4rem; } + +@media only all and (min-width: 48em) and (max-width: 59.938em) { h2 { font-size: -1rem; } } + +@media only all and (max-width: 47.938em) { h2 { font-size: -1.1rem; } } + +@media only all and (min-width: 48em) and (max-width: 59.938em) { h3 { font-size: -0.9rem; } } + +@media only all and (max-width: 47.938em) { h3 { font-size: -1rem; } } + +h4, .archive-list label, .modular .bottom table th, .contact label, .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .archive-list button, .archive-list .callout .pricing-container .pricing-item .foot button, .callout .pricing-container .pricing-item .foot .contact button, .contact .callout .pricing-container .pricing-item .foot button { font-size: 1.2rem; font-weight: bold; text-align: center; text-transform: uppercase; color: #656161; } + +@media only all and (min-width: 48em) and (max-width: 59.938em) { h4, .archive-list label, .modular .bottom table th, .contact label, .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .archive-list button, .archive-list .callout .pricing-container .pricing-item .foot button, .callout .pricing-container .pricing-item .foot .contact button, .contact .callout .pricing-container .pricing-item .foot button { font-size: 1.35rem; } } + +@media only all and (max-width: 47.938em) { h4, .archive-list label, .modular .bottom table th, .contact label, .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .archive-list button, .archive-list .callout .pricing-container .pricing-item .foot button, .callout .pricing-container .pricing-item .foot .contact button, .contact .callout .pricing-container .pricing-item .foot button { font-size: 1.25rem; } } + +h1 { text-align: center; font-weight: normal; } + +h3 { letter-spacing: -1px; } + +h1 + h2 { margin: -2rem 0 2rem 0; font-size: 1.4rem; line-height: 1; text-align: center; font-family: "Helvetica Neue", "HelveticaNeue-Light", "Helvetica Neue Light", Helvetica, Arial, "Lucida Grande", sans-serif; font-weight: 300; } + +@media only all and (min-width: 48em) and (max-width: 59.938em) { h1 + h2 { font-size: 1.3rem; } } + +@media only all and (max-width: 47.938em) { h1 + h2 { font-size: 1rem; } } + +h2 + h3 { margin: 0.5rem 0 2rem 0; font-size: 1.3rem; line-height: 1; text-align: center; font-family: "Helvetica Neue", "HelveticaNeue-Light", "Helvetica Neue Light", Helvetica, Arial, "Lucida Grande", sans-serif; font-weight: normal; } + +@media only all and (min-width: 48em) and (max-width: 59.938em) { h2 + h3 { font-size: 1.2rem; } } + +@media only all and (max-width: 47.938em) { h2 + h3 { font-size: 1.1rem; } } + +blockquote { border-left: 10px solid #F0F2F4; } + +blockquote p { font-size: 1.1rem; color: #999; } + +blockquote cite { display: block; text-align: right; color: #666; font-size: 1.2rem; } + +blockquote > blockquote > blockquote { margin: 0; } + +blockquote > blockquote > blockquote p { padding: 15px; display: block; font-size: 1rem; margin-top: 0rem; margin-bottom: 0rem; } + +blockquote > blockquote > blockquote > p { margin-left: -71px; border-left: 10px solid #F0AD4E; background: #FCF8F2; color: #df8a13; } + +blockquote > blockquote > blockquote > blockquote > p { margin-left: -94px; border-left: 10px solid #D9534F; background: #FDF7F7; color: #b52b27; } + +blockquote > blockquote > blockquote > blockquote > blockquote > p { margin-left: -118px; border-left: 10px solid #5BC0DE; background: #F4F8FA; color: #28a1c5; } + +blockquote > blockquote > blockquote > blockquote > blockquote > blockquote > p { margin-left: -142px; border-left: 10px solid #5CB85C; background: #F1F9F1; color: #3d8b3d; } + +code, kbd, pre, samp { font-family: "Inconsolata", monospace; } + +code { background: #f9f2f4; color: #9c1d3d; } + +pre { padding: 2rem; background: #f6f6f6; border: 1px solid #CBCBCB; border-radius: 3px; } + +pre code { color: #237794; background: inherit; } + +hr { border-bottom: 1px solid #CBCBCB; } + +.page-title { margin-top: -25px; padding: 25px; float: left; clear: both; background: #87b672; color: #fff; } + +.label { vertical-align: middle; background: #87b672; border-radius: 100%; color: #fff; height: 1rem; min-width: 1rem; line-height: 1rem; display: inline-block; text-align: center; font-size: 0.7rem; font-family: "novecento_sans_widedemibold", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; margin-right: 0.75rem; } + +fieldset { border: 1px solid #CBCBCB; } + +textarea, input[type="email"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="url"], input[type="color"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="month"], input[type="time"], input[type="week"], select[multiple=multiple] { background-color: white; border: 1px solid #CBCBCB; box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06); } + +textarea:hover, input[type="email"]:hover, input[type="number"]:hover, input[type="password"]:hover, input[type="search"]:hover, input[type="tel"]:hover, input[type="text"]:hover, input[type="url"]:hover, input[type="color"]:hover, input[type="date"]:hover, input[type="datetime"]:hover, input[type="datetime-local"]:hover, input[type="month"]:hover, input[type="time"]:hover, input[type="week"]:hover, select[multiple=multiple]:hover { border-color: #b2b1b1; } + +textarea:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="url"]:focus, input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="week"]:focus, select[multiple=multiple]:focus { border-color: #87b672; box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 5px rgba(121, 173, 97, 0.7); } + +.form-field .required { color: #F3443F; font-size: 2rem; line-height: 2rem; vertical-align: top; height: 1.5rem; display: inline-block; } + +form .buttons { text-align: center; } + +form input { font-weight: 400; } + +table { border: 1px solid #d8d8d8; } + +th { background: #e5e4e4; padding: 0.5rem; } + +td { padding: 0.5rem; border: 1px solid #d8d8d8; } + +.button, .archive-list button, .contact button { background: #87b672; color: #fff; border: 1px solid #87b672; } + +.button:hover, .archive-list button:hover, .contact button:hover { background: #fff; color: #87b672; } + +.button:active, .archive-list button:active, .contact button:active { box-shadow: 0 1px 0 #679b50; } + +.button-secondary { background: #F6635E; color: #fff; border: 1px solid #F6635E; } + +.button-secondary:hover { background: #fff; color: #F6635E; } + +.button-secondary:active { box-shadow: 0 1px 0 #f32b24; } + +.bullets { margin: 1.7rem 0; margin-left: -0.85rem; margin-right: -0.85rem; overflow: auto; } + +.bullet { float: left; padding: 0 0.85rem; } + +.two-column-bullet { width: 50%; } + +@media only all and (max-width: 47.938em) { .two-column-bullet { width: 100%; } } + +.three-column-bullet { width: 33.3333333333%; } + +@media only all and (max-width: 47.938em) { .three-column-bullet { width: 100%; } } + +.four-column-bullet { width: 25%; } + +@media only all and (max-width: 47.938em) { .four-column-bullet { width: 100%; } } + +.bullet-icon { float: left; background: #87b672; padding: 0.875rem; width: 3.5rem; height: 3.5rem; border-radius: 50%; color: #fff; font-size: 1.75rem; text-align: center; } + +.bullet-icon-1 { background: #87b672; } + +.bullet-icon-2 { background: #9eb672; } + +.bullet-icon-3 { background: #b67292; } + +.bullet-content { margin-left: 4.55rem; } + +.sb-slidebar { background-color: #333 !important; } + +#panel { padding-top: 1rem; color: #ddd; } + +#panel .navigation { list-style: none; padding: 0; margin-left: 0; } + +#panel .navigation li { border-bottom: 1px solid #3d3d3d; } + +#panel .navigation li a { color: #ddd; display: block; padding: 0.5rem 1rem; font-weight: 600; } + +#panel .navigation li a:hover { color: white; background-color: #262626; } + +#panel .navigation li a:last-child { border-bottom: 0; } + +#panel .navigation li.active > a { background: #fff; color: #9A9898; } + +#panel .navigation li.active > a:hover { color: #9A9898; } + +#panel .navigation li:first-child { border-top: 1px solid #3d3d3d; } + +#panel .navigation li ul { list-style: none; padding: 0; } + +#panel .navigation li ul li { border: 0 !important; } + +#panel .navigation li ul li a { color: #c4c3c3; padding: 0.2rem 1rem 0.2rem 2rem; font-size: 0.9rem; } + +#panel .navigation li ul li li a { padding-left: 3rem; } + +#panel .navigation li ul li li a li a { padding-left: 4rem; } + +#panel .navigation li ul li.active > a { background: #ccc; } + +.portfolio-modal .close-modal { position: absolute; top: 0; right: 0; width: 5rem; height: 5rem; background-color: transparent; cursor: pointer; font-size: 3rem; } + +@media only all and (max-width: 47.938em) { .portfolio-modal .close-modal { display: none; } } + +.modal { display: none; opacity: 0; overflow: hidden; position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 1050; -webkit-overflow-scrolling: touch; outline: 0; background: #fff; text-align: center; } + +@media only all and (max-width: 47.938em) { .modal h1 { margin-bottom: 0.5rem; } + .modal p, .modal ul { margin: 1rem 0; } + .modal ul { margin-top: 0; } } + +.modal.in { opacity: 1; } + +.modal .client-details { list-style-type: none; } + +.modal .client-details li { display: inline-block; } + +.modal .client-details li strong, .modal .client-details li label, .modal .client-details li th { color: #87b672; font-weight: normal; } + +.modal .modal-content { margin: 0 auto; width: 35rem; min-height: 100%; margin-top: 10rem; } + +@media only all and (min-width: 48em) and (max-width: 59.938em) { .modal .modal-content { width: 100%; } } + +@media only all and (max-width: 47.938em) { .modal .modal-content { margin-top: 0; width: 100%; } } + +.modal .modal-content img { max-height: 15rem; } + +.blog-header { padding-top: 1rem !important; padding-bottom: 1rem; margin-top: 0 !important; } + +.blog-header.blog-header-image { background-size: cover !important; } + +.blog-header.blog-header-image h1, .blog-header.blog-header-image h2 { color: #FFFFFF; text-align: left; } + +.blog-header h1 { font-size: 2.5rem; margin-top: 0; margin-bottom: 0; text-transform: uppercase; } + +@media only all and (min-width: 48em) and (max-width: 59.938em) { .blog-header h1 { font-size: 2rem; } } + +@media only all and (max-width: 47.938em) { .blog-header h1 { font-size: 1.5rem; line-height: 1.2; } } + +.blog-header + .blog-content { padding-top: 3rem; } + +.list-item { border-bottom: 1px solid #dadada; margin-bottom: 3rem; } + +.list-item:last-child { border-bottom: 0; } + +.list-item .list-blog-header { position: relative; } + +.list-item .list-blog-header h4, .list-item .list-blog-header .archive-list label, .archive-list .list-item .list-blog-header label, .list-item .list-blog-header .modular .bottom table th, .modular .bottom table .list-item .list-blog-header th, .list-item .list-blog-header .contact label, .contact .list-item .list-blog-header label, .list-item .list-blog-header .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .list-item .list-blog-header .name, .list-item .list-blog-header .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .list-item .list-blog-header .button, .list-item .list-blog-header .callout .pricing-container .pricing-item .foot .archive-list button, .callout .pricing-container .pricing-item .foot .archive-list .list-item .list-blog-header button, .list-item .list-blog-header .archive-list .callout .pricing-container .pricing-item .foot button, .archive-list .callout .pricing-container .pricing-item .foot .list-item .list-blog-header button, .list-item .list-blog-header .callout .pricing-container .pricing-item .foot .contact button, .callout .pricing-container .pricing-item .foot .contact .list-item .list-blog-header button, .list-item .list-blog-header .contact .callout .pricing-container .pricing-item .foot button, .contact .callout .pricing-container .pricing-item .foot .list-item .list-blog-header button { text-align: left; margin-bottom: 1.5rem; } + +.list-item .list-blog-header h4 a, .list-item .list-blog-header .archive-list label a, .archive-list .list-item .list-blog-header label a, .list-item .list-blog-header .modular .bottom table th a, .modular .bottom table .list-item .list-blog-header th a, .list-item .list-blog-header .contact label a, .contact .list-item .list-blog-header label a, .list-item .list-blog-header .callout .pricing-container .pricing-item .name a, .callout .pricing-container .pricing-item .list-item .list-blog-header .name a, .list-item .list-blog-header .callout .pricing-container .pricing-item .foot .button a, .callout .pricing-container .pricing-item .foot .list-item .list-blog-header .button a, .list-item .list-blog-header .callout .pricing-container .pricing-item .foot .archive-list button a, .callout .pricing-container .pricing-item .foot .archive-list .list-item .list-blog-header button a, .list-item .list-blog-header .archive-list .callout .pricing-container .pricing-item .foot button a, .archive-list .callout .pricing-container .pricing-item .foot .list-item .list-blog-header button a, .list-item .list-blog-header .callout .pricing-container .pricing-item .foot .contact button a, .callout .pricing-container .pricing-item .foot .contact .list-item .list-blog-header button a, .list-item .list-blog-header .contact .callout .pricing-container .pricing-item .foot button a, .contact .callout .pricing-container .pricing-item .foot .list-item .list-blog-header button a { color: #656161; } + +.list-item .list-blog-header h4 a:hover, .list-item .list-blog-header .archive-list label a:hover, .archive-list .list-item .list-blog-header label a:hover, .list-item .list-blog-header .modular .bottom table th a:hover, .modular .bottom table .list-item .list-blog-header th a:hover, .list-item .list-blog-header .contact label a:hover, .contact .list-item .list-blog-header label a:hover, .list-item .list-blog-header .callout .pricing-container .pricing-item .name a:hover, .callout .pricing-container .pricing-item .list-item .list-blog-header .name a:hover, .list-item .list-blog-header .callout .pricing-container .pricing-item .foot .button a:hover, .callout .pricing-container .pricing-item .foot .list-item .list-blog-header .button a:hover, .list-item .list-blog-header .callout .pricing-container .pricing-item .foot .archive-list button a:hover, .callout .pricing-container .pricing-item .foot .archive-list .list-item .list-blog-header button a:hover, .list-item .list-blog-header .archive-list .callout .pricing-container .pricing-item .foot button a:hover, .archive-list .callout .pricing-container .pricing-item .foot .list-item .list-blog-header button a:hover, .list-item .list-blog-header .callout .pricing-container .pricing-item .foot .contact button a:hover, .callout .pricing-container .pricing-item .foot .contact .list-item .list-blog-header button a:hover, .list-item .list-blog-header .contact .callout .pricing-container .pricing-item .foot button a:hover, .contact .callout .pricing-container .pricing-item .foot .list-item .list-blog-header button a:hover { color: #87b672; } + +.list-item .list-blog-header img { display: block; margin-top: 1rem; border-radius: 0; } + +.list-item .list-blog-date, .list-item .list-blog-author { text-align: center; background-color: rgba(101, 97, 97, 0.1); padding: 0.7rem 1rem; margin-bottom: 0.2rem; margin-right: 0.5rem; font-size: 1rem; text-transform: uppercase; color: #9A9898; font-family: "novecento_sans_widedemibold", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; } + +@media only all and (min-width: 48em) and (max-width: 59.938em) { .list-item .list-blog-date, .list-item .list-blog-author { display: block; width: 100%; clear: both; } } + +@media only all and (max-width: 47.938em) { .list-item .list-blog-date, .list-item .list-blog-author { display: block; width: 100%; clear: both; } } + +.blog-content-item .list-blog-padding > p:nth-child(2) { font-size: 1.2rem; } + +.tags { margin: 0; padding: 0; display: inline; background-color: rgba(101, 97, 97, 0.1); padding: 0.7rem 1rem; margin-bottom: 0.2rem; list-style: none; text-align: center; } + +.tags li { display: inline-block; font-size: 1rem; text-transform: uppercase; font-family: "novecento_sans_widedemibold", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; } + +.tags li a { color: #9A9898; } + +.tags li a:after { content: ","; } + +.tags li:last-child a:after { display: none; } + +@media only all and (min-width: 48em) and (max-width: 59.938em) { .tags { display: block; width: 100%; clear: both; } } + +@media only all and (max-width: 47.938em) { .tags { display: block; width: 100%; clear: both; } } + +.archives, .related-pages { margin: 0; padding: 0; list-style: none; } + +.archives li, .related-pages li { line-height: 2rem; } + +.archives li:last-child, .related-pages li:last-child { border-bottom: 0; } + +.archives a, .related-pages a { color: #9A9898; } + +.archives a:hover, .related-pages a:hover { color: #87b672; } + +.related-pages li a { display: block; } + +.related-pages .score { display: block; float: right; color: #999; font-size: 85%; } + +.syndicate a { margin-bottom: 1rem; } + +div#breadcrumbs { padding-left: 0; } + +@media only all and (max-width: 47.938em) { div#breadcrumbs { display: none; } } + +#sidebar { padding-left: 3rem; } + +@media only all and (max-width: 47.938em) { #sidebar { padding-left: 0; } } + +#sidebar .sidebar-content { margin-bottom: 3rem; } + +#sidebar .sidebar-content h4, #sidebar .sidebar-content .archive-list label, .archive-list #sidebar .sidebar-content label, #sidebar .sidebar-content .modular .bottom table th, .modular .bottom table #sidebar .sidebar-content th, #sidebar .sidebar-content .contact label, .contact #sidebar .sidebar-content label, #sidebar .sidebar-content .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item #sidebar .sidebar-content .name, #sidebar .sidebar-content .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot #sidebar .sidebar-content .button, #sidebar .sidebar-content .callout .pricing-container .pricing-item .foot .archive-list button, .callout .pricing-container .pricing-item .foot .archive-list #sidebar .sidebar-content button, #sidebar .sidebar-content .archive-list .callout .pricing-container .pricing-item .foot button, .archive-list .callout .pricing-container .pricing-item .foot #sidebar .sidebar-content button, #sidebar .sidebar-content .callout .pricing-container .pricing-item .foot .contact button, .callout .pricing-container .pricing-item .foot .contact #sidebar .sidebar-content button, #sidebar .sidebar-content .contact .callout .pricing-container .pricing-item .foot button, .contact .callout .pricing-container .pricing-item .foot #sidebar .sidebar-content button { margin-bottom: 1rem; text-align: left; } + +#sidebar .sidebar-content p, #sidebar .sidebar-content ul { margin-top: 1rem; } + +ul.pagination { margin: 0 0 3rem; text-align: center; } + +.prev-next { margin-top: 5rem; text-align: center; } + +.archive-list h4, .archive-list label, .archive-list .modular .bottom table th, .modular .bottom table .archive-list th, .archive-list .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .archive-list .name, .archive-list .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .archive-list .button, .callout .pricing-container .pricing-item .foot .archive-list button, .archive-list .callout .pricing-container .pricing-item .foot button { text-align: left; } + +.archive-list input { width: 50%; line-height: 2rem; } + +@media only all and (max-width: 47.938em) { .archive-list input { min-width: 80%; } } + +@media only all and (min-width: 48em) and (max-width: 59.938em) { .archive-list input { min-width: 70%; } } + +.archive-list textarea { min-width: 80%; min-height: 25rem; } + +@media only all and (max-width: 47.938em) { .archive-list textarea { min-width: 100%; } } + +@media only all and (min-width: 48em) and (max-width: 59.938em) { .archive-list textarea { min-width: 90%; } } + +.archive-list input, .archive-list textarea { border: 0 none; background: rgba(154, 152, 152, 0.2); box-shadow: none; } + +.archive-list label { font-size: 1rem; } + +.archive-list button { font-family: "novecento_sans_widedemibold", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; text-transform: uppercase; } + +#error { text-align: center; display: -ms-flexbox; display: flex; -ms-flex-align: center; align-items: center; -ms-flex-pack: center; justify-content: center; height: 100%; padding-bottom: 12rem; } + +#error h1 { font-size: 5rem; } + +#error p { margin: 1rem 0; } + +.error #body { padding-top: 16rem; } + +.simplesearch h1 { margin-bottom: 0; } + +.simplesearch .center { text-align: center; } + +.simplesearch input { display: inline-block; max-width: 30rem; font-size: 2rem; } + +.simplesearch .search-image { margin-top: 1rem; } + +.simplesearch .search-image img { border-radius: 4px; } + +@media only all and (max-width: 47.938em) { .simplesearch .search-image img { display: none; } } + +@media only all and (max-width: 47.938em) { .simplesearch .search-item { margin-left: 0; } } + +.simplesearch .search-details { float: right; margin-top: -2.5rem; font-weight: bold; font-size: 1rem; color: #cdcccc; } + +@media only all and (max-width: 47.938em) { .simplesearch .search-details { float: none; margin-top: -0.2rem; margin-bottom: 1rem; } } + +.simplesearch hr { border-bottom: 1px solid #eee; } + +.grav-lightslider .lSSlideOuter .lSPager.lSpg > li a { z-index: 1; } + +#body > script:first-child + .grav-lightslider { margin-top: -3rem; } + +.modular.header-image #header { background-color: rgba(255, 255, 255, 0); box-shadow: none; } + +.modular.header-image #header #logo h3 { color: #FFFFFF; } + +.modular.header-image #header #navbar a { color: #FFFFFF; } + +.modular .slideme_container { overflow: hidden; margin-top: -15rem; padding-top: 15rem; height: 34.7rem; } + +.modular .slideme_container:after { content: ""; display: table; clear: both; } + +.modular .showcase { position: relative; z-index: 1; padding-bottom: 10rem; background-color: #666; background-size: cover; background-position: center; text-align: center; color: #FFFFFF; } + +.modular .showcase h1 { font-size: 2.2rem; text-shadow: 1px 1px 3px #656161; margin-top: 0; padding-left: 14rem; padding-right: 14rem; text-transform: uppercase; } + +@media only all and (min-width: 48em) and (max-width: 59.938em) { .modular .showcase h1 { font-size: 1.5rem; } } + +@media only all and (max-width: 47.938em) { .modular .showcase h1 { font-size: 1.3rem; line-height: 1.2; padding-left: 0; padding-right: 0; margin-left: 4rem; margin-right: 4rem; } } + +.modular .showcase h1 strong, .modular .showcase h1 label, .modular .showcase h1 th { color: #87b672; } + +.modular .showcase h2 { text-shadow: 1px 1px 3px #656161; text-transform: none; padding-left: 14rem; padding-right: 14rem; } + +@media only all and (max-width: 47.938em) { .modular .showcase h2 { padding-left: 0; padding-right: 0; margin-left: 4rem; margin-right: 4rem; } } + +.modular .showcase .button, .modular .showcase .archive-list button, .archive-list .modular .showcase button, .modular .showcase .contact button, .contact .modular .showcase button { color: #FFFFFF; font-family: "novecento_sans_widedemibold", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; padding: 0.3rem 1rem; background: rgba(255, 255, 255, 0); border: 2px solid #FFFFFF; border-radius: 0; box-shadow: none; font-size: 1rem; } + +.modular .showcase .button:hover, .modular .showcase .archive-list button:hover, .archive-list .modular .showcase button:hover, .modular .showcase .contact button:hover, .contact .modular .showcase button:hover { background: rgba(255, 255, 255, 0.2); } + +.modular .slideme_container .arrow { position: absolute; display: block; padding-bottom: 0; padding-left: 0.8rem; padding-right: 0.8rem; padding-top: 0; cursor: pointer; z-index: 50; text-align: center; line-height: 3.8rem; background: #fff; top: 50%; border-radius: 100%; font-size: 2.5rem; opacity: 0.5; color: #000; } + +@media only all and (max-width: 47.938em) { .modular .slideme_container .arrow { font-size: 1.5rem; line-height: 2.8rem; } } + +.modular .slideme_container .arrow:hover { opacity: 1; } + +.modular .slideme_container .arrow.prev { left: 4rem; } + +@media only all and (max-width: 47.938em) { .modular .slideme_container .arrow.prev { left: 1rem; } } + +.modular .slideme_container .arrow.next { right: 4rem; } + +@media only all and (max-width: 47.938em) { .modular .slideme_container .arrow.next { right: 1rem; } } + +.modular .slideme_container .arrow:disabled { opacity: 0.1; } + +@media only all and (max-width: 47.938em) { .modular .slideme_container .arrow { width: 2.7rem; height: 2.7rem; } } + +.modular .slideme_container .arrow.next:before { content: '\f054'; font-family: FontAwesome; margin-left: 0.4rem; } + +.modular .slideme_container .arrow.prev:before { content: '\f053'; font-family: FontAwesome; margin-right: 0.5rem; } + +.modular .slideme_container .pagination { text-align: center; z-index: 10; position: absolute; left: 0; right: 0; vertical-align: middle; bottom: 5%; } + +.modular .slideme_container .pagination .numbers li { transition-duration: 0.2s; background: #fff; width: 0.5rem; height: 0.5rem; display: inline-block; border-radius: 100%; cursor: pointer; margin: 0 0.2rem; vertical-align: middle; } + +.modular .slideme_container .pagination .numbers li.current { width: 1rem; height: 1rem; } + +.modular .features { padding: 4rem 0; padding-bottom: 1rem; text-align: center; } + +.modular .features:after { content: ""; display: table; clear: both; } + +.modular .features h2 { margin: 0; line-height: 100%; color: #656161; } + +.modular .features hr { margin-top: 4rem; } + +.modular .features p { margin: 1rem 0; } + +@media only all and (max-width: 47.938em) { .modular .features p { font-size: 1rem; } } + +.modular .features .button, .modular .features .archive-list button, .archive-list .modular .features button, .modular .features .contact button, .contact .modular .features button { background-color: #87b672; color: #FFFFFF; font-family: "novecento_sans_widedemibold", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; border-radius: 0; box-shadow: none; font-size: 1rem; } + +.modular .features .feature-items { margin-top: 2rem; } + +@supports not (flex-wrap: wrap) { .modular .features .feature-items { overflow: hidden; } } + +.modular .features .feature { display: block; float: left; width: 25%; vertical-align: top; margin-top: 2rem; margin-bottom: 1rem; } + +@media only all and (min-width: 30.063em) and (max-width: 47.938em) { .modular .features .feature { margin-top: 1rem; width: 50%; } } + +@media only all and (max-width: 30em) { .modular .features .feature { margin-top: 1rem; width: 100%; } } + +.modular .features .feature i.fa { font-size: 2rem; } + +.modular .features .feature h4, .modular .features .feature .archive-list label, .archive-list .modular .features .feature label, .modular .features .feature .bottom table th, .modular .bottom table .features .feature th, .modular .features .feature .contact label, .contact .modular .features .feature label, .modular .features .feature .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .modular .features .feature .name, .modular .features .feature .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .modular .features .feature .button, .modular .features .feature .callout .pricing-container .pricing-item .foot .archive-list button, .callout .pricing-container .pricing-item .foot .archive-list .modular .features .feature button, .modular .features .feature .archive-list .callout .pricing-container .pricing-item .foot button, .archive-list .callout .pricing-container .pricing-item .foot .modular .features .feature button, .modular .features .feature .callout .pricing-container .pricing-item .foot .contact button, .callout .pricing-container .pricing-item .foot .contact .modular .features .feature button, .modular .features .feature .contact .callout .pricing-container .pricing-item .foot button, .contact .callout .pricing-container .pricing-item .foot .modular .features .feature button { margin: 0; font-size: 1.1rem; } + +.modular .features .feature p { display: inline-block; font-size: 1rem; margin: 0.2rem 0 1rem; } + +.modular .features.big { text-align: center; } + +.modular .features.big .feature { width: 33.33%; } + +@media only all and (max-width: 30em) { .modular .features.big .feature { margin-top: 1rem; width: 100%; } } + +.modular .features.big i.fa { font-size: 4.5rem; margin-bottom: 1.5rem; } + +.modular .features.big .feature-content { padding-right: 2rem; text-align: justify; } + +.modular .features.big .feature-content.icon-offset { margin-left: 1rem; } + +.modular .features.big .feature-content h4, .modular .features.big .feature-content .archive-list label, .archive-list .modular .features.big .feature-content label, .modular .features.big .feature-content .bottom table th, .modular .bottom table .features.big .feature-content th, .modular .features.big .feature-content .contact label, .contact .modular .features.big .feature-content label, .modular .features.big .feature-content .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .modular .features.big .feature-content .name, .modular .features.big .feature-content .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .modular .features.big .feature-content .button, .modular .features.big .feature-content .callout .pricing-container .pricing-item .foot .archive-list button, .callout .pricing-container .pricing-item .foot .archive-list .modular .features.big .feature-content button, .modular .features.big .feature-content .archive-list .callout .pricing-container .pricing-item .foot button, .archive-list .callout .pricing-container .pricing-item .foot .modular .features.big .feature-content button, .modular .features.big .feature-content .callout .pricing-container .pricing-item .foot .contact button, .callout .pricing-container .pricing-item .foot .contact .modular .features.big .feature-content button, .modular .features.big .feature-content .contact .callout .pricing-container .pricing-item .foot button, .contact .callout .pricing-container .pricing-item .foot .modular .features.big .feature-content button { font-size: 1.2rem; } + +.modular .features.big .feature-content p { padding: 0; } + +.modular .bottom { text-align: center; padding-bottom: 4rem; } + +.modular .bottom:after { content: ""; display: table; clear: both; } + +.modular .bottom h2 { padding-top: 3rem; margin: 0; line-height: 100%; color: #656161; } + +.modular .bottom p { margin: 1rem 0; } + +@media only all and (max-width: 47.938em) { .modular .bottom p { font-size: 1rem; } } + +.modular .bottom .button, .modular .bottom .archive-list button, .archive-list .modular .bottom button, .modular .bottom .contact button, .contact .modular .bottom button { background-color: #87b672; color: #FFFFFF; font-family: "novecento_sans_widedemibold", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; border-radius: 0; box-shadow: none; font-size: 1rem; border: 0 none; } + +.modular .bottom .button:hover, .modular .bottom .archive-list button:hover, .archive-list .modular .bottom button:hover, .modular .bottom .contact button:hover, .contact .modular .bottom button:hover { background-color: #558042; } + +.modular .bottom.borderbottom { padding-bottom: 0; } + +.modular .bottom.borderbottom hr { padding-top: 3rem; } + +.modular .bottom table { border: 0 none; } + +.modular .bottom table th { background: none; text-align: left; } + +@media only all and (max-width: 47.938em) { .modular .bottom table th { display: none; } } + +.modular .bottom table td { text-align: left; vertical-align: top; border: 0 none; } + +@media only all and (max-width: 47.938em) { .modular .bottom table td { display: block; } } + +.modular .bottom .services { padding-top: 2rem; } + +.modular .bottom .services .service { width: 50%; text-align: left; display: block; float: left; } + +@media only all and (max-width: 47.938em) { .modular .bottom .services .service { width: 100%; } } + +.modular .bottom .services .service .fa { margin-top: 0.5rem; width: 7rem; height: 6rem; font-size: 6rem; float: left; } + +.modular .bottom .services .service p { margin-left: 7rem; margin-top: 0.5rem; margin-right: 1rem; } + +.modular .bottom .services .service h4, .modular .bottom .services .service .archive-list label, .archive-list .modular .bottom .services .service label, .modular .bottom .services .service table th, .modular .bottom table .services .service th, .modular .bottom .services .service .contact label, .contact .modular .bottom .services .service label, .modular .bottom .services .service .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .modular .bottom .services .service .name, .modular .bottom .services .service .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .modular .bottom .services .service .button, .modular .bottom .services .service .callout .pricing-container .pricing-item .foot .archive-list button, .callout .pricing-container .pricing-item .foot .archive-list .modular .bottom .services .service button, .modular .bottom .services .service .archive-list .callout .pricing-container .pricing-item .foot button, .archive-list .callout .pricing-container .pricing-item .foot .modular .bottom .services .service button, .modular .bottom .services .service .callout .pricing-container .pricing-item .foot .contact button, .callout .pricing-container .pricing-item .foot .contact .modular .bottom .services .service button, .modular .bottom .services .service .contact .callout .pricing-container .pricing-item .foot button, .contact .callout .pricing-container .pricing-item .foot .modular .bottom .services .service button { text-align: left; margin-bottom: 0; } + +.about hr { margin: 3rem 0; } + +.contact h4, .contact .modular .bottom table th, .modular .bottom table .contact th, .contact label, .contact .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .contact .name, .contact .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .contact .button, .callout .pricing-container .pricing-item .foot .contact button, .contact .callout .pricing-container .pricing-item .foot button { text-align: left; } + +.contact input { width: 50%; line-height: 2rem; } + +@media only all and (max-width: 47.938em) { .contact input { min-width: 80%; } } + +@media only all and (min-width: 48em) and (max-width: 59.938em) { .contact input { min-width: 70%; } } + +.contact textarea { min-width: 80%; min-height: 25rem; } + +@media only all and (max-width: 47.938em) { .contact textarea { min-width: 100%; } } + +@media only all and (min-width: 48em) and (max-width: 59.938em) { .contact textarea { min-width: 90%; } } + +.contact input, .contact textarea { border: 0 none; background: rgba(154, 152, 152, 0.2); box-shadow: none; } + +.contact input:focus, .contact textarea:focus { border-radius: 0 !important; box-shadow: none; background: rgba(154, 152, 152, 0.11); } + +.contact label { font-size: 1rem; } + +.contact button { font-family: "novecento_sans_widedemibold", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; text-transform: uppercase; display: block; } + +.contact #simple_form-success, .contact #simple_form-submit { display: inline-block; } + +.contact #simple_form-success strong, .contact #simple_form-success label, .contact #simple_form-success th, .contact #simple_form-submit strong, .contact #simple_form-submit label, .contact #simple_form-submit th { margin-left: 1rem; } + +.contact #simple_form-success .close, .contact #simple_form-submit .close { display: none; } + +.callout { background: #EEEEEE; padding: 2rem 0.938rem; padding-top: 2rem; padding-bottom: 0; text-align: center; overflow: hidden; clear: both; position: relative; } + +@media only all and (max-width: 59.938em) { .callout { text-align: center; } } + +.callout .callout-line { background: #fff; width: 100%; height: 7rem; position: absolute; left: 0; bottom: 0; z-index: 0; } + +.callout .pricing-container { position: relative; z-index: 10; margin-top: 2rem; min-height: 31rem; text-align: center; } + +.callout .pricing-container:after { content: ""; display: table; clear: both; } + +.callout .pricing-container .pricing-item { -webkit-transform: translateZ(0); display: inline-grid; width: 40%; margin-left: 0rem; margin-right: 3rem; margin-bottom: 2rem; position: relative; } + +@media only all and (max-width: 47.938em) { .callout .pricing-container .pricing-item { width: 100%; } } + +@media only all and (min-width: 48em) and (max-width: 59.938em) { .callout .pricing-container .pricing-item { width: 100%; } } + +@media only all and (min-width: 60em) and (max-width: 74.938em) { .callout .pricing-container .pricing-item { width: 22.5%; } } + +.callout .pricing-container .pricing-item:hover { transform: scale(1, 1.08); } + +.callout .pricing-container .pricing-item div { background: #f7f7f7; } + +.callout .pricing-container .pricing-item .name { background: #87b672; color: #fff; padding: 0.5rem 0; } + +.callout .pricing-container .pricing-item .info { padding-top: 1rem; padding-bottom: 1rem; border-bottom: #EEEEEE 1px solid; } + +.callout .pricing-container .pricing-item .price { font-weight: bold; color: #656161; font-size: 2.5rem; font-family: "novecento_sans_widedemibold", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; font-weight: normal; border-bottom: #EEEEEE 1px solid; line-height: 5rem; } + +.callout .pricing-container .pricing-item .foot { background: #87b672; color: #fff; text-align: center; padding: 1rem 0; } + +.callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .archive-list button, .archive-list .callout .pricing-container .pricing-item .foot button, .callout .pricing-container .pricing-item .foot .contact button, .contact .callout .pricing-container .pricing-item .foot button { margin: 0; padding: 0; width: 9rem; font-size: 1rem; line-height: 2.5rem; color: #fff; display: inline-block; background: rgba(255, 255, 255, 0.25); } + +.callout .pricing-container .pricing-item .foot .button:hover, .callout .pricing-container .pricing-item .foot .archive-list button:hover, .archive-list .callout .pricing-container .pricing-item .foot button:hover, .callout .pricing-container .pricing-item .foot .contact button:hover, .contact .callout .pricing-container .pricing-item .foot button:hover { background: rgba(255, 255, 255, 0.15); } + +.callout .pricing-container .pricing-item sup { font-size: 2rem; } + +.team { background: #EEEEEE; padding: 4rem 0; text-align: center; } + +.team:after { content: ""; display: table; clear: both; } + +.team h2 { color: #656161; margin: 0; line-height: 100%; } + +.team p { margin: 1rem 0; } + +.team .members { width: 100%; text-align: left; padding-top: 2rem; } + +.team .members .member { display: inline-block; float: left; width: 29%; margin: 0 1rem; margin-bottom: 2rem; } + +@media only all and (max-width: 47.938em) { .team .members .member { display: block; width: 100%; text-align: center; margin: 0; margin-bottom: 2rem; } } + +@media only all and (min-width: 48em) and (max-width: 59.938em) { .team .members .member { display: block; width: 44%; margin-bottom: 2rem; } } + +.team .members .member h4, .team .members .member .archive-list label, .archive-list .team .members .member label, .team .members .member .modular .bottom table th, .modular .bottom table .team .members .member th, .team .members .member .contact label, .contact .team .members .member label, .team .members .member .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .team .members .member .name, .team .members .member .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .team .members .member .button, .team .members .member .callout .pricing-container .pricing-item .foot .archive-list button, .callout .pricing-container .pricing-item .foot .archive-list .team .members .member button, .team .members .member .archive-list .callout .pricing-container .pricing-item .foot button, .archive-list .callout .pricing-container .pricing-item .foot .team .members .member button, .team .members .member .callout .pricing-container .pricing-item .foot .contact button, .callout .pricing-container .pricing-item .foot .contact .team .members .member button, .team .members .member .contact .callout .pricing-container .pricing-item .foot button, .contact .callout .pricing-container .pricing-item .foot .team .members .member button { text-align: left; margin-bottom: 0; } + +@media only all and (max-width: 47.938em) { .team .members .member h4, .team .members .member .archive-list label, .archive-list .team .members .member label, .team .members .member .modular .bottom table th, .modular .bottom table .team .members .member th, .team .members .member .contact label, .contact .team .members .member label, .team .members .member .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .team .members .member .name, .team .members .member .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .team .members .member .button, .team .members .member .callout .pricing-container .pricing-item .foot .archive-list button, .callout .pricing-container .pricing-item .foot .archive-list .team .members .member button, .team .members .member .archive-list .callout .pricing-container .pricing-item .foot button, .archive-list .callout .pricing-container .pricing-item .foot .team .members .member button, .team .members .member .callout .pricing-container .pricing-item .foot .contact button, .callout .pricing-container .pricing-item .foot .contact .team .members .member button, .team .members .member .contact .callout .pricing-container .pricing-item .foot button, .contact .callout .pricing-container .pricing-item .foot .team .members .member button { text-align: center; } } + +.team .members .member hr { margin: 1rem 0; } + +.team .members .social-icons { line-height: 2rem; margin: 0; list-style: none; } + +@media only all and (max-width: 47.938em) { .team .members .social-icons { text-align: center; display: -ms-inline-flexbox; display: inline-flex; } } + +.team .members .social-icons li { float: left; width: 2.1rem; height: 2.1rem; background: #fff; border-radius: 100%; text-align: center; margin-right: 0.8rem; } + +.team .members .social-icons li a { color: #000; display: block; margin-top: 0.1rem; } + +.team .members .social-icons li:hover { background: rgba(255, 255, 255, 0.5); } + +.team .members .social-icons li:hover i { color: #87b672; } + +.portfolio { padding: 2rem 0.938rem; padding-top: 2rem; padding-bottom: 1rem; text-align: center; } + +@media only all and (max-width: 59.938em) { .portfolio { text-align: center; } } + +.portfolio h2 { color: #656161; } + +.portfolio .notebooks { margin-top: 4rem; } + +.portfolio .notebooks .notebook-row { box-shadow: inset 0px -90px 0px -20px #f7f7f7; margin-left: -14rem; margin-right: -14rem; padding-left: 14rem; padding-right: 14rem; background: #EEEEEE; padding-bottom: 2rem; } + +@media only all and (max-width: 47.938em) { .portfolio .notebooks .notebook-row { margin-left: -10rem; margin-right: -10rem; } } + +.portfolio .notebooks .notebook-row .notebook { min-width: 24%; } + +@media only all and (min-width: 48em) and (max-width: 59.938em) { .portfolio .notebooks .notebook-row .notebook { width: 100%; } } + +@media only all and (min-width: 60em) and (max-width: 74.938em) { .portfolio .notebooks .notebook-row .notebook { min-width: 24%; float: none; } } + +@media only all and (max-width: 30em) { .portfolio .notebooks .notebook-row .notebook { width: 170%; margin-left: -4.7rem; } } + +.portfolio .notebooks .notebook-row .notebook h4, .portfolio .notebooks .notebook-row .notebook .archive-list label, .archive-list .portfolio .notebooks .notebook-row .notebook label, .portfolio .notebooks .notebook-row .notebook .modular .bottom table th, .modular .bottom table .portfolio .notebooks .notebook-row .notebook th, .portfolio .notebooks .notebook-row .notebook .contact label, .contact .portfolio .notebooks .notebook-row .notebook label, .portfolio .notebooks .notebook-row .notebook .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .portfolio .notebooks .notebook-row .notebook .name, .portfolio .notebooks .notebook-row .notebook .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .portfolio .notebooks .notebook-row .notebook .button, .portfolio .notebooks .notebook-row .notebook .callout .pricing-container .pricing-item .foot .archive-list button, .callout .pricing-container .pricing-item .foot .archive-list .portfolio .notebooks .notebook-row .notebook button, .portfolio .notebooks .notebook-row .notebook .archive-list .callout .pricing-container .pricing-item .foot button, .archive-list .callout .pricing-container .pricing-item .foot .portfolio .notebooks .notebook-row .notebook button, .portfolio .notebooks .notebook-row .notebook .callout .pricing-container .pricing-item .foot .contact button, .callout .pricing-container .pricing-item .foot .contact .portfolio .notebooks .notebook-row .notebook button, .portfolio .notebooks .notebook-row .notebook .contact .callout .pricing-container .pricing-item .foot button, .contact .callout .pricing-container .pricing-item .foot .portfolio .notebooks .notebook-row .notebook button { text-align: left; margin-bottom: 0; } + +.portfolio .notebooks .notebook-row .notebook p { margin-top: 0; } + +.portfolio .notebooks .notebook-row .notebook .desc { width: 20rem; margin-left: 2rem; } + +@media only all and (min-width: 60em) and (max-width: 74.938em) { .portfolio .notebooks .notebook-row .notebook .desc { width: 100%; } } + +@media only all and (max-width: 47.938em) { .portfolio .notebooks .notebook-row .notebook .desc { width: 100%; } } + +@media only all and (max-width: 30em) { .portfolio .notebooks .notebook-row .notebook .desc { width: 90%; } } + +@media only all and (min-width: 48em) and (max-width: 59.938em) { .portfolio .notebooks .notebook-row .notebook .desc { width: 100%; } } + +.logo { border-bottom: 1px solid #eaeaea; } + +.logo h3 { font-size: 2.5rem; font-family: "Pacifico", "monospace"; line-height: 2rem; margin: 0; float: left; } + +.logo h3 a { color: #9A9898; } + +.logo h4, .logo .archive-list label, .archive-list .logo label, .logo .modular .bottom table th, .modular .bottom table .logo th, .logo .contact label, .contact .logo label, .logo .callout .pricing-container .pricing-item .name, .callout .pricing-container .pricing-item .logo .name, .logo .callout .pricing-container .pricing-item .foot .button, .callout .pricing-container .pricing-item .foot .logo .button, .logo .callout .pricing-container .pricing-item .foot .archive-list button, .callout .pricing-container .pricing-item .foot .archive-list .logo button, .logo .archive-list .callout .pricing-container .pricing-item .foot button, .archive-list .callout .pricing-container .pricing-item .foot .logo button, .logo .callout .pricing-container .pricing-item .foot .contact button, .callout .pricing-container .pricing-item .foot .contact .logo button, .logo .contact .callout .pricing-container .pricing-item .foot button, .contact .callout .pricing-container .pricing-item .foot .logo button { text-align: left; } + +.logo ul { margin: 0; padding: 0; list-style: none; } + +.logo ul.social-icons { float: right; line-height: 2rem; margin: 0; } + +.logo ul.social-icons li { float: left; width: 2.1rem; height: 2.1rem; background: #fff; border-radius: 100%; text-align: center; margin-right: 0.8rem; } + +.logo ul.social-icons li a { color: #000; display: block; margin-top: 0.1rem; } + +.logo ul.social-icons li:hover { background: rgba(255, 255, 255, 0.5); } + +.notebook { display: inline-block; text-align: left; min-width: 33%; position: relative; z-index: 10; } + +@media only all and (min-width: 60em) and (max-width: 74.938em) { .notebook { width: 100%; float: none; } } + +@media only all and (min-width: 48em) and (max-width: 59.938em) { .notebook { width: 100%; float: none; } } + +@media only all and (max-width: 47.938em) { .notebook { width: 100%; float: none; } } + +@media only all and (max-width: 30em) { .notebook { width: 150%; margin-left: -5.1rem; float: none; } } + +.notebook .screen:before { content: ""; position: absolute; border-radius: 50%; background: #E5EBED; height: 0.25rem; width: 0.25rem; margin: 0.3125rem 0 0 8.625rem; } + +.notebook .screen { background: #464C51; border-radius: 0.5rem 0.5rem 0 0; height: 11.72rem; width: 18.28rem; margin: 0 auto; } + +.notebook .screen .screen-content { height: 10.1rem; width: 16.73rem; position: absolute; z-index: 1; margin-top: 0.8rem; margin-left: 0.8rem; background-size: cover; background-repeat: no-repeat; } + +.notebook .screen .screen-content-hover { height: 10.1rem; width: 16.73rem; position: absolute; z-index: 2; opacity: 0; margin-top: 0.8rem; margin-left: 0.8rem; font-size: 2rem; color: #464C51; background-color: #87b672; } + +.notebook .screen .screen-content-hover .fa-arrow-up-right-from-square { margin-top: 2.5rem; margin-left: 4.7rem; } + +.notebook .screen .screen-content-hover:hover { opacity: 0.8; } + +.notebook .screen:after { content: ""; position: absolute; background: #161B21; height: 10rem; width: 16.63rem; border-radius: 0.125rem; margin: 0.875rem 0 0 0.8125rem; transition: background 1s ease-in-out; } + +.notebook .keyboard { background: #DFDCDC; border-radius: 0 0 0.3125rem 0.3125rem; height: 1.25rem; width: 21.88rem; margin: 0 auto; } + +.notebook .keyboard:after { content: ""; position: absolute; background: #757979; height: 0.375rem; width: 3.125rem; margin: 0 0 0 9.375rem; border-radius: 0 0 0.5rem 0.5rem; } + +.keyboard:before { content: ""; position: absolute; height: 0.5rem; width: 23.13rem; margin: 0.4375rem 0 0 -0.625rem; z-index: -1; border-radius: 100%; } + +/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuY3NzIiwic291cmNlcyI6WyJ0ZW1wbGF0ZS5zY3NzIiwidmVuZG9yL2JvdXJib24vX2JvdXJib24uc2NzcyIsInZlbmRvci9ib3VyYm9uL3NldHRpbmdzL19wcmVmaXhlci5zY3NzIiwidmVuZG9yL2JvdXJib24vc2V0dGluZ3MvX3B4LXRvLWVtLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9oZWxwZXJzL19jb252ZXJ0LXVuaXRzLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9oZWxwZXJzL19ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9oZWxwZXJzL19pcy1udW0uc2NzcyIsInZlbmRvci9ib3VyYm9uL2hlbHBlcnMvX2xpbmVhci1hbmdsZS1wYXJzZXIuc2NzcyIsInZlbmRvci9ib3VyYm9uL2hlbHBlcnMvX2xpbmVhci1ncmFkaWVudC1wYXJzZXIuc2NzcyIsInZlbmRvci9ib3VyYm9uL2hlbHBlcnMvX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9oZWxwZXJzL19saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9oZWxwZXJzL19yYWRpYWwtYXJnLXBhcnNlci5zY3NzIiwidmVuZG9yL2JvdXJib24vaGVscGVycy9fcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsInZlbmRvci9ib3VyYm9uL2hlbHBlcnMvX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIuc2NzcyIsInZlbmRvci9ib3VyYm9uL2hlbHBlcnMvX3JlbmRlci1ncmFkaWVudHMuc2NzcyIsInZlbmRvci9ib3VyYm9uL2hlbHBlcnMvX3NoYXBlLXNpemUtc3RyaXBwZXIuc2NzcyIsInZlbmRvci9ib3VyYm9uL2hlbHBlcnMvX3N0ci10by1udW0uc2NzcyIsInZlbmRvci9ib3VyYm9uL2Z1bmN0aW9ucy9fYXNzaWduLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9mdW5jdGlvbnMvX2NvbG9yLWxpZ2h0bmVzcy5zY3NzIiwidmVuZG9yL2JvdXJib24vZnVuY3Rpb25zL19mbGV4LWdyaWQuc2NzcyIsInZlbmRvci9ib3VyYm9uL2Z1bmN0aW9ucy9fZ29sZGVuLXJhdGlvLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9mdW5jdGlvbnMvX2dyaWQtd2lkdGguc2NzcyIsInZlbmRvci9ib3VyYm9uL2Z1bmN0aW9ucy9fbW9kdWxhci1zY2FsZS5zY3NzIiwidmVuZG9yL2JvdXJib24vZnVuY3Rpb25zL19weC10by1lbS5zY3NzIiwidmVuZG9yL2JvdXJib24vZnVuY3Rpb25zL19weC10by1yZW0uc2NzcyIsInZlbmRvci9ib3VyYm9uL2Z1bmN0aW9ucy9fc3RyaXAtdW5pdHMuc2NzcyIsInZlbmRvci9ib3VyYm9uL2Z1bmN0aW9ucy9fdGludC1zaGFkZS5zY3NzIiwidmVuZG9yL2JvdXJib24vZnVuY3Rpb25zL190cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUuc2NzcyIsInZlbmRvci9ib3VyYm9uL2Z1bmN0aW9ucy9fdW5wYWNrLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9jc3MzL19hbmltYXRpb24uc2NzcyIsInZlbmRvci9ib3VyYm9uL2NzczMvX2FwcGVhcmFuY2Uuc2NzcyIsInZlbmRvci9ib3VyYm9uL2NzczMvX2JhY2tmYWNlLXZpc2liaWxpdHkuc2NzcyIsInZlbmRvci9ib3VyYm9uL2NzczMvX2JhY2tncm91bmQuc2NzcyIsInZlbmRvci9ib3VyYm9uL2NzczMvX2JhY2tncm91bmQtaW1hZ2Uuc2NzcyIsInZlbmRvci9ib3VyYm9uL2NzczMvX2JvcmRlci1pbWFnZS5zY3NzIiwidmVuZG9yL2JvdXJib24vY3NzMy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwidmVuZG9yL2JvdXJib24vY3NzMy9fYm94LXNpemluZy5zY3NzIiwidmVuZG9yL2JvdXJib24vY3NzMy9fY2FsYy5zY3NzIiwidmVuZG9yL2JvdXJib24vY3NzMy9fY29sdW1ucy5zY3NzIiwidmVuZG9yL2JvdXJib24vY3NzMy9fZmlsdGVyLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9jc3MzL19mbGV4LWJveC5zY3NzIiwidmVuZG9yL2JvdXJib24vY3NzMy9fZm9udC1mYWNlLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9jc3MzL19oeXBoZW5zLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9jc3MzL19oaWRwaS1tZWRpYS1xdWVyeS5zY3NzIiwidmVuZG9yL2JvdXJib24vY3NzMy9faW1hZ2UtcmVuZGVyaW5nLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9jc3MzL19rZXlmcmFtZXMuc2NzcyIsInZlbmRvci9ib3VyYm9uL2NzczMvX2xpbmVhci1ncmFkaWVudC5zY3NzIiwidmVuZG9yL2JvdXJib24vY3NzMy9fcGVyc3BlY3RpdmUuc2NzcyIsInZlbmRvci9ib3VyYm9uL2NzczMvX3JhZGlhbC1ncmFkaWVudC5zY3NzIiwidmVuZG9yL2JvdXJib24vY3NzMy9fdHJhbnNmb3JtLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9jc3MzL190cmFuc2l0aW9uLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9jc3MzL191c2VyLXNlbGVjdC5zY3NzIiwidmVuZG9yL2JvdXJib24vY3NzMy9fcGxhY2Vob2xkZXIuc2NzcyIsInZlbmRvci9ib3VyYm9uL2FkZG9ucy9fYnV0dG9uLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9hZGRvbnMvX2NsZWFyZml4LnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9hZGRvbnMvX2RpcmVjdGlvbmFsLXZhbHVlcy5zY3NzIiwidmVuZG9yL2JvdXJib24vYWRkb25zL19lbGxpcHNpcy5zY3NzIiwidmVuZG9yL2JvdXJib24vYWRkb25zL19mb250LWZhbWlseS5zY3NzIiwidmVuZG9yL2JvdXJib24vYWRkb25zL19oaWRlLXRleHQuc2NzcyIsInZlbmRvci9ib3VyYm9uL2FkZG9ucy9faHRtbDUtaW5wdXQtdHlwZXMuc2NzcyIsInZlbmRvci9ib3VyYm9uL2FkZG9ucy9fcG9zaXRpb24uc2NzcyIsInZlbmRvci9ib3VyYm9uL2FkZG9ucy9fcHJlZml4ZXIuc2NzcyIsInZlbmRvci9ib3VyYm9uL2FkZG9ucy9fcmV0aW5hLWltYWdlLnNjc3MiLCJ2ZW5kb3IvYm91cmJvbi9hZGRvbnMvX3NpemUuc2NzcyIsInZlbmRvci9ib3VyYm9uL2FkZG9ucy9fdGltaW5nLWZ1bmN0aW9ucy5zY3NzIiwidmVuZG9yL2JvdXJib24vYWRkb25zL190cmlhbmdsZS5zY3NzIiwidmVuZG9yL2JvdXJib24vYWRkb25zL193b3JkLXdyYXAuc2NzcyIsInZlbmRvci9ib3VyYm9uL19ib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmcuc2NzcyIsImNvbmZpZ3VyYXRpb24vbnVjbGV1cy9fYmFzZS5zY3NzIiwiY29uZmlndXJhdGlvbi9udWNsZXVzL19jb3JlLnNjc3MiLCJjb25maWd1cmF0aW9uL251Y2xldXMvX2JyZWFrcG9pbnRzLnNjc3MiLCJjb25maWd1cmF0aW9uL251Y2xldXMvX2xheW91dC5zY3NzIiwiY29uZmlndXJhdGlvbi9udWNsZXVzL190eXBvZ3JhcGh5LnNjc3MiLCJjb25maWd1cmF0aW9uL251Y2xldXMvX25hdi5zY3NzIiwiY29uZmlndXJhdGlvbi90ZW1wbGF0ZS9fYmFzZS5zY3NzIiwiY29uZmlndXJhdGlvbi90ZW1wbGF0ZS9fY29sb3JzLnNjc3MiLCJjb25maWd1cmF0aW9uL3RlbXBsYXRlL190eXBvZ3JhcGh5LnNjc3MiLCJjb25maWd1cmF0aW9uL3RlbXBsYXRlL19idWxsZXRzLnNjc3MiLCJjb25maWd1cmF0aW9uL3RlbXBsYXRlL192YXJpYWJsZXMuc2NzcyIsIm51Y2xldXMvZnVuY3Rpb25zL19iYXNlLnNjc3MiLCJudWNsZXVzL2Z1bmN0aW9ucy9fZGlyZWN0aW9uLnNjc3MiLCJudWNsZXVzL2Z1bmN0aW9ucy9fcmFuZ2Uuc2NzcyIsIm51Y2xldXMvZnVuY3Rpb25zL191dGlsaXRpZXMuc2NzcyIsIm51Y2xldXMvbWl4aW5zL19iYXNlLnNjc3MiLCJudWNsZXVzL21peGlucy9fYnJlYWtwb2ludHMuc2NzcyIsIm51Y2xldXMvbWl4aW5zL19uYXYuc2NzcyIsIm51Y2xldXMvbWl4aW5zL190eXBvZ3JhcGh5LnNjc3MiLCJudWNsZXVzL21peGlucy9fdXRpbGl0aWVzLnNjc3MiLCJ0ZW1wbGF0ZS9tb2R1bGVzL19iYXNlLnNjc3MiLCJ0ZW1wbGF0ZS9tb2R1bGVzL19idXR0b25zLnNjc3MiLCJ0ZW1wbGF0ZS9fY29yZS5zY3NzIiwidGVtcGxhdGUvX2ZvbnRzLnNjc3MiLCJ0ZW1wbGF0ZS9fZXh0ZW5zaW9ucy5zY3NzIiwidGVtcGxhdGUvX2hlYWRlci5zY3NzIiwidGVtcGxhdGUvX2Zvb3Rlci5zY3NzIiwidGVtcGxhdGUvX3R5cG9ncmFwaHkuc2NzcyIsInRlbXBsYXRlL19mb3Jtcy5zY3NzIiwidGVtcGxhdGUvX3RhYmxlcy5zY3NzIiwidGVtcGxhdGUvX2J1dHRvbnMuc2NzcyIsInRlbXBsYXRlL19idWxsZXRzLnNjc3MiLCJ0ZW1wbGF0ZS9fcGFuZWwuc2NzcyIsInRlbXBsYXRlL19tb2RhbC5zY3NzIiwidGVtcGxhdGUvX2Jsb2cuc2NzcyIsInRlbXBsYXRlL19hcmNoaXZlLnNjc3MiLCJ0ZW1wbGF0ZS9fZXJyb3JzLnNjc3MiLCJ0ZW1wbGF0ZS9fc2ltcGxlc2VhcmNoLnNjc3MiLCJ0ZW1wbGF0ZS9fY3VzdG9tLnNjc3MiLCJ0ZW1wbGF0ZS9tb2R1bGFyL19hbGwuc2NzcyIsInRlbXBsYXRlL21vZHVsYXIvX3Nob3djYXNlLnNjc3MiLCJ0ZW1wbGF0ZS9tb2R1bGFyL19mZWF0dXJlcy5zY3NzIiwidGVtcGxhdGUvbW9kdWxhci9fYm90dG9tLnNjc3MiLCJ0ZW1wbGF0ZS9tb2R1bGFyL19jb250YWN0LnNjc3MiLCJ0ZW1wbGF0ZS9tb2R1bGFyL190ZXh0LnNjc3MiLCJ0ZW1wbGF0ZS9tb2R1bGFyL190ZWFtLnNjc3MiLCJ0ZW1wbGF0ZS9tb2R1bGFyL19wb3J0Zm9saW8uc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBSRVFVSVJFRCBERVBFTkRFTkNJRVMgLSBETyBOT1QgQ0hBTkdFXG5cbi8vIExvYWQgVGhpcmQgUGFydHkgTGlicmFyaWVzXG5AaW1wb3J0IFwidmVuZG9yL2JvdXJib24vYm91cmJvblwiO1xuXG4vLyBMb2FkIE51Y2xldXMgQ29uZmlndXJhdGlvblxuQGltcG9ydCBcImNvbmZpZ3VyYXRpb24vbnVjbGV1cy9iYXNlXCI7XG5cbi8vIExvYWQgVGVtcGxhdGUgQ29uZmlndXJhdGlvblxuQGltcG9ydCBcImNvbmZpZ3VyYXRpb24vdGVtcGxhdGUvYmFzZVwiO1xuXG4vLyBMb2FkIE51Y2xldXMgTWl4aW5zIGFuZCBGdW5jdGlvbnNcbkBpbXBvcnQgXCJudWNsZXVzL2Z1bmN0aW9ucy9iYXNlXCI7XG5AaW1wb3J0IFwibnVjbGV1cy9taXhpbnMvYmFzZVwiO1xuXG4vLyBMb2FkIFRlbXBsYXRlIExpYnJhcnlcbkBpbXBvcnQgXCJ0ZW1wbGF0ZS9tb2R1bGVzL2Jhc2VcIjtcblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFRFTVBMQVRFIENPTVBPTkVOVFNcblxuLy8gQ29yZVxuQGltcG9ydCBcInRlbXBsYXRlL2NvcmVcIjtcbkBpbXBvcnQgXCJ0ZW1wbGF0ZS9mb250c1wiO1xuXG4vLyBFeHRlbnNpb25zXG5AaW1wb3J0IFwidGVtcGxhdGUvZXh0ZW5zaW9uc1wiO1xuXG4vLyBIZWFkZXJcbkBpbXBvcnQgXCJ0ZW1wbGF0ZS9oZWFkZXJcIjtcblxuLy8gRm9vdGVyXG5AaW1wb3J0IFwidGVtcGxhdGUvZm9vdGVyXCI7XG5cbi8vIFR5cG9ncmFwaHlcbkBpbXBvcnQgXCJ0ZW1wbGF0ZS90eXBvZ3JhcGh5XCI7XG5cbi8vIEZvcm1zXG5AaW1wb3J0IFwidGVtcGxhdGUvZm9ybXNcIjtcblxuLy8gVGFibGVzXG5AaW1wb3J0IFwidGVtcGxhdGUvdGFibGVzXCI7XG5cbi8vIEJ1dHRvbnNcbkBpbXBvcnQgXCJ0ZW1wbGF0ZS9idXR0b25zXCI7XG5cbi8vIEJ1bGxldHNcbkBpbXBvcnQgXCJ0ZW1wbGF0ZS9idWxsZXRzXCI7XG5cbi8vIFB1c2h5IFBhbmVsXG5AaW1wb3J0IFwidGVtcGxhdGUvcGFuZWxcIjtcblxuLy8gTW9kYWwgd2luZG93XG5AaW1wb3J0IFwidGVtcGxhdGUvbW9kYWxcIjtcblxuLy8gQmxvZ1xuQGltcG9ydCBcInRlbXBsYXRlL2Jsb2dcIjtcblxuLy8gQXJjaGl2ZVxuQGltcG9ydCBcInRlbXBsYXRlL2FyY2hpdmVcIjtcblxuLy8gRXJyb3JzXG5AaW1wb3J0IFwidGVtcGxhdGUvZXJyb3JzXCI7XG5cbi8vIFNpbXBsZVNlYXJjaFxuQGltcG9ydCBcInRlbXBsYXRlL3NpbXBsZXNlYXJjaFwiO1xuXG4vLyBDdXN0b21cbkBpbXBvcnQgXCJ0ZW1wbGF0ZS9jdXN0b21cIjtcblxuLy8gTW9kdWxhclxuQGltcG9ydCBcInRlbXBsYXRlL21vZHVsYXIvYWxsXCI7XG4iLCIvLyBTZXR0aW5nc1xuQGltcG9ydCBcInNldHRpbmdzL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvcHgtdG8tZW1cIjtcblxuLy8gQ3VzdG9tIEhlbHBlcnNcbkBpbXBvcnQgXCJoZWxwZXJzL2NvbnZlcnQtdW5pdHNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2lzLW51bVwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWFuZ2xlLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1hcmctcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmVuZGVyLWdyYWRpZW50c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvc2hhcGUtc2l6ZS1zdHJpcHBlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvc3RyLXRvLW51bVwiO1xuXG4vLyBDdXN0b20gRnVuY3Rpb25zXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2Fzc2lnblwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9jb2xvci1saWdodG5lc3NcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvZmxleC1ncmlkXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2dvbGRlbi1yYXRpb1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9ncmlkLXdpZHRoXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL21vZHVsYXItc2NhbGVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHgtdG8tZW1cIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHgtdG8tcmVtXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3N0cmlwLXVuaXRzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3RpbnQtc2hhZGVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3VucGFja1wiO1xuXG4vLyBDU1MzIE1peGluc1xuQGltcG9ydCBcImNzczMvYW5pbWF0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy9hcHBlYXJhbmNlXCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZmFjZS12aXNpYmlsaXR5XCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kXCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kLWltYWdlXCI7XG5AaW1wb3J0IFwiY3NzMy9ib3JkZXItaW1hZ2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JvcmRlci1yYWRpdXNcIjtcbkBpbXBvcnQgXCJjc3MzL2JveC1zaXppbmdcIjtcbkBpbXBvcnQgXCJjc3MzL2NhbGNcIjtcbkBpbXBvcnQgXCJjc3MzL2NvbHVtbnNcIjtcbkBpbXBvcnQgXCJjc3MzL2ZpbHRlclwiO1xuQGltcG9ydCBcImNzczMvZmxleC1ib3hcIjtcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmFjZVwiO1xuQGltcG9ydCBcImNzczMvaHlwaGVuc1wiO1xuQGltcG9ydCBcImNzczMvaGlkcGktbWVkaWEtcXVlcnlcIjtcbkBpbXBvcnQgXCJjc3MzL2ltYWdlLXJlbmRlcmluZ1wiO1xuQGltcG9ydCBcImNzczMva2V5ZnJhbWVzXCI7XG5AaW1wb3J0IFwiY3NzMy9saW5lYXItZ3JhZGllbnRcIjtcbkBpbXBvcnQgXCJjc3MzL3BlcnNwZWN0aXZlXCI7XG5AaW1wb3J0IFwiY3NzMy9yYWRpYWwtZ3JhZGllbnRcIjtcbkBpbXBvcnQgXCJjc3MzL3RyYW5zZm9ybVwiO1xuQGltcG9ydCBcImNzczMvdHJhbnNpdGlvblwiO1xuQGltcG9ydCBcImNzczMvdXNlci1zZWxlY3RcIjtcbkBpbXBvcnQgXCJjc3MzL3BsYWNlaG9sZGVyXCI7XG5cbi8vIEFkZG9ucyAmIG90aGVyIG1peGluc1xuQGltcG9ydCBcImFkZG9ucy9idXR0b25cIjtcbkBpbXBvcnQgXCJhZGRvbnMvY2xlYXJmaXhcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZGlyZWN0aW9uYWwtdmFsdWVzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2VsbGlwc2lzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2ZvbnQtZmFtaWx5XCI7XG5AaW1wb3J0IFwiYWRkb25zL2hpZGUtdGV4dFwiO1xuQGltcG9ydCBcImFkZG9ucy9odG1sNS1pbnB1dC10eXBlc1wiO1xuQGltcG9ydCBcImFkZG9ucy9wb3NpdGlvblwiO1xuQGltcG9ydCBcImFkZG9ucy9wcmVmaXhlclwiO1xuQGltcG9ydCBcImFkZG9ucy9yZXRpbmEtaW1hZ2VcIjtcbkBpbXBvcnQgXCJhZGRvbnMvc2l6ZVwiO1xuQGltcG9ydCBcImFkZG9ucy90aW1pbmctZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RyaWFuZ2xlXCI7XG5AaW1wb3J0IFwiYWRkb25zL3dvcmQtd3JhcFwiO1xuXG4vLyBTb29uIHRvIGJlIGRlcHJlY2F0ZWQgTWl4aW5zXG5AaW1wb3J0IFwiYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nXCI7XG4iLCIvLyBWYXJpYWJsZSBzZXR0aW5ncyBmb3IgL2FkZG9ucy9wcmVmaXhlci5zY3NzXG4kcHJlZml4LWZvci13ZWJraXQ6ICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1tb3ppbGxhOiAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1taWNyb3NvZnQ6IHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1vcGVyYTogICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1zcGVjOiAgICAgIHRydWUgIWRlZmF1bHQ7IC8vIHJlcXVpcmVkIGZvciBrZXlmcmFtZSBtaXhpblxuIiwiJGVtLWJhc2U6IDE2cHggIWRlZmF1bHQ7XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIHN0ci10by1udW0gZm4uXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gX2NvbnZlcnQtdW5pdHMoJG51bWJlciwgJHVuaXQpIHtcbiAgJHN0cmluZ3M6ICdweCcgJ2NtJyAnbW0nICclJyAnY2gnICdwaWNhJyAnaW4nICdlbScgJ3JlbScgJ3B0JyAncGMnICdleCcgJ3Z3JyAndmgnICd2bWluJyAndm1heCcsICdkZWcnLCAncmFkJywgJ2dyYWQnLCAndHVybic7XG4gICR1bml0czogICAxcHggIDFjbSAgMW1tICAxJSAgMWNoICAxcGljYSAgMWluICAxZW0gIDFyZW0gIDFwdCAgMXBjICAxZXggIDF2dyAgMXZoICAxdm1pbiAgMXZtYXgsICAxZGVnLCAgMXJhZCwgIDFncmFkLCAxdHVybjtcbiAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJHVuaXQpO1xuXG4gIEBpZiBub3QgJGluZGV4IHtcbiAgICBAd2FybiBcIlVua25vd24gdW5pdCBgI3skdW5pdH1gLlwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbiAgQHJldHVybiAkbnVtYmVyICogbnRoKCR1bml0cywgJGluZGV4KTtcbn1cbiIsIkBmdW5jdGlvbiBfZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtdHlwZSwgJGdyYWRpZW50LXBvc2l0aW9ucykge1xuICBAaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xuICBhbmQgKCRncmFkaWVudC10eXBlID09IGxpbmVhcilcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xuICB9XG4gIEBlbHNlIGlmICRncmFkaWVudC1wb3NpdGlvbnNcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwpXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcbiAgfVxuICBAcmV0dXJuICRncmFkaWVudC1wb3NpdGlvbnM7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBIZWxwZXIgZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiBfaXMtbnVtKCRjaGFyKSB7XG4gICR2YWx1ZXM6ICcwJyAnMScgJzInICczJyAnNCcgJzUnICc2JyAnNycgJzgnICc5JyAwIDEgMiAzIDQgNSA2IDcgOCA5O1xuICAkaW5kZXg6IGluZGV4KCR2YWx1ZXMsICRjaGFyKTtcbiAgQHJldHVybiBpZigkaW5kZXgsIHRydWUsIGZhbHNlKTtcbn1cbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcbkBmdW5jdGlvbiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpIHtcbiAgJG9mZnNldDogbnVsbDtcbiAgJHVuaXQtc2hvcnQ6ICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDIsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAkdW5pdC1sb25nOiAgIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG5cbiAgQGlmICgkdW5pdC1sb25nID09IFwiZ3JhZFwiKSBvclxuICAgICAgKCR1bml0LWxvbmcgPT0gXCJ0dXJuXCIpIHtcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1sb25nID09IFwiZ3JhZFwiLCAtMTAwZ3JhZCAqIDMsIC0wLjc1dHVybik7XG4gIH1cblxuICBAZWxzZSBpZiAoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIikgb3JcbiAgICAgICAgICAgKCR1bml0LXNob3J0ID09IFwicmFkXCIpIHtcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1zaG9ydCA9PSBcImRlZ1wiLCAtOTAgKiAzLCAxLjZyYWQpO1xuICB9XG5cbiAgQGlmICRvZmZzZXQge1xuICAgICRudW06IF9zdHItdG8tbnVtKCRmaXJzdC12YWwpO1xuXG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICgkb2Zmc2V0IC0gJG51bSkgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcbiAgJGdyYWRpZW50czogKCk7XG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcblxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAwLCAkc3RhcnQpO1xuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xuXG4gICRoYXMtbXVsdGlwbGUtdmFsczogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiIFwiKTtcbiAgJGhhcy1zaW5nbGUtcG9zaXRpb246IHVucXVvdGUoX3Bvc2l0aW9uLWZsaXBwZXIoJGZpcnN0LXZhbCkgKyBcIlwiKTtcbiAgJGhhcy1hbmdsZTogX2lzLW51bShzdHItc2xpY2UoJGZpcnN0LXZhbCwgMCwgMCkpO1xuXG4gIEBpZiAkaGFzLW11bHRpcGxlLXZhbHMge1xuICAgICRncmFkaWVudHM6IF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCwgJGhhcy1tdWx0aXBsZS12YWxzKTtcbiAgfVxuXG4gIEBlbHNlIGlmICRoYXMtc2luZ2xlLXBvc2l0aW9uICE9IFwiXCIge1xuICAgICRwb3M6IHVucXVvdGUoJGhhcy1zaW5nbGUtcG9zaXRpb24gKyBcIlwiKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIGlmICRoYXMtYW5nbGUge1xuICAgIC8vIFJvdGF0ZSBkZWdyZWUgZm9yIHdlYmtpdFxuICAgICRncmFkaWVudHM6IF9saW5lYXItYW5nbGUtcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCk7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAcmV0dXJuICRncmFkaWVudHM7XG59XG4iLCJAZnVuY3Rpb24gX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpIHtcbiAgJHR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcbiAgJHNwZWM6IG51bGw7XG4gICRkZWdyZWU6IG51bGw7XG4gICRzaWRlOiBudWxsO1xuICAkY29ybmVyOiBudWxsO1xuICAkbGVuZ3RoOiBsZW5ndGgoJHBvcyk7XG4gIC8vIFBhcnNlIFNpZGUgYW5kIGNvcm5lciBwb3NpdGlvbnNcbiAgQGlmICgkbGVuZ3RoID4gMSkge1xuICAgIEBpZiBudGgoJHBvcywgMSkgPT0gXCJ0b1wiIHsgLy8gTmV3ZXIgc3ludGF4XG4gICAgICAkc2lkZTogbnRoKCRwb3MsIDIpO1xuXG4gICAgICBAaWYgJGxlbmd0aCA9PSAyIHsgLy8gZWcuIHRvIHRvcFxuICAgICAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0YWJpbGl0eVxuICAgICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAzIHsgLy8gZWcuIHRvIHRvcCBsZWZ0XG4gICAgICAgICRjb3JuZXI6IG50aCgkcG9zLCAzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAyIHsgLy8gT2xkZXIgc3ludGF4IChcInRvcCBsZWZ0XCIpXG4gICAgICAkc2lkZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDEpKTtcbiAgICAgICRjb3JuZXI6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XG4gICAgfVxuXG4gICAgQGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCBsZWZ0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCByaWdodFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gcmlnaHRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gbGVmdFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgICRzcGVjOiB0byAkc2lkZSAkY29ybmVyO1xuICB9XG4gIEBlbHNlIGlmICRsZW5ndGggPT0gMSB7XG4gICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGFiaWxpdHlcbiAgICBAaWYgJHR5cGUgPT0gc3RyaW5nIHtcbiAgICAgICRkZWdyZWU6ICRwb3M7XG4gICAgICAkc3BlYzogdG8gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRkZWdyZWU6IC0yNzAgLSAkcG9zOyAvL3JvdGF0ZSB0aGUgZ3JhZGllbnQgb3Bwb3NpdGUgZnJvbSBzcGVjXG4gICAgICAkc3BlYzogJHBvcztcbiAgICB9XG4gIH1cbiAgJGRlZ3JlZTogdW5xdW90ZSgkZGVncmVlICsgXCIsXCIpO1xuICAkc3BlYzogICB1bnF1b3RlKCRzcGVjICsgXCIsXCIpO1xuICBAcmV0dXJuICRkZWdyZWUgJHNwZWM7XG59XG5cbkBmdW5jdGlvbiBfcG9zaXRpb24tZmxpcHBlcigkcG9zKSB7XG4gQHJldHVybiBpZigkcG9zID09IGxlZnQsIHJpZ2h0LCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSByaWdodCwgbGVmdCwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gdG9wLCBib3R0b20sIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IGJvdHRvbSwgdG9wLCBudWxsKTtcbn1cbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcbkBmdW5jdGlvbiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscykge1xuICAkdmFsLTE6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAwLCAkaGFzLW11bHRpcGxlLXZhbHMgLSAxICk7XG4gICR2YWwtMjogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRoYXMtbXVsdGlwbGUtdmFscyArIDEsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAkdmFsLTM6IG51bGw7XG4gICRoYXMtdmFsLTM6IHN0ci1pbmRleCgkdmFsLTIsIFwiIFwiKTtcblxuICBAaWYgJGhhcy12YWwtMyB7XG4gICAgJHZhbC0zOiBzdHItc2xpY2UoJHZhbC0yLCAkaGFzLXZhbC0zICsgMSwgc3RyLWxlbmd0aCgkdmFsLTIpKTtcbiAgICAkdmFsLTI6IHN0ci1zbGljZSgkdmFsLTIsIDAsICRoYXMtdmFsLTMgLSAxKTtcbiAgfVxuXG4gICRwb3M6IF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMSkgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0yKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTMpO1xuICAkcG9zOiB1bnF1b3RlKCRwb3MgKyBcIlwiKTtcblxuICAvLyBVc2Ugb2xkIHNwZWMgZm9yIHdlYmtpdFxuICBAaWYgJHZhbC0xID09IFwidG9cIiB7XG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIC8vIEJyaW5nIHRoZSBjb2RlIHVwIHRvIHNwZWNcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcbiAgICApO1xuICB9XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1hcmctcGFyc2VyKCRHMSwgJEcyLCAkcG9zLCAkc2hhcGUtc2l6ZSkge1xuICBAZWFjaCAkdmFsdWUgaW4gJEcxLCAkRzIge1xuICAgICRmaXJzdC12YWw6IG50aCgkdmFsdWUsIDEpO1xuICAgICRwb3MtdHlwZTogIHR5cGUtb2YoJGZpcnN0LXZhbCk7XG4gICAgJHNwZWMtYXQtaW5kZXg6IG51bGw7XG5cbiAgICAvLyBEZXRlcm1pbmUgaWYgc3BlYyB3YXMgcGFzc2VkIHRvIG1peGluXG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBsaXN0IHtcbiAgICAgICRzcGVjLWF0LWluZGV4OiBpZihpbmRleCgkdmFsdWUsIGF0KSwgaW5kZXgoJHZhbHVlLCBhdCksIGZhbHNlKTtcbiAgICB9XG4gICAgQGlmICRzcGVjLWF0LWluZGV4IHtcbiAgICAgIEBpZiAkc3BlYy1hdC1pbmRleCA+IDEge1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICgkc3BlYy1hdC1pbmRleCAtIDEpIHtcbiAgICAgICAgICAkc2hhcGUtc2l6ZTogJHNoYXBlLXNpemUgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICAgICAkcG9zOiAkcG9zIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHNwZWMtYXQtaW5kZXggPT0gMSB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICAgICAkcG9zOiAkcG9zIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJEcxOiBudWxsO1xuICAgIH1cblxuICAgIC8vIElmIG5vdCBzcGVjIGNhbGN1bGF0ZSBjb3JyZWN0IHZhbHVlc1xuICAgIEBlbHNlIHtcbiAgICAgIEBpZiAoJHBvcy10eXBlICE9IGNvbG9yKSBvciAoJGZpcnN0LXZhbCAhPSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAgICAgQGlmICgkcG9zLXR5cGUgPT0gbnVtYmVyKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNlbnRlclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInRvcFwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInJpZ2h0XCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiYm90dG9tXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwibGVmdFwiKSB7XG5cbiAgICAgICAgICAkcG9zOiAkdmFsdWU7XG5cbiAgICAgICAgICBAaWYgJHBvcyA9PSAkRzEge1xuICAgICAgICAgICAgJEcxOiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIGlmXG4gICAgICAgICAgICgkZmlyc3QtdmFsID09IFwiZWxsaXBzZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNpcmNsZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3Qtc2lkZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3QtY29ybmVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3Qtc2lkZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LWNvcm5lclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvbnRhaW5cIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb3ZlclwiKSB7XG5cbiAgICAgICAgICAkc2hhcGUtc2l6ZTogJHZhbHVlO1xuXG4gICAgICAgICAgQGlmICR2YWx1ZSA9PSAkRzEge1xuICAgICAgICAgICAgJEcxOiBudWxsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBlbHNlIGlmICR2YWx1ZSA9PSAkRzIge1xuICAgICAgICAgICAgJEcyOiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAcmV0dXJuICRHMSwgJEcyLCAkcG9zLCAkc2hhcGUtc2l6ZTtcbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvcykge1xuICAkc2hhcGUtc2l6ZTogbnRoKCRncmFkaWVudC1wb3MsIDEpO1xuICAkcG9zOiAgICAgICAgbnRoKCRncmFkaWVudC1wb3MsIDIpO1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSk7XG5cbiAgJHByZS1zcGVjOiB1bnF1b3RlKGlmKCRwb3MsIFwiI3skcG9zfSwgXCIsIG51bGwpKVxuICAgICAgICAgICAgIHVucXVvdGUoaWYoJHNoYXBlLXNpemUsIFwiI3skc2hhcGUtc2l6ZX0sXCIsIG51bGwpKTtcbiAgJHBvcy1zcGVjOiBpZigkcG9zLCBcImF0ICN7JHBvc31cIiwgbnVsbCk7XG5cbiAgJHNwZWM6IFwiI3skc2hhcGUtc2l6ZS1zcGVjfSAjeyRwb3Mtc3BlY31cIjtcblxuICAvLyBBZGQgY29tbWFcbiAgQGlmICgkc3BlYyAhPSAnICAnKSB7XG4gICAgJHNwZWM6IFwiI3skc3BlY30sXCJcbiAgfVxuXG4gIEByZXR1cm4gJHByZS1zcGVjICRzcGVjO1xufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcbiAgJGdyYWRpZW50czogKCk7XG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcblxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAwLCAkc3RhcnQpO1xuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xuXG4gICRpcy1zcGVjLXN5bnRheDogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiYXRcIik7XG5cbiAgQGlmICRpcy1zcGVjLXN5bnRheCBhbmQgJGlzLXNwZWMtc3ludGF4ID4gMSB7XG4gICAgJGtleXdvcmQ6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAkaXMtc3BlYy1zeW50YXggLSAyKTtcbiAgICAkcG9zOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGlzLXNwZWMtc3ludGF4ICsgMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICAgJHBvczogYXBwZW5kKCRwb3MsICRrZXl3b3JkLCBjb21tYSk7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKVxuICB9XG5cbiAgQGVsc2UgaWYgJGlzLXNwZWMtc3ludGF4ID09IDEge1xuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApXG4gIH1cblxuICBAZWxzZSBpZiBzdHItaW5kZXgoJGltYWdlLCBcImNvdmVyXCIpIG9yIHN0ci1pbmRleCgkaW1hZ2UsIFwiY29udGFpblwiKSB7XG4gICAgQHdhcm4gXCJSYWRpYWwtZ3JhZGllbnQgbmVlZHMgdG8gYmUgdXBkYXRlZCB0byBjb25mb3JtIHRvIGxhdGVzdCBzcGVjLlwiO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiBudWxsLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKVxuICB9XG5cbiAgQGVsc2Uge1xuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApXG4gIH1cblxuICBAcmV0dXJuICRncmFkaWVudHM7XG59XG4iLCIvLyBVc2VyIGZvciBsaW5lYXIgYW5kIHJhZGlhbCBncmFkaWVudHMgd2l0aGluIGJhY2tncm91bmQtaW1hZ2Ugb3IgYm9yZGVyLWltYWdlIHByb3BlcnRpZXNcblxuQGZ1bmN0aW9uIF9yZW5kZXItZ3JhZGllbnRzKCRncmFkaWVudC1wb3NpdGlvbnMsICRncmFkaWVudHMsICRncmFkaWVudC10eXBlLCAkdmVuZG9yOiBmYWxzZSkge1xuICAkcHJlLXNwZWM6IG51bGw7XG4gICRzcGVjOiBudWxsO1xuICAkdmVuZG9yLWdyYWRpZW50czogbnVsbDtcbiAgQGlmICRncmFkaWVudC10eXBlID09IGxpbmVhciB7XG4gICAgQGlmICRncmFkaWVudC1wb3NpdGlvbnMge1xuICAgICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XG4gICAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsIHtcbiAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcbiAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcbiAgfVxuXG4gIEBpZiAkdmVuZG9yIHtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogLSN7JHZlbmRvcn0tI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skcHJlLXNwZWN9ICRncmFkaWVudHMpO1xuICB9XG4gIEBlbHNlIGlmICR2ZW5kb3IgPT0gZmFsc2Uge1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiBcIiN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHNwZWN9ICN7JGdyYWRpZW50c30pXCI7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IHVucXVvdGUoJHZlbmRvci1ncmFkaWVudHMpO1xuICB9XG4gIEByZXR1cm4gJHZlbmRvci1ncmFkaWVudHM7XG59XG4iLCJAZnVuY3Rpb24gX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpIHtcbiAgJHNoYXBlLXNpemUtc3BlYzogbnVsbDtcbiAgQGVhY2ggJHZhbHVlIGluICRzaGFwZS1zaXplIHtcbiAgICBAaWYgKCR2YWx1ZSA9PSBcImNvdmVyXCIpIG9yICgkdmFsdWUgPT0gXCJjb250YWluXCIpIHtcbiAgICAgICR2YWx1ZTogbnVsbDtcbiAgICB9XG4gICAgJHNoYXBlLXNpemUtc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHZhbHVlfVwiO1xuICB9XG4gIEByZXR1cm4gJHNoYXBlLXNpemUtc3BlYztcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEhlbHBlciBmdW5jdGlvbiBmb3IgbGluZWFyL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJzLlxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIF9zdHItdG8tbnVtKCRzdHJpbmcpIHtcbiAgLy8gTWF0cmljZXNcbiAgJHN0cmluZ3M6ICcwJyAnMScgJzInICczJyAnNCcgJzUnICc2JyAnNycgJzgnICc5JztcbiAgJG51bWJlcnM6ICAwICAgMSAgIDIgICAzICAgNCAgIDUgICA2ICAgNyAgIDggICA5O1xuXG4gIC8vIFJlc3VsdFxuICAkcmVzdWx0OiAwO1xuICAkZGl2aWRlcjogMDtcbiAgJG1pbnVzOiBmYWxzZTtcblxuICAvLyBMb29waW5nIHRocm91Z2ggYWxsIGNoYXJhY3RlcnNcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCRzdHJpbmcpIHtcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHN0cmluZywgJGksICRpKTtcbiAgICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkY2hhcmFjdGVyKTtcblxuICAgIEBpZiAkY2hhcmFjdGVyID09ICctJyB7XG4gICAgICAkbWludXM6IHRydWU7XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgJGNoYXJhY3RlciA9PSAnLicge1xuICAgICAgJGRpdmlkZXI6IDE7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgQGlmIG5vdCAkaW5kZXgge1xuICAgICAgICAkcmVzdWx0OiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XG4gICAgICAgIEByZXR1cm4gX2NvbnZlcnQtdW5pdHMoJHJlc3VsdCwgc3RyLXNsaWNlKCRzdHJpbmcsICRpKSk7XG4gICAgICB9XG5cbiAgICAgICRudW1iZXI6IG50aCgkbnVtYmVycywgJGluZGV4KTtcblxuICAgICAgQGlmICRkaXZpZGVyID09IDAge1xuICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTA7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgLy8gTW92ZSB0aGUgZGVjaW1hbCBkb3QgdG8gdGhlIGxlZnRcbiAgICAgICAgJGRpdmlkZXI6ICRkaXZpZGVyICogMTA7XG4gICAgICAgICRudW1iZXI6ICRudW1iZXIgLyAkZGl2aWRlcjtcbiAgICAgIH1cblxuICAgICAgJHJlc3VsdDogJHJlc3VsdCArICRudW1iZXI7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gaWYoJG1pbnVzLCAkcmVzdWx0ICogLTEsICRyZXN1bHQpO1xufVxuIiwiQGZ1bmN0aW9uIGFzc2lnbi1pbnB1dHMoJGlucHV0cywgJHBzZXVkbzogbnVsbCkge1xuICAkbGlzdCA6ICgpO1xuXG4gIEBlYWNoICRpbnB1dCBpbiAkaW5wdXRzIHtcbiAgICAkaW5wdXQ6IHVucXVvdGUoJGlucHV0KTtcbiAgICAkaW5wdXQ6IGlmKCRwc2V1ZG8sICRpbnB1dCArIFwiOlwiICsgJHBzZXVkbywgJGlucHV0KTtcbiAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkaW5wdXQsIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJGxpc3Q7XG59IiwiLy8gUHJvZ3JhbWF0aWNhbGx5IGRldGVybWluZXMgd2hldGhlciBhIGNvbG9yIGlzIGxpZ2h0IG9yIGRhcmtcbi8vIFJldHVybnMgYSBib29sZWFuXG4vLyBNb3JlIGRldGFpbHMgaGVyZSBodHRwOi8vcm9ib3RzLnRob3VnaHRib3QuY29tL2Nsb3Nlci1sb29rLWNvbG9yLWxpZ2h0bmVzc1xuXG5AZnVuY3Rpb24gaXMtbGlnaHQoJGhleC1jb2xvcikge1xuICAkLWxvY2FsLXJlZDogcmVkKHJnYmEoJGhleC1jb2xvciwgMS4wKSk7XG4gICQtbG9jYWwtZ3JlZW46IGdyZWVuKHJnYmEoJGhleC1jb2xvciwgMS4wKSk7XG4gICQtbG9jYWwtYmx1ZTogYmx1ZShyZ2JhKCRoZXgtY29sb3IsIDEuMCkpO1xuXG4gICQtbG9jYWwtbGlnaHRuZXNzOiAoJC1sb2NhbC1yZWQgKiAwLjIxMjYgKyAkLWxvY2FsLWdyZWVuICogMC43MTUyICsgJC1sb2NhbC1ibHVlICogMC4wNzIyKSAvIDI1NTtcblxuICBAcmV0dXJuICQtbG9jYWwtbGlnaHRuZXNzID4gLjY7XG59XG4iLCIvLyBGbGV4aWJsZSBncmlkXG5AZnVuY3Rpb24gZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucykge1xuICAkd2lkdGg6ICRjb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkd2lkdGggLyAkY29udGFpbmVyLXdpZHRoKTtcbn1cblxuLy8gRmxleGlibGUgZ3V0dGVyXG5AZnVuY3Rpb24gZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMsICRndXR0ZXI6ICRmZy1ndXR0ZXIpIHtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkZ3V0dGVyIC8gJGNvbnRhaW5lci13aWR0aCk7XG59XG5cbi8vIFRoZSAkZmctY29sdW1uLCAkZmctZ3V0dGVyIGFuZCAkZmctbWF4LWNvbHVtbnMgdmFyaWFibGVzIG11c3QgYmUgZGVmaW5lZCBpbiB5b3VyIGJhc2Ugc3R5bGVzaGVldCB0byBwcm9wZXJseSB1c2UgdGhlIGZsZXgtZ3JpZCBmdW5jdGlvbi5cbi8vIFRoaXMgZnVuY3Rpb24gdGFrZXMgdGhlIGZsdWlkIGdyaWQgZXF1YXRpb24gKHRhcmdldCAvIGNvbnRleHQgPSByZXN1bHQpIGFuZCB1c2VzIGNvbHVtbnMgdG8gaGVscCBkZWZpbmUgZWFjaC5cbi8vXG4vLyBUaGUgY2FsY3VsYXRpb24gcHJlc3VtZXMgdGhhdCB5b3VyIGNvbHVtbiBzdHJ1Y3R1cmUgd2lsbCBiZSBtaXNzaW5nIHRoZSBsYXN0IGd1dHRlcjpcbi8vXG4vLyAgIC0tIGNvbHVtbiAtLSBndXR0ZXIgLS0gY29sdW1uIC0tIGd1dHRlciAtLSBjb2x1bW5cbi8vXG4vLyAgJGZnLWNvbHVtbjogNjBweDsgICAgICAgICAgICAgLy8gQ29sdW1uIFdpZHRoXG4vLyAgJGZnLWd1dHRlcjogMjVweDsgICAgICAgICAgICAgLy8gR3V0dGVyIFdpZHRoXG4vLyAgJGZnLW1heC1jb2x1bW5zOiAxMjsgICAgICAgICAgLy8gVG90YWwgQ29sdW1ucyBGb3IgTWFpbiBDb250YWluZXJcbi8vXG4vLyAgZGl2IHtcbi8vICAgIHdpZHRoOiBmbGV4LWdyaWQoNCk7ICAgICAgICAvLyByZXR1cm5zICgzMTVweCAvIDk5NXB4KSA9IDMxLjY1ODI5JTtcbi8vICAgIG1hcmdpbi1sZWZ0OiBmbGV4LWd1dHRlcigpOyAvLyByZXR1cm5zICgyNXB4IC8gOTk1cHgpID0gMi41MTI1NiU7XG4vL1xuLy8gICAgcCB7XG4vLyAgICAgIHdpZHRoOiBmbGV4LWdyaWQoMiwgNCk7ICAvLyByZXR1cm5zICgxNDVweCAvIDMxNXB4KSA9IDQ2LjAzMTc0NiU7XG4vLyAgICAgIGZsb2F0OiBsZWZ0O1xuLy8gICAgICBtYXJnaW46IGZsZXgtZ3V0dGVyKDQpOyAgLy8gcmV0dXJucyAoMjVweCAvIDMxNXB4KSA9IDcuOTM2NTA4JTtcbi8vICAgIH1cbi8vXG4vLyAgICBibG9ja3F1b3RlIHtcbi8vICAgICAgZmxvYXQ6IGxlZnQ7XG4vLyAgICAgIHdpZHRoOiBmbGV4LWdyaWQoMiwgNCk7IC8vIHJldHVybnMgKDE0NXB4IC8gMzE1cHgpID0gNDYuMDMxNzQ2JTtcbi8vICAgIH1cbi8vICB9IiwiQGZ1bmN0aW9uIGdvbGRlbi1yYXRpbygkdmFsdWUsICRpbmNyZW1lbnQpIHtcbiAgQHJldHVybiBtb2R1bGFyLXNjYWxlKCR2YWx1ZSwgJGluY3JlbWVudCwgJGdvbGRlbilcbn1cbiIsIkBmdW5jdGlvbiBncmlkLXdpZHRoKCRuKSB7XG4gIEByZXR1cm4gJG4gKiAkZ3ctY29sdW1uICsgKCRuIC0gMSkgKiAkZ3ctZ3V0dGVyO1xufVxuXG4vLyBUaGUgJGd3LWNvbHVtbiBhbmQgJGd3LWd1dHRlciB2YXJpYWJsZXMgbXVzdCBiZSBkZWZpbmVkIGluIHlvdXIgYmFzZSBzdHlsZXNoZWV0IHRvIHByb3Blcmx5IHVzZSB0aGUgZ3JpZC13aWR0aCBmdW5jdGlvbi5cbi8vXG4vLyAgJGd3LWNvbHVtbjogMTAwcHg7ICAgICAgICAgLy8gQ29sdW1uIFdpZHRoXG4vLyAgJGd3LWd1dHRlcjogNDBweDsgICAgICAgICAgLy8gR3V0dGVyIFdpZHRoXG4vL1xuLy8gIGRpdiB7XG4vLyAgICB3aWR0aDogZ3JpZC13aWR0aCg0KTsgICAgLy8gcmV0dXJucyA1MjBweDtcbi8vICAgIG1hcmdpbi1sZWZ0OiAkZ3ctZ3V0dGVyOyAvLyByZXR1cm5zIDQwcHg7XG4vLyAgfVxuIiwiLy8gU2NhbGluZyBWYXJpYWJsZXNcbiRnb2xkZW46ICAgICAgICAgICAxLjYxODtcbiRtaW5vci1zZWNvbmQ6ICAgICAxLjA2NztcbiRtYWpvci1zZWNvbmQ6ICAgICAxLjEyNTtcbiRtaW5vci10aGlyZDogICAgICAxLjI7XG4kbWFqb3ItdGhpcmQ6ICAgICAgMS4yNTtcbiRwZXJmZWN0LWZvdXJ0aDogICAxLjMzMztcbiRhdWdtZW50ZWQtZm91cnRoOiAxLjQxNDtcbiRwZXJmZWN0LWZpZnRoOiAgICAxLjU7XG4kbWlub3Itc2l4dGg6ICAgICAgMS42O1xuJG1ham9yLXNpeHRoOiAgICAgIDEuNjY3O1xuJG1pbm9yLXNldmVudGg6ICAgIDEuNzc4O1xuJG1ham9yLXNldmVudGg6ICAgIDEuODc1O1xuJG9jdGF2ZTogICAgICAgICAgIDI7XG4kbWFqb3ItdGVudGg6ICAgICAgMi41O1xuJG1ham9yLWVsZXZlbnRoOiAgIDIuNjY3O1xuJG1ham9yLXR3ZWxmdGg6ICAgIDM7XG4kZG91YmxlLW9jdGF2ZTogICAgNDtcblxuQGZ1bmN0aW9uIG1vZHVsYXItc2NhbGUoJHZhbHVlLCAkaW5jcmVtZW50LCAkcmF0aW8pIHtcbiAgJHYxOiBudGgoJHZhbHVlLCAxKTtcbiAgJHYyOiBudGgoJHZhbHVlLCBsZW5ndGgoJHZhbHVlKSk7XG4gICR2YWx1ZTogJHYxO1xuXG4gIC8vIHNjYWxlICR2MiB0byBqdXN0IGFib3ZlICR2MVxuICBAd2hpbGUgJHYyID4gJHYxIHtcbiAgICAkdjI6ICgkdjIgLyAkcmF0aW8pOyAvLyB3aWxsIGJlIG9mZi1ieS0xXG4gIH1cbiAgQHdoaWxlICR2MiA8ICR2MSB7XG4gICAgJHYyOiAoJHYyICogJHJhdGlvKTsgLy8gd2lsbCBmaXggb2ZmLWJ5LTFcbiAgfVxuXG4gIC8vIGNoZWNrIEFGVEVSIHNjYWxpbmcgJHYyIHRvIHByZXZlbnQgZG91YmxlLWNvdW50aW5nIGNvcm5lci1jYXNlXG4gICRkb3VibGUtc3RyYW5kZWQ6ICR2MiA+ICR2MTtcblxuICBAaWYgJGluY3JlbWVudCA+IDAge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGluY3JlbWVudCB7XG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAqICRyYXRpbykgPiAkdjIge1xuICAgICAgICAkdmFsdWU6ICR2MjtcbiAgICAgICAgJHYyOiAoJHYyICogJHJhdGlvKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdjE6ICgkdjEgKiAkcmF0aW8pO1xuICAgICAgICAkdmFsdWU6ICR2MTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJGluY3JlbWVudCA8IDAge1xuICAgIC8vIGFkanVzdCAkdjIgdG8ganVzdCBiZWxvdyAkdjFcbiAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCB7XG4gICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgIH1cblxuICAgIEBmb3IgJGkgZnJvbSAkaW5jcmVtZW50IHRocm91Z2ggLTEge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgLyAkcmF0aW8pIDwgJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxIC8gJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byBlbXNcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgZW0oMTIpIHdoZW4gdGhlIHBhcmVudCBpcyAxNnB4XG4vLyBpZiB0aGUgcGFyZW50IGlzIGFub3RoZXIgdmFsdWUgc2F5IDI0cHggd3JpdGUgZW0oMTIsIDI0KVxuXG5AZnVuY3Rpb24gZW0oJHB4dmFsLCAkYmFzZTogJGVtLWJhc2UpIHtcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgfVxuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICB9XG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFlbTtcbn1cbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIHJlbXNcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgcmVtKDEyKVxuLy8gQXNzdW1lcyAkZW0tYmFzZSBpcyB0aGUgZm9udC1zaXplIG9mIDxodG1sPlxuXG5AZnVuY3Rpb24gcmVtKCRweHZhbCkge1xuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xuICAgICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xuICB9XG5cbiAgJGJhc2U6ICRlbS1iYXNlO1xuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICB9XG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFyZW07XG59XG4iLCIvLyBTcnRpcHMgdGhlIHVuaXRzIGZyb20gYSB2YWx1ZS4gZS5nLiAxMnB4IC0+IDEyXG5cbkBmdW5jdGlvbiBzdHJpcC11bml0cygkdmFsKSB7XG4gIEByZXR1cm4gKCR2YWwgLyAoJHZhbCAqIDAgKyAxKSk7XG59XG4iLCIvLyBBZGQgcGVyY2VudGFnZSBvZiB3aGl0ZSB0byBhIGNvbG9yXG5AZnVuY3Rpb24gdGludCgkY29sb3IsICRwZXJjZW50KXtcbiAgQHJldHVybiBtaXgod2hpdGUsICRjb2xvciwgJHBlcmNlbnQpO1xufVxuXG4vLyBBZGQgcGVyY2VudGFnZSBvZiBibGFjayB0byBhIGNvbG9yXG5AZnVuY3Rpb24gc2hhZGUoJGNvbG9yLCAkcGVyY2VudCl7XG4gIEByZXR1cm4gbWl4KGJsYWNrLCAkY29sb3IsICRwZXJjZW50KTtcbn1cbiIsIi8vIFJldHVybiB2ZW5kb3ItcHJlZml4ZWQgcHJvcGVydHkgbmFtZXMgaWYgYXBwcm9wcmlhdGVcbi8vIEV4YW1wbGU6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoKHRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmQpLCBtb3opIC0+IC1tb3otdHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BzLCAkdmVuZG9yOiBmYWxzZSkge1xuXHQkbmV3LXByb3BzOiAoKTtcblx0XG5cdEBlYWNoICRwcm9wIGluICRwcm9wcyB7XG5cdFx0JG5ldy1wcm9wczogYXBwZW5kKCRuZXctcHJvcHMsIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvciksIGNvbW1hKTtcblx0fVxuXG5cdEByZXR1cm4gJG5ldy1wcm9wcztcbn1cblxuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvcjogZmFsc2UpIHtcblx0Ly8gcHV0IG90aGVyIHByb3BlcnRpZXMgdGhhdCBuZWVkIHRvIGJlIHByZWZpeGVkIGhlcmUgYXN3ZWxsXG5cdEBpZiAkdmVuZG9yIGFuZCAkcHJvcCA9PSB0cmFuc2Zvcm0ge1xuXHRcdEByZXR1cm4gdW5xdW90ZSgnLScrJHZlbmRvcisnLScrJHByb3ApO1xuXHR9XG5cdEBlbHNlIHtcblx0XHRAcmV0dXJuICRwcm9wO1xuXHR9XG59IiwiLy8gQ29udmVydCBzaG9ydGhhbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4XG5cbkBmdW5jdGlvbiB1bnBhY2soJHNob3J0aGFuZCkge1xuICBAaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDEge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpO1xuICB9XG4gIEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAyIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKTtcbiAgfVxuICBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMyB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAzKSBudGgoJHNob3J0aGFuZCwgMik7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJHNob3J0aGFuZDtcbiAgfVxufVxuXG4iLCIvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWFuaW1hdGlvbnMvI3RoZS1hbmltYXRpb24tbmFtZS1wcm9wZXJ0eS1cbi8vIEVhY2ggb2YgdGhlc2UgbWl4aW5zIHN1cHBvcnQgY29tbWEgc2VwYXJhdGVkIGxpc3RzIG9mIHZhbHVlcywgd2hpY2ggYWxsb3dzIGRpZmZlcmVudCB0cmFuc2l0aW9ucyBmb3IgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIHRvIGJlIGRlc2NyaWJlZCBpbiBhIHNpbmdsZSBzdHlsZSBydWxlLiBFYWNoIHZhbHVlIGluIHRoZSBsaXN0IGNvcnJlc3BvbmRzIHRvIHRoZSB2YWx1ZSBhdCB0aGF0IHNhbWUgcG9zaXRpb24gaW4gdGhlIG90aGVyIHByb3BlcnRpZXMuXG5cbi8vIE9mZmljaWFsIGFuaW1hdGlvbiBzaG9ydGhhbmQgcHJvcGVydHkuXG5AbWl4aW4gYW5pbWF0aW9uICgkYW5pbWF0aW9ucy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24sICRhbmltYXRpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyBJbmRpdmlkdWFsIEFuaW1hdGlvbiBQcm9wZXJ0aWVzXG5AbWl4aW4gYW5pbWF0aW9uLW5hbWUgKCRuYW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tbmFtZSwgJG5hbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24tZHVyYXRpb24gKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiAoJG1vdGlvbnMuLi4pIHtcbi8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCAoJHZhbHVlcy4uLikge1xuLy8gaW5maW5pdGUgfCA8bnVtYmVyPlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCAkdmFsdWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24tZGlyZWN0aW9uICgkZGlyZWN0aW9ucy4uLikge1xuLy8gbm9ybWFsIHwgYWx0ZXJuYXRlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kaXJlY3Rpb24sICRkaXJlY3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24tcGxheS1zdGF0ZSAoJHN0YXRlcy4uLikge1xuLy8gcnVubmluZyB8IHBhdXNlZFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tcGxheS1zdGF0ZSwgJHN0YXRlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLWRlbGF5ICgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cblxuQG1peGluIGFuaW1hdGlvbi1maWxsLW1vZGUgKCRtb2Rlcy4uLikge1xuLy8gbm9uZSB8IGZvcndhcmRzIHwgYmFja3dhcmRzIHwgYm90aFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZmlsbC1tb2RlLCAkbW9kZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gYXBwZWFyYW5jZSAoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFwcGVhcmFuY2UsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gQmFja2ZhY2UtdmlzaWJpbGl0eSBtaXhpblxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQG1peGluIGJhY2tmYWNlLXZpc2liaWxpdHkoJHZpc2liaWxpdHkpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYmFja2ZhY2UtdmlzaWJpbGl0eSwgJHZpc2liaWxpdHksIHdlYmtpdCBzcGVjKTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tncm91bmQgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kcyB1c2luZyBzaG9ydGhhbmRcbi8vIG5vdGF0aW9uLlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuXG5AbWl4aW4gYmFja2dyb3VuZCgkYmFja2dyb3VuZHMuLi4pIHtcbiAgJHdlYmtpdC1iYWNrZ3JvdW5kczogKCk7XG4gICRzcGVjLWJhY2tncm91bmRzOiAoKTtcblxuICBAZWFjaCAkYmFja2dyb3VuZCBpbiAkYmFja2dyb3VuZHMge1xuICAgICR3ZWJraXQtYmFja2dyb3VuZDogKCk7XG4gICAgJHNwZWMtYmFja2dyb3VuZDogKCk7XG4gICAgJGJhY2tncm91bmQtdHlwZTogdHlwZS1vZigkYmFja2dyb3VuZCk7XG5cbiAgICBAaWYgJGJhY2tncm91bmQtdHlwZSA9PSBzdHJpbmcgb3IgbGlzdCB7XG4gICAgICAkYmFja2dyb3VuZC1zdHI6IGlmKCRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCwgbnRoKCRiYWNrZ3JvdW5kLCAxKSwgJGJhY2tncm91bmQpO1xuXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMCwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMCwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kczogYXBwZW5kKCR3ZWJraXQtYmFja2dyb3VuZHMsICR3ZWJraXQtYmFja2dyb3VuZCwgY29tbWEpO1xuICAgICRzcGVjLWJhY2tncm91bmRzOiAgIGFwcGVuZCgkc3BlYy1iYWNrZ3JvdW5kcywgICAkc3BlYy1iYWNrZ3JvdW5kLCAgIGNvbW1hKTtcbiAgfVxuXG4gIGJhY2tncm91bmQ6ICR3ZWJraXQtYmFja2dyb3VuZHM7XG4gIGJhY2tncm91bmQ6ICRzcGVjLWJhY2tncm91bmRzO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gQmFja2dyb3VuZC1pbWFnZSBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmQgaW1hZ2VzIHdpdGhcbi8vIGdyYWRpZW50cywgb3IgZm9yIHN0cmluZ2luZyBtdWx0aXBsZSBncmFkaWVudHMgdG9nZXRoZXIuXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5cbkBtaXhpbiBiYWNrZ3JvdW5kLWltYWdlKCRpbWFnZXMuLi4pIHtcbiAgJHdlYmtpdC1pbWFnZXM6ICgpO1xuICAkc3BlYy1pbWFnZXM6ICgpO1xuXG4gIEBlYWNoICRpbWFnZSBpbiAkaW1hZ2VzIHtcbiAgICAkd2Via2l0LWltYWdlOiAoKTtcbiAgICAkc3BlYy1pbWFnZTogKCk7XG5cbiAgICBAaWYgKHR5cGUtb2YoJGltYWdlKSA9PSBzdHJpbmcpIHtcbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGltYWdlLCAwLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGltYWdlLCAwLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWltYWdlOiAkaW1hZ2U7XG4gICAgICAgICAgJHNwZWMtaW1hZ2U6ICRpbWFnZTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWltYWdlOiAgICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1pbWFnZTogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgICR3ZWJraXQtaW1hZ2VzOiBhcHBlbmQoJHdlYmtpdC1pbWFnZXMsICR3ZWJraXQtaW1hZ2UsIGNvbW1hKTtcbiAgICAkc3BlYy1pbWFnZXM6ICAgYXBwZW5kKCRzcGVjLWltYWdlcywgICAkc3BlYy1pbWFnZSwgICBjb21tYSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWltYWdlOiAkd2Via2l0LWltYWdlcztcbiAgYmFja2dyb3VuZC1pbWFnZTogJHNwZWMtaW1hZ2VzO1xufVxuIiwiQG1peGluIGJvcmRlci1pbWFnZSgkYm9yZGVycy4uLikge1xuICAkd2Via2l0LWJvcmRlcnM6ICgpO1xuICAkc3BlYy1ib3JkZXJzOiAoKTtcblxuICBAZWFjaCAkYm9yZGVyIGluICRib3JkZXJzIHtcbiAgICAkd2Via2l0LWJvcmRlcjogKCk7XG4gICAgJHNwZWMtYm9yZGVyOiAoKTtcbiAgICAkYm9yZGVyLXR5cGU6IHR5cGUtb2YoJGJvcmRlcik7XG5cbiAgICBAaWYgJGJvcmRlci10eXBlID09IHN0cmluZyBvciBsaXN0IHtcbiAgICAgICRib3JkZXItc3RyOiBpZigkYm9yZGVyLXR5cGUgPT0gbGlzdCwgbnRoKCRib3JkZXIsIDEpLCAkYm9yZGVyKTtcblxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYm9yZGVyLXN0ciwgMCwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRib3JkZXItc3RyLCAwLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICAgICAkc3BlYy1ib3JkZXI6ICRib3JkZXI7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICAgICAkc3BlYy1ib3JkZXI6ICRib3JkZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAgICRzcGVjLWJvcmRlcjogJGJvcmRlcjtcbiAgICB9XG5cbiAgICAkd2Via2l0LWJvcmRlcnM6IGFwcGVuZCgkd2Via2l0LWJvcmRlcnMsICR3ZWJraXQtYm9yZGVyLCBjb21tYSk7XG4gICAgJHNwZWMtYm9yZGVyczogICBhcHBlbmQoJHNwZWMtYm9yZGVycywgICAkc3BlYy1ib3JkZXIsICAgY29tbWEpO1xuICB9XG5cbiAgLXdlYmtpdC1ib3JkZXItaW1hZ2U6ICR3ZWJraXQtYm9yZGVycztcbiAgICAgICAgICBib3JkZXItaW1hZ2U6ICRzcGVjLWJvcmRlcnM7XG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbn1cblxuLy9FeGFtcGxlczpcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSAyMCBzdHJldGNoKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgc3RyZXRjaCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgMjAgMzAgNDAgNTAgc3RyZXRjaCByb3VuZCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UocmFkaWFsLWdyYWRpZW50KHRvcCwgY292ZXIsIG9yYW5nZSwgeWVsbG93LCBvcmFuZ2UpKTtcbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIFNob3J0aGFuZCBCb3JkZXItcmFkaXVzIG1peGluc1xuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpaSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItdG9wLWxlZnQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItdG9wLXJpZ2h0LXJhZGl1cywgJHJhZGlpLCBzcGVjKTtcbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpaSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cywgJHJhZGlpLCBzcGVjKTtcbn1cblxuQG1peGluIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaWkpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cywgJHJhZGlpLCBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cywgJHJhZGlpLCBzcGVjKTtcbn1cblxuQG1peGluIGJvcmRlci1yaWdodC1yYWRpdXMoJHJhZGlpKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci10b3AtcmlnaHQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cywgJHJhZGlpLCBzcGVjKTtcbn1cbiIsIkBtaXhpbiBib3gtc2l6aW5nICgkYm94KSB7XG4vLyAgY29udGVudC1ib3ggfCBib3JkZXItYm94IHwgaW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtc2l6aW5nLCAkYm94LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIGNhbGMoJHByb3BlcnR5LCAkdmFsdWUpIHtcbiAgI3skcHJvcGVydHl9OiAtd2Via2l0LWNhbGMoI3skdmFsdWV9KTtcbiAgI3skcHJvcGVydHl9OiAgICAgICAgIGNhbGMoI3skdmFsdWV9KTtcbn1cbiIsIkBtaXhpbiBjb2x1bW5zKCRhcmc6IGF1dG8pIHtcbi8vIDxjb2x1bW4tY291bnQ+IHx8IDxjb2x1bW4td2lkdGg+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbnMsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJGludDogYXV0bykge1xuLy8gYXV0byB8fCBpbnRlZ2VyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1jb3VudCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJGxlbmd0aDogbm9ybWFsKSB7XG4vLyBub3JtYWwgfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1nYXAsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tZmlsbCgkYXJnOiBhdXRvKSB7XG4vLyBhdXRvIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZmlsbCwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlKCRhcmcpIHtcbi8vIDxib3JkZXItd2lkdGg+IHx8IDxib3JkZXItc3R5bGU+IHx8IDxjb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS1jb2xvcigkY29sb3IpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtY29sb3IsICRjb2xvciwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLXN0eWxlKCRzdHlsZTogbm9uZSkge1xuLy8gbm9uZSB8IGhpZGRlbiB8IGRhc2hlZCB8IGRvdHRlZCB8IGRvdWJsZSB8IGdyb292ZSB8IGluc2V0IHwgaW5zZXQgfCBvdXRzZXQgfCByaWRnZSB8IHNvbGlkXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLXN0eWxlLCAkc3R5bGUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS13aWR0aCAoJHdpZHRoOiBub25lKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLXdpZHRoLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tc3BhbigkYXJnOiBub25lKSB7XG4vLyBub25lIHx8IGFsbFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tc3BhbiwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi13aWR0aCgkbGVuZ3RoOiBhdXRvKSB7XG4vLyBhdXRvIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4td2lkdGgsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gZmlsdGVyKCRmdW5jdGlvbjogbm9uZSkge1xuICAvLyA8ZmlsdGVyLWZ1bmN0aW9uPiBbPGZpbHRlci1mdW5jdGlvbl0qIHwgbm9uZVxuICBAaW5jbHVkZSBwcmVmaXhlcihmaWx0ZXIsICRmdW5jdGlvbiwgd2Via2l0IHNwZWMpO1xufVxuXG4iLCIvLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcblxuLy8gQ3VzdG9tIHNob3J0aGFuZCBub3RhdGlvbiBmb3IgZmxleGJveFxuQG1peGluIGJveCgkb3JpZW50OiBpbmxpbmUtYXhpcywgJHBhY2s6IHN0YXJ0LCAkYWxpZ246IHN0cmV0Y2gpIHtcbiAgQGluY2x1ZGUgZGlzcGxheS1ib3g7XG4gIEBpbmNsdWRlIGJveC1vcmllbnQoJG9yaWVudCk7XG4gIEBpbmNsdWRlIGJveC1wYWNrKCRwYWNrKTtcbiAgQGluY2x1ZGUgYm94LWFsaWduKCRhbGlnbik7XG59XG5cbkBtaXhpbiBkaXNwbGF5LWJveCB7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBkaXNwbGF5OiAtbW96LWJveDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIElFIDEwXG4gIGRpc3BsYXk6IGJveDtcbn1cblxuQG1peGluIGJveC1vcmllbnQoJG9yaWVudDogaW5saW5lLWF4aXMpIHtcbi8vIGhvcml6b250YWx8dmVydGljYWx8aW5saW5lLWF4aXN8YmxvY2stYXhpc3xpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICRvcmllbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBib3gtcGFjaygkcGFjazogc3RhcnQpIHtcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8anVzdGlmeVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJHBhY2ssIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXBhY2s6ICRwYWNrOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWFsaWduKCRhbGlnbjogc3RyZXRjaCkge1xuLy8gc3RhcnR8ZW5kfGNlbnRlcnxiYXNlbGluZXxzdHJldGNoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsaWduLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1hbGlnbjogJGFsaWduOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWRpcmVjdGlvbigkZGlyZWN0aW9uOiBub3JtYWwpIHtcbi8vIG5vcm1hbHxyZXZlcnNlfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWxpbmVzKCRsaW5lczogc2luZ2xlKSB7XG4vLyBzaW5nbGV8bXVsdGlwbGVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkbGluZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBib3gtb3JkaW5hbC1ncm91cCgkaW50OiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1vcmRlcjogJGludDsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1mbGV4KCR2YWx1ZTogMC4wKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4OiAkdmFsdWU7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleC1ncm91cCgkaW50OiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcbi8vIFVuaWZpZWQgYXR0cmlidXRlcyBmb3IgMjAwOSwgMjAxMSwgYW5kIDIwMTIgZmxhdm91cnMuXG5cbi8vIDIwMDkgLSBkaXNwbGF5IChib3ggfCBpbmxpbmUtYm94KVxuLy8gMjAxMSAtIGRpc3BsYXkgKGZsZXhib3ggfCBpbmxpbmUtZmxleGJveClcbi8vIDIwMTIgLSBkaXNwbGF5IChmbGV4IHwgaW5saW5lLWZsZXgpXG5AbWl4aW4gZGlzcGxheSgkdmFsdWUpIHtcbi8vICBmbGV4IHwgaW5saW5lLWZsZXhcbiAgICBAaWYgJHZhbHVlID09IFwiZmxleFwiIHtcbiAgICAgICAgLy8gMjAwOVxuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgZGlzcGxheTogLW1vei1ib3g7XG4gICAgICAgIGRpc3BsYXk6IGJveDtcblxuICAgICAgICAvLyAyMDEyXG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICAgICAgZGlzcGxheTogLW1vei1mbGV4O1xuICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gMjAxMSAoSUUgMTApXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJpbmxpbmUtZmxleFwiIHtcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xuICAgICAgICBkaXNwbGF5OiAtbW96LWlubGluZS1ib3g7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ib3g7XG5cbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleDtcbiAgICAgICAgZGlzcGxheTogLW1vei1pbmxpbmUtZmxleDtcbiAgICAgICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAgIGRpc3BsYXk6ICR2YWx1ZTtcbiAgICB9XG59XG5cbi8vIDIwMDkgLSBib3gtZmxleCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4IChkZWNpbWFsIHwgd2lkdGggZGVjaW1hbClcbi8vIDIwMTIgLSBmbGV4IChpbnRlZ2VyIGludGVnZXIgd2lkdGgpXG5AbWl4aW4gZmxleCgkdmFsdWUpIHtcblxuICAgIC8vIEdyYWIgZmxleC1ncm93IGZvciBvbGRlciBicm93c2Vycy5cbiAgICAkZmxleC1ncm93OiBudGgoJHZhbHVlLCAxKTtcblxuICAgIC8vIDIwMDlcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJGZsZXgtZ3Jvdywgd2Via2l0IG1veiBzcGVjKTtcblxuICAgIC8vIDIwMTEgKElFIDEwKSwgMjAxMlxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIGJveC1vcmllbnQgKCBob3Jpem9udGFsIHwgdmVydGljYWwgfCBpbmxpbmUtYXhpcyB8IGJsb2NrLWF4aXMpXG4vLyAgICAgIC0gYm94LWRpcmVjdGlvbiAobm9ybWFsIHwgcmV2ZXJzZSkgICAgICBcbi8vIDIwMTEgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcbi8vIDIwMTIgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWU6IHJvdykge1xuXG4gICAgLy8gQWx0IHZhbHVlcy5cbiAgICAkdmFsdWUtMjAwOTogJHZhbHVlO1xuICAgICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gICAgJGRpcmVjdGlvbjogXCJub3JtYWxcIjtcblxuICAgIEBpZiAkdmFsdWUgPT0gcm93IHtcbiAgICAgICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJyb3ctcmV2ZXJzZVwiIHtcbiAgICAgICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XG4gICAgICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gY29sdW1uIHtcbiAgICAgICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwiY29sdW1uLXJldmVyc2VcIiB7XG4gICAgICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgICAgICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgICB9XG5cbiAgICAvLyAyMDA5XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJHZhbHVlLTIwMDksIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgQGlmICRkaXJlY3Rpb24gPT0gXCJyZXZlcnNlXCIge1xuICAgICAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH1cblxuICAgIC8vIDIwMTJcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWRpcmVjdGlvbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMSAoSUUgMTApXG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5cbi8vIDIwMDkgLSBib3gtbGluZXMgKHNpbmdsZSB8IG11bHRpcGxlKVxuLy8gMjAxMSAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbi8vIDIwMTIgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZTogbm93cmFwKSB7XG5cbiAgICAvLyBBbHQgdmFsdWVzLlxuICAgICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgICBAaWYgJHZhbHVlID09IG5vd3JhcCB7XG4gICAgICAgICRhbHQtdmFsdWU6IHNpbmdsZTtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSB3cmFwIHtcbiAgICAgICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJ3cmFwLXJldmVyc2VcIiB7XG4gICAgICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXdyYXAsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxuLy8gMjAxMSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxuLy8gMjAxMiAtIGZsZXgtZmxvdyAoZmxleC1kaXJlY3Rpb24gfHwgZmxleC13cmFwKVxuQG1peGluIGZsZXgtZmxvdygkdmFsdWUpIHtcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWZsb3csICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIGJveC1vcmRpbmFsLWdyb3VwIChpbnRlZ2VyKVxuLy8gMjAxMSAtIGZsZXgtb3JkZXIgKGludGVnZXIpXG4vLyAyMDEyIC0gb3JkZXIgKGludGVnZXIpXG5AbWl4aW4gb3JkZXIoJGludDogMCkge1xuICAgIC8vIDIwMDlcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAgIC8vIDIwMTJcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihvcmRlciwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAgIC8vIDIwMTEgKElFIDEwKVxuICAgIC1tcy1mbGV4LW9yZGVyOiAkaW50O1xufVxuXG4vLyAyMDEyIC0gZmxleC1ncm93IChudW1iZXIpXG5AbWl4aW4gZmxleC1ncm93KCRudW1iZXI6IDApIHtcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWdyb3csICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgLW1zLWZsZXgtcG9zaXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LXNocmluayAobnVtYmVyKVxuQG1peGluIGZsZXgtc2hyaW5rKCRudW1iZXI6IDEpIHtcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXNocmluaywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgICAtbXMtZmxleC1uZWdhdGl2ZTogJG51bWJlcjtcbn1cblxuLy8gMjAxMiAtIGZsZXgtYmFzaXMgKG51bWJlcilcbkBtaXhpbiBmbGV4LWJhc2lzKCR3aWR0aDogYXV0bykge1xuICAgIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtYmFzaXMsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogJHdpZHRoO1xufVxuXG4vLyAyMDA5IC0gYm94LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcbi8vIDIwMTEgLSBmbGV4LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcbi8vIDIwMTIgLSBqdXN0aWZ5LWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQpXG5AbWl4aW4ganVzdGlmeS1jb250ZW50ICgkdmFsdWU6IGZsZXgtc3RhcnQpIHtcblxuICAgIC8vIEFsdCB2YWx1ZXMuXG4gICAgJGFsdC12YWx1ZTogJHZhbHVlO1xuICAgIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICAgICAkYWx0LXZhbHVlOiBlbmQ7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xuICAgICAgICAkYWx0LXZhbHVlOiBqdXN0aWZ5O1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICAgICAkYWx0LXZhbHVlOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLy8gMjAwOVxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMlxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGp1c3RpZnktY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG5cbiAgICAvLyAyMDExIChJRSAxMClcbiAgICAtbXMtZmxleC1wYWNrOiAkYWx0LXZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTEgLSBmbGV4LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1pdGVtcyAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWl0ZW1zKCR2YWx1ZTogc3RyZXRjaCkge1xuXG4gICAgJGFsdC12YWx1ZTogJHZhbHVlO1xuXG4gICAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xuICAgIH0gICAgXG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICAgICAkYWx0LXZhbHVlOiBlbmQ7XG4gICAgfVxuXG4gICAgLy8gMjAwOVxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAgIC8vIDIwMTJcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1pdGVtcywgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG4gICAgXG4gICAgLy8gMjAxMSAoSUUgMTApXG4gICAgLW1zLWZsZXgtYWxpZ246ICRhbHQtdmFsdWU7ICAgIFxufVxuXG4vLyAyMDExIC0gZmxleC1pdGVtLWFsaWduIChhdXRvIHwgc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tc2VsZiAoYXV0byB8IGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1zZWxmKCR2YWx1ZTogYXV0bykge1xuXG4gICAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAgICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xuICAgIH0gICAgXG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICAgICAkdmFsdWUtMjAxMTogZW5kO1xuICAgIH1cblxuICAgIC8vIDIwMTJcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1zZWxmLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDExIChJRSAxMClcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiAkdmFsdWUtMjAxMTtcbn1cblxuLy8gMjAxMSAtIGZsZXgtbGluZS1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkgfCBkaXN0cmlidXRlIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1jb250ZW50KCR2YWx1ZTogc3RyZXRjaCkge1xuXG4gICAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAgICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xuICAgIH0gICAgXG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICAgICAkdmFsdWUtMjAxMTogZW5kO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAgICAgJHZhbHVlLTIwMTE6IGp1c3RpZnk7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgICAgICR2YWx1ZS0yMDExOiBkaXN0cmlidXRlO1xuICAgIH1cblxuICAgIC8vIDIwMTJcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDExIChJRSAxMClcbiAgICAtbXMtZmxleC1saW5lLXBhY2s6ICR2YWx1ZS0yMDExO1xufVxuXG4iLCIvLyBPcmRlciBvZiB0aGUgaW5jbHVkZXMgbWF0dGVycywgYW5kIGl0IGlzOiBub3JtYWwsIGJvbGQsIGl0YWxpYywgYm9sZCtpdGFsaWMuXG5cbkBtaXhpbiBmb250LWZhY2UoJGZvbnQtZmFtaWx5LCAkZmlsZS1wYXRoLCAkd2VpZ2h0OiBub3JtYWwsICRzdHlsZTogbm9ybWFsLCAkYXNzZXQtcGlwZWxpbmU6IGZhbHNlICkge1xuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xuICAgIGZvbnQtc3R5bGU6ICRzdHlsZTtcblxuICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XG4gICAgICBzcmM6IGZvbnQtdXJsKCcjeyRmaWxlLXBhdGh9LmVvdCcpO1xuICAgICAgc3JjOiBmb250LXVybCgnI3skZmlsZS1wYXRofS5lb3Q/I2llZml4JykgICAgICAgICAgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgICBmb250LXVybCgnI3skZmlsZS1wYXRofS53b2ZmJykgICAgICAgICAgICAgICAgZm9ybWF0KCd3b2ZmJyksXG4gICAgICAgICAgIGZvbnQtdXJsKCcjeyRmaWxlLXBhdGh9LnR0ZicpICAgICAgICAgICAgICAgICBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICAgICAgIGZvbnQtdXJsKCcjeyRmaWxlLXBhdGh9LnN2ZyMjeyRmb250LWZhbWlseX0nKSBmb3JtYXQoJ3N2ZycpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgc3JjOiB1cmwoJyN7JGZpbGUtcGF0aH0uZW90Jyk7XG4gICAgICBzcmM6IHVybCgnI3skZmlsZS1wYXRofS5lb3Q/I2llZml4JykgICAgICAgICAgICAgICBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgICAgIHVybCgnI3skZmlsZS1wYXRofS53b2ZmJykgICAgICAgICAgICAgICAgICAgICBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgICAgdXJsKCcjeyRmaWxlLXBhdGh9LnR0ZicpICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICAgICAgICAgdXJsKCcjeyRmaWxlLXBhdGh9LnN2ZyMjeyRmb250LWZhbWlseX0nKSAgICAgIGZvcm1hdCgnc3ZnJyk7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gaHlwaGVucygkaHlwaGVuYXRpb246IG5vbmUpIHtcbi8vIG5vbmUgfCBtYW51YWwgfCBhdXRvXG4gIEBpbmNsdWRlIHByZWZpeGVyKGh5cGhlbnMsICRoeXBoZW5hdGlvbiwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn0iLCIvLyBIaURQSSBtaXhpbi4gRGVmYXVsdCB2YWx1ZSBzZXQgdG8gMS4zIHRvIHRhcmdldCBHb29nbGUgTmV4dXMgNyAoaHR0cDovL2JqYW5nby5jb20vYXJ0aWNsZXMvbWluLWRldmljZS1waXhlbC1yYXRpby8pXG5AbWl4aW4gaGlkcGkoJHJhdGlvOiAxLjMpIHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcbiAgb25seSBzY3JlZW4gYW5kICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyRyYXRpb30vMSksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246ICN7cm91bmQoJHJhdGlvKjk2KX1kcGkpLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAjeyRyYXRpb31kcHB4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIkBtaXhpbiBpbWFnZS1yZW5kZXJpbmcgKCRtb2RlOmF1dG8pIHtcblxuICBAaWYgKCRtb2RlID09IGNyaXNwLWVkZ2VzKSB7XG4gICAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBuZWFyZXN0LW5laWdoYm9yOyAvLyBJRTgrXG4gICAgICBpbWFnZS1yZW5kZXJpbmc6IC1tb3otY3Jpc3AtZWRnZXM7XG4gICAgICBpbWFnZS1yZW5kZXJpbmc6IC1vLWNyaXNwLWVkZ2VzO1xuICAgICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0O1xuICAgICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlcztcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAgIGltYWdlLXJlbmRlcmluZzogJG1vZGU7XG4gIH1cbn1cbiIsIi8vIEFkZHMga2V5ZnJhbWVzIGJsb2NrcyBmb3Igc3VwcG9ydGVkIHByZWZpeGVzLCByZW1vdmluZyByZWR1bmRhbnQgcHJlZml4ZXMgaW4gdGhlIGJsb2NrJ3MgY29udGVudFxuQG1peGluIGtleWZyYW1lcygkbmFtZSkge1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQ6ICAgICRwcmVmaXgtZm9yLXdlYmtpdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYTogICAkcHJlZml4LWZvci1tb3ppbGxhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQ6ICRwcmVmaXgtZm9yLW1pY3Jvc29mdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmE6ICAgICAkcHJlZml4LWZvci1vcGVyYTtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYzogICAgICAkcHJlZml4LWZvci1zcGVjO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci13ZWJraXQ6IHRydWUgIWdsb2JhbDtcbiAgICBALXdlYmtpdC1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XG4gICAgJHByZWZpeC1mb3ItbW96aWxsYTogdHJ1ZSAhZ2xvYmFsO1xuICAgIEAtbW96LWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCAgICAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEgICAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6ICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdCAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhICAgICAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMgICAgICAhZ2xvYmFsO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjIHtcbiAgICBAa2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIGxpbmVhci1ncmFkaWVudCgkcG9zLCAkRzEsICRHMjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJEczOiBudWxsLCAkRzQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRHNTogbnVsbCwgJEc2OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkRzc6IG51bGwsICRHODogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJEc5OiBudWxsLCAkRzEwOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcbiAgLy8gRGV0ZWN0IHdoYXQgdHlwZSBvZiB2YWx1ZSBleGlzdHMgaW4gJHBvc1xuICAkcG9zLXR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcbiAgJHBvcy1zcGVjOiBudWxsO1xuICAkcG9zLWRlZ3JlZTogbnVsbDtcblxuICAvLyBJZiAkcG9zIGlzIG1pc3NpbmcgZnJvbSBtaXhpbiwgcmVhc3NpZ24gdmFycyBhbmQgYWRkIGRlZmF1bHQgcG9zaXRpb25cbiAgQGlmICgkcG9zLXR5cGUgPT0gY29sb3IpIG9yIChudGgoJHBvcywgMSkgPT0gXCJ0cmFuc3BhcmVudFwiKSAge1xuICAgICRHMTA6ICRHOTsgJEc5OiAkRzg7ICRHODogJEc3OyAkRzc6ICRHNjsgJEc2OiAkRzU7XG4gICAgICRHNTogJEc0OyAkRzQ6ICRHMzsgJEczOiAkRzI7ICRHMjogJEcxOyAkRzE6ICRwb3M7XG4gICAgICRwb3M6IG51bGw7XG4gIH1cblxuICBAaWYgJHBvcyB7XG4gICAgJHBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpO1xuICAgICRwb3MtZGVncmVlOiBudGgoJHBvc2l0aW9ucywgMSk7XG4gICAgJHBvcy1zcGVjOiAgIG50aCgkcG9zaXRpb25zLCAyKTtcbiAgfVxuXG4gICRmdWxsOiAkRzEsICRHMiwgJEczLCAkRzQsICRHNSwgJEc2LCAkRzcsICRHOCwgJEc5LCAkRzEwO1xuXG4gIC8vIFNldCAkRzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJEcxLCAxKTtcblxuICAvLyBJZiAkZmFsbGJhY2sgaXMgYSBjb2xvciB1c2UgdGhhdCBjb2xvciBhcyB0aGUgZmFsbGJhY2sgY29sb3JcbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmFsbGJhY2stY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRwb3MtZGVncmVlICRmdWxsKTsgLy8gU2FmYXJpIDUuMSssIENocm9tZVxuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwibGluZWFyLWdyYWRpZW50KCN7JHBvcy1zcGVjfSN7JGZ1bGx9KVwiKTtcbn1cbiIsIkBtaXhpbiBwZXJzcGVjdGl2ZSgkZGVwdGg6IG5vbmUpIHtcbiAgLy8gbm9uZSB8IDxsZW5ndGg+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLCAkZGVwdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBwZXJzcGVjdGl2ZS1vcmlnaW4oJHZhbHVlOiA1MCUgNTAlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLW9yaWdpbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiLy8gUmVxdWlyZXMgU2FzcyAzLjErXG5AbWl4aW4gcmFkaWFsLWdyYWRpZW50KCRHMSwgICAgICAgICRHMixcbiAgICAgICAgICAgICAgICAgICAgICAgJEczOiBudWxsLCAkRzQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRHNTogbnVsbCwgJEc2OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkRzc6IG51bGwsICRHODogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJEc5OiBudWxsLCAkRzEwOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkcG9zOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkc2hhcGUtc2l6ZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XG5cbiAgJGRhdGE6IF9yYWRpYWwtYXJnLXBhcnNlcigkRzEsICRHMiwgJHBvcywgJHNoYXBlLXNpemUpO1xuICAkRzE6ICBudGgoJGRhdGEsIDEpO1xuICAkRzI6ICBudGgoJGRhdGEsIDIpO1xuICAkcG9zOiBudGgoJGRhdGEsIDMpO1xuICAkc2hhcGUtc2l6ZTogbnRoKCRkYXRhLCA0KTtcblxuICAkZnVsbDogJEcxLCAkRzIsICRHMywgJEc0LCAkRzUsICRHNiwgJEc3LCAkRzgsICRHOSwgJEcxMDtcblxuICAvLyBTdHJpcCBkZXByZWNhdGVkIGNvdmVyL2NvbnRhaW4gZm9yIHNwZWNcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gIC8vIFNldCAkRzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZpcnN0LWNvbG9yOiBudGgoJGZ1bGwsIDEpO1xuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZmlyc3QtY29sb3IsIDEpO1xuXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xuICB9XG5cbiAgLy8gQWRkIENvbW1hcyBhbmQgc3BhY2VzXG4gICRzaGFwZS1zaXplOiBpZigkc2hhcGUtc2l6ZSwgJyN7JHNoYXBlLXNpemV9LCAnLCBudWxsKTtcbiAgJHBvczogICAgICAgIGlmKCRwb3MsICcjeyRwb3N9LCAnLCBudWxsKTtcbiAgJHBvcy1zcGVjOiAgIGlmKCRwb3MsICdhdCAjeyRwb3N9JywgbnVsbCk7XG4gICRzaGFwZS1zaXplLXNwZWM6IGlmKCgkc2hhcGUtc2l6ZS1zcGVjICE9ICcgJykgYW5kICgkcG9zID09IG51bGwpLCAnI3skc2hhcGUtc2l6ZS1zcGVjfSwgJywgJyN7JHNoYXBlLXNpemUtc3BlY30gJyk7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQodW5xdW90ZSgjeyRwb3N9I3skc2hhcGUtc2l6ZX0jeyRmdWxsfSkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwicmFkaWFsLWdyYWRpZW50KCN7JHNoYXBlLXNpemUtc3BlY30jeyRwb3Mtc3BlY30jeyRmdWxsfSlcIik7XG59XG4iLCJAbWl4aW4gdHJhbnNmb3JtKCRwcm9wZXJ0eTogbm9uZSkge1xuLy8gIG5vbmUgfCA8dHJhbnNmb3JtLWZ1bmN0aW9uPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sICRwcm9wZXJ0eSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLW9yaWdpbigkYXhlczogNTAlKSB7XG4vLyB4LWF4aXMgLSBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgIHwgbGVuZ3RoIHwgJVxuLy8geS1heGlzIC0gdG9wICB8IGNlbnRlciB8IGJvdHRvbSB8IGxlbmd0aCB8ICVcbi8vIHotYXhpcyAtICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLW9yaWdpbiwgJGF4ZXMsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zZm9ybS1zdHlsZSAoJHN0eWxlOiBmbGF0KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG4iLCIvLyBTaG9ydGhhbmQgbWl4aW4uIFN1cHBvcnRzIG11bHRpcGxlIHBhcmVudGhlc2VzLWRlbGltaW5hdGVkIHZhbHVlcyBmb3IgZWFjaCB2YXJpYWJsZS5cbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHRyYW5zaXRpb24gKGFsbCAycyBlYXNlLWluLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uIChvcGFjaXR5IDFzIGVhc2UtaW4gMnMsIHdpZHRoIDJzIGVhc2Utb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tcHJvcGVydHkgKHRyYW5zZm9ybSwgb3BhY2l0eSk7XG5cbkBtaXhpbiB0cmFuc2l0aW9uICgkcHJvcGVydGllcy4uLikge1xuICAvLyBGaXggZm9yIHZlbmRvci1wcmVmaXggdHJhbnNmb3JtIHByb3BlcnR5XG4gICRuZWVkcy1wcmVmaXhlczogZmFsc2U7XG4gICR3ZWJraXQ6ICgpO1xuICAkbW96OiAoKTtcbiAgJHNwZWM6ICgpO1xuXG4gIC8vIENyZWF0ZSBsaXN0cyBmb3IgdmVuZG9yLXByZWZpeGVkIHRyYW5zZm9ybVxuICBAZWFjaCAkbGlzdCBpbiAkcHJvcGVydGllcyB7XG4gICAgQGlmIG50aCgkbGlzdCwgMSkgPT0gXCJ0cmFuc2Zvcm1cIiB7XG4gICAgICAkbmVlZHMtcHJlZml4ZXM6IHRydWU7XG4gICAgICAkbGlzdDE6IC13ZWJraXQtdHJhbnNmb3JtO1xuICAgICAgJGxpc3QyOiAtbW96LXRyYW5zZm9ybTtcbiAgICAgICRsaXN0MzogKCk7XG5cbiAgICAgIEBlYWNoICR2YXIgaW4gJGxpc3Qge1xuICAgICAgICAkbGlzdDM6IGpvaW4oJGxpc3QzLCAkdmFyKTtcblxuICAgICAgICBAaWYgJHZhciAhPSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICAgICAkbGlzdDE6IGpvaW4oJGxpc3QxLCAkdmFyKTtcbiAgICAgICAgICAkbGlzdDI6IGpvaW4oJGxpc3QyLCAkdmFyKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QxKTtcbiAgICAgICAgICRtb3o6IGFwcGVuZCgkbW96LCAgICAkbGlzdDIpO1xuICAgICAgICAkc3BlYzogYXBwZW5kKCRzcGVjLCAgICRsaXN0Myk7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIGxpc3RzIGZvciBub24tcHJlZml4ZWQgdHJhbnNpdGlvbiBwcm9wZXJ0aWVzXG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdDogIGFwcGVuZCgkd2Via2l0LCAkbGlzdCwgY29tbWEpO1xuICAgICAgJG1vejogICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdCwgY29tbWEpO1xuICAgICAgJHNwZWM6ICAgIGFwcGVuZCgkc3BlYywgICAkbGlzdCwgY29tbWEpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkbmVlZHMtcHJlZml4ZXMge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogJHdlYmtpdDtcbiAgICAgICAtbW96LXRyYW5zaXRpb246ICRtb3o7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAkc3BlYztcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmIGxlbmd0aCgkcHJvcGVydGllcykgPj0gMSB7XG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkcHJvcGVydGllczogYWxsIDAuMTVzIGVhc2Utb3V0IDBzO1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXByb3BlcnR5ICgkcHJvcGVydGllcy4uLikge1xuICAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCAnd2Via2l0Jyk7XG4gICAgICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsICdtb3onKTtcbiAgICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgZmFsc2UpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbiAoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uICgkbW90aW9ucy4uLikge1xuLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0IHwgY3ViaWMtYmV6aWVyKClcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kZWxheSAoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiB1c2VyLXNlbGVjdCgkYXJnOiBub25lKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHVzZXItc2VsZWN0LCAkYXJnLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJHBsYWNlaG9sZGVyczogXCI6LXdlYmtpdC1pbnB1dFwiIFwiOi1tb3pcIiBcIi1tb3pcIiBcIi1tcy1pbnB1dFwiO1xuICBAZWFjaCAkcGxhY2Vob2xkZXIgaW4gJHBsYWNlaG9sZGVycyB7XG4gICAgJjojeyRwbGFjZWhvbGRlcn0tcGxhY2Vob2xkZXIge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gYnV0dG9uICgkc3R5bGU6IHNpbXBsZSwgJGJhc2UtY29sb3I6ICM0Mjk0ZjAsICR0ZXh0LXNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBzdHJpbmcgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xuICAgICRiYXNlLWNvbG9yOiAkc3R5bGU7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJHRleHQtc2l6ZTtcbiAgICAkdGV4dC1zaXplOiAkYmFzZS1jb2xvcjtcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xuICAgICRzdHlsZTogc2ltcGxlO1xuXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJGJhc2UtY29sb3I7XG4gICAgJHRleHQtc2l6ZTogJHN0eWxlO1xuICAgICRiYXNlLWNvbG9yOiAjNDI5NGYwO1xuICAgICRzdHlsZTogc2ltcGxlO1xuXG4gICAgQGlmICRwYWRkaW5nID09ICM0Mjk0ZjAge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG59XG5cblxuLy8gU2VsZWN0b3IgU3R5bGUgQnV0dG9uXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AbWl4aW4gYnV0dG9uc3R5bGUoJHR5cGUsICRiLWNvbG9yLCAkdC1zaXplLCAkcGFkKSB7XG4gIC8vIEdyYXlzY2FsZSBidXR0b25cbiAgQGlmICR0eXBlID09IHNpbXBsZSBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgc2ltcGxlKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBzaGlueSBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgc2hpbnkoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IHBpbGwgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHBpbGwoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IGZsYXQgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIGZsYXQoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgLy8gQ29sb3JlZCBidXR0b25cbiAgQGlmICR0eXBlID09IHNpbXBsZSB7XG4gICAgQGluY2x1ZGUgc2ltcGxlKCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBzaGlueSB7XG4gICAgQGluY2x1ZGUgc2hpbnkoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IHBpbGwge1xuICAgIEBpbmNsdWRlIHBpbGwoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IGZsYXQge1xuICAgIEBpbmNsdWRlIGZsYXQoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxufVxuXG5cbi8vIFNpbXBsZSBCdXR0b25cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBtaXhpbiBzaW1wbGUoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTE0JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtOCUsICAkbGlnaHRuZXNzOiAgMTUlKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xMSUpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDE1JSwgJGxpZ2h0bmVzczogLTE4JSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIDFweCAwICR0ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNyUsICRsaWdodG5lc3M6ICA1JSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA4JSwgJGxpZ2h0bmVzczogLTE0JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgIH1cblxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDklLCAkbGlnaHRuZXNzOiAtMTQlKTtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNyUsICRsaWdodG5lc3M6IC0xNyUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlLCBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG5cbi8vIFNoaW55IEJ1dHRvblxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQG1peGluIHNoaW55KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExNywgJGdyZWVuOiAtMTExLCAkYmx1ZTogLTgxKTtcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEyNiwgJGdyZWVuOiAtMTI3LCAkYmx1ZTogLTEyMik7XG4gICRmb3VydGgtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC03OSwgICRncmVlbjogLTcwLCAgJGJsdWU6IC00Nik7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6ICAzNywgICRncmVlbjogIDI5LCAgJGJsdWU6ICAxMik7XG4gICRzZWNvbmQtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC01NiwgICRncmVlbjogLTUwLCAgJGJsdWU6IC0zMyk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xNDAsICRncmVlbjogLTE0MSwgJGJsdWU6IC0xMTQpO1xuICAkdGhpcmQtc3RvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICAkZ3JlZW46IC03NSwgICRibHVlOiAtNDgpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgJGZvdXJ0aC1zdG9wOiAgIGdyYXlzY2FsZSgkZm91cnRoLXN0b3ApO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHNlY29uZC1zdG9wOiAgIGdyYXlzY2FsZSgkc2Vjb25kLXN0b3ApO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgICAkdGhpcmQtc3RvcDogICAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wKTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRiYXNlLWNvbG9yIDAlLCAkc2Vjb25kLXN0b3AgNTAlLCAkdGhpcmQtc3RvcCA1MCUsICRmb3VydGgtc3RvcCAxMDAlKTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3c7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMywgJGdyZWVuOiAtMTUsICRibHVlOiAtMTgpO1xuICAgICRzZWNvbmQtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNjYsICRncmVlbjogLTYyLCAkYmx1ZTogLTUxKTtcbiAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTkzLCAkZ3JlZW46IC04NSwgJGJsdWU6IC02Nik7XG4gICAgJGZvdXJ0aC1zdG9wLWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgJGdyZWVuOiAtODAsICRibHVlOiAtNjMpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkZmlyc3Qtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkZmlyc3Qtc3RvcC1ob3Zlcik7XG4gICAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkc2Vjb25kLXN0b3AtaG92ZXIpO1xuICAgICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJHRoaXJkLXN0b3AtaG92ZXIpO1xuICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJGZvdXJ0aC1zdG9wLWhvdmVyKTtcbiAgICB9XG5cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGZpcnN0LXN0b3AtaG92ZXIgIDAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWNvbmQtc3RvcC1ob3ZlciA1MCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXJkLXN0b3AtaG92ZXIgIDUwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZm91cnRoLXN0b3AtaG92ZXIgMTAwJSk7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExMSwgJGdyZWVuOiAtMTE2LCAkYmx1ZTogLTEyMik7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAyMHB4IDAgJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuXG4vLyBQaWxsIEJ1dHRvblxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQG1peGluIHBpbGwoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC0xMSUsICRsaWdodG5lc3M6IC0yNiUpO1xuICAkYm9yZGVyLXNpZGVzOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yMSUsICRsaWdodG5lc3M6IC0yMSUpO1xuICAkYm9yZGVyLXRvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0zMCUsICRsaWdodG5lc3M6IC0xNSUpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xJSwgICRsaWdodG5lc3M6ICA3JSk7XG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDE0JSwgJGxpZ2h0bmVzczogLTEwJSk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTE5JSwgJGxpZ2h0bmVzczogLTE1JSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgJGJvcmRlci1zaWRlczogIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcbiAgICAkYm9yZGVyLXRvcDogICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xuICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvciwgJHN0b3AtZ3JhZGllbnQpO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpZ2h0bmVzczogLTQuNSUpO1xuICAgICRib3JkZXItYm90dG9tOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDEzLjUlLCAkbGlnaHRuZXNzOiAtMzIlKTtcbiAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yJSwgICAgJGxpZ2h0bmVzczogLTI3JSk7XG4gICAgJGJvcmRlci10b3A6ICAgICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMTclLCAgICRsaWdodG5lc3M6IC0yMSUpO1xuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAkc2F0dXJhdGlvbjogLTElLCAgICAkbGlnaHRuZXNzOiAgMyUpO1xuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTQlLCAgICAkbGlnaHRuZXNzOiAtMTUuNSUpO1xuICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTUlLCAgICAkbGlnaHRuZXNzOiAtMjIlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAgICRib3JkZXItc2lkZXM6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XG4gICAgICAkYm9yZGVyLXRvcDogICAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcbiAgICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1ob3Zlcik7XG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcbiAgICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWhvdmVyKTtcbiAgICB9XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLXRvcDtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3ctaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctaG92ZXI7XG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYWN0aXZlLWNvbG9yOiAgICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNCwgICRzYXR1cmF0aW9uOiAtMTIlLCAgJGxpZ2h0bmVzczogLTEwJSk7XG4gICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDYsICAkc2F0dXJhdGlvbjogLTIuNSUsICRsaWdodG5lc3M6IC0zMCUpO1xuICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAxMSwgJHNhdHVyYXRpb246ICA2JSwgICAkbGlnaHRuZXNzOiAtMzElKTtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogOSwgICRzYXR1cmF0aW9uOiAgMiUsICAgJGxpZ2h0bmVzczogLTIxLjUlKTtcbiAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNSwgICRzYXR1cmF0aW9uOiAtMTIlLCAgJGxpZ2h0bmVzczogLTIxLjUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBncmF5c2NhbGUoJGFjdGl2ZS1jb2xvcik7XG4gICAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XG4gICAgICAkYm9yZGVyLWJvdHRvbS1hY3RpdmU6IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbS1hY3RpdmUpO1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xuICAgICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZDogJGFjdGl2ZS1jb2xvcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWFjdGl2ZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b20tYWN0aXZlO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggM3B4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICAgIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuXG5cbi8vIEZsYXQgQnV0dG9uXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AbWl4aW4gZmxhdCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiA3cHggMThweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCl7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDQlLCAkbGlnaHRuZXNzOiA1JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItYWN0aXZlOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItYWN0aXZlKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci1hY3RpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG4iLCIvLyBNb2Rlcm4gbWljcm8gY2xlYXJmaXggcHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gY29udGFpbiBmbG9hdHMgd2l0aG91dCBhZGRpbmcgYWRkaXRpb25hbCBtYXJrdXAuXG4vL1xuLy8gRXhhbXBsZSB1c2FnZTpcbi8vXG4vLyAgICAvLyBDb250YWluIGFsbCBmbG9hdHMgd2l0aGluIC53cmFwcGVyXG4vLyAgICAud3JhcHBlciB7XG4vLyAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuLy8gICAgICAuY29udGVudCxcbi8vICAgICAgLnNpZGViYXIge1xuLy8gICAgICAgIGZsb2F0IDogbGVmdDtcbi8vICAgICAgfVxuLy8gICAgfVxuXG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OlwiXCI7XG4gICAgZGlzcGxheTp0YWJsZTtcbiAgICBjbGVhcjpib3RoO1xuICB9XG59XG5cbi8vIEFja25vd2xlZGdlbWVudHNcbi8vIEJlYXQgKnRoYXQqIGNsZWFyZml4OiBbVGhpZXJyeSBLb2JsZW50el0oaHR0cDovL3d3dy5jc3MtMTAxLm9yZy9hcnRpY2xlcy9jbGVhcmZpeC9sYXRlc3QtbmV3LWNsZWFyZml4LXNvLWZhci5waHApXG4iLCIvLyBkaXJlY3Rpb25hbC1wcm9wZXJ0eSBtaXhpbnMgYXJlIHNob3J0aGFuZHNcbi8vIGZvciB3cml0aW5nIHByb3BlcnRpZXMgbGlrZSB0aGUgZm9sbG93aW5nXG4vL1xuLy8gQGluY2x1ZGUgbWFyZ2luKG51bGwgMCAxMHB4KTtcbi8vIC0tLS0tLVxuLy8gbWFyZ2luLXJpZ2h0OiAwO1xuLy8gbWFyZ2luLWJvdHRvbTogMTBweDtcbi8vIG1hcmdpbi1sZWZ0OiAwO1xuLy9cbi8vIC0gb3IgLVxuLy9cbi8vIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkb3R0ZWQgbnVsbCk7XG4vLyAtLS0tLS1cbi8vIGJvcmRlci10b3Atc3R5bGU6IGRvdHRlZDtcbi8vIGJvcmRlci1ib3R0b20tc3R5bGU6IGRvdHRlZDtcbi8vXG4vLyAtLS0tLS1cbi8vXG4vLyBOb3RlOiBZb3UgY2FuIGFsc28gdXNlIGZhbHNlIGluc3RlYWQgb2YgbnVsbFxuXG5AZnVuY3Rpb24gY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKSB7XG4gICRvdXRwdXQ6IG51bGw7XG5cbiAgJEE6IG50aCggJHZhbHMsIDEgKTtcbiAgJEI6IGlmKCBsZW5ndGgoJHZhbHMpIDwgMiwgJEEsIG50aCgkdmFscywgMikpO1xuICAkQzogaWYoIGxlbmd0aCgkdmFscykgPCAzLCAkQSwgbnRoKCR2YWxzLCAzKSk7XG4gICREOiBpZiggbGVuZ3RoKCR2YWxzKSA8IDIsICRBLCBudGgoJHZhbHMsIGlmKCBsZW5ndGgoJHZhbHMpIDwgNCwgMiwgNCkgKSk7XG5cbiAgQGlmICRBID09IDAgeyAkQTogMCB9XG4gIEBpZiAkQiA9PSAwIHsgJEI6IDAgfVxuICBAaWYgJEMgPT0gMCB7ICRDOiAwIH1cbiAgQGlmICREID09IDAgeyAkRDogMCB9XG5cbiAgQGlmICRBID09ICRCIGFuZCAkQSA9PSAkQyBhbmQgJEEgPT0gJEQgeyAkb3V0cHV0OiAkQSAgICAgICAgICB9XG4gIEBlbHNlIGlmICRBID09ICRDIGFuZCAkQiA9PSAkRCAgICAgICAgIHsgJG91dHB1dDogJEEgJEIgICAgICAgfVxuICBAZWxzZSBpZiAkQiA9PSAkRCAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRBICRCICRDICAgIH1cbiAgQGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkQSAkQiAkQyAkRCB9XG5cbiAgQHJldHVybiAkb3V0cHV0O1xufVxuXG5AZnVuY3Rpb24gY29udGFpbnMtZmFsc3koJGxpc3QpIHtcbiAgQGVhY2ggJGl0ZW0gaW4gJGxpc3Qge1xuICAgIEBpZiBub3QgJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbkBtaXhpbiBkaXJlY3Rpb25hbC1wcm9wZXJ0eSgkcHJlLCAkc3VmLCAkdmFscykge1xuICAvLyBQcm9wZXJ0eSBOYW1lc1xuICAkdG9wOiAgICAkcHJlICsgXCItdG9wXCIgICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYm90dG9tOiAkcHJlICsgXCItYm90dG9tXCIgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkbGVmdDogICAkcHJlICsgXCItbGVmdFwiICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkcmlnaHQ6ICAkcHJlICsgXCItcmlnaHRcIiAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYWxsOiAgICAkcHJlICsgICAgICAgICAgICAgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcblxuICAkdmFsczogY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKTtcblxuICBAaWYgY29udGFpbnMtZmFsc3koJHZhbHMpIHtcbiAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHRvcH06IG50aCgkdmFscywgMSk7IH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDEge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRyaWdodH06IG50aCgkdmFscywgMSk7IH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDIpOyB9XG4gICAgfVxuXG4gICAgLy8gcHJvcDogdG9wL2JvdHRvbSByaWdodC9sZWZ0XG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMiB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMSk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuXG4gICAgLy8gcHJvcDogdG9wIHJpZ2h0L2xlZnQgYm90dG9tXG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDMge1xuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cblxuICAgIC8vIHByb3A6IHRvcCByaWdodCBib3R0b20gbGVmdFxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSA0IHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgNCkgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDQpOyB9XG4gICAgfVxuXG4gIC8vIHByb3A6IHRvcC9yaWdodC9ib3R0b20vbGVmdFxuICB9IEBlbHNlIHtcbiAgICAjeyRhbGx9OiAkdmFscztcbiAgfVxufVxuXG5AbWl4aW4gbWFyZ2luKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KG1hcmdpbiwgZmFsc2UsICR2YWxzLi4uKTtcbn1cblxuQG1peGluIHBhZGRpbmcoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkocGFkZGluZywgZmFsc2UsICR2YWxzLi4uKTtcbn1cblxuQG1peGluIGJvcmRlci1zdHlsZSgkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHN0eWxlLCAkdmFscy4uLik7XG59XG5cbkBtaXhpbiBib3JkZXItY29sb3IoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBjb2xvciwgJHZhbHMuLi4pO1xufVxuXG5AbWl4aW4gYm9yZGVyLXdpZHRoKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgd2lkdGgsICR2YWxzLi4uKTtcbn1cbiIsIkBtaXhpbiBlbGxpcHNpcygkd2lkdGg6IDEwMCUpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4iLCIkZ2VvcmdpYTogR2VvcmdpYSwgQ2FtYnJpYSwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgVGltZXMsIHNlcmlmO1xuJGhlbHZldGljYTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG4kbHVjaWRhLWdyYW5kZTogXCJMdWNpZGEgR3JhbmRlXCIsIFRhaG9tYSwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4kbW9ub3NwYWNlOiBcIkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ub1wiLCBDb25zb2xhcywgQ291cmllciwgbW9ub3NwYWNlO1xuJHZlcmRhbmE6IFZlcmRhbmEsIEdlbmV2YSwgc2Fucy1zZXJpZjtcbiIsIkBtaXhpbiBoaWRlLXRleHQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gR2VuZXJhdGUgYSB2YXJpYWJsZSAoJGFsbC10ZXh0LWlucHV0cykgd2l0aCBhIGxpc3Qgb2YgYWxsIGh0bWw1XG4vLyBpbnB1dCB0eXBlcyB0aGF0IGhhdmUgYSB0ZXh0LWJhc2VkIGlucHV0LCBleGNsdWRpbmcgdGV4dGFyZWEuXG4vLyBodHRwOi8vZGl2ZWludG9odG1sNS5vcmcvZm9ybXMuaHRtbFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuJGlucHV0cy1saXN0OiAnaW5wdXRbdHlwZT1cImVtYWlsXCJdJyxcbiAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJudW1iZXJcIl0nLFxuICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdJyxcbiAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJzZWFyY2hcIl0nLFxuICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRlbFwiXScsXG4gICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGV4dFwiXScsXG4gICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidXJsXCJdJyxcblxuICAgICAgICAgICAgICAvLyBXZWJraXQgJiBHZWNrbyBtYXkgY2hhbmdlIHRoZSBkaXNwbGF5IG9mIHRoZXNlIGluIHRoZSBmdXR1cmVcbiAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJjb2xvclwiXScsXG4gICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZVwiXScsXG4gICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0nLFxuICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdJyxcbiAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJtb250aFwiXScsXG4gICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGltZVwiXScsXG4gICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwid2Vla1wiXSc7XG5cbi8vIEJhcmUgaW5wdXRzXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4kYWxsLXRleHQtaW5wdXRzOiBhc3NpZ24taW5wdXRzKCRpbnB1dHMtbGlzdCk7XG5cbi8vIEhvdmVyIFBzZXVkby1jbGFzc1xuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuJGFsbC10ZXh0LWlucHV0cy1ob3ZlcjogYXNzaWduLWlucHV0cygkaW5wdXRzLWxpc3QsIGhvdmVyKTtcblxuLy8gRm9jdXMgUHNldWRvLWNsYXNzXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4kYWxsLXRleHQtaW5wdXRzLWZvY3VzOiBhc3NpZ24taW5wdXRzKCRpbnB1dHMtbGlzdCwgZm9jdXMpO1xuXG5cblxuLy8gWW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOlxuLy8gI3skYWxsLXRleHQtaW5wdXRzfVxuLy8gI3skYWxsLXRleHQtaW5wdXRzLWhvdmVyfVxuLy8gI3skYWxsLXRleHQtaW5wdXRzLWZvY3VzfVxuXG4vLyBFeGFtcGxlXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyAgICN7JGFsbC10ZXh0LWlucHV0c30sIHRleHRhcmVhIHtcbi8vICAgICBib3JkZXI6IDFweCBzb2xpZCByZWQ7XG4vLyAgIH1cblxuXG5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEdlbmVyYXRlIGEgdmFyaWFibGUgKCRhbGwtYnV0dG9uLWlucHV0cykgd2l0aCBhIGxpc3Qgb2YgYWxsIGh0bWw1XG4vLyBpbnB1dCB0eXBlcyB0aGF0IGhhdmUgYSBidXR0b24tYmFzZWQgaW5wdXQsIGV4Y2x1ZGluZyBidXR0b24uXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4kaW5wdXRzLWJ1dHRvbi1saXN0OiAnaW5wdXRbdHlwZT1cImJ1dHRvblwiXScsXG4gICAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInJlc2V0XCJdJyxcbiAgICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic3VibWl0XCJdJztcblxuLy8gQmFyZSBpbnB1dHNcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbiRhbGwtYnV0dG9uLWlucHV0czogYXNzaWduLWlucHV0cygkaW5wdXRzLWJ1dHRvbi1saXN0KTtcblxuLy8gSG92ZXIgUHNldWRvLWNsYXNzXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4kYWxsLWJ1dHRvbi1pbnB1dHMtaG92ZXI6IGFzc2lnbi1pbnB1dHMoJGlucHV0cy1idXR0b24tbGlzdCwgaG92ZXIpO1xuXG4vLyBGb2N1cyBQc2V1ZG8tY2xhc3Ncbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbiRhbGwtYnV0dG9uLWlucHV0cy1mb2N1czogYXNzaWduLWlucHV0cygkaW5wdXRzLWJ1dHRvbi1saXN0LCBmb2N1cyk7XG5cbi8vIEFjdGl2ZSBQc2V1ZG8tY2xhc3Ncbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbiRhbGwtYnV0dG9uLWlucHV0cy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJGlucHV0cy1idXR0b24tbGlzdCwgYWN0aXZlKTtcblxuXG5cbi8vIFlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTpcbi8vICN7JGFsbC1idXR0b24taW5wdXRzfVxuLy8gI3skYWxsLWJ1dHRvbi1pbnB1dHMtaG92ZXJ9XG4vLyAjeyRhbGwtYnV0dG9uLWlucHV0cy1mb2N1c31cbi8vICN7JGFsbC1idXR0b24taW5wdXRzLWFjdGl2ZX1cblxuLy8gRXhhbXBsZVxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gICAjeyRhbGwtYnV0dG9uLWlucHV0c30sIGJ1dHRvbiB7XG4vLyAgICAgYm9yZGVyOiAxcHggc29saWQgcmVkO1xuLy8gICB9XG4iLCJAbWl4aW4gcG9zaXRpb24gKCRwb3NpdGlvbjogcmVsYXRpdmUsICRjb29yZGluYXRlczogbnVsbCBudWxsIG51bGwgbnVsbCkge1xuXG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gbGlzdCB7XG4gICAgJGNvb3JkaW5hdGVzOiAkcG9zaXRpb247XG4gICAgJHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gICRjb29yZGluYXRlczogdW5wYWNrKCRjb29yZGluYXRlcyk7XG5cbiAgJHRvcDogbnRoKCRjb29yZGluYXRlcywgMSk7XG4gICRyaWdodDogbnRoKCRjb29yZGluYXRlcywgMik7XG4gICRib3R0b206IG50aCgkY29vcmRpbmF0ZXMsIDMpO1xuICAkbGVmdDogbnRoKCRjb29yZGluYXRlcywgNCk7XG5cbiAgcG9zaXRpb246ICRwb3NpdGlvbjtcblxuICBAaWYgKCR0b3AgYW5kICR0b3AgPT0gYXV0bykgb3IgKHR5cGUtb2YoJHRvcCkgPT0gbnVtYmVyKSB7XG4gICAgdG9wOiAkdG9wO1xuICB9XG5cbiAgQGlmICgkcmlnaHQgYW5kICRyaWdodCA9PSBhdXRvKSBvciAodHlwZS1vZigkcmlnaHQpID09IG51bWJlcikge1xuICAgIHJpZ2h0OiAkcmlnaHQ7XG4gIH1cblxuICBAaWYgKCRib3R0b20gYW5kICRib3R0b20gPT0gYXV0bykgb3IgKHR5cGUtb2YoJGJvdHRvbSkgPT0gbnVtYmVyKSB7XG4gICAgYm90dG9tOiAkYm90dG9tO1xuICB9XG5cbiAgQGlmICgkbGVmdCBhbmQgJGxlZnQgPT0gYXV0bykgb3IgKHR5cGUtb2YoJGxlZnQpID09IG51bWJlcikge1xuICAgIGxlZnQ6ICRsZWZ0O1xuICB9XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBFeGFtcGxlOiBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItcmFkaXVzLCAkcmFkaWksIHdlYmtpdCBtcyBzcGVjKTtcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIFZhcmlhYmxlcyBsb2NhdGVkIGluIC9zZXR0aW5ncy9fcHJlZml4ZXIuc2Nzc1xuXG5AbWl4aW4gcHJlZml4ZXIgKCRwcm9wZXJ0eSwgJHZhbHVlLCAkcHJlZml4ZXMpIHtcbiAgQGVhY2ggJHByZWZpeCBpbiAkcHJlZml4ZXMge1xuICAgIEBpZiAkcHJlZml4ID09IHdlYmtpdCB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itd2Via2l0IHtcbiAgICAgICAgLXdlYmtpdC0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJHByZWZpeCA9PSBtb3oge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1vemlsbGEge1xuICAgICAgICAtbW96LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkcHJlZml4ID09IG1zIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1taWNyb3NvZnQge1xuICAgICAgICAtbXMtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRwcmVmaXggPT0gbyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itb3BlcmEge1xuICAgICAgICAtby0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJHByZWZpeCA9PSBzcGVjIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1zcGVjIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlICB7XG4gICAgICBAd2FybiBcIlVucmVjb2duaXplZCBwcmVmaXg6ICN7JHByZWZpeH1cIjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKSB7XG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6IGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICBmYWxzZSAhZ2xvYmFsO1xufVxuIiwiQG1peGluIHJldGluYS1pbWFnZSgkZmlsZW5hbWUsICRiYWNrZ3JvdW5kLXNpemUsICRleHRlbnNpb246IHBuZywgJHJldGluYS1maWxlbmFtZTogbnVsbCwgJHJldGluYS1zdWZmaXg6IF8yeCwgJGFzc2V0LXBpcGVsaW5lOiBmYWxzZSkge1xuICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAgdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gIH1cblxuICBAaW5jbHVkZSBoaWRwaSB7XG4gICAgQGlmICRhc3NldC1waXBlbGluZSB7XG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRiYWNrZ3JvdW5kLXNpemU7XG5cbiAgfVxufVxuIiwiQG1peGluIHNpemUoJHNpemUpIHtcbiAgJGhlaWdodDogbnRoKCRzaXplLCAxKTtcbiAgJHdpZHRoOiAkaGVpZ2h0O1xuXG4gIEBpZiBsZW5ndGgoJHNpemUpID4gMSB7XG4gICAgJGhlaWdodDogbnRoKCRzaXplLCAyKTtcbiAgfVxuXG4gIEBpZiAkaGVpZ2h0ID09IGF1dG8gb3IgKHR5cGUtb2YoJGhlaWdodCkgPT0gbnVtYmVyIGFuZCBub3QgdW5pdGxlc3MoJGhlaWdodCkpIHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIH1cblxuICBAaWYgJHdpZHRoID09IGF1dG8gb3IgKHR5cGUtb2YoJGhlaWdodCkgPT0gbnVtYmVyIGFuZCBub3QgdW5pdGxlc3MoJHdpZHRoKSkge1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gIH1cbn1cbiIsIi8vIENTUyBjdWJpYy1iZXppZXIgdGltaW5nIGZ1bmN0aW9ucy4gVGltaW5nIGZ1bmN0aW9ucyBjb3VydGVzeSBvZiBqcXVlcnkuZWFzaWUgKGdpdGh1Yi5jb20vamF1a2lhL2Vhc2llKVxuLy8gVGltaW5nIGZ1bmN0aW9ucyBhcmUgdGhlIHNhbWUgYXMgZGVtbydlZCBoZXJlOiBodHRwOi8vanF1ZXJ5dWkuY29tL2RlbW9zL2VmZmVjdC9lYXNpbmcuaHRtbFxuXG4vLyBFQVNFIElOXG4kZWFzZS1pbi1xdWFkOiAgICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDg1LCAwLjY4MCwgMC41MzApO1xuJGVhc2UtaW4tY3ViaWM6ICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiRlYXNlLWluLXF1YXJ0OiAgICAgY3ViaWMtYmV6aWVyKDAuODk1LCAgMC4wMzAsIDAuNjg1LCAwLjIyMCk7XG4kZWFzZS1pbi1xdWludDogICAgIGN1YmljLWJlemllcigwLjc1NSwgIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xuJGVhc2UtaW4tc2luZTogICAgICBjdWJpYy1iZXppZXIoMC40NzAsICAwLjAwMCwgMC43NDUsIDAuNzE1KTtcbiRlYXNlLWluLWV4cG86ICAgICAgY3ViaWMtYmV6aWVyKDAuOTUwLCAgMC4wNTAsIDAuNzk1LCAwLjAzNSk7XG4kZWFzZS1pbi1jaXJjOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgIDAuMDQwLCAwLjk4MCwgMC4zMzUpO1xuJGVhc2UtaW4tYmFjazogICAgICBjdWJpYy1iZXppZXIoMC42MDAsIC0wLjI4MCwgMC43MzUsIDAuMDQ1KTtcblxuLy8gRUFTRSBPVVRcbiRlYXNlLW91dC1xdWFkOiAgICAgY3ViaWMtYmV6aWVyKDAuMjUwLCAgMC40NjAsIDAuNDUwLCAwLjk0MCk7XG4kZWFzZS1vdXQtY3ViaWM6ICAgIGN1YmljLWJlemllcigwLjIxNSwgIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuJGVhc2Utb3V0LXF1YXJ0OiAgICBjdWJpYy1iZXppZXIoMC4xNjUsICAwLjg0MCwgMC40NDAsIDEuMDAwKTtcbiRlYXNlLW91dC1xdWludDogICAgY3ViaWMtYmV6aWVyKDAuMjMwLCAgMS4wMDAsIDAuMzIwLCAxLjAwMCk7XG4kZWFzZS1vdXQtc2luZTogICAgIGN1YmljLWJlemllcigwLjM5MCwgIDAuNTc1LCAwLjU2NSwgMS4wMDApO1xuJGVhc2Utb3V0LWV4cG86ICAgICBjdWJpYy1iZXppZXIoMC4xOTAsICAxLjAwMCwgMC4yMjAsIDEuMDAwKTtcbiRlYXNlLW91dC1jaXJjOiAgICAgY3ViaWMtYmV6aWVyKDAuMDc1LCAgMC44MjAsIDAuMTY1LCAxLjAwMCk7XG4kZWFzZS1vdXQtYmFjazogICAgIGN1YmljLWJlemllcigwLjE3NSwgIDAuODg1LCAwLjMyMCwgMS4yNzUpO1xuXG4vLyBFQVNFIElOIE9VVFxuJGVhc2UtaW4tb3V0LXF1YWQ6ICBjdWJpYy1iZXppZXIoMC40NTUsICAwLjAzMCwgMC41MTUsIDAuOTU1KTtcbiRlYXNlLWluLW91dC1jdWJpYzogY3ViaWMtYmV6aWVyKDAuNjQ1LCAgMC4wNDUsIDAuMzU1LCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtcXVhcnQ6IGN1YmljLWJlemllcigwLjc3MCwgIDAuMDAwLCAwLjE3NSwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXF1aW50OiBjdWJpYy1iZXppZXIoMC44NjAsICAwLjAwMCwgMC4wNzAsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1zaW5lOiAgY3ViaWMtYmV6aWVyKDAuNDQ1LCAgMC4wNTAsIDAuNTUwLCAwLjk1MCk7XG4kZWFzZS1pbi1vdXQtZXhwbzogIGN1YmljLWJlemllcigxLjAwMCwgIDAuMDAwLCAwLjAwMCwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LWNpcmM6ICBjdWJpYy1iZXppZXIoMC43ODUsICAwLjEzNSwgMC4xNTAsIDAuODYwKTtcbiRlYXNlLWluLW91dC1iYWNrOiAgY3ViaWMtYmV6aWVyKDAuNjgwLCAtMC41NTAsIDAuMjY1LCAxLjU1MCk7XG4iLCJAbWl4aW4gdHJpYW5nbGUgKCRzaXplLCAkY29sb3IsICRkaXJlY3Rpb24pIHtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcblxuICAkd2lkdGg6IG50aCgkc2l6ZSwgMSk7XG4gICRoZWlnaHQ6IG50aCgkc2l6ZSwgbGVuZ3RoKCRzaXplKSk7XG5cbiAgJGZvcmVncm91bmQtY29sb3I6IG50aCgkY29sb3IsIDEpO1xuICAkYmFja2dyb3VuZC1jb2xvcjogaWYobGVuZ3RoKCRjb2xvcikgPT0gMiwgbnRoKCRjb2xvciwgMiksIHRyYW5zcGFyZW50KTtcblxuICBAaWYgKCRkaXJlY3Rpb24gPT0gdXApIG9yICgkZGlyZWN0aW9uID09IGRvd24pIG9yICgkZGlyZWN0aW9uID09IHJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBsZWZ0KSB7XG5cbiAgICAkd2lkdGg6ICR3aWR0aCAvIDI7XG4gICAgJGhlaWdodDogaWYobGVuZ3RoKCRzaXplKSA+IDEsICRoZWlnaHQsICRoZWlnaHQvMik7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cCB7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBsZWZ0IHtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSB1cC1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gdXAtbGVmdCkge1xuICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cC1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcblxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cC1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGRvd24tcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGRvd24tbGVmdCkge1xuICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24tbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC11cCkge1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICB9XG5cbiAgQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtZG93bikge1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICB9XG5cbiAgQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtcmlnaHQpIHtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgfVxuXG4gIEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWxlZnQpIHtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgfVxufVxuIiwiQG1peGluIHdvcmQtd3JhcCgkd3JhcDogYnJlYWstd29yZCkge1xuICB3b3JkLXdyYXA6ICR3cmFwO1xuXG4gIEBpZiAkd3JhcCA9PSBicmVhay13b3JkIHtcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgfVxufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gVGhlc2UgbWl4aW5zL2Z1bmN0aW9ucyBhcmUgZGVwcmVjYXRlZFxuLy8gVGhleSB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgTUFKT1IgdmVyc2lvbiByZWxlYXNlXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AbWl4aW4gaW5saW5lLWJsb2NrIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBAd2FybiBcImlubGluZS1ibG9jayBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG4iLCIvLyBDb3JlXG5AaW1wb3J0IFwiY29yZVwiO1xuXG4vLyBCcmVha3BvaW50c1xuQGltcG9ydCBcImJyZWFrcG9pbnRzXCI7XG5cbi8vIExheW91dFxuQGltcG9ydCBcImxheW91dFwiO1xuXG4vLyBUeXBvZ3JhcGh5XG5AaW1wb3J0IFwidHlwb2dyYXBoeVwiO1xuXG4vLyBOYXZcbkBpbXBvcnQgXCJuYXZcIjsiLCIvLyBCb3JkZXIgUmFkaXVzXG4kY29yZS1ib3JkZXItcmFkaXVzOlx0XHRcdDAgIWRlZmF1bHQ7XG5cbi8vIFByZSBhbmQgQ29kZSBGb250IEZhbWlseVxuJHByZWZvcm1hdHRlZC1mb250LWZhbWlseTogICAgICBpbmhlcml0ICFkZWZhdWx0OyIsIi8vIE1lZGlhIERldmljZSBCcmVha3BvaW50c1xuJGxhcmdlLWRlc2t0b3AtY29udGFpbmVyOlx0XHQ3NS4wMDBlbSAhZGVmYXVsdDtcbiRkZXNrdG9wLWNvbnRhaW5lcjpcdFx0XHRcdDYwLjAwMGVtICFkZWZhdWx0O1xuJHRhYmxldC1jb250YWluZXI6XHRcdFx0XHQ0OC4wMDBlbSAhZGVmYXVsdDtcbiRsYXJnZS1tb2JpbGUtY29udGFpbmVyOlx0XHQzMC4wMDBlbSAhZGVmYXVsdDtcbiRtb2JpbGUtY29udGFpbmVyOlx0XHRcdFx0MTAwJSAhZGVmYXVsdDtcblxuLy8gQnJlYWtwb2ludCBWYXJpYWJsZXMgRm9yIFBhcnRpY2xlc1xuJG1lZGlhOiBcImFsbFwiICFkZWZhdWx0O1xuJG1vYmlsZS1vbmx5OiBcIiN7JG1lZGlhfSBhbmQgKG1heC13aWR0aDojeyR0YWJsZXQtY29udGFpbmVyIC0gMC4wNjJ9KVwiICFkZWZhdWx0O1xuJG5vLW1vYmlsZTogXCIjeyRtZWRpYX0gYW5kIChtaW4td2lkdGg6I3skdGFibGV0LWNvbnRhaW5lcn0pXCIgIWRlZmF1bHQ7XG4kc21hbGwtbW9iaWxlLXJhbmdlOiBcIiN7JG1lZGlhfSBhbmQgKG1heC13aWR0aDojeyRsYXJnZS1tb2JpbGUtY29udGFpbmVyfSlcIiAhZGVmYXVsdDtcbiRsYXJnZS1tb2JpbGUtcmFuZ2U6IFwiI3skbWVkaWF9IGFuZCAobWluLXdpZHRoOiN7JGxhcmdlLW1vYmlsZS1jb250YWluZXIgKyAwLjA2M30pIGFuZCAobWF4LXdpZHRoOiN7JHRhYmxldC1jb250YWluZXIgLSAwLjA2Mn0pXCIgIWRlZmF1bHQ7XG4kdGFibGV0LXJhbmdlOiBcIiN7JG1lZGlhfSBhbmQgKG1pbi13aWR0aDojeyR0YWJsZXQtY29udGFpbmVyfSkgYW5kIChtYXgtd2lkdGg6I3skZGVza3RvcC1jb250YWluZXIgLSAwLjA2Mn0pXCIgIWRlZmF1bHQ7XG4kZGVza3RvcC1yYW5nZTogXCIjeyRtZWRpYX0gYW5kIChtaW4td2lkdGg6I3skZGVza3RvcC1jb250YWluZXJ9KSBhbmQgKG1heC13aWR0aDojeyRsYXJnZS1kZXNrdG9wLWNvbnRhaW5lciAtIDAuMDYyfSlcIiAhZGVmYXVsdDtcbiRsYXJnZS1kZXNrdG9wLXJhbmdlOiBcIiN7JG1lZGlhfSBhbmQgKG1pbi13aWR0aDojeyRsYXJnZS1kZXNrdG9wLWNvbnRhaW5lcn0pXCIgIWRlZmF1bHQ7XG4iLCIvLyBDb250ZW50IEJsb2NrIFNwYWNpbmcgVmFyaWFibGVzXG4kY29udGVudC1tYXJnaW46XHRcdFx0XHQwLjYyNXJlbSAhZGVmYXVsdDtcbiRjb250ZW50LXBhZGRpbmc6XHRcdFx0XHQwLjkzOHJlbSAhZGVmYXVsdDtcblxuLy8gRml4ZWQgQmxvY2sgVmFyaWFibGVzXG4kZml4ZWQtYmxvY2stZnVsbDpcdFx0XHRcdHBlcmNlbnRhZ2UoMS80KSAhZGVmYXVsdDtcbiRmaXhlZC1ibG9jay1kZXNrdG9wOlx0XHRcdHBlcmNlbnRhZ2UoMS8zKSAhZGVmYXVsdDtcbiRmaXhlZC1ibG9jay10YWJsZXQ6XHRcdFx0cGVyY2VudGFnZSgxLzIpICFkZWZhdWx0OyIsIi8vIEJhc2UgU2l6ZXNcbiRjb3JlLWZvbnQtc2l6ZTpcdFx0XHRcdDFyZW0gIWRlZmF1bHQ7XG4kY29yZS1saW5lLWhlaWdodDpcdFx0XHRcdDEuNyAhZGVmYXVsdDtcblxuLy8gSGVhZGluZyBTaXplc1xuJGgxLWZvbnQtc2l6ZTpcdFx0XHRcdFx0JGNvcmUtZm9udC1zaXplICsgMi4yMCAhZGVmYXVsdDtcbiRoMi1mb250LXNpemU6XHRcdFx0XHRcdCRjb3JlLWZvbnQtc2l6ZSAtIDEuNjAgIWRlZmF1bHQ7XG4kaDMtZm9udC1zaXplOlx0XHRcdFx0XHQkY29yZS1mb250LXNpemUgLSAxLjUwICFkZWZhdWx0O1xuJGg0LWZvbnQtc2l6ZTpcdFx0XHRcdFx0JGNvcmUtZm9udC1zaXplICsgMC43NSAhZGVmYXVsdDtcbiRoNS1mb250LXNpemU6XHRcdFx0XHRcdCRjb3JlLWZvbnQtc2l6ZSArIDAuMzUgIWRlZmF1bHQ7XG4kaDYtZm9udC1zaXplOlx0XHRcdFx0XHQkY29yZS1mb250LXNpemUgLSAwLjE1ICFkZWZhdWx0O1xuXG4vLyBTcGFjaW5nXG4kbGVhZGluZy1tYXJnaW46XHRcdFx0XHQkY29yZS1saW5lLWhlaWdodCAqIDFyZW0gIWRlZmF1bHQ7XG4iLCIvLyBEcm9wZG93bnNcbiRkcm9wZG93bi13aWR0aDpcdFx0XHRcdDE0MHB4ICFkZWZhdWx0O1xuJGZseW91dC13aWR0aDpcdFx0XHRcdFx0MTQwcHggIWRlZmF1bHQ7XG4kZHJvcGRvd24tY29sLXdpZHRoOiAgICAgICAgICAgIDE3MHB4ICFkZWZhdWx0O1xuJGRyb3Bkb3duLWNvbC1oZWlnaHQ6ICAgICAgICAgICAyMDBweCAhZGVmYXVsdDsiLCIvLyBDb2xvcnNcbkBpbXBvcnQgXCJjb2xvcnNcIjtcblxuLy8gVHlwb2dyYXBoeVxuQGltcG9ydCBcInR5cG9ncmFwaHlcIjtcblxuLy8gVHlwb2dyYXBoeVxuQGltcG9ydCBcImJ1bGxldHNcIjtcblxuLy8gVmFyaWFibGVzXG5AaW1wb3J0IFwidmFyaWFibGVzXCI7XG4iLCIvLyBDb3JlXG4kY29yZS10ZXh0Olx0XHRcdFx0XHRcdCM5QTk4OTg7XG4kY29yZS1hY2NlbnQ6XHRcdFx0XHRcdCM4N2I2NzI7XG4kc2Vjb25kYXJ5LWxpbms6XHRcdFx0XHQjRjY2MzVFO1xuJHdoaXRlOlx0XHRcdFx0XHRcdFx0I2ZmZjtcbiRibGFjazpcdFx0XHRcdFx0XHRcdCMwMDA7XG4kbGlnaHQtZ3JheTpcdFx0XHRcdFx0IzY1NjE2MTtcbiRib3JkZXItY29sb3I6IFx0XHRcdFx0XHQjRUVFRUVFO1xuXG4vLyBCb3JkZXJzXG4kY29yZS1ib3JkZXItY29sb3I6XHRcdFx0XHQjQ0JDQkNCO1xuJGNvcmUtYm9yZGVyLWNvbG9yLWhvdmVyOiBcdFx0ZGFya2VuKCRjb3JlLWJvcmRlci1jb2xvciwgMTApO1xuJGNvcmUtYm9yZGVyLWNvbG9yLWZvY3VzOiBcdFx0JGNvcmUtYWNjZW50O1xuXG4vLyBTaGFkb3dzXG4kY29yZS1ib3gtc2hhZG93OiBcdFx0XHRcdGluc2V0IDAgMXB4IDNweCBoc2xhKDAsIDAlLCAwJSwgMC4wNik7XG4kY29yZS1ib3gtc2hhZG93LWZvY3VzOiBcdFx0JGNvcmUtYm94LXNoYWRvdywgMCAwIDVweCByZ2JhKGRhcmtlbigkY29yZS1ib3JkZXItY29sb3ItZm9jdXMsIDUpLCAwLjcpO1xuXG4vLyBCYWNrZ3JvdW5kXG4kcGFnZS1iZzpcdFx0XHRcdFx0XHQjZmZmO1xuXG4vLyBIZWFkZXJcbiRoZWFkZXItdGV4dDogXHRcdFx0XHRcdCNGRkZGRkY7XG5cbi8vIE5hdlxuJG5hdmJhci10ZXh0OiBcdFx0XHRcdFx0I2ZmZjtcbiRuYXZiYXItYmc6IFx0XHRcdFx0XHQjRkZGRkZGO1xuXG4vLyBTaG93Y2FzZVxuJHNob3djYXNlLWJnOlx0XHRcdFx0XHRsaWdodGVuKCRjb3JlLWFjY2VudCwgNiUpO1xuJHNob3djYXNlLXRleHQ6XHRcdFx0XHRcdCNmZmY7XG5cbi8vIEZlYXR1cmVcbiRmZWF0dXJlLWJnOlx0XHRcdFx0XHQjZmZmO1xuXG4vLyBNYWluIEJvZHlcbiRtYWluLWJnOlx0XHRcdFx0XHRcdCNmN2Y3Zjc7XG4kYm9keS1ib3JkZXI6XHRcdFx0XHRcdGRhcmtlbigkbWFpbi1iZywgNSUpO1xuXG4vLyBTaWRlYmFyXG4kc2lkZWJhci10ZXh0Olx0XHRcdFx0XHQjYWFhO1xuXG4vLyBCb3R0b21cbiRib3R0b20tYmc6XHRcdFx0XHRcdFx0I2Y3ZjdmNztcbiRib3R0b20tdGV4dDpcdFx0XHRcdFx0JGNvcmUtdGV4dDtcblxuLy8gRm9vdGVyXG4kZm9vdGVyLWJnOlx0XHRcdFx0XHRcdCM0MDQwNDA7XG4kZm9vdGVyLXRleHQ6XHRcdFx0XHRcdCNjY2M7XG5cbiRydWxlLWNvbG9yOiBcdFx0XHRcdFx0I0YwRjJGNDtcbiRjb2RlLXRleHQ6XHRcdFx0XHRcdFx0I2M3MjU0ZTtcbiRjb2RlLWJnOlx0XHRcdFx0XHRcdCNmOWYyZjQ7XG4kcHJlLXRleHQ6XHRcdFx0XHRcdFx0IzIzNzc5NDtcbiRwcmUtYmc6XHRcdFx0XHRcdFx0I2Y2ZjZmNjtcblxuLy8gRGFyayBDb250cmFzdCB2YXJpYXRpb25cbiRkYXJrLW5hdmJhci10ZXh0Olx0XHRcdFx0Izk5OTtcbiRkYXJrLXNpZGViYXI6XHRcdFx0XHRcdCMyMjI7XG4kZGFyay1zaWRlYmFyLXRleHQ6XHRcdFx0XHQjOTk5O1xuJGRhcmstbWFpbi1iZzpcdFx0XHRcdFx0IzMzMztcbiRkYXJrLWJvZHktYm9yZGVyOlx0XHRcdFx0IzY2NjtcbiIsIi8vIEZvbnQgRmFtaWx5XG4kZm9udC1mYW1pbHktZGVmYXVsdDogIFx0XHRcdFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FOZXVlLUxpZ2h0XCIsIFwiSGVsdmV0aWNhIE5ldWUgTGlnaHRcIiwgIEhlbHZldGljYSwgQXJpYWwsIFwiTHVjaWRhIEdyYW5kZVwiLCBzYW5zLXNlcmlmO1xuJGZvbnQtZmFtaWx5LWhlYWRlcjogIFx0XHRcdFwibm92ZWNlbnRvX3NhbnNfd2lkZWRlbWlib2xkXCIsIFwiSGVsdmV0aWNhXCIsIFwiVGFob21hXCIsIFwiR2VuZXZhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiRmb250LWZhbWlseS1sb2dvOiAgICAgICAgICAgICAgXCJQYWNpZmljb1wiLCBcIm1vbm9zcGFjZVwiO1xuJGZvbnQtZmFtaWx5LW1vbm86IFx0XHRcdFx0XCJJbmNvbnNvbGF0YVwiLCBtb25vc3BhY2U7XG4kZm9udC1mYW1pbHktc2VyaWY6XHRcdFx0XHRcIkdlb3JnaWFcIiwgXCJUaW1lc1wiLCBcIlRpbWVzIE5ldyBSb21hblwiLCBzZXJpZjtcblxuJGljb25zOiBcdFx0XHRcdFx0XHRcIkZvbnRBd2Vzb21lXCI7XG4iLCIkYnVsbGV0LWljb24tc2l6ZTpcdFx0XHRcdDMuNXJlbTtcblxuJGJ1bGxldC1pY29uLWNvbG9yLTE6XHRcdFx0JGNvcmUtYWNjZW50O1xuJGJ1bGxldC1pY29uLWNvbG9yLTI6XHRcdFx0YWRqdXN0LWh1ZSgkY29yZS1hY2NlbnQsIC0yMCk7XG4kYnVsbGV0LWljb24tY29sb3ItMzpcdFx0XHRhZGp1c3QtaHVlKCRjb3JlLWFjY2VudCwgLTEzMCk7IiwiLy8gU2l6ZXNcbiRoZWFkZXItaGVpZ2h0OiAxMnJlbTtcbiRmb290ZXItaGVpZ2h0OiA2cmVtO1xuJGJvcmRlci1yYWRpdXM6IDA7XG5cbi8vIEZvbnQgV2VpZ2h0c1xuJGZvbnQtd2VpZ2h0LWJvbGQ6IDYwMDtcbiRmb250LXdlaWdodC1yZWd1bGFyOiA0MDA7XG4kZm9udC13ZWlnaHQtbGlnaHQ6MzAwO1xuXG4vLyBHbG9iYWwgUGFkZGluZ3NcbiRwYWRkaW5nLWhvcml6OiAxNHJlbTtcbiRwYWRkaW5nLXZlcnQ6IDNyZW07XG4iLCJAaW1wb3J0IFwiZGlyZWN0aW9uXCI7XG5AaW1wb3J0IFwicmFuZ2VcIjtcbkBpbXBvcnQgXCJ1dGlsaXRpZXNcIjsiLCJAZnVuY3Rpb24gb3Bwb3NpdGUtZGlyZWN0aW9uKCRkaXIpIHtcblx0QGlmICRkaXIgPT0gJ2xlZnQnIHtcblx0XHRAcmV0dXJuIHJpZ2h0O1xuXHR9XG5cdEBlbHNlIGlmICAkZGlyID09ICdyaWdodCcge1xuXHRcdEByZXR1cm4gbGVmdDtcblx0fVxuXHRAZWxzZSBpZiAkZGlyID09ICdsdHInIHtcblx0XHRAcmV0dXJuIHJ0bDtcblx0fVxuXHRAZWxzZSBpZiAkZGlyID09ICdydGwnIHtcblx0XHRAcmV0dXJuIGx0cjtcblx0fVxuXHRAZWxzZSBpZiAkZGlyID09ICd0b3AnIHtcblx0XHRAcmV0dXJuIGJvdHRvbTtcblx0fVxuXHRAZWxzZSBpZiAkZGlyID09ICdib3R0b20nIHtcblx0XHRAcmV0dXJuIHRvcDtcblx0fVxuXHRAZWxzZSB7XG5cdFx0QHdhcm4gXCIjeyRkaXJ9IGlzIG5vdCBhIGRpcmVjdGlvbiEgTWFrZSBzdXJlIHlvdXIgZGlyZWN0aW9uIGlzIGFsbCBsb3dlcmNhc2UhXCI7XG5cdFx0QHJldHVybiBmYWxzZTtcblx0fVxufVxuXG5AZnVuY3Rpb24gbmFtZWQtZGlyZWN0aW9uKCRkaXIpIHtcblx0QGlmICRkaXIgPT0gJ2x0cicge1xuXHRcdEByZXR1cm4gbGVmdDtcblx0fVxuXHRAZWxzZSBpZiAkZGlyID09ICdydGwnIHtcblx0XHRAcmV0dXJuIHJpZ2h0O1xuXHR9XG5cdEBlbHNlIHtcblx0XHRAd2FybiBcIiN7JGRpcn0gaXMgbm90IGEgdmFsaWQgSFRNTCBkaXJlY3Rpb24hIE1ha2Ugc3VyZSB5b3UgYXJlIHVzaW5nIGEgdmFsaWQgSFRNTCBkaXJlY3Rpb25cIjtcblx0XHRAcmV0dXJuIGZhbHNlO1xuXHR9XG59IiwiQGZ1bmN0aW9uIGxvd2VyLWJvdW5kKCRyYW5nZSl7XG5cdEBpZiBsZW5ndGgoJHJhbmdlKSA8PSAwIHtcblx0XHRAcmV0dXJuIDA7XG5cdH1cblx0QHJldHVybiBudGgoJHJhbmdlLDEpO1xufVxuXG5AZnVuY3Rpb24gdXBwZXItYm91bmQoJHJhbmdlKSB7XG5cdEBpZiBsZW5ndGgoJHJhbmdlKSA8IDIge1xuXHRcdEByZXR1cm4gOTk5OTk5OTk5OTk5O1xuXHR9XG5cdEByZXR1cm4gbnRoKCRyYW5nZSwgMik7XG59IiwiQGZ1bmN0aW9uIHRleHRjb2xvci10aW50KCRjb2xvciwgJGFtb3VudDogNjUlKSB7XG4gXHRAaWYgKGxpZ2h0bmVzcygkY29sb3IpID4gNTApIHtcbiBcdFx0QHJldHVybiBkYXJrZW4oJGNvbG9yLCAkYW1vdW50KTtcblx0fSBAZWxzZSB7XG4gICAgXHRAcmV0dXJuIGxpZ2h0ZW4oJGNvbG9yLCAkYW1vdW50KTtcbiAgXHR9XHRcbn0iLCJAaW1wb3J0IFwiYnJlYWtwb2ludHNcIjtcbkBpbXBvcnQgXCJuYXZcIjtcbkBpbXBvcnQgXCJ0eXBvZ3JhcGh5XCI7XG5AaW1wb3J0IFwidXRpbGl0aWVzXCI7IiwiLy8gQnJlYWtwb2ludHNcbkBtaXhpbiBicmVha3BvaW50KCRicmVha3BvaW50LCAkbWVkaWE6IGFsbCkge1xuXHRAaWYgJGJyZWFrcG9pbnQgPT0gbGFyZ2UtZGVza3RvcC1yYW5nZSB7XG5cdFx0QG1lZGlhIG9ubHkgI3skbWVkaWF9IGFuZCAobWluLXdpZHRoOiAkbGFyZ2UtZGVza3RvcC1jb250YWluZXIpIHsgQGNvbnRlbnQ7IH1cblx0fVxuXHRAZWxzZSBpZiAkYnJlYWtwb2ludCA9PSBkZXNrdG9wLXJhbmdlIHtcblx0XHRAbWVkaWEgb25seSAjeyRtZWRpYX0gYW5kIChtaW4td2lkdGg6ICRkZXNrdG9wLWNvbnRhaW5lcikgYW5kIChtYXgtd2lkdGg6ICRsYXJnZS1kZXNrdG9wLWNvbnRhaW5lciAtIDAuMDYyKSB7IEBjb250ZW50OyB9XG5cdH1cblx0QGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gdGFibGV0LXJhbmdlIHtcblx0XHRAbWVkaWEgb25seSAjeyRtZWRpYX0gYW5kIChtaW4td2lkdGg6ICR0YWJsZXQtY29udGFpbmVyKSBhbmQgKG1heC13aWR0aDogJGRlc2t0b3AtY29udGFpbmVyIC0gMC4wNjIpIHsgQGNvbnRlbnQ7IH1cblx0fVxuXHRAZWxzZSBpZiAkYnJlYWtwb2ludCA9PSBsYXJnZS1tb2JpbGUtcmFuZ2Uge1xuXHRcdEBtZWRpYSBvbmx5ICN7JG1lZGlhfSBhbmQgKG1pbi13aWR0aDogJGxhcmdlLW1vYmlsZS1jb250YWluZXIgKyAwLjA2MykgYW5kIChtYXgtd2lkdGg6ICR0YWJsZXQtY29udGFpbmVyIC0gMC4wNjIpIHsgQGNvbnRlbnQ7IH1cblx0fVxuXHRAZWxzZSBpZiAkYnJlYWtwb2ludCA9PSBzbWFsbC1tb2JpbGUtcmFuZ2Uge1xuXHRcdEBtZWRpYSBvbmx5ICN7JG1lZGlhfSBhbmQgKG1heC13aWR0aDogJGxhcmdlLW1vYmlsZS1jb250YWluZXIpIHsgQGNvbnRlbnQ7IH1cblx0fVxuXHRAZWxzZSBpZiAkYnJlYWtwb2ludCA9PSBuby1tb2JpbGUge1xuXHRcdEBtZWRpYSBvbmx5ICN7JG1lZGlhfSBhbmQgKG1pbi13aWR0aDogJHRhYmxldC1jb250YWluZXIpIHsgQGNvbnRlbnQ7IH1cblx0fVxuXHRAZWxzZSBpZiAkYnJlYWtwb2ludCA9PSBtb2JpbGUtb25seSB7XG5cdFx0QG1lZGlhIG9ubHkgI3skbWVkaWF9IGFuZCAobWF4LXdpZHRoOiAkdGFibGV0LWNvbnRhaW5lciAtIDAuMDYyKSB7IEBjb250ZW50OyB9XG5cdH1cblx0QGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gZGVza3RvcC1vbmx5IHtcblx0XHRAbWVkaWEgb25seSAjeyRtZWRpYX0gYW5kIChtYXgtd2lkdGg6ICRkZXNrdG9wLWNvbnRhaW5lciAtIDAuMDYyKSB7IEBjb250ZW50OyB9XG5cdH1cbn0iLCIvLyBJbmFjdGl2ZSBEcm9wZG93blxuJWluYWN0aXZlLWRyb3Bkb3duIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IGF1dG87XG5cdGxlZnQ6IGF1dG87XG5cdG9wYWNpdHk6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vIEluYWN0aXZlIERyb3Bkb3duXG4lYWN0aXZlLWRyb3Bkb3duIHtcblx0b3BhY2l0eTogMTtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTtcblx0b3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8vIEluYWN0aXZlIERyb3Bkb3duXG4lZHJvcGRvd24tY29sdW1uIHtcblx0d2lkdGg6ICRkcm9wZG93bi1jb2wtd2lkdGg7XG5cdC8vaGVpZ2h0OiAkZHJvcGRvd24taGVpZ2h0O1xuXHRmbG9hdDogbGVmdDtcbn0iLCIvLyBIZWFkZXJzXG5AbWl4aW4gaGVhZGVyKCRtYXJnaW4tdG9wOiAkbGVhZGluZy1tYXJnaW4gLyAyLCAkbWFyZ2luLWJvdHRvbTogJGxlYWRpbmctbWFyZ2luKSB7XG5cdG1hcmdpbjogJG1hcmdpbi10b3AgMCAkbWFyZ2luLWJvdHRvbSAwO1xufSIsIi8vIExpc3QgUmVzZXRcbiVsaXN0LXJlc2V0IHtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRsaXN0LXN0eWxlOiBub25lO1xufVxuXG4vLyBWZXJ0aWNhbCBDZW50ZXJpbmdcbiV2ZXJ0aWNhbC1hbGlnbiB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dG9wOiA1MCU7XG5cdEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcbn1cblxuLy8gQ29sdW1uc1xuQG1peGluIGNvbHVtbnMoJGNvbHVtbnMpIHtcblx0d2lkdGg6IHBlcmNlbnRhZ2UoMS8kY29sdW1ucyk7XG59XG5cbi8vIEZsb2F0IHdpdGggbWFyZ2luIHZhcmlhYmxlXG5AbWl4aW4gZmxvYXQoJGRpcmVjdGlvbiwgJG1hcmdpbjogMCkge1xuXHRmbG9hdDogJGRpcmVjdGlvbjtcblx0bWFyZ2luLSN7b3Bwb3NpdGUtZGlyZWN0aW9uKCRkaXJlY3Rpb24pfTogJG1hcmdpbjtcbn1cbiIsIi8vIEJ1dHRvbnNcbkBpbXBvcnQgXCJidXR0b25zXCI7IiwiJWJ1dHRvbiB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0cGFkZGluZzogN3B4IDIwcHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuXG4gICAgJi5idXR0b24tc21hbGwge1xuICAgICAgICBwYWRkaW5nOiAzcHggMTBweDtcbiAgICAgICAgZm9udC1zaXplOiAkY29yZS1mb250LXNpemUgLSAwLjFyZW07XG4gICAgfVxuXG59XG5cbkBtaXhpbiBidXR0b24tY29sb3IoJGNvbG9yKSB7XG5cdGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICBjb2xvcjogJHdoaXRlO1xuXHRib3JkZXI6IDFweCBzb2xpZCAkY29sb3I7XG5cdCY6aG92ZXIge1xuXHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblx0fVxuXHQmOmFjdGl2ZSB7XG5cdFx0Ym94LXNoYWRvdzogMCAxcHggMCBkYXJrZW4oJGNvbG9yLCAxMiUpO1xuXHR9XG59XG4iLCJodG1sLCBib2R5IHtcblx0aGVpZ2h0OiAxMDAlO1xufVxuXG5ib2R5IHtcblx0YmFja2dyb3VuZDogJHBhZ2UtYmc7XG5cdGNvbG9yOiAkY29yZS10ZXh0O1xuXHQtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG5hIHtcblx0Y29sb3I6ICRjb3JlLWFjY2VudDtcblx0Jjpob3ZlciB7XG5cdFx0Y29sb3I6IGRhcmtlbigkY29yZS1hY2NlbnQsIDIwJSk7XG5cdH1cbn1cblxuYiwgc3Ryb25nIHtcblx0Zm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkXG59XG5cbi8vIEdsb2JhbCBDb250YWluZXJcbiNjb250YWluZXIge1xuIFx0bWluLWhlaWdodDogMTAwJTtcbiAgXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8vIEZ1bGx3aWR0aCBzdHlsZXNcbi5mdWxsd2lkdGgge1xuXHQjYm9keSB7XG5cdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdHBhZGRpbmctcmlnaHQ6IDA7XG5cdH1cblx0I2hlYWRlciwgI2JyZWFkY3J1bWJzLCAuYmxvZy1oZWFkZXIsIC5ibG9nLWNvbnRlbnQtaXRlbSwgLmNvbnRlbnQtd3JhcHBlciwgdWwucGFnaW5hdGlvbiwgI2JvZHkgPiAubW9kdWxhci1yb3cge1xuXHRcdEBleHRlbmQgLnBhZGRpbmctaG9yaXo7XG5cdH1cbn1cblxuLy8gR2xvYmFsIGJvZHkgc3R5bGluZ1xuI2JvZHkge1xuXHRAZXh0ZW5kIC5kZWZhdWx0LWFuaW1hdGlvbjtcblx0QGV4dGVuZCAucGFkZGluZy1ob3Jpejtcblx0XG5cdGJhY2tncm91bmQ6ICRwYWdlLWJnO1xuXHRwYWRkaW5nLXRvcDogJGhlYWRlci1oZWlnaHQgKyAkcGFkZGluZy12ZXJ0O1xufVxuXG4vLyBBbGlnbm1lbnRcbi5sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5yaWdodCB7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuIiwiQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdub3ZlY2VudG9fc2Fuc193aWRlZGVtaWJvbGQnO1xuICAgIHNyYzogdXJsKCcuLi9mb250cy9Ob3ZlY2VudG9zYW5zd2lkZS1EZW1pQm9sZC13ZWJmb250LmVvdCcpO1xuICAgIHNyYzogdXJsKCcuLi9mb250cy9Ob3ZlY2VudG9zYW5zd2lkZS1EZW1pQm9sZC13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgICB1cmwoJy4uL2ZvbnRzL05vdmVjZW50b3NhbnN3aWRlLURlbWlCb2xkLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgICAgICB1cmwoJy4uL2ZvbnRzL05vdmVjZW50b3NhbnN3aWRlLURlbWlCb2xkLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICAgdXJsKCcuLi9mb250cy9Ob3ZlY2VudG9zYW5zd2lkZS1EZW1pQm9sZC13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICAgICAgIHVybCgnLi4vZm9udHMvTm92ZWNlbnRvc2Fuc3dpZGUtRGVtaUJvbGQtd2ViZm9udC5zdmcjbm92ZWNlbnRvX3NhbnNfd2lkZWRlbWlib2xkJykgZm9ybWF0KCdzdmcnKTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcblxufVxuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ25vdmVjZW50b19zYW5zX3dpZGVub3JtYWwnO1xuICAgIHNyYzogdXJsKCcuLi9mb250cy9Ob3ZlY2VudG9zYW5zd2lkZS1Ob3JtYWwtd2ViZm9udC5lb3QnKTtcbiAgICBzcmM6IHVybCgnLi4vZm9udHMvTm92ZWNlbnRvc2Fuc3dpZGUtTm9ybWFsLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICAgIHVybCgnLi4vZm9udHMvTm92ZWNlbnRvc2Fuc3dpZGUtTm9ybWFsLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgICAgICB1cmwoJy4uL2ZvbnRzL05vdmVjZW50b3NhbnN3aWRlLU5vcm1hbC13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgIHVybCgnLi4vZm9udHMvTm92ZWNlbnRvc2Fuc3dpZGUtTm9ybWFsLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICAgdXJsKCcuLi9mb250cy9Ob3ZlY2VudG9zYW5zd2lkZS1Ob3JtYWwtd2ViZm9udC5zdmcjbm92ZWNlbnRvX3NhbnNfd2lkZW5vcm1hbCcpIGZvcm1hdCgnc3ZnJyk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG5cbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdub3ZlY2VudG9fc2Fuc193aWRlbWVkaXVtJztcbiAgICBzcmM6IHVybCgnLi4vZm9udHMvTm92ZWNlbnRvc2Fuc3dpZGUtTWVkaXVtLXdlYmZvbnQuZW90Jyk7XG4gICAgc3JjOiB1cmwoJy4uL2ZvbnRzL05vdmVjZW50b3NhbnN3aWRlLU1lZGl1bS13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgICB1cmwoJy4uL2ZvbnRzL05vdmVjZW50b3NhbnN3aWRlLU1lZGl1bS13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICAgdXJsKCcuLi9mb250cy9Ob3ZlY2VudG9zYW5zd2lkZS1NZWRpdW0td2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgICAgICB1cmwoJy4uL2ZvbnRzL05vdmVjZW50b3NhbnN3aWRlLU1lZGl1bS13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICAgICAgIHVybCgnLi4vZm9udHMvTm92ZWNlbnRvc2Fuc3dpZGUtTWVkaXVtLXdlYmZvbnQuc3ZnI25vdmVjZW50b19zYW5zX3dpZGVtZWRpdW0nKSBmb3JtYXQoJ3N2ZycpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuXG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnUGFjaWZpY28nO1xuICAgIHNyYzogdXJsKCcuLi9mb250cy9wYWNpZmljby50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG5cbn1cbiIsIi5kZWZhdWx0LWFuaW1hdGlvbiB7XG5cdEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDAuNXMgZWFzZSk7XG59XG5cbi5wYWRkaW5nLWhvcml6IHtcblx0cGFkZGluZy1sZWZ0OiAkcGFkZGluZy1ob3Jpejtcblx0cGFkZGluZy1yaWdodDogJHBhZGRpbmctaG9yaXo7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcC1yYW5nZSkge1xuXHRcdHBhZGRpbmctbGVmdDogJHBhZGRpbmctaG9yaXogLSA3cmVtO1xuXHRcdHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nLWhvcml6IC0gN3JlbTtcblx0fVxuXHRAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldC1yYW5nZSkge1xuXHRcdHBhZGRpbmctbGVmdDogJHBhZGRpbmctaG9yaXogLSA3cmVtO1xuXHRcdHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nLWhvcml6IC0gN3JlbTtcblx0fVxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZS1vbmx5KSB7XG5cdFx0cGFkZGluZy1sZWZ0OiAkcGFkZGluZy1ob3JpeiAtIDEzcmVtO1xuXHRcdHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nLWhvcml6IC0gMTNyZW07XG5cdH1cbn1cblxuLnBhZGRpbmctdmVydCB7XG5cdHBhZGRpbmctdG9wOiAkcGFkZGluZy12ZXJ0O1xuXHRwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmctdmVydDtcbn1cbiIsIi8vIEhlYWRlciBzdHlsaW5nXG5cbiNoZWFkZXIge1xuICAgIEBleHRlbmQgLnBhZGRpbmctaG9yaXo7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDEwMDAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJGhlYWRlci1oZWlnaHQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjkwKTtcbiAgICBib3gtc2hhZG93OiAwIDAuMDVyZW0gMXJlbSByZ2JhKDAsMCwwLCAwLjE1KTtcblxuICAgID4gLmdyaWQsIC5sb2dvLCAjbmF2YmFyLCAuc29jaWFsLW5hdmlnYXRpb24ge1xuICAgICAgICBoZWlnaHQ6IDUwJTtcbiAgICB9XG4gICAgLmZhIHtcbiAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICB9XG5cbiAgICAuZml4ZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE0cmVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxNHJlbTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBvcGFjaXR5OiAwLjk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMHB4IDIwcHggMHB4IHJnYmEoMCwwLDAsMC4yKTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZS1vbmx5KSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmxvZ28ge1xuICAgICAgICBoMyB7XG4gICAgICAgICAgICBAZXh0ZW5kICV2ZXJ0aWNhbC1hbGlnbjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUtb25seSkge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS45cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgICYuc29jaWFsLWljb25zIHtcbiAgICAgICAgICAgICAgICBAZXh0ZW5kICV2ZXJ0aWNhbC1hbGlnbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zZWFyY2gtYm94IHtcbiAgICAgICAgQGV4dGVuZCAldmVydGljYWwtYWxpZ247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICBpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkaGVhZGVyLXRleHQ7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjZyZW07XG4gICAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuICAgICAgICBpbnB1dDo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbixcbiAgICAgICAgaW5wdXQ6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICBpbnB1dFt0eXBlPXNlYXJjaF0ge1xuICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAgICAgICAgICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB3aWR0aDogNHJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4zcmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogICRjb3JlLWZvbnQtc2l6ZSAtIDAuMXJlbTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIC41cyk7XG5cbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMHJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkaGVhZGVyLXRleHQsIDAuNyk7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkaGVhZGVyLXRleHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dDotbW96LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgICAgICBpbnB1dDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3Atb25seSkge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogMTBweDtcblxuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgxcmVtKSk7XG5cbiAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDAuNnJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlucHV0W3R5cGU9c2VhcmNoXSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMnJlbTtcbiAgICAgICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDhyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuZml4ZWQge1xuICAgICAgICAuc2VhcmNoLWJveCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3Atb25seSkge1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wYW5lbC1hY3RpdmF0aW9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcC1vbmx5KSB7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSAhaW1wb3J0YW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICNuYXZiYXIge1xuICAgICAgICBmb250LXNpemU6ICRjb3JlLWZvbnQtc2l6ZSArIDAuMXJlbTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZS1vbmx5KSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTFyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xcmVtO1xuXG4gICAgICAgICAgICAmLmZpeGVkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB1bCB7XG5cbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgICAgICAgICAmLm5hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBleHRlbmQgJXZlcnRpY2FsLWFsaWduO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWhlYWRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuM3JlbSAwLjhyZW07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICYuYWN0aXZlLCAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvcmUtYWNjZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMC4wNXJlbSAxcmVtIHJnYmEoMCwwLDAsIDAuMTUpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB1bCB1bCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICYgPiB1bCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMHJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjhyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6YmVmb3JlLCAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYgPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb3JlLWFjY2VudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wLW9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucGFuZWwtYWN0aXZhdGlvbiB7XG4gICAgICAgICAgICBAZXh0ZW5kICV2ZXJ0aWNhbC1hbGlnbjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3Atb25seSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgwKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5tb2R1bGFyLmhlYWRlci1pbWFnZSAjaGVhZGVyIC5maXhlZCB7XG4gICAgYmFja2dyb3VuZDogIzY2NjtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQgMC4zcyBlYXNlLWluLW91dCk7XG59XG5cbi5oZWFkZXItaW1hZ2Uge1xuICAgICYuZnVsbHdpZHRoIHtcbiAgICAgICAgI2JvZHkge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgICAgICAgPi5saXN0aW5nLXJvdyB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZy1ob3JpejtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZy1ob3JpejtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAubGlzdGluZy1yb3c6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgfVxuXG4gICAgI2JvZHkge1xuICAgICAgICAuZmx1c2gtdG9wIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0gJGhlYWRlci1oZWlnaHQgLSAkcGFkZGluZy12ZXJ0IC0gMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICRoZWFkZXItaGVpZ2h0ICsgNHJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICNicmVhZGNydW1icyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgfVxuXG4gICAgI2hlYWRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGhlYWRlci10ZXh0LDApO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuXG4gICAgICAgICNsb2dvIGgzLCAjbG9nbyBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkaGVhZGVyLXRleHQ7XG4gICAgICAgIH1cbiAgICAgICAgYSwgLm1lbnUtYnRuIHtcbiAgICAgICAgICAgIGNvbG9yOiAkaGVhZGVyLXRleHQ7XG4gICAgICAgIH1cbiAgICAgICAgYTpiZWZvcmUsIGE6YWZ0ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkaGVhZGVyLXRleHQsMC43KSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgI25hdmJhciB1bC5uYXZpZ2F0aW9uICB7XG4gICAgICAgICAgICB1bCBsaSBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvcmUtYWNjZW50O1xuICAgICAgICAgICAgICAgIHRleHQtc2hhZG93OiAxcHggMXB4IDNweCAjNjU2MTYxO1xuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogZGFya2VuKCRjb3JlLWFjY2VudCwgMjAlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4uaGVhZGVyLWxpdGUge1xuICAgICNib2R5IHtcbiAgICAgICAgcGFkZGluZy10b3A6IDEycmVtO1xuICAgIH1cbiAgICAjaGVhZGVyIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgY29sb3I6ICRsaWdodC1ncmF5O1xuICAgICAgICBhLCAubWVudS1idG4ge1xuICAgICAgICAgICAgY29sb3I6ICRsaWdodC1ncmF5O1xuICAgICAgICB9XG4gICAgICAgIC5zZWFyY2gtYm94IHtcbiAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkbGlnaHQtZ3JheTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlucHV0W3R5cGU9c2VhcmNoXSB7XG4gICAgICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRsaWdodC1ncmF5LCAwLjgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsaS5hY3RpdmUgYSB7XG4gICAgICAgICAgICBjb2xvcjogJGNvcmUtYWNjZW50O1xuICAgICAgICB9XG4gICAgICAgIC5sb2dvIHVsLnNvY2lhbC1pY29ucyBsaSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudGl6ZSgkbGlnaHQtZ3JheSwgMC44KTtcbiAgICAgICAgICAgIC5mYSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgLmZhIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRsaWdodC1ncmF5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5mb290ZXIge1xuICAgIGZvbnQtc2l6ZTogICRjb3JlLWZvbnQtc2l6ZSAtIDAuMXJlbTtcbiAgICBiYWNrZ3JvdW5kOiAjMzMzO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIEBleHRlbmQgLnBhZGRpbmctaG9yaXo7XG4gICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgYSB7XG4gICAgICBjb2xvcjogJGNvcmUtdGV4dDtcbiAgICB9XG4gICAgaDQge1xuICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuICAgIGhyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGNvcmUtdGV4dCwgMC41KTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUtb25seSkge1xuICAgICAgLnNvY2lhbC1pY29ucyB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldC1yYW5nZSkge1xuICAgICAgLnNvY2lhbC1pY29ucyB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgICAgfVxuICAgIH1cbiAgICAuZm9vdGVyLWl0ZW1zIHtcbiAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZS1vbmx5KSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB9XG4gICAgICBAc3VwcG9ydHMgbm90IChmbGV4LXdyYXA6IHdyYXApIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIH1cbiAgICAuZm9vdGVyLW1vZHVsZSB7XG4gICAgICAmLmxhcmdlIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIH1cbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogMjUlO1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlLW1vYmlsZS1yYW5nZSkge1xuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbC1tb2JpbGUtcmFuZ2UpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgICBzcGFuIHtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICB9XG4gICAgICBzdHJvbmcge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUtb25seSkge1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gICAgLmxvZ28ge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMCBub25lO1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgaDMgYSB7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICB9XG4gICAgfVxuICAgIC5xdWlja21lbnUge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICBpIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBmb250LXNpemU6IDAuN3JlbTtcbiAgICAgIH1cbiAgICB9XG4gICAgLmZvb3Rlci1tb2R1bGVzIHtcbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtO1xuICAgIH1cbiAgICAuZm9vdGVyLWNvcHlyaWdodCB7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1oZWFkZXI7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUtb25seSkge1xuICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgfVxuICAgIH1cbiAgICAuZm9vdGVyLW1lbnUge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktaGVhZGVyO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUtb25seSkge1xuICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG4gICAgICB1bCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCIvXCI7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5uZXdzbGV0dGVyIHtcbiAgICAgIGlucHV0IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDIuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICB9XG4gICAgICBpbnB1dFt0eXBlPXRleHRdIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGhlYWRlci10ZXh0LCAwLjgpO1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgfVxuICAgICAgaW5wdXRbdHlwZT1zdWJtaXRdIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGhlYWRlci10ZXh0LCAwLjUpO1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBwYWRkaW5nOiAwIDEuMnJlbTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIH1cbiAgICB9IFxuICB9XG4iLCIvLyBCb2R5IEJhc2VcbmJvZHkge1xuXHRmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWRlZmF1bHQ7XG5cdGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi8vIEhlYWRpbmdzXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcblx0Zm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1oZWFkZXI7XG5cdHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG59XG5cbmgxIHtcblx0Zm9udC1zaXplOiAkaDEtZm9udC1zaXplO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlLW9ubHkpIHtcbiAgICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDFweCAxcHggM3B4ICM2NTYxNjE7XG4gICAgfVxufVxuXG5oMiB7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0LXJhbmdlKSB7XG5cdFx0Zm9udC1zaXplOiAkaDItZm9udC1zaXplIC0gLjQwO1xuXHR9XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlLW9ubHkpIHtcblx0XHRmb250LXNpemU6ICRoMi1mb250LXNpemUgLSAuNTA7XG5cdH1cblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0Zm9udC1zaXplOiAxLjRyZW07XG59XG5cbmgzIHtcblx0QGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQtcmFuZ2UpIHtcblx0XHRmb250LXNpemU6ICRoMy1mb250LXNpemUgLSAuNDA7XG5cdH1cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUtb25seSkge1xuXHRcdGZvbnQtc2l6ZTogJGgzLWZvbnQtc2l6ZSAtIC41MDtcblx0fVxufVxuXG5oNCB7XG5cdGZvbnQtc2l6ZTogMS4ycmVtO1xuXHRmb250LXdlaWdodDogYm9sZDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRjb2xvcjogJGxpZ2h0LWdyYXk7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQtcmFuZ2UpIHtcblx0XHRmb250LXNpemU6ICRoNC1mb250LXNpemUgLSAuNDA7XG5cdH1cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUtb25seSkge1xuXHRcdGZvbnQtc2l6ZTogJGg0LWZvbnQtc2l6ZSAtIC41MDtcblx0fVxufVxuXG5oMSB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuaDMge1xuXHRsZXR0ZXItc3BhY2luZzogLTFweDtcbn1cblxuaDEgKyBoMiB7XG5cdG1hcmdpbjogLTJyZW0gMCAycmVtIDA7XG5cdGZvbnQtc2l6ZTogMS40cmVtO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldC1yYW5nZSkge1xuXHRcdGZvbnQtc2l6ZTogMS4zcmVtO1xuXHR9XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlLW9ubHkpIHtcblx0XHRmb250LXNpemU6IDFyZW07XG5cdH1cblx0bGluZS1oZWlnaHQ6IDE7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Zm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1kZWZhdWx0O1xuXHRmb250LXdlaWdodDogMzAwO1xufVxuXG5oMiArIGgzIHtcblx0bWFyZ2luOiAwLjVyZW0gMCAycmVtIDA7XG5cdGZvbnQtc2l6ZTogMS4zcmVtO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldC1yYW5nZSkge1xuXHRcdGZvbnQtc2l6ZTogMS4ycmVtO1xuXHR9XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlLW9ubHkpIHtcblx0XHRmb250LXNpemU6IDEuMXJlbTtcblx0fVxuXHRsaW5lLWhlaWdodDogMTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWRlZmF1bHQ7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cblxuLy8gQmxvY2txdW90ZVxuYmxvY2txdW90ZSB7XG5cdGJvcmRlci1sZWZ0OiAxMHB4IHNvbGlkICRydWxlLWNvbG9yO1xuXHRwIHtcblx0XHRmb250LXNpemU6IDEuMXJlbTtcblx0XHRjb2xvcjogIzk5OTtcblx0fVxuXHRjaXRlIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRjb2xvcjogIzY2Njtcblx0XHRmb250LXNpemU6IDEuMnJlbTtcblx0fVxufVxuXG4vLyBOT1RFUyEhISFcbmJsb2NrcXVvdGUgPiBibG9ja3F1b3RlID4gYmxvY2txdW90ZSB7XG5cblx0bWFyZ2luOiAwO1xuXG5cdHAge1xuXG5cdFx0cGFkZGluZzogMTVweDtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRmb250LXNpemU6IDFyZW07XG5cdFx0bWFyZ2luLXRvcDogMHJlbTtcblx0XHRtYXJnaW4tYm90dG9tOiAwcmVtO1xuXHR9XG5cblx0PiBwIHtcblx0XHQvLyBZZWxsb3dcblx0XHRtYXJnaW4tbGVmdDogLTcxcHg7XG5cdFx0Ym9yZGVyLWxlZnQ6IDEwcHggc29saWQgI0YwQUQ0RTtcblx0XHRiYWNrZ3JvdW5kOiAjRkNGOEYyO1xuXHRcdGNvbG9yOiBkYXJrZW4oI0YwQUQ0RSwxNSUpO1xuXHR9XG5cblx0PiBibG9ja3F1b3RlID4gcCB7XG5cdFx0Ly8gUmVkXG5cdFx0bWFyZ2luLWxlZnQ6IC05NHB4O1xuXHRcdGJvcmRlci1sZWZ0OiAxMHB4IHNvbGlkICNEOTUzNEY7XG5cdFx0YmFja2dyb3VuZDogI0ZERjdGNztcblx0XHRjb2xvcjogZGFya2VuKCNEOTUzNEYsMTUlKTtcblx0fVxuXG5cdD4gYmxvY2txdW90ZSA+IGJsb2NrcXVvdGUgPiBwIHtcblx0XHQvLyBCbHVlXG5cdFx0bWFyZ2luLWxlZnQ6IC0xMThweDtcblx0XHRib3JkZXItbGVmdDogMTBweCBzb2xpZCAjNUJDMERFO1xuXHRcdGJhY2tncm91bmQ6ICNGNEY4RkE7XG5cdFx0Y29sb3I6IGRhcmtlbigjNUJDMERFLDE1JSk7XG5cdH1cblxuXHQ+IGJsb2NrcXVvdGUgPiBibG9ja3F1b3RlID4gYmxvY2txdW90ZSA+IHAge1xuXHRcdC8vIEdyZWVuXG5cdFx0bWFyZ2luLWxlZnQ6IC0xNDJweDtcblx0XHRib3JkZXItbGVmdDogMTBweCBzb2xpZCAjNUNCODVDO1xuXHRcdGJhY2tncm91bmQ6ICNGMUY5RjE7XG5cdFx0Y29sb3I6IGRhcmtlbigjNUNCODVDLDE1JSk7XG5cdH1cblxufVxuXG4vLyBJbmxpbmUgYW5kIENvZGVcbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcblx0Zm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vO1xufVxuXG5jb2RlIHtcblx0YmFja2dyb3VuZDogJGNvZGUtYmc7XG5cdGNvbG9yOiBkYXJrZW4oJGNvZGUtdGV4dCwxMCUpO1xufVxuXG5wcmUge1xuXHRwYWRkaW5nOiAycmVtO1xuXHRiYWNrZ3JvdW5kOiAkcHJlLWJnO1xuXHRib3JkZXI6IDFweCBzb2xpZCAkY29yZS1ib3JkZXItY29sb3I7XG5cdGJvcmRlci1yYWRpdXM6IDNweDtcblx0Y29kZSB7XG5cdFx0Y29sb3I6ICRwcmUtdGV4dDtcblx0XHRiYWNrZ3JvdW5kOiBpbmhlcml0O1xuXHR9XG59XG5cbi8vIEV4dHJhc1xuaHIge1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvcmUtYm9yZGVyLWNvbG9yO1xufVxuXG4vLyBQYWdlIFRpdGxlXG4ucGFnZS10aXRsZSB7XG5cdG1hcmdpbi10b3A6IC0yNXB4O1xuXHRwYWRkaW5nOiAyNXB4O1xuXHRmbG9hdDogbGVmdDtcblx0Y2xlYXI6IGJvdGg7XG5cdGJhY2tncm91bmQ6ICRjb3JlLWFjY2VudDtcblx0Y29sb3I6ICR3aGl0ZTtcbn1cblxuLy8gTGFiZWxcbi5sYWJlbCB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBiYWNrZ3JvdW5kOiAkY29yZS1hY2NlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIGhlaWdodDogMXJlbTtcbiAgICBtaW4td2lkdGg6IDFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDFyZW07XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6ICRjb3JlLWZvbnQtc2l6ZSAtIDAuM3JlbTtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWhlYWRlcjtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG59XG5cbiIsImZpZWxkc2V0IHtcblx0Ym9yZGVyOiAxcHggc29saWQgJGNvcmUtYm9yZGVyLWNvbG9yO1xufVxuXG50ZXh0YXJlYSwgI3skYWxsLXRleHQtaW5wdXRzfSwgc2VsZWN0W211bHRpcGxlPW11bHRpcGxlXSB7XG5cdGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXHRib3JkZXI6IDFweCBzb2xpZCAkY29yZS1ib3JkZXItY29sb3I7XG5cdGJveC1zaGFkb3c6ICRjb3JlLWJveC1zaGFkb3c7XG5cblx0Jjpob3ZlciB7XG5cdFx0Ym9yZGVyLWNvbG9yOiAkY29yZS1ib3JkZXItY29sb3ItaG92ZXI7XG5cdH1cblxuXHQmOmZvY3VzIHtcblx0XHRib3JkZXItY29sb3I6ICRjb3JlLWJvcmRlci1jb2xvci1mb2N1cztcblx0XHRib3gtc2hhZG93OiAkY29yZS1ib3gtc2hhZG93LWZvY3VzO1xuXHR9XG59XG5cbmxhYmVsIHtcblx0QGV4dGVuZCBzdHJvbmc7XG59XG5cbi8vIEZvcm1zXG4uZm9ybS1maWVsZCB7XG5cdC5yZXF1aXJlZCB7XG5cdFx0Y29sb3I6ICNGMzQ0M0Y7XG5cdFx0Zm9udC1zaXplOiAkY29yZS1mb250LXNpemUgKyAxcmVtO1xuXHRcdGxpbmUtaGVpZ2h0OiAkY29yZS1mb250LXNpemUgKyAxcmVtO1xuXHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdFx0aGVpZ2h0OiAxLjVyZW07XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR9XG59XG5cbmZvcm0ge1xuXHQuYnV0dG9ucyB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR9XG5cdGlucHV0IHtcblx0XHRmb250LXdlaWdodDogNDAwO1xuXHR9XG59XG4iLCJ0YWJsZSB7XG5cdGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0ZW4oJGNvcmUtYm9yZGVyLWNvbG9yLDUlKTtcbn1cblxudGgge1xuXHRAZXh0ZW5kIHN0cm9uZztcblx0YmFja2dyb3VuZDogbGlnaHRlbigkY29yZS1ib3JkZXItY29sb3IsMTAlKTtcblx0cGFkZGluZzogMC41cmVtO1xufVxuXG50ZCB7XG5cdHBhZGRpbmc6IDAuNXJlbTtcblx0Ym9yZGVyOiAxcHggc29saWQgbGlnaHRlbigkY29yZS1ib3JkZXItY29sb3IsNSUpOyBcbn1cbiIsIi5idXR0b24ge1xuXHRAZXh0ZW5kICVidXR0b247XG5cdEBpbmNsdWRlIGJ1dHRvbi1jb2xvcigkY29yZS1hY2NlbnQpO1xufVxuXG4uYnV0dG9uLXNlY29uZGFyeSB7XG5cdEBleHRlbmQgJWJ1dHRvbjtcblx0QGluY2x1ZGUgYnV0dG9uLWNvbG9yKCRzZWNvbmRhcnktbGluayk7XG59IiwiLmJ1bGxldHMge1xuXHRtYXJnaW46ICRsZWFkaW5nLW1hcmdpbiAwO1xuXHRtYXJnaW4tbGVmdDogLSRsZWFkaW5nLW1hcmdpbiAvIDI7XG5cdG1hcmdpbi1yaWdodDogLSRsZWFkaW5nLW1hcmdpbiAvIDI7XG5cdG92ZXJmbG93OiBhdXRvO1xufVxuXG4uYnVsbGV0IHtcblx0ZmxvYXQ6IGxlZnQ7XG5cdHBhZGRpbmc6IDAgJGxlYWRpbmctbWFyZ2luIC8gMjtcbn1cblxuLnR3by1jb2x1bW4tYnVsbGV0IHtcblx0QGluY2x1ZGUgY29sdW1ucygyKTtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUtb25seSkge1xuXHRcdEBpbmNsdWRlIGNvbHVtbnMoMSk7XG5cdH1cbn1cblxuLnRocmVlLWNvbHVtbi1idWxsZXQge1xuXHRAaW5jbHVkZSBjb2x1bW5zKDMpO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZS1vbmx5KSB7XG5cdFx0QGluY2x1ZGUgY29sdW1ucygxKTtcblx0fVxufVxuXG4uZm91ci1jb2x1bW4tYnVsbGV0IHtcblx0QGluY2x1ZGUgY29sdW1ucyg0KTtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUtb25seSkge1xuXHRcdEBpbmNsdWRlIGNvbHVtbnMoMSk7XG5cdH1cbn1cblxuLmJ1bGxldC1pY29uIHtcblx0ZmxvYXQ6IGxlZnQ7XG5cdGJhY2tncm91bmQ6ICRidWxsZXQtaWNvbi1jb2xvci0xO1xuXHRwYWRkaW5nOiAkYnVsbGV0LWljb24tc2l6ZSAvIDQ7XG5cdHdpZHRoOiAkYnVsbGV0LWljb24tc2l6ZTtcblx0aGVpZ2h0OiAkYnVsbGV0LWljb24tc2l6ZTtcblx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRjb2xvcjogJHdoaXRlO1xuXHRmb250LXNpemU6ICRidWxsZXQtaWNvbi1zaXplIC8gMjtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uYnVsbGV0LWljb24tMSB7XG5cdGJhY2tncm91bmQ6ICRidWxsZXQtaWNvbi1jb2xvci0xO1xufVxuXG4uYnVsbGV0LWljb24tMiB7XG5cdGJhY2tncm91bmQ6ICRidWxsZXQtaWNvbi1jb2xvci0yO1xufVxuXG4uYnVsbGV0LWljb24tMyB7XG5cdGJhY2tncm91bmQ6ICRidWxsZXQtaWNvbi1jb2xvci0zO1xufVxuXG4uYnVsbGV0LWNvbnRlbnQge1xuXHRtYXJnaW4tbGVmdDogJGJ1bGxldC1pY29uLXNpemUgKiAxLjM7XG59IiwiJHNpZGViYXItY29sb3I6ICAgICAjMzMzO1xuJHBhbmVsLXBhZGRpbmc6ICAgICAxcmVtO1xuJHBhbmVsLXRleHQ6ICAgICAgICAjZGRkO1xuXG4uc2Itc2xpZGViYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzaWRlYmFyLWNvbG9yICFpbXBvcnRhbnQ7XG59XG5cbiNwYW5lbCB7XG4gICAgcGFkZGluZy10b3A6ICRwYW5lbC1wYWRkaW5nO1xuICAgIGNvbG9yOiAkcGFuZWwtdGV4dDtcbiAgICAubmF2aWdhdGlvbiB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcGFuZWwtdGV4dDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBsaWdodGVuKCRwYW5lbC10ZXh0LDIwJSk7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkc2lkZWJhci1jb2xvciw1JSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmID4gYSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29yZS10ZXh0O1xuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29yZS10ZXh0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGxpZ2h0ZW4oJHNpZGViYXItY29sb3IsNCUpO1xuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgbGlnaHRlbigkc2lkZWJhci1jb2xvciw0JSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBkYXJrZW4oJHBhbmVsLXRleHQsIDEwJSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjJyZW0gMXJlbSAwLjJyZW0gMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGxpIGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAzcmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGkgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA0cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICYgPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjY2NjO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4iLCJcbi8vIE1vZGFsIFdpbmRvd1xuLnBvcnRmb2xpby1tb2RhbCAuY2xvc2UtbW9kYWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDVyZW07XG4gICAgaGVpZ2h0OiA1cmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDNyZW07XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUtb25seSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbi5tb2RhbCB7XG4gICAgQGV4dGVuZCAuZGVmYXVsdC1hbmltYXRpb247XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAxMDUwO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUtb25seSkge1xuICAgICAgICBoMSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIH1cbiAgICAgICAgcCwgdWwge1xuICAgICAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG4gICAgICAgIH1cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLmluIHtcbiAgICAgICAgb3BhY2l0eTogMTsgXG4gICAgfVxuICAgIC5jbGllbnQtZGV0YWlscyB7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvcmUtYWNjZW50O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLm1vZGFsLWNvbnRlbnQge1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgd2lkdGg6IDM1cmVtO1xuICAgICAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHJlbTtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQtcmFuZ2UpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlLW9ubHkpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTVyZW07XG4gICAgICAgIH1cbiAgICB9XG59IiwiLmJsb2ctaGVhZGVyIHtcbiAgICBwYWRkaW5nLXRvcDogMXJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcblxuICAgICYuYmxvZy1oZWFkZXItaW1hZ2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgaDEsIGgyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkaGVhZGVyLXRleHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldC1yYW5nZSkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlLW9ubHkpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYgKyAuYmxvZy1jb250ZW50IHtcbiAgICAgICAgcGFkZGluZy10b3A6ICRwYWRkaW5nLXZlcnQ7XG4gICAgfVxufVxuXG4vLyBMaXN0IEJsb2cgSXRlbVxuLmxpc3QtaXRlbSB7XG5cbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgZGFya2VuKCRib3JkZXItY29sb3IsIDglKTtcbiAgICBtYXJnaW4tYm90dG9tOiAkcGFkZGluZy12ZXJ0O1xuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICB9XG4gICAgLmxpc3QtYmxvZy1oZWFkZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGg0IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGxpZ2h0LWdyYXk7XG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29yZS1hY2NlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5saXN0LWJsb2ctZGF0ZSwgLmxpc3QtYmxvZy1hdXRob3Ige1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRsaWdodC1ncmF5LCAwLjkpO1xuICAgICAgICBwYWRkaW5nOiAwLjdyZW0gMXJlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4ycmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgZm9udC1zaXplOiAkY29yZS1mb250LXNpemU7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiAkY29yZS10ZXh0O1xuICAgICAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWhlYWRlcjtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldC1yYW5nZSkge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlLW9ubHkpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gQmlnZ2VyIGZpcnN0IHBhcmFcbi5ibG9nLWNvbnRlbnQtaXRlbSB7XG4gICAgLmxpc3QtYmxvZy1wYWRkaW5nID4gcDpudGgtY2hpbGQoMikge1xuICAgICAgICBmb250LXNpemU6ICRjb3JlLWZvbnQtc2l6ZSArIDAuMnJlbTtcbiAgICB9XG59XG5cbi8vIFRhZ3Ncbi50YWdzIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGxpZ2h0LWdyYXksIDAuOSk7XG4gICAgcGFkZGluZzogMC43cmVtIDFyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC4ycmVtO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250LXNpemU6ICRjb3JlLWZvbnQtc2l6ZTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1oZWFkZXI7XG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRjb3JlLXRleHQ7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIixcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYTphZnRlciB7ZGlzcGxheTogbm9uZTt9IFxuICAgICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0LXJhbmdlKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlLW9ubHkpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG59XG5cbi8vIEFyY2hpdmVzICYgUmVsYXRlZC1QYWdlc1xuLmFyY2hpdmVzLCAucmVsYXRlZC1wYWdlcyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBsaSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkY29yZS1mb250LXNpemUgKyAxcmVtO1xuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhIHtcbiAgICAgICAgY29sb3I6ICRjb3JlLXRleHQ7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRjb3JlLWFjY2VudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnJlbGF0ZWQtcGFnZXMge1xuICAgIGxpIHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cbiAgICAuc2NvcmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBjb2xvcjogIzk5OTtcbiAgICAgICAgZm9udC1zaXplOiA4NSVcbiAgICB9XG59XG5cbi8vIFN5bmRpY2F0ZVxuLnN5bmRpY2F0ZSB7XG4gICAgYSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgfVxufVxuXG4vLyBCcmVhZGNydW1ic1xuZGl2I2JyZWFkY3J1bWJzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUtb25seSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLy8gU2lkZWJhclxuI3NpZGViYXIge1xuICAgIHBhZGRpbmctbGVmdDogM3JlbTtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZS1vbmx5KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG4gICAgLnNpZGViYXItY29udGVudCB7XG4gICAgICAgIGg0IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG4gICAgICAgIHAsIHVsIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgIH1cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHBhZGRpbmctdmVydDtcbiAgICB9XG59XG5cbi8vIFBhZ2luYXRpb25cbnVsLnBhZ2luYXRpb24ge1xuICAgIG1hcmdpbjogMCAwICRwYWRkaW5nLXZlcnQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vLyBQcmV2IC8gTmV4dFxuLnByZXYtbmV4dCB7XG4gICAgbWFyZ2luLXRvcDogNXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4iLCIvLyBNb2R1bGFyIFNob3djYXNlIHN0eWxpbmdcbi5hcmNoaXZlLWxpc3Qge1xuICAgIGg0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gICAgaW5wdXQge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBsaW5lLWhlaWdodDogMnJlbTtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUtb25seSkge1xuICAgICAgICAgICAgbWluLXdpZHRoOiA4MCU7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQtcmFuZ2UpIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogNzAlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRleHRhcmVhIHtcbiAgICAgICAgbWluLXdpZHRoOiA4MCU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDI1cmVtO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZS1vbmx5KSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQtcmFuZ2UpIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogOTAlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlucHV0LCB0ZXh0YXJlYSB7XG4gICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudGl6ZSgkY29yZS10ZXh0LCAwLjgpO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cbiAgICBsYWJlbCB7XG4gICAgICAgIEBleHRlbmQgaDQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICB9XG4gICAgYnV0dG9uIHtcbiAgICAgICAgQGV4dGVuZCAuYnV0dG9uO1xuICAgICAgICBAZXh0ZW5kIC5kZWZhdWx0LWFuaW1hdGlvbjtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1oZWFkZXI7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxufSIsIi8vIEVycm9yIHNwZWNpZmljIHN0eWxpbmdcbiNlcnJvciB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGhlaWdodDogMTAwJTtcblx0cGFkZGluZy1ib3R0b206IDEycmVtO1xuXG5cdGgxIHtcblx0XHRmb250LXNpemU6ICRjb3JlLWZvbnQtc2l6ZSArIDQuMHJlbTtcblx0fVxuXG5cdHAge1xuXHRcdG1hcmdpbjogMXJlbSAwO1xuXHR9XG59XG5cbi5lcnJvciAjYm9keSB7XG5cdHBhZGRpbmctdG9wOiAxNnJlbTtcbn0iLCIuc2ltcGxlc2VhcmNoIHtcblxuICAgIGgxIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuY2VudGVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuXG4gICAgaW5wdXQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1heC13aWR0aDogMzByZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICB9XG5cbiAgICAuc2VhcmNoLWltYWdlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlLW9ubHkpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNlYXJjaC1pdGVtIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUtb25seSkge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2VhcmNoLWRldGFpbHMge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi10b3A6IC0yLjVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGNvbG9yOiBsaWdodGVuKCRjb3JlLXRleHQsMjAlKTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZS1vbmx5KSB7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0wLjJyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaHIge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTtcbiAgICB9XG5cbn1cbiIsIi8vIFlvdXIgY3VzdG9tIFNDU1Mgc2hvdWxkIGJlIHdyaXR0ZW4gaGVyZS4uLlxuXG4uZ3Jhdi1saWdodHNsaWRlciB7XG4gICAgLmxTU2xpZGVPdXRlciB7XG4gICAgICAgIC5sU1BhZ2VyLmxTcGcge1xuICAgICAgICAgICAgPiBsaSBhIHtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4jYm9keSA+IHNjcmlwdDpmaXJzdC1jaGlsZCArIC5ncmF2LWxpZ2h0c2xpZGVyIHtcbiAgbWFyZ2luLXRvcDogLTNyZW07XG59IiwiQGltcG9ydCBcInNob3djYXNlXCI7XG5AaW1wb3J0IFwiZmVhdHVyZXNcIjtcbkBpbXBvcnQgXCJib3R0b21cIjtcbkBpbXBvcnQgXCJjb250YWN0XCI7XG5AaW1wb3J0IFwidGV4dFwiO1xuQGltcG9ydCBcInRlYW1cIjtcbkBpbXBvcnQgXCJwb3J0Zm9saW9cIjtcblxuLmxvZ28ge1xuICAgIGgzIHtcbiAgICAgICAgQGV4dGVuZCAuZGVmYXVsdC1hbmltYXRpb247XG4gICAgICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgICAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWxvZ287XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29yZS10ZXh0O1xuICAgICAgICB9XG4gICAgfVxuICAgIGg0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib2R5LWJvcmRlcjtcblxuICAgIHVsIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgICAgICYuc29jaWFsLWljb25zIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgQGV4dGVuZCAuZGVmYXVsdC1hbmltYXRpb247XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIuMXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjhyZW07XG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIEBleHRlbmQgLmRlZmF1bHQtYW5pbWF0aW9uO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gbWFjYm9va1xuICAgIC5ub3RlYm9va3tcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBtaW4td2lkdGg6IDMzJTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAxMDtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3AtcmFuZ2UpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQtcmFuZ2UpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUtb25seSkge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsLW1vYmlsZS1yYW5nZSkge1xuICAgICAgICAgICAgd2lkdGg6IDE1MCU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTUuMXJlbTtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB9XG5cbiAgICB9XG4gICAgLm5vdGVib29rIC5zY3JlZW46YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQ6ICNFNUVCRUQ7XG4gICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgd2lkdGg6IDAuMjVyZW07XG4gICAgICAgIG1hcmdpbjogMC4zMTI1cmVtIDAgMCA4LjYyNXJlbTtcbiAgICB9XG4gICAgLm5vdGVib29rIC5zY3JlZW57XG4gICAgICAgIGJhY2tncm91bmQ6IzQ2NEM1MTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtIDAuNXJlbSAwIDA7XG4gICAgICAgIGhlaWdodDogMTEuNzJyZW07XG4gICAgICAgIHdpZHRoOiAxOC4yOHJlbTtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG5cbiAgICAgICAgLnNjcmVlbi1jb250ZW50IHtcbiAgICAgICAgICAgIGhlaWdodDogMTAuMXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAxNi43M3JlbTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjhyZW07XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC44cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXRcbiAgICAgICAgfVxuICAgICAgICAuc2NyZWVuLWNvbnRlbnQtaG92ZXIge1xuICAgICAgICAgICAgQGV4dGVuZCAuZGVmYXVsdC1hbmltYXRpb247XG4gICAgICAgICAgICBoZWlnaHQ6IDEwLjFyZW07XG4gICAgICAgICAgICB3aWR0aDogMTYuNzNyZW07XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuOHJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjhyZW07XG4gICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICBjb2xvcjogIzQ2NEM1MTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb3JlLWFjY2VudDtcbiAgICAgICAgICAgIC5mYS1hcnJvdy11cC1yaWdodC1mcm9tLXNxdWFyZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMi41cmVtO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA0LjdyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLm5vdGVib29rIC5zY3JlZW46YWZ0ZXJ7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYmFja2dyb3VuZDogIzE2MUIyMTtcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgd2lkdGg6IDE2LjYzcmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjg3NXJlbSAwIDAgMC44MTI1cmVtO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDFzIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgIC5ub3RlYm9vayAua2V5Ym9hcmQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjREZEQ0RDO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgMC4zMTI1cmVtIDAuMzEyNXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICB3aWR0aDogMjEuODhyZW07XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cbiAgICAubm90ZWJvb2sgLmtleWJvYXJkOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjNzU3OTc5O1xuICAgICAgICBoZWlnaHQ6IDAuMzc1cmVtO1xuICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwIDAgOS4zNzVyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwLjVyZW0gMC41cmVtO1xuICAgIH1cbiAgICAua2V5Ym9hcmQ6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgd2lkdGg6IDIzLjEzcmVtO1xuICAgICAgICBtYXJnaW46IDAuNDM3NXJlbSAwIDAgLTAuNjI1cmVtO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICB9XG4iLCIvLyBNb2R1bGFyIFNob3djYXNlIHN0eWxpbmdcbi5tb2R1bGFyIHtcblxuLy8gc3BlY2lhbCBjYXNlIGZvciBoZWFkZXJcbiYuaGVhZGVyLWltYWdlIHtcbiAgICAjaGVhZGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwKTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcblxuICAgICAgICAjbG9nbyBoMyB7XG4gICAgICAgICAgICBjb2xvcjogJGhlYWRlci10ZXh0O1xuICAgICAgICB9XG4gICAgICAgICNuYXZiYXIgYSB7XG4gICAgICAgICAgICBjb2xvcjogJGhlYWRlci10ZXh0O1xuICAgICAgICB9XG4gICAgfVxufVxuLnNsaWRlbWVfY29udGFpbmVyIHtcbiAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgIG1hcmdpbi10b3A6IC0gJGhlYWRlci1oZWlnaHQgLSAzcmVtO1xuICAgICBwYWRkaW5nLXRvcDogJGhlYWRlci1oZWlnaHQgKyAzcmVtO1xuICAgICBoZWlnaHQ6IDM0LjdyZW07XG59XG4uc2hvd2Nhc2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjY2O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAkaGVhZGVyLXRleHQ7XG4gICAgaDEge1xuICAgICAgICBmb250LXNpemU6IDIuMnJlbTtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDFweCAxcHggM3B4ICM2NTYxNjE7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmctaG9yaXo7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nLWhvcml6O1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldC1yYW5nZSkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUtb25seSkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA0cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cmVtO1xuICAgICAgICB9XG4gICAgICAgIHN0cm9uZyB7XG4gICAgICAgICAgICBjb2xvcjogJGNvcmUtYWNjZW50O1xuICAgICAgICB9XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuICAgIGgyIHtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDFweCAxcHggM3B4ICM2NTYxNjE7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nLWhvcml6O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZy1ob3JpejtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUtb25seSkge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA0cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cmVtO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5idXR0b24ge1xuICAgICAgICBAZXh0ZW5kIC5kZWZhdWx0LWFuaW1hdGlvbjtcbiAgICAgICAgY29sb3I6ICRoZWFkZXItdGV4dDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1oZWFkZXI7XG4gICAgICAgIHBhZGRpbmc6IDAuM3JlbSAxcmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDApO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkaGVhZGVyLXRleHQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBmb250LXNpemU6ICRjb3JlLWZvbnQtc2l6ZTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIFNsaWRlc2hvdyBBcnJvd3MgYW5kIFBhZ2luYXRpb25cbi5zbGlkZW1lX2NvbnRhaW5lciB7XG4gICAgLmFycm93IHtcbiAgICAgICAgQGV4dGVuZCAuZGVmYXVsdC1hbmltYXRpb247XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xucGFkZGluZy1sZWZ0OiAwLjhyZW07XG5wYWRkaW5nLXJpZ2h0OiAwLjhyZW07XG5wYWRkaW5nLXRvcDogMDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB6LWluZGV4OiA1MDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBsaW5lLWhlaWdodDogMy44cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZS1vbmx5KSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyLjhyZW07XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciB7b3BhY2l0eTogMTt9XG4gICAgICAgICYucHJldiB7XG4gICAgICAgICAgICBsZWZ0OiA0cmVtO1xuICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlLW9ubHkpIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAxcmVtO1xuICAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLm5leHQge1xuICAgICAgICAgICAgcmlnaHQ6IDRyZW07XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZS1vbmx5KSB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDFyZW07XG4gICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6ZGlzYWJsZWQge29wYWNpdHk6IDAuMX1cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUtb25seSkge1xuICAgICAgICAgICAgd2lkdGg6IDIuN3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMi43cmVtO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5hcnJvdy5uZXh0OmJlZm9yZSB7Y29udGVudDogJ1xcZjA1NCc7Zm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO21hcmdpbi1sZWZ0OiAwLjRyZW07fVxuICAgIC5hcnJvdy5wcmV2OmJlZm9yZSB7Y29udGVudDogJ1xcZjA1Myc7Zm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO21hcmdpbi1yaWdodDogMC41cmVtO31cblxuICAgIC5wYWdpbmF0aW9uIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgYm90dG9tOiA1JTtcbiAgICAgICAgLm51bWJlcnMge1xuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIEBleHRlbmQgLmRlZmF1bHQtYW5pbWF0aW9uO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oMC4ycyk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjJyZW07XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgICAgICYuY3VycmVudCB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDFyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxufVxuIiwiLy8gTW9kdWxhciBTaG93Y2FzZSBzdHlsaW5nXG4ubW9kdWxhciB7XG4gICAgLmZlYXR1cmVzIHtcbiAgICAgICAgcGFkZGluZzogNHJlbSAwO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcblxuICAgICAgICBoMiB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkbGlnaHQtZ3JheTsgXG4gICAgICAgIH1cblxuICAgICAgICBociB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA0cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUtb25seSkge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGNvcmUtZm9udC1zaXplO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29yZS1hY2NlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJGhlYWRlci10ZXh0O1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1oZWFkZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6ICRjb3JlLWZvbnQtc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mZWF0dXJlLWl0ZW1zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgICAgICAgICBAc3VwcG9ydHMgbm90IChmbGV4LXdyYXA6IHdyYXApIHtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmZlYXR1cmUge1xuICAgICAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UtbW9iaWxlLXJhbmdlKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbC1tb2JpbGUtcmFuZ2UpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpLmZhIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGg0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRjb3JlLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAuMnJlbSAwIDFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmJpZyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAuZmVhdHVyZSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDMzLjMzJTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsLW1vYmlsZS1yYW5nZSkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGkuZmEge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogNC41cmVtO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuZmVhdHVyZS1jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAycmVtO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG5cbiAgICAgICAgICAgICAgICAmLmljb24tb2Zmc2V0IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaDQge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxufVxuIiwiLy8gTW9kdWxhciBCb3R0b20gc3R5bGluZ1xuLm1vZHVsYXIge1xuICAgIC5ib3R0b20ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNHJlbTtcblxuICAgICAgICBoMiB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRsaWdodC1ncmF5OyBcbiAgICAgICAgfVxuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlLW9ubHkpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRjb3JlLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5idXR0b24ge1xuICAgICAgICAgICAgQGV4dGVuZCAuZGVmYXVsdC1hbmltYXRpb247XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29yZS1hY2NlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJGhlYWRlci10ZXh0O1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1oZWFkZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6ICRjb3JlLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMCBub25lO1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRjb3JlLWFjY2VudCwgMjAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmJvcmRlcmJvdHRvbSB7XG4gICAgICAgICAgICBociB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgICB0YWJsZSB7XG4gICAgICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgICAgIHRoIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgICAgIEBleHRlbmQgaDQ7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUtb25seSkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OyAgXG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZS1vbmx5KSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuc2VydmljZXMge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgICAgICAgICAuc2VydmljZSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlLW9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5mYSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDdyZW07XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogNnJlbTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiA2cmVtO1xuICAgICAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA3cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaDQge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OyBcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4uYWJvdXQge1xuICAgIGhyIHtcbiAgICAgICAgbWFyZ2luOiAzcmVtIDA7XG4gICAgfVxufVxuIiwiLy8gTW9kdWxhciBDb250YWN0IHN0eWxpbmdcbi5jb250YWN0IHtcbiAgICBoNCB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuICAgIGlucHV0IHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlLW9ubHkpIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogODAlO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0LXJhbmdlKSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDcwJTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0ZXh0YXJlYSB7XG4gICAgICAgIG1pbi13aWR0aDogODAlO1xuICAgICAgICBtaW4taGVpZ2h0OiAyNXJlbTtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUtb25seSkge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0LXJhbmdlKSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDkwJTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbnB1dCwgdGV4dGFyZWEge1xuICAgICAgICBAZXh0ZW5kIC5kZWZhdWx0LWFuaW1hdGlvbjtcbiAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50aXplKCRjb3JlLXRleHQsIDAuOCk7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50aXplKCRjb3JlLXRleHQsIDAuODkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGxhYmVsIHtcbiAgICAgICAgQGV4dGVuZCBoNDtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgIH1cbiAgICBidXR0b24ge1xuICAgICAgICBAZXh0ZW5kIC5idXR0b247XG4gICAgICAgIEBleHRlbmQgLmRlZmF1bHQtYW5pbWF0aW9uO1xuICAgICAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWhlYWRlcjtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgICNzaW1wbGVfZm9ybS1zdWNjZXNzLCAjc2ltcGxlX2Zvcm0tc3VibWl0IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBzdHJvbmcge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgICAgIH1cbiAgICAgICAgLmNsb3NlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59IiwiLy8gdmFyaWFibGVzXG4kdGV4dC1iZzogICAgICAgICNFRUVFRUU7XG4kdGV4dC1wYWRkaW5nOiAgIDJyZW07XG4kaW1hZ2UtbWFyZ2luOiAgICAgIDJyZW07XG5cblxuLy8gc3R5bGluZ1xuLmNhbGxvdXQge1xuICAgIGJhY2tncm91bmQ6ICR0ZXh0LWJnO1xuICAgIHBhZGRpbmc6ICR0ZXh0LXBhZGRpbmcgJGNvbnRlbnQtcGFkZGluZztcbiAgICBwYWRkaW5nLXRvcDogJHRleHQtcGFkZGluZztcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBjbGVhcjogYm90aDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wLW9ubHkpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgICAuY2FsbG91dC1saW5lIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHBhZ2UtYmc7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDdyZW07XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB6LWluZGV4OiAwO1xuICAgIH1cbiAgICAucHJpY2luZy1jb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAgICAgbWluLWhlaWdodDogMzFyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgLnByaWNpbmctaXRlbSB7XG4gICAgICAgICAgICBAZXh0ZW5kIC5kZWZhdWx0LWFuaW1hdGlvbjtcbiAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZ3JpZDtcbiAgICAgICAgICAgIHdpZHRoOiA0MCU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZS1vbmx5KSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldC1yYW5nZSkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wLXJhbmdlKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIyLjUlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSwxLjA4KTtcbiAgICAgICAgICAgICAgICAtbW96LXRyYW5zZm9ybTpzY2FsZSgxLDEuMDgpO1xuICAgICAgICAgICAgICAgIC1tcy10cmFuc2Zvcm06c2NhbGUoMSwxLjA4KTtcbiAgICAgICAgICAgICAgICAtby10cmFuc2Zvcm06c2NhbGUoMSwxLjA4KTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06c2NhbGUoMSwxLjA4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRpdiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJG1haW4tYmc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAubmFtZSB7XG4gICAgICAgICAgICAgICAgQGV4dGVuZCAuZGVmYXVsdC1hbmltYXRpb247XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvcmUtYWNjZW50O1xuICAgICAgICAgICAgICAgIEBleHRlbmQgaDQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5pbmZvIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyLWNvbG9yIDFweCBzb2xpZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRsaWdodC1ncmF5O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktaGVhZGVyO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlci1jb2xvciAxcHggc29saWQ7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuZm9vdCB7XG4gICAgICAgICAgICAgICAgQGV4dGVuZCAuZGVmYXVsdC1hbmltYXRpb247XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvcmUtYWNjZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICAgICAgICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgQGV4dGVuZCBoNDtcbiAgICAgICAgICAgICAgICAgICAgQGV4dGVuZCAuZGVmYXVsdC1hbmltYXRpb247XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDlyZW07XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNzUpO1xuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC44NSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdXAge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vIHZhcmlhYmxlc1xuJG1vZHVsZS1iZzogICAgICAgICNFRUVFRUU7XG5cbi8vIHN0eWxpbmdcbi50ZWFtIHtcbiAgICBiYWNrZ3JvdW5kOiAkbW9kdWxlLWJnO1xuICAgIHBhZGRpbmc6IDRyZW0gMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgaDIge1xuICAgICAgICBjb2xvcjogJGxpZ2h0LWdyYXk7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gICAgfVxuICAgIHAge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcbiAgICB9XG4gICAgLm1lbWJlcnMge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgICAgIC5tZW1iZXIge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICB3aWR0aDogMjklO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDFyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUtb25seSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0LXJhbmdlKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDQ0JTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaDQge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZS1vbmx5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBociB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnNvY2lhbC1pY29ucyB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZS1vbmx5KSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgQGV4dGVuZCAuZGVmYXVsdC1hbmltYXRpb247XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIuMXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjhyZW07XG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIEBleHRlbmQgLmRlZmF1bHQtYW5pbWF0aW9uO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xcmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjUpO1xuICAgICAgICAgICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29yZS1hY2NlbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyB2YXJpYWJsZXNcbiR0ZXh0LWJnOiAgICAgICAgI0VFRUVFRTtcbiR0ZXh0LXBhZGRpbmc6ICAgMnJlbTtcbiRpbWFnZS1tYXJnaW46ICAgICAgMnJlbTtcblxuXG4vLyBzdHlsaW5nXG4ucG9ydGZvbGlvIHtcbiAgICBwYWRkaW5nOiAkdGV4dC1wYWRkaW5nICRjb250ZW50LXBhZGRpbmc7XG4gICAgcGFkZGluZy10b3A6ICR0ZXh0LXBhZGRpbmc7XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcC1vbmx5KSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gICAgaDIge1xuICAgICAgICBjb2xvcjogJGxpZ2h0LWdyYXk7XG4gICAgfVxuICAgIC5ub3RlYm9va3Mge1xuICAgICAgICBtYXJnaW4tdG9wOiA0cmVtO1xuICAgICAgICAubm90ZWJvb2stcm93IHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDBweCAtOTBweCAwcHggLTIwcHggJG1haW4tYmc7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRwYWRkaW5nLWhvcml6O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHBhZGRpbmctaG9yaXo7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nLWhvcml6O1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmctaG9yaXo7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdGV4dC1iZztcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZS1vbmx5KSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kcGFkZGluZy1ob3JpeiArIDRyZW07XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHBhZGRpbmctaG9yaXogKyA0cmVtIDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm5vdGVib29rIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDI0JTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldC1yYW5nZSkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wLXJhbmdlKSB7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMjQlO1xuICAgICAgICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbC1tb2JpbGUtcmFuZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE3MCU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtNC43cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBoNCB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuZGVzYyB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyMHJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDJyZW07XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcC1yYW5nZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUtb25seSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbC1tb2JpbGUtcmFuZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA5MCU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQtcmFuZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQTZGRUEsQU5NQSxPTU5PLENBaUNILEtBQUssQ0FDRCxFQUFFLEVBbENWLE9BQU8sQ0FpQ0gsS0FBSyxDQVFELEVBQUUsQUFDRyxhQUFhLEVBMUMxQixPQUFPLENBZ0RILFdBQVcsRUFoRGYsT0FBTyxDQXNJSCxPQUFPLENBWUgsRUFBRSxBQU1HLFdBQVcsRUF4SnhCLE9BQU8sQ0FzSUgsT0FBTyxDQXlGSCxpQkFBaUIsQ056TlQsRUFDZixRQUFRLEVBQUUsUUFBUSxFQUNsQixHQUFHLEVBQUUsR0FBRyxFMUJERCxpQkFBb0IsRTBCRVIsZ0JBQWdCLEUxQkc1QixjQUFpQixFMEJITCxnQkFBZ0IsRTFCUTVCLGFBQWdCLEUwQlJKLGdCQUFnQixFMUJhNUIsWUFBZSxFMEJiSCxnQkFBZ0IsRTFCa0I1QixTQUFZLEUwQmxCQSxnQkFBZ0IsR0FDbkM7O0FXWkQsQVRBQSxPU0FPLEVLQ1AsYUFBYSxDQWlDVCxNQUFNLEVRakNWLFFBQVEsQ0F1Q0osTUFBTSxFYm5D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 */ diff --git a/css-compiled/template.min.css b/css-compiled/template.min.css new file mode 100644 index 0000000..4d546c8 --- /dev/null +++ b/css-compiled/template.min.css @@ -0,0 +1 @@ +#header #navbar .panel-activation,#header #navbar ul.navigation,#header .logo h3,#header .logo ul.social-icons,#header .search-box{position:relative;top:50%;transform:translateY(-50%)}.archive-list button,.button,.button-secondary,.contact button{display:inline-block;margin-right:5px;margin-bottom:10px;margin-left:5px;padding:7px 20px}.archive-list button.button-small,.button-small.button,.button-small.button-secondary,.contact button.button-small{font-size:.9rem;padding:3px 10px}body,html{height:100%}body{color:#9a9898;background:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:#87b672}a:hover{color:#558042}b,label,strong,th{font-weight:600}#container{position:relative;min-height:100%}.fullwidth #body{padding-right:0;padding-left:0}#body{padding-top:15rem;background:#fff}.left{float:left}.right{float:right}@font-face{font-family:novecento_sans_widedemibold;font-weight:400;font-style:normal;src:url(../fonts/Novecentosanswide-DemiBold-webfont.eot);src:url(../fonts/Novecentosanswide-DemiBold-webfont.eot?#iefix) format('embedded-opentype'),url(../fonts/Novecentosanswide-DemiBold-webfont.woff2) format('woff2'),url(../fonts/Novecentosanswide-DemiBold-webfont.woff) format('woff'),url(../fonts/Novecentosanswide-DemiBold-webfont.ttf) format('truetype'),url(../fonts/Novecentosanswide-DemiBold-webfont.svg#novecento_sans_widedemibold) format('svg')}@font-face{font-family:novecento_sans_widenormal;font-weight:400;font-style:normal;src:url(../fonts/Novecentosanswide-Normal-webfont.eot);src:url(../fonts/Novecentosanswide-Normal-webfont.eot?#iefix) format('embedded-opentype'),url(../fonts/Novecentosanswide-Normal-webfont.woff2) format('woff2'),url(../fonts/Novecentosanswide-Normal-webfont.woff) format('woff'),url(../fonts/Novecentosanswide-Normal-webfont.ttf) format('truetype'),url(../fonts/Novecentosanswide-Normal-webfont.svg#novecento_sans_widenormal) format('svg')}@font-face{font-family:novecento_sans_widemedium;font-weight:400;font-style:normal;src:url(../fonts/Novecentosanswide-Medium-webfont.eot);src:url(../fonts/Novecentosanswide-Medium-webfont.eot?#iefix) format('embedded-opentype'),url(../fonts/Novecentosanswide-Medium-webfont.woff2) format('woff2'),url(../fonts/Novecentosanswide-Medium-webfont.woff) format('woff'),url(../fonts/Novecentosanswide-Medium-webfont.ttf) format('truetype'),url(../fonts/Novecentosanswide-Medium-webfont.svg#novecento_sans_widemedium) format('svg')}@font-face{font-family:Pacifico;font-weight:400;font-style:normal;src:url(../fonts/pacifico.ttf) format('truetype')}#body,.archive-list .callout .pricing-container .pricing-item .foot button,.archive-list .modular .bottom button,.archive-list .modular .showcase button,.archive-list button,.callout .pricing-container .pricing-item,.callout .pricing-container .pricing-item .foot,.callout .pricing-container .pricing-item .foot .archive-list button,.callout .pricing-container .pricing-item .foot .button,.callout .pricing-container .pricing-item .foot .contact button,.callout .pricing-container .pricing-item .name,.contact .callout .pricing-container .pricing-item .foot button,.contact .modular .bottom button,.contact .modular .showcase button,.contact button,.contact input,.contact textarea,.default-animation,.logo h3,.logo ul.social-icons li,.logo ul.social-icons li a,.modal,.modular .bottom .archive-list button,.modular .bottom .button,.modular .bottom .contact button,.modular .showcase .archive-list button,.modular .showcase .button,.modular .showcase .contact button,.modular .slideme_container .arrow,.modular .slideme_container .pagination .numbers li,.notebook .screen .screen-content-hover,.team .members .social-icons li,.team .members .social-icons li a{transition:all .5s ease}#body,#header,.footer,.fullwidth #body>.modular-row,.fullwidth #breadcrumbs,.fullwidth #header,.fullwidth .blog-content-item,.fullwidth .blog-header,.fullwidth .content-wrapper,.fullwidth ul.pagination,.padding-horiz{padding-right:14rem;padding-left:14rem}@media only all and (min-width:60em) and (max-width:74.938em){#body,#header,.footer,.fullwidth #body>.modular-row,.fullwidth #breadcrumbs,.fullwidth #header,.fullwidth .blog-content-item,.fullwidth .blog-header,.fullwidth .content-wrapper,.fullwidth ul.pagination,.padding-horiz{padding-right:7rem;padding-left:7rem}}@media only all and (min-width:48em) and (max-width:59.938em){#body,#header,.footer,.fullwidth #body>.modular-row,.fullwidth #breadcrumbs,.fullwidth #header,.fullwidth .blog-content-item,.fullwidth .blog-header,.fullwidth .content-wrapper,.fullwidth ul.pagination,.padding-horiz{padding-right:7rem;padding-left:7rem}}@media only all and (max-width:47.938em){#body,#header,.footer,.fullwidth #body>.modular-row,.fullwidth #breadcrumbs,.fullwidth #header,.fullwidth .blog-content-item,.fullwidth .blog-header,.fullwidth .content-wrapper,.fullwidth ul.pagination,.padding-horiz{padding-right:1rem;padding-left:1rem}}.padding-vert{padding-top:3rem;padding-bottom:3rem}#header{position:absolute;z-index:10000;width:100%;height:12rem;background-color:rgba(255,255,255,.9);box-shadow:0 .05rem 1rem rgba(0,0,0,.15)}#header #navbar,#header .logo,#header .social-navigation,#header>.grid{height:50%}#header .fa{color:#000}#header .fixed{position:fixed;top:0;left:0;width:100%;padding-right:14rem;padding-left:14rem;opacity:.9;background:#fff;box-shadow:0 0 20px 0 rgba(0,0,0,.2)}@media only all and (max-width:47.938em){#header .fixed{padding-right:10px;padding-left:10px}}@media only all and (max-width:47.938em){#header .logo h3{font-size:1.9rem}}#header .search-box{display:block;float:right;text-align:right}#header .search-box i{position:absolute;z-index:-1;top:.5rem;right:.6rem;cursor:pointer;color:#fff}#header .search-box input::-webkit-search-cancel-button,#header .search-box input::-webkit-search-decoration{display:none}#header .search-box input[type=search]{font-family:inherit;font-size:100%;font-size:.9rem;-webkit-box-sizing:content-box;width:4rem;height:1.3rem;margin-bottom:0;cursor:pointer;transition:all .5s;color:transparent;border:0 none;outline:0;background:0 0;box-shadow:none;-webkit-appearance:textfield}#header .search-box input[type=search]:focus{width:10rem;cursor:auto;color:#fff;background-color:rgba(255,255,255,.3)}#header .search-box input:-moz-placeholder{color:transparent}#header .search-box input::-webkit-input-placeholder{color:transparent}@media only all and (max-width:59.938em){#header .search-box{position:absolute;top:50%;right:10px;transform:translateY(1rem);text-align:right}#header .search-box i{left:.6rem}#header .search-box input[type=search]{padding-right:2rem}#header .search-box input[type=search]:focus{width:8rem}}@media only all and (max-width:59.938em){#header .fixed .search-box{top:50%;transform:translateY(-50%)}}@media only all and (max-width:59.938em){#header .fixed .panel-activation{top:50%!important;transform:translateY(-50%)!important}}#header #navbar{font-size:1.1rem}@media only all and (max-width:47.938em){#header #navbar{margin-right:-1rem;margin-left:-1rem}#header #navbar.fixed{margin:0}}#header #navbar ul{margin:0;padding:0;list-style:none}#header #navbar ul.navigation{display:inline-block;float:left}#header #navbar ul.navigation li{position:relative;float:left;text-transform:uppercase}#header #navbar ul.navigation li a{font-family:novecento_sans_widedemibold,Helvetica,Tahoma,Geneva,Arial,sans-serif;display:inline-block;padding:.3rem .8rem}#header #navbar ul.navigation li a.active,#header #navbar ul.navigation li a:hover{color:#87b672}#header #navbar ul.navigation li:first-child a{padding-left:0}#header #navbar ul.navigation li ul{display:none;padding:0;box-shadow:0 .05rem 1rem rgba(0,0,0,.15)!important}#header #navbar ul.navigation li ul ul{top:0;left:100%}#header #navbar ul.navigation li:hover>ul{position:absolute;display:block;width:10rem;background:rgba(255,255,255,.9)}#header #navbar ul.navigation li:hover li{float:none;margin:0;padding:0}#header #navbar ul.navigation li:hover li a{display:block;padding:.5rem .8rem}#header #navbar ul.navigation li:hover li a:after,#header #navbar ul.navigation li:hover li a:before{display:none}#header #navbar ul.navigation li:hover li.active>a{color:#fff;background:#87b672}@media only all and (max-width:59.938em){#header #navbar ul.navigation{display:none}}#header #navbar .panel-activation{font-size:1.8rem;display:none;float:right;padding:1rem;cursor:pointer}@media only all and (max-width:59.938em){#header #navbar .panel-activation{position:absolute;top:50%;left:0;display:inline-block;transform:translateY(0)}}.modular.header-image #header .fixed{transition:background .3s ease-in-out;background:#666}.header-image.fullwidth #body{padding-right:0;padding-left:0}.header-image.fullwidth #body>.listing-row{padding-right:14rem;padding-left:14rem}.header-image .listing-row:last-child{margin-bottom:2rem}.header-image #body .flush-top{margin-top:-15.5rem;padding-top:16rem}.header-image #breadcrumbs{margin-top:1rem}.header-image #header{background-color:rgba(255,255,255,0);box-shadow:none}.header-image #header #logo a,.header-image #header #logo h3{color:#fff}.header-image #header .menu-btn,.header-image #header a{color:#fff}.header-image #header a:after,.header-image #header a:before{background-color:rgba(255,255,255,.7)!important}.header-image #header #navbar ul.navigation ul li a{color:#87b672;text-shadow:1px 1px 3px #656161}.header-image #header #navbar ul.navigation ul li a:hover{color:#558042}.header-lite #body{padding-top:12rem}.header-lite #header{color:#656161;box-shadow:none}.header-lite #header .menu-btn,.header-lite #header a{color:#656161}.header-lite #header .search-box i{color:#656161}.header-lite #header .search-box input[type=search]:focus{background-color:rgba(101,97,97,.2)}.header-lite #header li.active a{color:#87b672}.header-lite #header .logo ul.social-icons li{background:rgba(101,97,97,.2)}.header-lite #header .logo ul.social-icons li .fa{color:#fff}.header-lite #header .logo ul.social-icons li:hover .fa{color:#656161}.footer{font-size:.9rem;width:100%;padding-top:2rem;background:#333}.footer:after{display:table;clear:both;content:''}.footer a{color:#9a9898}.archive-list .callout .pricing-container .pricing-item .foot .footer button,.archive-list .footer label,.callout .pricing-container .pricing-item .foot .archive-list .footer button,.callout .pricing-container .pricing-item .foot .contact .footer button,.callout .pricing-container .pricing-item .foot .footer .button,.callout .pricing-container .pricing-item .footer .name,.contact .callout .pricing-container .pricing-item .foot .footer button,.contact .footer label,.footer .archive-list .callout .pricing-container .pricing-item .foot button,.footer .archive-list label,.footer .callout .pricing-container .pricing-item .foot .archive-list button,.footer .callout .pricing-container .pricing-item .foot .button,.footer .callout .pricing-container .pricing-item .foot .contact button,.footer .callout .pricing-container .pricing-item .name,.footer .contact .callout .pricing-container .pricing-item .foot button,.footer .contact label,.footer .modular .bottom table th,.footer h4,.modular .bottom table .footer th{line-height:2rem;margin-top:0;text-align:left;color:#fff}.footer hr{border-color:rgba(154,152,152,.5)}@media only all and (max-width:47.938em){.footer .social-icons{float:none;clear:both;width:100%;padding-top:2rem}}@media only all and (min-width:48em) and (max-width:59.938em){.footer .social-icons{float:none;clear:both;width:100%;padding-top:2rem}}.footer .footer-items{margin-top:2rem}@media only all and (max-width:47.938em){.footer .footer-items{margin-top:0}}@supports not (flex-wrap:wrap){.footer .footer-items{overflow:hidden}}.footer .footer-items:after{display:table;clear:both;content:''}.footer .footer-module{display:block;float:left;width:25%;padding-right:2rem;vertical-align:top}.footer .footer-module.large{width:50%}@media only all and (min-width:30.063em) and (max-width:47.938em){.footer .footer-module{width:50%;margin-top:1rem}}@media only all and (max-width:30em){.footer .footer-module{width:100%;margin-top:1rem}}.footer .footer-module span:after{display:table;clear:both;content:''}.footer .footer-module label,.footer .footer-module strong,.footer .footer-module th{color:#fff}@media only all and (max-width:47.938em){.footer .footer-module{float:none;width:100%!important}}.footer .logo{color:#fff;border-bottom:0 none}.footer .logo:after{display:table;clear:both;content:''}.footer .logo h3 a{color:#fff}.footer .quickmenu{margin:0;padding:0;list-style:none}.footer .quickmenu i{font-size:.7rem;padding-right:.5rem;color:#fff}.footer .footer-modules{display:block;padding-bottom:1.5rem}.footer .footer-modules:after{display:table;clear:both;content:''}.footer .footer-copyright{font-family:novecento_sans_widedemibold,Helvetica,Tahoma,Geneva,Arial,sans-serif;display:inline-block;float:left;width:50%;text-align:left;text-transform:uppercase}@media only all and (max-width:47.938em){.footer .footer-copyright{float:none;width:100%;margin-bottom:1rem;text-align:left}}.footer .footer-menu{font-family:novecento_sans_widedemibold,Helvetica,Tahoma,Geneva,Arial,sans-serif;display:inline-block;float:right;width:50%;text-align:right;text-transform:uppercase}@media only all and (max-width:47.938em){.footer .footer-menu{float:none;width:100%;text-align:left}}.footer .footer-menu ul{margin:0;padding:0;list-style:none}.footer .footer-menu ul li{display:inline-block}.footer .footer-menu ul li:after{display:inline-block;margin:0 .5rem;content:'/'}.footer .footer-menu ul li:last-child:after{display:none}.footer .newsletter input{display:inline-block;height:2.5rem;border:0 none}.footer .newsletter input[type=text]{color:#fff;background-color:rgba(255,255,255,.2)}.footer .newsletter input[type=submit]{padding:0 1.2rem;vertical-align:top;color:#fff;background-color:rgba(255,255,255,.5)}body{font-family:'Helvetica Neue',HelveticaNeue-Light,'Helvetica Neue Light',Helvetica,Arial,'Lucida Grande',sans-serif;font-weight:400}.archive-list .callout .pricing-container .pricing-item .foot button,.archive-list label,.callout .pricing-container .pricing-item .foot .archive-list button,.callout .pricing-container .pricing-item .foot .button,.callout .pricing-container .pricing-item .foot .contact button,.callout .pricing-container .pricing-item .name,.contact .callout .pricing-container .pricing-item .foot button,.contact label,.modular .bottom table th,h1,h2,h3,h4,h5,h6{font-family:novecento_sans_widedemibold,Helvetica,Tahoma,Geneva,Arial,sans-serif;text-rendering:optimizeLegibility}h1{font-size:3.2rem}@media only all and (max-width:47.938em){h1{font-size:2.5rem;line-height:1.2;margin-bottom:2.5rem;text-shadow:1px 1px 3px #656161}}h2{font-size:1.4rem;font-weight:400;text-transform:uppercase}@media only all and (min-width:48em) and (max-width:59.938em){h2{font-size:-1rem}}@media only all and (max-width:47.938em){h2{font-size:-1.1rem}}@media only all and (min-width:48em) and (max-width:59.938em){h3{font-size:-.9rem}}@media only all and (max-width:47.938em){h3{font-size:-1rem}}.archive-list .callout .pricing-container .pricing-item .foot button,.archive-list label,.callout .pricing-container .pricing-item .foot .archive-list button,.callout .pricing-container .pricing-item .foot .button,.callout .pricing-container .pricing-item .foot .contact button,.callout .pricing-container .pricing-item .name,.contact .callout .pricing-container .pricing-item .foot button,.contact label,.modular .bottom table th,h4{font-size:1.2rem;font-weight:700;text-align:center;text-transform:uppercase;color:#656161}@media only all and (min-width:48em) and (max-width:59.938em){.archive-list .callout .pricing-container .pricing-item .foot button,.archive-list label,.callout .pricing-container .pricing-item .foot .archive-list button,.callout .pricing-container .pricing-item .foot .button,.callout .pricing-container .pricing-item .foot .contact button,.callout .pricing-container .pricing-item .name,.contact .callout .pricing-container .pricing-item .foot button,.contact label,.modular .bottom table th,h4{font-size:1.35rem}}@media only all and (max-width:47.938em){.archive-list .callout .pricing-container .pricing-item .foot button,.archive-list label,.callout .pricing-container .pricing-item .foot .archive-list button,.callout .pricing-container .pricing-item .foot .button,.callout .pricing-container .pricing-item .foot .contact button,.callout .pricing-container .pricing-item .name,.contact .callout .pricing-container .pricing-item .foot button,.contact label,.modular .bottom table th,h4{font-size:1.25rem}}h1{font-weight:400;text-align:center}h3{letter-spacing:-1px}h1+h2{font-family:'Helvetica Neue',HelveticaNeue-Light,'Helvetica Neue Light',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:1.4rem;font-weight:300;line-height:1;margin:-2rem 0 2rem 0;text-align:center}@media only all and (min-width:48em) and (max-width:59.938em){h1+h2{font-size:1.3rem}}@media only all and (max-width:47.938em){h1+h2{font-size:1rem}}h2+h3{font-family:'Helvetica Neue',HelveticaNeue-Light,'Helvetica Neue Light',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:1.3rem;font-weight:400;line-height:1;margin:.5rem 0 2rem 0;text-align:center}@media only all and (min-width:48em) and (max-width:59.938em){h2+h3{font-size:1.2rem}}@media only all and (max-width:47.938em){h2+h3{font-size:1.1rem}}blockquote{border-left:10px solid #f0f2f4}blockquote p{font-size:1.1rem;color:#999}blockquote cite{font-size:1.2rem;display:block;text-align:right;color:#666}blockquote>blockquote>blockquote{margin:0}blockquote>blockquote>blockquote p{font-size:1rem;display:block;margin-top:0;margin-bottom:0;padding:15px}blockquote>blockquote>blockquote>p{margin-left:-71px;color:#df8a13;border-left:10px solid #f0ad4e;background:#fcf8f2}blockquote>blockquote>blockquote>blockquote>p{margin-left:-94px;color:#b52b27;border-left:10px solid #d9534f;background:#fdf7f7}blockquote>blockquote>blockquote>blockquote>blockquote>p{margin-left:-118px;color:#28a1c5;border-left:10px solid #5bc0de;background:#f4f8fa}blockquote>blockquote>blockquote>blockquote>blockquote>blockquote>p{margin-left:-142px;color:#3d8b3d;border-left:10px solid #5cb85c;background:#f1f9f1}code,kbd,pre,samp{font-family:Inconsolata,monospace}code{color:#9c1d3d;background:#f9f2f4}pre{padding:2rem;border:1px solid #cbcbcb;border-radius:3px;background:#f6f6f6}pre code{color:#237794;background:inherit}hr{border-bottom:1px solid #cbcbcb}.page-title{float:left;clear:both;margin-top:-25px;padding:25px;color:#fff;background:#87b672}.label{font-family:novecento_sans_widedemibold,Helvetica,Tahoma,Geneva,Arial,sans-serif;font-size:.7rem;line-height:1rem;display:inline-block;min-width:1rem;height:1rem;margin-right:.75rem;text-align:center;vertical-align:middle;color:#fff;border-radius:100%;background:#87b672}fieldset{border:1px solid #cbcbcb}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select[multiple=multiple],textarea{border:1px solid #cbcbcb;background-color:#fff;box-shadow:inset 0 1px 3px rgba(0,0,0,.06)}input[type=color]:hover,input[type=date]:hover,input[type=datetime-local]:hover,input[type=datetime]:hover,input[type=email]:hover,input[type=month]:hover,input[type=number]:hover,input[type=password]:hover,input[type=search]:hover,input[type=tel]:hover,input[type=text]:hover,input[type=time]:hover,input[type=url]:hover,input[type=week]:hover,select[multiple=multiple]:hover,textarea:hover{border-color:#b2b1b1}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,select[multiple=multiple]:focus,textarea:focus{border-color:#87b672;box-shadow:inset 0 1px 3px rgba(0,0,0,.06),0 0 5px rgba(121,173,97,.7)}.form-field .required{font-size:2rem;line-height:2rem;display:inline-block;height:1.5rem;vertical-align:top;color:#f3443f}form .buttons{text-align:center}form input{font-weight:400}table{border:1px solid #d8d8d8}th{padding:.5rem;background:#e5e4e4}td{padding:.5rem;border:1px solid #d8d8d8}.archive-list button,.button,.contact button{color:#fff;border:1px solid #87b672;background:#87b672}.archive-list button:hover,.button:hover,.contact button:hover{color:#87b672;background:#fff}.archive-list button:active,.button:active,.contact button:active{box-shadow:0 1px 0 #679b50}.button-secondary{color:#fff;border:1px solid #f6635e;background:#f6635e}.button-secondary:hover{color:#f6635e;background:#fff}.button-secondary:active{box-shadow:0 1px 0 #f32b24}.bullets{overflow:auto;margin:1.7rem 0;margin-right:-.85rem;margin-left:-.85rem}.bullet{float:left;padding:0 .85rem}.two-column-bullet{width:50%}@media only all and (max-width:47.938em){.two-column-bullet{width:100%}}.three-column-bullet{width:33.3333333333%}@media only all and (max-width:47.938em){.three-column-bullet{width:100%}}.four-column-bullet{width:25%}@media only all and (max-width:47.938em){.four-column-bullet{width:100%}}.bullet-icon{font-size:1.75rem;float:left;width:3.5rem;height:3.5rem;padding:.875rem;text-align:center;color:#fff;border-radius:50%;background:#87b672}.bullet-icon-1{background:#87b672}.bullet-icon-2{background:#9eb672}.bullet-icon-3{background:#b67292}.bullet-content{margin-left:4.55rem}.sb-slidebar{background-color:#333!important}#panel{padding-top:1rem;color:#ddd}#panel .navigation{margin-left:0;padding:0;list-style:none}#panel .navigation li{border-bottom:1px solid #3d3d3d}#panel .navigation li a{font-weight:600;display:block;padding:.5rem 1rem;color:#ddd}#panel .navigation li a:hover{color:#fff;background-color:#262626}#panel .navigation li a:last-child{border-bottom:0}#panel .navigation li.active>a{color:#9a9898;background:#fff}#panel .navigation li.active>a:hover{color:#9a9898}#panel .navigation li:first-child{border-top:1px solid #3d3d3d}#panel .navigation li ul{padding:0;list-style:none}#panel .navigation li ul li{border:0!important}#panel .navigation li ul li a{font-size:.9rem;padding:.2rem 1rem .2rem 2rem;color:#c4c3c3}#panel .navigation li ul li li a{padding-left:3rem}#panel .navigation li ul li li a li a{padding-left:4rem}#panel .navigation li ul li.active>a{background:#ccc}.portfolio-modal .close-modal{font-size:3rem;position:absolute;top:0;right:0;width:5rem;height:5rem;cursor:pointer;background-color:transparent}@media only all and (max-width:47.938em){.portfolio-modal .close-modal{display:none}}.modal{position:fixed;z-index:1050;top:0;right:0;bottom:0;left:0;display:none;overflow:hidden;text-align:center;opacity:0;outline:0;background:#fff;-webkit-overflow-scrolling:touch}@media only all and (max-width:47.938em){.modal h1{margin-bottom:.5rem}.modal p,.modal ul{margin:1rem 0}.modal ul{margin-top:0}}.modal.in{opacity:1}.modal .client-details{list-style-type:none}.modal .client-details li{display:inline-block}.modal .client-details li label,.modal .client-details li strong,.modal .client-details li th{font-weight:400;color:#87b672}.modal .modal-content{width:35rem;min-height:100%;margin:0 auto;margin-top:10rem}@media only all and (min-width:48em) and (max-width:59.938em){.modal .modal-content{width:100%}}@media only all and (max-width:47.938em){.modal .modal-content{width:100%;margin-top:0}}.modal .modal-content img{max-height:15rem}.blog-header{margin-top:0!important;padding-top:1rem!important;padding-bottom:1rem}.blog-header.blog-header-image{background-size:cover!important}.blog-header.blog-header-image h1,.blog-header.blog-header-image h2{text-align:left;color:#fff}.blog-header h1{font-size:2.5rem;margin-top:0;margin-bottom:0;text-transform:uppercase}@media only all and (min-width:48em) and (max-width:59.938em){.blog-header h1{font-size:2rem}}@media only all and (max-width:47.938em){.blog-header h1{font-size:1.5rem;line-height:1.2}}.blog-header+.blog-content{padding-top:3rem}.list-item{margin-bottom:3rem;border-bottom:1px solid #dadada}.list-item:last-child{border-bottom:0}.list-item .list-blog-header{position:relative}.archive-list .callout .pricing-container .pricing-item .foot .list-item .list-blog-header button,.archive-list .list-item .list-blog-header label,.callout .pricing-container .pricing-item .foot .archive-list .list-item .list-blog-header button,.callout .pricing-container .pricing-item .foot .contact .list-item .list-blog-header button,.callout .pricing-container .pricing-item .foot .list-item .list-blog-header .button,.callout .pricing-container .pricing-item .list-item .list-blog-header .name,.contact .callout .pricing-container .pricing-item .foot .list-item .list-blog-header button,.contact .list-item .list-blog-header label,.list-item .list-blog-header .archive-list .callout .pricing-container .pricing-item .foot button,.list-item .list-blog-header .archive-list label,.list-item .list-blog-header .callout .pricing-container .pricing-item .foot .archive-list button,.list-item .list-blog-header .callout .pricing-container .pricing-item .foot .button,.list-item .list-blog-header .callout .pricing-container .pricing-item .foot .contact button,.list-item .list-blog-header .callout .pricing-container .pricing-item .name,.list-item .list-blog-header .contact .callout .pricing-container .pricing-item .foot button,.list-item .list-blog-header .contact label,.list-item .list-blog-header .modular .bottom table th,.list-item .list-blog-header h4,.modular .bottom table .list-item .list-blog-header th{margin-bottom:1.5rem;text-align:left}.archive-list .callout .pricing-container .pricing-item .foot .list-item .list-blog-header button a,.archive-list .list-item .list-blog-header label a,.callout .pricing-container .pricing-item .foot .archive-list .list-item .list-blog-header button a,.callout .pricing-container .pricing-item .foot .contact .list-item .list-blog-header button a,.callout .pricing-container .pricing-item .foot .list-item .list-blog-header .button a,.callout .pricing-container .pricing-item .list-item .list-blog-header .name a,.contact .callout .pricing-container .pricing-item .foot .list-item .list-blog-header button a,.contact .list-item .list-blog-header label a,.list-item .list-blog-header .archive-list .callout .pricing-container .pricing-item .foot button a,.list-item .list-blog-header .archive-list label a,.list-item .list-blog-header .callout .pricing-container .pricing-item .foot .archive-list button a,.list-item .list-blog-header .callout .pricing-container .pricing-item .foot .button a,.list-item .list-blog-header .callout .pricing-container .pricing-item .foot .contact button a,.list-item .list-blog-header .callout .pricing-container .pricing-item .name a,.list-item .list-blog-header .contact .callout .pricing-container .pricing-item .foot button a,.list-item .list-blog-header .contact label a,.list-item .list-blog-header .modular .bottom table th a,.list-item .list-blog-header h4 a,.modular .bottom table .list-item .list-blog-header th a{color:#656161}.archive-list .callout .pricing-container .pricing-item .foot .list-item .list-blog-header button a:hover,.archive-list .list-item .list-blog-header label a:hover,.callout .pricing-container .pricing-item .foot .archive-list .list-item .list-blog-header button a:hover,.callout .pricing-container .pricing-item .foot .contact .list-item .list-blog-header button a:hover,.callout .pricing-container .pricing-item .foot .list-item .list-blog-header .button a:hover,.callout .pricing-container .pricing-item .list-item .list-blog-header .name a:hover,.contact .callout .pricing-container .pricing-item .foot .list-item .list-blog-header button a:hover,.contact .list-item .list-blog-header label a:hover,.list-item .list-blog-header .archive-list .callout .pricing-container .pricing-item .foot button a:hover,.list-item .list-blog-header .archive-list label a:hover,.list-item .list-blog-header .callout .pricing-container .pricing-item .foot .archive-list button a:hover,.list-item .list-blog-header .callout .pricing-container .pricing-item .foot .button a:hover,.list-item .list-blog-header .callout .pricing-container .pricing-item .foot .contact button a:hover,.list-item .list-blog-header .callout .pricing-container .pricing-item .name a:hover,.list-item .list-blog-header .contact .callout .pricing-container .pricing-item .foot button a:hover,.list-item .list-blog-header .contact label a:hover,.list-item .list-blog-header .modular .bottom table th a:hover,.list-item .list-blog-header h4 a:hover,.modular .bottom table .list-item .list-blog-header th a:hover{color:#87b672}.list-item .list-blog-header img{display:block;margin-top:1rem;border-radius:0}.list-item .list-blog-author,.list-item .list-blog-date{font-family:novecento_sans_widedemibold,Helvetica,Tahoma,Geneva,Arial,sans-serif;font-size:1rem;margin-right:.5rem;margin-bottom:.2rem;padding:.7rem 1rem;text-align:center;text-transform:uppercase;color:#9a9898;background-color:rgba(101,97,97,.1)}@media only all and (min-width:48em) and (max-width:59.938em){.list-item .list-blog-author,.list-item .list-blog-date{display:block;clear:both;width:100%}}@media only all and (max-width:47.938em){.list-item .list-blog-author,.list-item .list-blog-date{display:block;clear:both;width:100%}}.blog-content-item .list-blog-padding>p:nth-child(2){font-size:1.2rem}.tags{display:inline;margin:0;margin-bottom:.2rem;padding:0;padding:.7rem 1rem;list-style:none;text-align:center;background-color:rgba(101,97,97,.1)}.tags li{font-family:novecento_sans_widedemibold,Helvetica,Tahoma,Geneva,Arial,sans-serif;font-size:1rem;display:inline-block;text-transform:uppercase}.tags li a{color:#9a9898}.tags li a:after{content:','}.tags li:last-child a:after{display:none}@media only all and (min-width:48em) and (max-width:59.938em){.tags{display:block;clear:both;width:100%}}@media only all and (max-width:47.938em){.tags{display:block;clear:both;width:100%}}.archives,.related-pages{margin:0;padding:0;list-style:none}.archives li,.related-pages li{line-height:2rem}.archives li:last-child,.related-pages li:last-child{border-bottom:0}.archives a,.related-pages a{color:#9a9898}.archives a:hover,.related-pages a:hover{color:#87b672}.related-pages li a{display:block}.related-pages .score{font-size:85%;display:block;float:right;color:#999}.syndicate a{margin-bottom:1rem}div#breadcrumbs{padding-left:0}@media only all and (max-width:47.938em){div#breadcrumbs{display:none}}#sidebar{padding-left:3rem}@media only all and (max-width:47.938em){#sidebar{padding-left:0}}#sidebar .sidebar-content{margin-bottom:3rem}#sidebar .sidebar-content .archive-list .callout .pricing-container .pricing-item .foot button,#sidebar .sidebar-content .archive-list label,#sidebar .sidebar-content .callout .pricing-container .pricing-item .foot .archive-list button,#sidebar .sidebar-content .callout .pricing-container .pricing-item .foot .button,#sidebar .sidebar-content .callout .pricing-container .pricing-item .foot .contact button,#sidebar .sidebar-content .callout .pricing-container .pricing-item .name,#sidebar .sidebar-content .contact .callout .pricing-container .pricing-item .foot button,#sidebar .sidebar-content .contact label,#sidebar .sidebar-content .modular .bottom table th,#sidebar .sidebar-content h4,.archive-list #sidebar .sidebar-content label,.archive-list .callout .pricing-container .pricing-item .foot #sidebar .sidebar-content button,.callout .pricing-container .pricing-item #sidebar .sidebar-content .name,.callout .pricing-container .pricing-item .foot #sidebar .sidebar-content .button,.callout .pricing-container .pricing-item .foot .archive-list #sidebar .sidebar-content button,.callout .pricing-container .pricing-item .foot .contact #sidebar .sidebar-content button,.contact #sidebar .sidebar-content label,.contact .callout .pricing-container .pricing-item .foot #sidebar .sidebar-content button,.modular .bottom table #sidebar .sidebar-content th{margin-bottom:1rem;text-align:left}#sidebar .sidebar-content p,#sidebar .sidebar-content ul{margin-top:1rem}ul.pagination{margin:0 0 3rem;text-align:center}.prev-next{margin-top:5rem;text-align:center}.archive-list .callout .pricing-container .pricing-item .foot .button,.archive-list .callout .pricing-container .pricing-item .foot button,.archive-list .callout .pricing-container .pricing-item .name,.archive-list .modular .bottom table th,.archive-list h4,.archive-list label,.callout .pricing-container .pricing-item .archive-list .name,.callout .pricing-container .pricing-item .foot .archive-list .button,.callout .pricing-container .pricing-item .foot .archive-list button,.modular .bottom table .archive-list th{text-align:left}.archive-list input{line-height:2rem;width:50%}@media only all and (max-width:47.938em){.archive-list input{min-width:80%}}@media only all and (min-width:48em) and (max-width:59.938em){.archive-list input{min-width:70%}}.archive-list textarea{min-width:80%;min-height:25rem}@media only all and (max-width:47.938em){.archive-list textarea{min-width:100%}}@media only all and (min-width:48em) and (max-width:59.938em){.archive-list textarea{min-width:90%}}.archive-list input,.archive-list textarea{border:0 none;background:rgba(154,152,152,.2);box-shadow:none}.archive-list label{font-size:1rem}.archive-list button{font-family:novecento_sans_widedemibold,Helvetica,Tahoma,Geneva,Arial,sans-serif;text-transform:uppercase}#error{display:-ms-flexbox;display:flex;height:100%;padding-bottom:12rem;text-align:center;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}#error h1{font-size:5rem}#error p{margin:1rem 0}.error #body{padding-top:16rem}.simplesearch h1{margin-bottom:0}.simplesearch .center{text-align:center}.simplesearch input{font-size:2rem;display:inline-block;max-width:30rem}.simplesearch .search-image{margin-top:1rem}.simplesearch .search-image img{border-radius:4px}@media only all and (max-width:47.938em){.simplesearch .search-image img{display:none}}@media only all and (max-width:47.938em){.simplesearch .search-item{margin-left:0}}.simplesearch .search-details{font-size:1rem;font-weight:700;float:right;margin-top:-2.5rem;color:#cdcccc}@media only all and (max-width:47.938em){.simplesearch .search-details{float:none;margin-top:-.2rem;margin-bottom:1rem}}.simplesearch hr{border-bottom:1px solid #eee}.grav-lightslider .lSSlideOuter .lSPager.lSpg>li a{z-index:1}#body>script:first-child+.grav-lightslider{margin-top:-3rem}.modular.header-image #header{background-color:rgba(255,255,255,0);box-shadow:none}.modular.header-image #header #logo h3{color:#fff}.modular.header-image #header #navbar a{color:#fff}.modular .slideme_container{overflow:hidden;height:34.7rem;margin-top:-15rem;padding-top:15rem}.modular .slideme_container:after{display:table;clear:both;content:''}.modular .showcase{position:relative;z-index:1;padding-bottom:10rem;text-align:center;color:#fff;background-color:#666;background-position:center;background-size:cover}.modular .showcase h1{font-size:2.2rem;margin-top:0;padding-right:14rem;padding-left:14rem;text-transform:uppercase;text-shadow:1px 1px 3px #656161}@media only all and (min-width:48em) and (max-width:59.938em){.modular .showcase h1{font-size:1.5rem}}@media only all and (max-width:47.938em){.modular .showcase h1{font-size:1.3rem;line-height:1.2;margin-right:4rem;margin-left:4rem;padding-right:0;padding-left:0}}.modular .showcase h1 label,.modular .showcase h1 strong,.modular .showcase h1 th{color:#87b672}.modular .showcase h2{padding-right:14rem;padding-left:14rem;text-transform:none;text-shadow:1px 1px 3px #656161}@media only all and (max-width:47.938em){.modular .showcase h2{margin-right:4rem;margin-left:4rem;padding-right:0;padding-left:0}}.archive-list .modular .showcase button,.contact .modular .showcase button,.modular .showcase .archive-list button,.modular .showcase .button,.modular .showcase .contact button{font-family:novecento_sans_widedemibold,Helvetica,Tahoma,Geneva,Arial,sans-serif;font-size:1rem;padding:.3rem 1rem;color:#fff;border:2px solid #fff;border-radius:0;background:rgba(255,255,255,0);box-shadow:none}.archive-list .modular .showcase button:hover,.contact .modular .showcase button:hover,.modular .showcase .archive-list button:hover,.modular .showcase .button:hover,.modular .showcase .contact button:hover{background:rgba(255,255,255,.2)}.modular .slideme_container .arrow{font-size:2.5rem;line-height:3.8rem;position:absolute;z-index:50;top:50%;display:block;padding-top:0;padding-right:.8rem;padding-bottom:0;padding-left:.8rem;cursor:pointer;text-align:center;opacity:.5;color:#000;border-radius:100%;background:#fff}@media only all and (max-width:47.938em){.modular .slideme_container .arrow{font-size:1.5rem;line-height:2.8rem}}.modular .slideme_container .arrow:hover{opacity:1}.modular .slideme_container .arrow.prev{left:4rem}@media only all and (max-width:47.938em){.modular .slideme_container .arrow.prev{left:1rem}}.modular .slideme_container .arrow.next{right:4rem}@media only all and (max-width:47.938em){.modular .slideme_container .arrow.next{right:1rem}}.modular .slideme_container .arrow:disabled{opacity:.1}@media only all and (max-width:47.938em){.modular .slideme_container .arrow{width:2.7rem;height:2.7rem}}.modular .slideme_container .arrow.next:before{font-family:FontAwesome;margin-left:.4rem;content:'\f054'}.modular .slideme_container .arrow.prev:before{font-family:FontAwesome;margin-right:.5rem;content:'\f053'}.modular .slideme_container .pagination{position:absolute;z-index:10;right:0;bottom:5%;left:0;text-align:center;vertical-align:middle}.modular .slideme_container .pagination .numbers li{display:inline-block;width:.5rem;height:.5rem;margin:0 .2rem;cursor:pointer;transition-duration:.2s;vertical-align:middle;border-radius:100%;background:#fff}.modular .slideme_container .pagination .numbers li.current{width:1rem;height:1rem}.modular .features{padding:4rem 0;padding-bottom:1rem;text-align:center}.modular .features:after{display:table;clear:both;content:''}.modular .features h2{line-height:100%;margin:0;color:#656161}.modular .features hr{margin-top:4rem}.modular .features p{margin:1rem 0}@media only all and (max-width:47.938em){.modular .features p{font-size:1rem}}.archive-list .modular .features button,.contact .modular .features button,.modular .features .archive-list button,.modular .features .button,.modular .features .contact button{font-family:novecento_sans_widedemibold,Helvetica,Tahoma,Geneva,Arial,sans-serif;font-size:1rem;color:#fff;border-radius:0;background-color:#87b672;box-shadow:none}.modular .features .feature-items{margin-top:2rem}@supports not (flex-wrap:wrap){.modular .features .feature-items{overflow:hidden}}.modular .features .feature{display:block;float:left;width:25%;margin-top:2rem;margin-bottom:1rem;vertical-align:top}@media only all and (min-width:30.063em) and (max-width:47.938em){.modular .features .feature{width:50%;margin-top:1rem}}@media only all and (max-width:30em){.modular .features .feature{width:100%;margin-top:1rem}}.modular .features .feature i.fa{font-size:2rem}.archive-list .callout .pricing-container .pricing-item .foot .modular .features .feature button,.archive-list .modular .features .feature label,.callout .pricing-container .pricing-item .foot .archive-list .modular .features .feature button,.callout .pricing-container .pricing-item .foot .contact .modular .features .feature button,.callout .pricing-container .pricing-item .foot .modular .features .feature .button,.callout .pricing-container .pricing-item .modular .features .feature .name,.contact .callout .pricing-container .pricing-item .foot .modular .features .feature button,.contact .modular .features .feature label,.modular .bottom table .features .feature th,.modular .features .feature .archive-list .callout .pricing-container .pricing-item .foot button,.modular .features .feature .archive-list label,.modular .features .feature .bottom table th,.modular .features .feature .callout .pricing-container .pricing-item .foot .archive-list button,.modular .features .feature .callout .pricing-container .pricing-item .foot .button,.modular .features .feature .callout .pricing-container .pricing-item .foot .contact button,.modular .features .feature .callout .pricing-container .pricing-item .name,.modular .features .feature .contact .callout .pricing-container .pricing-item .foot button,.modular .features .feature .contact label,.modular .features .feature h4{font-size:1.1rem;margin:0}.modular .features .feature p{font-size:1rem;display:inline-block;margin:.2rem 0 1rem}.modular .features.big{text-align:center}.modular .features.big .feature{width:33.33%}@media only all and (max-width:30em){.modular .features.big .feature{width:100%;margin-top:1rem}}.modular .features.big i.fa{font-size:4.5rem;margin-bottom:1.5rem}.modular .features.big .feature-content{padding-right:2rem;text-align:justify}.modular .features.big .feature-content.icon-offset{margin-left:1rem}.archive-list .callout .pricing-container .pricing-item .foot .modular .features.big .feature-content button,.archive-list .modular .features.big .feature-content label,.callout .pricing-container .pricing-item .foot .archive-list .modular .features.big .feature-content button,.callout .pricing-container .pricing-item .foot .contact .modular .features.big .feature-content button,.callout .pricing-container .pricing-item .foot .modular .features.big .feature-content .button,.callout .pricing-container .pricing-item .modular .features.big .feature-content .name,.contact .callout .pricing-container .pricing-item .foot .modular .features.big .feature-content button,.contact .modular .features.big .feature-content label,.modular .bottom table .features.big .feature-content th,.modular .features.big .feature-content .archive-list .callout .pricing-container .pricing-item .foot button,.modular .features.big .feature-content .archive-list label,.modular .features.big .feature-content .bottom table th,.modular .features.big .feature-content .callout .pricing-container .pricing-item .foot .archive-list button,.modular .features.big .feature-content .callout .pricing-container .pricing-item .foot .button,.modular .features.big .feature-content .callout .pricing-container .pricing-item .foot .contact button,.modular .features.big .feature-content .callout .pricing-container .pricing-item .name,.modular .features.big .feature-content .contact .callout .pricing-container .pricing-item .foot button,.modular .features.big .feature-content .contact label,.modular .features.big .feature-content h4{font-size:1.2rem}.modular .features.big .feature-content p{padding:0}.modular .bottom{padding-bottom:4rem;text-align:center}.modular .bottom:after{display:table;clear:both;content:''}.modular .bottom h2{line-height:100%;margin:0;padding-top:3rem;color:#656161}.modular .bottom p{margin:1rem 0}@media only all and (max-width:47.938em){.modular .bottom p{font-size:1rem}}.archive-list .modular .bottom button,.contact .modular .bottom button,.modular .bottom .archive-list button,.modular .bottom .button,.modular .bottom .contact button{font-family:novecento_sans_widedemibold,Helvetica,Tahoma,Geneva,Arial,sans-serif;font-size:1rem;color:#fff;border:0 none;border-radius:0;background-color:#87b672;box-shadow:none}.archive-list .modular .bottom button:hover,.contact .modular .bottom button:hover,.modular .bottom .archive-list button:hover,.modular .bottom .button:hover,.modular .bottom .contact button:hover{background-color:#558042}.modular .bottom.borderbottom{padding-bottom:0}.modular .bottom.borderbottom hr{padding-top:3rem}.modular .bottom table{border:0 none}.modular .bottom table th{text-align:left;background:0 0}@media only all and (max-width:47.938em){.modular .bottom table th{display:none}}.modular .bottom table td{text-align:left;vertical-align:top;border:0 none}@media only all and (max-width:47.938em){.modular .bottom table td{display:block}}.modular .bottom .services{padding-top:2rem}.modular .bottom .services .service{display:block;float:left;width:50%;text-align:left}@media only all and (max-width:47.938em){.modular .bottom .services .service{width:100%}}.modular .bottom .services .service .fa{font-size:6rem;float:left;width:7rem;height:6rem;margin-top:.5rem}.modular .bottom .services .service p{margin-top:.5rem;margin-right:1rem;margin-left:7rem}.archive-list .callout .pricing-container .pricing-item .foot .modular .bottom .services .service button,.archive-list .modular .bottom .services .service label,.callout .pricing-container .pricing-item .foot .archive-list .modular .bottom .services .service button,.callout .pricing-container .pricing-item .foot .contact .modular .bottom .services .service button,.callout .pricing-container .pricing-item .foot .modular .bottom .services .service .button,.callout .pricing-container .pricing-item .modular .bottom .services .service .name,.contact .callout .pricing-container .pricing-item .foot .modular .bottom .services .service button,.contact .modular .bottom .services .service label,.modular .bottom .services .service .archive-list .callout .pricing-container .pricing-item .foot button,.modular .bottom .services .service .archive-list label,.modular .bottom .services .service .callout .pricing-container .pricing-item .foot .archive-list button,.modular .bottom .services .service .callout .pricing-container .pricing-item .foot .button,.modular .bottom .services .service .callout .pricing-container .pricing-item .foot .contact button,.modular .bottom .services .service .callout .pricing-container .pricing-item .name,.modular .bottom .services .service .contact .callout .pricing-container .pricing-item .foot button,.modular .bottom .services .service .contact label,.modular .bottom .services .service h4,.modular .bottom .services .service table th,.modular .bottom table .services .service th{margin-bottom:0;text-align:left}.about hr{margin:3rem 0}.callout .pricing-container .pricing-item .contact .name,.callout .pricing-container .pricing-item .foot .contact .button,.callout .pricing-container .pricing-item .foot .contact button,.contact .callout .pricing-container .pricing-item .foot .button,.contact .callout .pricing-container .pricing-item .foot button,.contact .callout .pricing-container .pricing-item .name,.contact .modular .bottom table th,.contact h4,.contact label,.modular .bottom table .contact th{text-align:left}.contact input{line-height:2rem;width:50%}@media only all and (max-width:47.938em){.contact input{min-width:80%}}@media only all and (min-width:48em) and (max-width:59.938em){.contact input{min-width:70%}}.contact textarea{min-width:80%;min-height:25rem}@media only all and (max-width:47.938em){.contact textarea{min-width:100%}}@media only all and (min-width:48em) and (max-width:59.938em){.contact textarea{min-width:90%}}.contact input,.contact textarea{border:0 none;background:rgba(154,152,152,.2);box-shadow:none}.contact input:focus,.contact textarea:focus{border-radius:0!important;background:rgba(154,152,152,.11);box-shadow:none}.contact label{font-size:1rem}.contact button{font-family:novecento_sans_widedemibold,Helvetica,Tahoma,Geneva,Arial,sans-serif;display:block;text-transform:uppercase}.contact #simple_form-submit,.contact #simple_form-success{display:inline-block}.contact #simple_form-submit label,.contact #simple_form-submit strong,.contact #simple_form-submit th,.contact #simple_form-success label,.contact #simple_form-success strong,.contact #simple_form-success th{margin-left:1rem}.contact #simple_form-submit .close,.contact #simple_form-success .close{display:none}.callout{position:relative;clear:both;overflow:hidden;padding:2rem .938rem;padding-top:2rem;padding-bottom:0;text-align:center;background:#eee}@media only all and (max-width:59.938em){.callout{text-align:center}}.callout .callout-line{position:absolute;z-index:0;bottom:0;left:0;width:100%;height:7rem;background:#fff}.callout .pricing-container{position:relative;z-index:10;min-height:31rem;margin-top:2rem;text-align:center}.callout .pricing-container:after{display:table;clear:both;content:''}.callout .pricing-container .pricing-item{position:relative;display:inline-grid;width:40%;margin-right:3rem;margin-bottom:2rem;margin-left:0;-webkit-transform:translateZ(0)}@media only all and (max-width:47.938em){.callout .pricing-container .pricing-item{width:100%}}@media only all and (min-width:48em) and (max-width:59.938em){.callout .pricing-container .pricing-item{width:100%}}@media only all and (min-width:60em) and (max-width:74.938em){.callout .pricing-container .pricing-item{width:22.5%}}.callout .pricing-container .pricing-item:hover{transform:scale(1,1.08)}.callout .pricing-container .pricing-item div{background:#f7f7f7}.callout .pricing-container .pricing-item .name{padding:.5rem 0;color:#fff;background:#87b672}.callout .pricing-container .pricing-item .info{padding-top:1rem;padding-bottom:1rem;border-bottom:#eee 1px solid}.callout .pricing-container .pricing-item .price{font-family:novecento_sans_widedemibold,Helvetica,Tahoma,Geneva,Arial,sans-serif;font-size:2.5rem;font-weight:700;font-weight:400;line-height:5rem;color:#656161;border-bottom:#eee 1px solid}.callout .pricing-container .pricing-item .foot{padding:1rem 0;text-align:center;color:#fff;background:#87b672}.archive-list .callout .pricing-container .pricing-item .foot button,.callout .pricing-container .pricing-item .foot .archive-list button,.callout .pricing-container .pricing-item .foot .button,.callout .pricing-container .pricing-item .foot .contact button,.contact .callout .pricing-container .pricing-item .foot button{font-size:1rem;line-height:2.5rem;display:inline-block;width:9rem;margin:0;padding:0;color:#fff;background:rgba(255,255,255,.25)}.archive-list .callout .pricing-container .pricing-item .foot button:hover,.callout .pricing-container .pricing-item .foot .archive-list button:hover,.callout .pricing-container .pricing-item .foot .button:hover,.callout .pricing-container .pricing-item .foot .contact button:hover,.contact .callout .pricing-container .pricing-item .foot button:hover{background:rgba(255,255,255,.15)}.callout .pricing-container .pricing-item sup{font-size:2rem}.team{padding:4rem 0;text-align:center;background:#eee}.team:after{display:table;clear:both;content:''}.team h2{line-height:100%;margin:0;color:#656161}.team p{margin:1rem 0}.team .members{width:100%;padding-top:2rem;text-align:left}.team .members .member{display:inline-block;float:left;width:29%;margin:0 1rem;margin-bottom:2rem}@media only all and (max-width:47.938em){.team .members .member{display:block;width:100%;margin:0;margin-bottom:2rem;text-align:center}}@media only all and (min-width:48em) and (max-width:59.938em){.team .members .member{display:block;width:44%;margin-bottom:2rem}}.archive-list .callout .pricing-container .pricing-item .foot .team .members .member button,.archive-list .team .members .member label,.callout .pricing-container .pricing-item .foot .archive-list .team .members .member button,.callout .pricing-container .pricing-item .foot .contact .team .members .member button,.callout .pricing-container .pricing-item .foot .team .members .member .button,.callout .pricing-container .pricing-item .team .members .member .name,.contact .callout .pricing-container .pricing-item .foot .team .members .member button,.contact .team .members .member label,.modular .bottom table .team .members .member th,.team .members .member .archive-list .callout .pricing-container .pricing-item .foot button,.team .members .member .archive-list label,.team .members .member .callout .pricing-container .pricing-item .foot .archive-list button,.team .members .member .callout .pricing-container .pricing-item .foot .button,.team .members .member .callout .pricing-container .pricing-item .foot .contact button,.team .members .member .callout .pricing-container .pricing-item .name,.team .members .member .contact .callout .pricing-container .pricing-item .foot button,.team .members .member .contact label,.team .members .member .modular .bottom table th,.team .members .member h4{margin-bottom:0;text-align:left}@media only all and (max-width:47.938em){.archive-list .callout .pricing-container .pricing-item .foot .team .members .member button,.archive-list .team .members .member label,.callout .pricing-container .pricing-item .foot .archive-list .team .members .member button,.callout .pricing-container .pricing-item .foot .contact .team .members .member button,.callout .pricing-container .pricing-item .foot .team .members .member .button,.callout .pricing-container .pricing-item .team .members .member .name,.contact .callout .pricing-container .pricing-item .foot .team .members .member button,.contact .team .members .member label,.modular .bottom table .team .members .member th,.team .members .member .archive-list .callout .pricing-container .pricing-item .foot button,.team .members .member .archive-list label,.team .members .member .callout .pricing-container .pricing-item .foot .archive-list button,.team .members .member .callout .pricing-container .pricing-item .foot .button,.team .members .member .callout .pricing-container .pricing-item .foot .contact button,.team .members .member .callout .pricing-container .pricing-item .name,.team .members .member .contact .callout .pricing-container .pricing-item .foot button,.team .members .member .contact label,.team .members .member .modular .bottom table th,.team .members .member h4{text-align:center}}.team .members .member hr{margin:1rem 0}.team .members .social-icons{line-height:2rem;margin:0;list-style:none}@media only all and (max-width:47.938em){.team .members .social-icons{display:-ms-inline-flexbox;display:inline-flex;text-align:center}}.team .members .social-icons li{float:left;width:2.1rem;height:2.1rem;margin-right:.8rem;text-align:center;border-radius:100%;background:#fff}.team .members .social-icons li a{display:block;margin-top:.1rem;color:#000}.team .members .social-icons li:hover{background:rgba(255,255,255,.5)}.team .members .social-icons li:hover i{color:#87b672}.portfolio{padding:2rem .938rem;padding-top:2rem;padding-bottom:1rem;text-align:center}@media only all and (max-width:59.938em){.portfolio{text-align:center}}.portfolio h2{color:#656161}.portfolio .notebooks{margin-top:4rem}.portfolio .notebooks .notebook-row{margin-right:-14rem;margin-left:-14rem;padding-right:14rem;padding-bottom:2rem;padding-left:14rem;background:#eee;box-shadow:inset 0 -90px 0 -20px #f7f7f7}@media only all and (max-width:47.938em){.portfolio .notebooks .notebook-row{margin-right:-10rem;margin-left:-10rem}}.portfolio .notebooks .notebook-row .notebook{min-width:24%}@media only all and (min-width:48em) and (max-width:59.938em){.portfolio .notebooks .notebook-row .notebook{width:100%}}@media only all and (min-width:60em) and (max-width:74.938em){.portfolio .notebooks .notebook-row .notebook{float:none;min-width:24%}}@media only all and (max-width:30em){.portfolio .notebooks .notebook-row .notebook{width:170%;margin-left:-4.7rem}}.archive-list .callout .pricing-container .pricing-item .foot .portfolio .notebooks .notebook-row .notebook button,.archive-list .portfolio .notebooks .notebook-row .notebook label,.callout .pricing-container .pricing-item .foot .archive-list .portfolio .notebooks .notebook-row .notebook button,.callout .pricing-container .pricing-item .foot .contact .portfolio .notebooks .notebook-row .notebook button,.callout .pricing-container .pricing-item .foot .portfolio .notebooks .notebook-row .notebook .button,.callout .pricing-container .pricing-item .portfolio .notebooks .notebook-row .notebook .name,.contact .callout .pricing-container .pricing-item .foot .portfolio .notebooks .notebook-row .notebook button,.contact .portfolio .notebooks .notebook-row .notebook label,.modular .bottom table .portfolio .notebooks .notebook-row .notebook th,.portfolio .notebooks .notebook-row .notebook .archive-list .callout .pricing-container .pricing-item .foot button,.portfolio .notebooks .notebook-row .notebook .archive-list label,.portfolio .notebooks .notebook-row .notebook .callout .pricing-container .pricing-item .foot .archive-list button,.portfolio .notebooks .notebook-row .notebook .callout .pricing-container .pricing-item .foot .button,.portfolio .notebooks .notebook-row .notebook .callout .pricing-container .pricing-item .foot .contact button,.portfolio .notebooks .notebook-row .notebook .callout .pricing-container .pricing-item .name,.portfolio .notebooks .notebook-row .notebook .contact .callout .pricing-container .pricing-item .foot button,.portfolio .notebooks .notebook-row .notebook .contact label,.portfolio .notebooks .notebook-row .notebook .modular .bottom table th,.portfolio .notebooks .notebook-row .notebook h4{margin-bottom:0;text-align:left}.portfolio .notebooks .notebook-row .notebook p{margin-top:0}.portfolio .notebooks .notebook-row .notebook .desc{width:20rem;margin-left:2rem}@media only all and (min-width:60em) and (max-width:74.938em){.portfolio .notebooks .notebook-row .notebook .desc{width:100%}}@media only all and (max-width:47.938em){.portfolio .notebooks .notebook-row .notebook .desc{width:100%}}@media only all and (max-width:30em){.portfolio .notebooks .notebook-row .notebook .desc{width:90%}}@media only all and (min-width:48em) and (max-width:59.938em){.portfolio .notebooks .notebook-row .notebook .desc{width:100%}}.logo{border-bottom:1px solid #eaeaea}.logo h3{font-family:Pacifico,monospace;font-size:2.5rem;line-height:2rem;float:left;margin:0}.logo h3 a{color:#9a9898}.archive-list .callout .pricing-container .pricing-item .foot .logo button,.archive-list .logo label,.callout .pricing-container .pricing-item .foot .archive-list .logo button,.callout .pricing-container .pricing-item .foot .contact .logo button,.callout .pricing-container .pricing-item .foot .logo .button,.callout .pricing-container .pricing-item .logo .name,.contact .callout .pricing-container .pricing-item .foot .logo button,.contact .logo label,.logo .archive-list .callout .pricing-container .pricing-item .foot button,.logo .archive-list label,.logo .callout .pricing-container .pricing-item .foot .archive-list button,.logo .callout .pricing-container .pricing-item .foot .button,.logo .callout .pricing-container .pricing-item .foot .contact button,.logo .callout .pricing-container .pricing-item .name,.logo .contact .callout .pricing-container .pricing-item .foot button,.logo .contact label,.logo .modular .bottom table th,.logo h4,.modular .bottom table .logo th{text-align:left}.logo ul{margin:0;padding:0;list-style:none}.logo ul.social-icons{line-height:2rem;float:right;margin:0}.logo ul.social-icons li{float:left;width:2.1rem;height:2.1rem;margin-right:.8rem;text-align:center;border-radius:100%;background:#fff}.logo ul.social-icons li a{display:block;margin-top:.1rem;color:#000}.logo ul.social-icons li:hover{background:rgba(255,255,255,.5)}.notebook{position:relative;z-index:10;display:inline-block;min-width:33%;text-align:left}@media only all and (min-width:60em) and (max-width:74.938em){.notebook{float:none;width:100%}}@media only all and (min-width:48em) and (max-width:59.938em){.notebook{float:none;width:100%}}@media only all and (max-width:47.938em){.notebook{float:none;width:100%}}@media only all and (max-width:30em){.notebook{float:none;width:150%;margin-left:-5.1rem}}.notebook .screen:before{position:absolute;width:.25rem;height:.25rem;margin:.3125rem 0 0 8.625rem;content:'';border-radius:50%;background:#e5ebed}.notebook .screen{width:18.28rem;height:11.72rem;margin:0 auto;border-radius:.5rem .5rem 0 0;background:#464c51}.notebook .screen .screen-content{position:absolute;z-index:1;width:16.73rem;height:10.1rem;margin-top:.8rem;margin-left:.8rem;background-repeat:no-repeat;background-size:cover}.notebook .screen .screen-content-hover{font-size:2rem;position:absolute;z-index:2;width:16.73rem;height:10.1rem;margin-top:.8rem;margin-left:.8rem;opacity:0;color:#464c51;background-color:#87b672}.notebook .screen .screen-content-hover .fa-arrow-up-right-from-square{margin-top:2.5rem;margin-left:4.7rem}.notebook .screen .screen-content-hover:hover{opacity:.8}.notebook .screen:after{position:absolute;width:16.63rem;height:10rem;margin:.875rem 0 0 .8125rem;content:'';transition:background 1s ease-in-out;border-radius:.125rem;background:#161b21}.notebook .keyboard{width:21.88rem;height:1.25rem;margin:0 auto;border-radius:0 0 .3125rem .3125rem;background:#dfdcdc}.notebook .keyboard:after{position:absolute;width:3.125rem;height:.375rem;margin:0 0 0 9.375rem;content:'';border-radius:0 0 .5rem .5rem;background:#757979}.keyboard:before{position:absolute;z-index:-1;width:23.13rem;height:.5rem;margin:.4375rem 0 0 -.625rem;content:'';border-radius:100%} \ No newline at end of file diff --git a/css/font-awesome.min.css b/css/font-awesome.min.css index d0603cb..9c2adee 100644 --- a/css/font-awesome.min.css +++ b/css/font-awesome.min.css @@ -1,4 +1,7831 @@ /*! - * Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.5.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.5.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.5.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.5.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.5.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.5.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"} + * Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. + */ +.fa { + font-family: var(--fa-style-family, "Font Awesome 6 Free"); + font-weight: var(--fa-style, 900); } + +.fa, +.fas, +.fa-solid, +.far, +.fa-regular, +.fal, +.fa-light, +.fat, +.fa-thin, +.fad, +.fa-duotone, +.fab, +.fa-brands { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: var(--fa-display, inline-block); + font-style: normal; + font-variant: normal; + line-height: 1; + text-rendering: auto; } + +.fa-1x { + font-size: 1em; } + +.fa-2x { + font-size: 2em; } + +.fa-3x { + font-size: 3em; } + +.fa-4x { + font-size: 4em; } + +.fa-5x { + font-size: 5em; } + +.fa-6x { + font-size: 6em; } + +.fa-7x { + font-size: 7em; } + +.fa-8x { + font-size: 8em; } + +.fa-9x { + font-size: 9em; } + +.fa-10x { + font-size: 10em; } + +.fa-2xs { + font-size: 0.625em; + line-height: 0.1em; + vertical-align: 0.225em; } + +.fa-xs { + font-size: 0.75em; + line-height: 0.08333em; + vertical-align: 0.125em; } + +.fa-sm { + font-size: 0.875em; + line-height: 0.07143em; + vertical-align: 0.05357em; } + +.fa-lg { + font-size: 1.25em; + line-height: 0.05em; + vertical-align: -0.075em; } + +.fa-xl { + font-size: 1.5em; + line-height: 0.04167em; + vertical-align: -0.125em; } + +.fa-2xl { + font-size: 2em; + line-height: 0.03125em; + vertical-align: -0.1875em; } + +.fa-fw { + text-align: center; + width: 1.25em; } + +.fa-ul { + list-style-type: none; + margin-left: var(--fa-li-margin, 2.5em); + padding-left: 0; } + .fa-ul > li { + position: relative; } + +.fa-li { + left: calc(var(--fa-li-width, 2em) * -1); + position: absolute; + text-align: center; + width: var(--fa-li-width, 2em); + line-height: inherit; } + +.fa-border { + border-color: var(--fa-border-color, #eee); + border-radius: var(--fa-border-radius, 0.1em); + border-style: var(--fa-border-style, solid); + border-width: var(--fa-border-width, 0.08em); + padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); } + +.fa-pull-left { + float: left; + margin-right: var(--fa-pull-margin, 0.3em); } + +.fa-pull-right { + float: right; + margin-left: var(--fa-pull-margin, 0.3em); } + +.fa-beat { + -webkit-animation-name: fa-beat; + animation-name: fa-beat; + -webkit-animation-delay: var(--fa-animation-delay, 0); + animation-delay: var(--fa-animation-delay, 0); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); + animation-timing-function: var(--fa-animation-timing, ease-in-out); } + +.fa-bounce { + -webkit-animation-name: fa-bounce; + animation-name: fa-bounce; + -webkit-animation-delay: var(--fa-animation-delay, 0); + animation-delay: var(--fa-animation-delay, 0); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); } + +.fa-fade { + -webkit-animation-name: fa-fade; + animation-name: fa-fade; + -webkit-animation-delay: var(--fa-animation-delay, 0); + animation-delay: var(--fa-animation-delay, 0); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } + +.fa-beat-fade { + -webkit-animation-name: fa-beat-fade; + animation-name: fa-beat-fade; + -webkit-animation-delay: var(--fa-animation-delay, 0); + animation-delay: var(--fa-animation-delay, 0); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } + +.fa-flip { + -webkit-animation-name: fa-flip; + animation-name: fa-flip; + -webkit-animation-delay: var(--fa-animation-delay, 0); + animation-delay: var(--fa-animation-delay, 0); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); + animation-timing-function: var(--fa-animation-timing, ease-in-out); } + +.fa-shake { + -webkit-animation-name: fa-shake; + animation-name: fa-shake; + -webkit-animation-delay: var(--fa-animation-delay, 0); + animation-delay: var(--fa-animation-delay, 0); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, linear); + animation-timing-function: var(--fa-animation-timing, linear); } + +.fa-spin { + -webkit-animation-name: fa-spin; + animation-name: fa-spin; + -webkit-animation-delay: var(--fa-animation-delay, 0); + animation-delay: var(--fa-animation-delay, 0); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 2s); + animation-duration: var(--fa-animation-duration, 2s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, linear); + animation-timing-function: var(--fa-animation-timing, linear); } + +.fa-spin-reverse { + --fa-animation-direction: reverse; } + +.fa-pulse, +.fa-spin-pulse { + -webkit-animation-name: fa-spin; + animation-name: fa-spin; + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, steps(8)); + animation-timing-function: var(--fa-animation-timing, steps(8)); } + +@media (prefers-reduced-motion: reduce) { + .fa-beat, + .fa-bounce, + .fa-fade, + .fa-beat-fade, + .fa-flip, + .fa-pulse, + .fa-shake, + .fa-spin, + .fa-spin-pulse { + -webkit-animation-delay: -1ms; + animation-delay: -1ms; + -webkit-animation-duration: 1ms; + animation-duration: 1ms; + -webkit-animation-iteration-count: 1; + animation-iteration-count: 1; + transition-delay: 0s; + transition-duration: 0s; } } + +@-webkit-keyframes fa-beat { + 0%, 90% { + -webkit-transform: scale(1); + transform: scale(1); } + 45% { + -webkit-transform: scale(var(--fa-beat-scale, 1.25)); + transform: scale(var(--fa-beat-scale, 1.25)); } } + +@keyframes fa-beat { + 0%, 90% { + -webkit-transform: scale(1); + transform: scale(1); } + 45% { + -webkit-transform: scale(var(--fa-beat-scale, 1.25)); + transform: scale(var(--fa-beat-scale, 1.25)); } } + +@-webkit-keyframes fa-bounce { + 0% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 10% { + -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } + 30% { + -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } + 50% { + -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } + 57% { + -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } + 64% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 100% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } } + +@keyframes fa-bounce { + 0% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 10% { + -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } + 30% { + -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } + 50% { + -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } + 57% { + -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } + 64% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 100% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } } + +@-webkit-keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); } } + +@keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); } } + +@-webkit-keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + -webkit-transform: scale(1); + transform: scale(1); } + 50% { + opacity: 1; + -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); + transform: scale(var(--fa-beat-fade-scale, 1.125)); } } + +@keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + -webkit-transform: scale(1); + transform: scale(1); } + 50% { + opacity: 1; + -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); + transform: scale(var(--fa-beat-fade-scale, 1.125)); } } + +@-webkit-keyframes fa-flip { + 50% { + -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } + +@keyframes fa-flip { + 50% { + -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } + +@-webkit-keyframes fa-shake { + 0% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg); } + 4% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg); } + 8%, 24% { + -webkit-transform: rotate(-18deg); + transform: rotate(-18deg); } + 12%, 28% { + -webkit-transform: rotate(18deg); + transform: rotate(18deg); } + 16% { + -webkit-transform: rotate(-22deg); + transform: rotate(-22deg); } + 20% { + -webkit-transform: rotate(22deg); + transform: rotate(22deg); } + 32% { + -webkit-transform: rotate(-12deg); + transform: rotate(-12deg); } + 36% { + -webkit-transform: rotate(12deg); + transform: rotate(12deg); } + 40%, 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } + +@keyframes fa-shake { + 0% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg); } + 4% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg); } + 8%, 24% { + -webkit-transform: rotate(-18deg); + transform: rotate(-18deg); } + 12%, 28% { + -webkit-transform: rotate(18deg); + transform: rotate(18deg); } + 16% { + -webkit-transform: rotate(-22deg); + transform: rotate(-22deg); } + 20% { + -webkit-transform: rotate(22deg); + transform: rotate(22deg); } + 32% { + -webkit-transform: rotate(-12deg); + transform: rotate(-12deg); } + 36% { + -webkit-transform: rotate(12deg); + transform: rotate(12deg); } + 40%, 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +.fa-rotate-90 { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); } + +.fa-rotate-180 { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); } + +.fa-rotate-270 { + -webkit-transform: rotate(270deg); + transform: rotate(270deg); } + +.fa-flip-horizontal { + -webkit-transform: scale(-1, 1); + transform: scale(-1, 1); } + +.fa-flip-vertical { + -webkit-transform: scale(1, -1); + transform: scale(1, -1); } + +.fa-flip-both, +.fa-flip-horizontal.fa-flip-vertical { + -webkit-transform: scale(-1, -1); + transform: scale(-1, -1); } + +.fa-rotate-by { + -webkit-transform: rotate(var(--fa-rotate-angle, none)); + transform: rotate(var(--fa-rotate-angle, none)); } + +.fa-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2.5em; } + +.fa-stack-1x, +.fa-stack-2x { + left: 0; + position: absolute; + text-align: center; + width: 100%; + z-index: var(--fa-stack-z-index, auto); } + +.fa-stack-1x { + line-height: inherit; } + +.fa-stack-2x { + font-size: 2em; } + +.fa-inverse { + color: var(--fa-inverse, #fff); } + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen +readers do not read off random characters that represent icons */ +.fa-0::before { + content: "\30"; } + +.fa-1::before { + content: "\31"; } + +.fa-2::before { + content: "\32"; } + +.fa-3::before { + content: "\33"; } + +.fa-4::before { + content: "\34"; } + +.fa-5::before { + content: "\35"; } + +.fa-6::before { + content: "\36"; } + +.fa-7::before { + content: "\37"; } + +.fa-8::before { + content: "\38"; } + +.fa-9::before { + content: "\39"; } + +.fa-a::before { + content: "\41"; } + +.fa-address-book::before { + content: "\f2b9"; } + +.fa-contact-book::before { + content: "\f2b9"; } + +.fa-address-card::before { + content: "\f2bb"; } + +.fa-contact-card::before { + content: "\f2bb"; } + +.fa-vcard::before { + content: "\f2bb"; } + +.fa-align-center::before { + content: "\f037"; } + +.fa-align-justify::before { + content: "\f039"; } + +.fa-align-left::before { + content: "\f036"; } + +.fa-align-right::before { + content: "\f038"; } + +.fa-anchor::before { + content: "\f13d"; } + +.fa-anchor-circle-check::before { + content: "\e4aa"; } + +.fa-anchor-circle-exclamation::before { + content: "\e4ab"; } + +.fa-anchor-circle-xmark::before { + content: "\e4ac"; } + +.fa-anchor-lock::before { + content: "\e4ad"; } + +.fa-angle-down::before { + content: "\f107"; } + +.fa-angle-left::before { + content: "\f104"; } + +.fa-angle-right::before { + content: "\f105"; } + +.fa-angle-up::before { + content: "\f106"; } + +.fa-angles-down::before { + content: "\f103"; } + +.fa-angle-double-down::before { + content: "\f103"; } + +.fa-angles-left::before { + content: "\f100"; } + +.fa-angle-double-left::before { + content: "\f100"; } + +.fa-angles-right::before { + content: "\f101"; } + +.fa-angle-double-right::before { + content: "\f101"; } + +.fa-angles-up::before { + content: "\f102"; } + +.fa-angle-double-up::before { + content: "\f102"; } + +.fa-ankh::before { + content: "\f644"; } + +.fa-apple-whole::before { + content: "\f5d1"; } + +.fa-apple-alt::before { + content: "\f5d1"; } + +.fa-archway::before { + content: "\f557"; } + +.fa-arrow-down::before { + content: "\f063"; } + +.fa-arrow-down-1-9::before { + content: "\f162"; } + +.fa-sort-numeric-asc::before { + content: "\f162"; } + +.fa-sort-numeric-down::before { + content: "\f162"; } + +.fa-arrow-down-9-1::before { + content: "\f886"; } + +.fa-sort-numeric-desc::before { + content: "\f886"; } + +.fa-sort-numeric-down-alt::before { + content: "\f886"; } + +.fa-arrow-down-a-z::before { + content: "\f15d"; } + +.fa-sort-alpha-asc::before { + content: "\f15d"; } + +.fa-sort-alpha-down::before { + content: "\f15d"; } + +.fa-arrow-down-long::before { + content: "\f175"; } + +.fa-long-arrow-down::before { + content: "\f175"; } + +.fa-arrow-down-short-wide::before { + content: "\f884"; } + +.fa-sort-amount-desc::before { + content: "\f884"; } + +.fa-sort-amount-down-alt::before { + content: "\f884"; } + +.fa-arrow-down-up-across-line::before { + content: "\e4af"; } + +.fa-arrow-down-up-lock::before { + content: "\e4b0"; } + +.fa-arrow-down-wide-short::before { + content: "\f160"; } + +.fa-sort-amount-asc::before { + content: "\f160"; } + +.fa-sort-amount-down::before { + content: "\f160"; } + +.fa-arrow-down-z-a::before { + content: "\f881"; } + +.fa-sort-alpha-desc::before { + content: "\f881"; } + +.fa-sort-alpha-down-alt::before { + content: "\f881"; } + +.fa-arrow-left::before { + content: "\f060"; } + +.fa-arrow-left-long::before { + content: "\f177"; } + +.fa-long-arrow-left::before { + content: "\f177"; } + +.fa-arrow-pointer::before { + content: "\f245"; } + +.fa-mouse-pointer::before { + content: "\f245"; } + +.fa-arrow-right::before { + content: "\f061"; } + +.fa-arrow-right-arrow-left::before { + content: "\f0ec"; } + +.fa-exchange::before { + content: "\f0ec"; } + +.fa-arrow-right-from-bracket::before { + content: "\f08b"; } + +.fa-sign-out::before { + content: "\f08b"; } + +.fa-arrow-right-long::before { + content: "\f178"; } + +.fa-long-arrow-right::before { + content: "\f178"; } + +.fa-arrow-right-to-bracket::before { + content: "\f090"; } + +.fa-sign-in::before { + content: "\f090"; } + +.fa-arrow-right-to-city::before { + content: "\e4b3"; } + +.fa-arrow-rotate-left::before { + content: "\f0e2"; } + +.fa-arrow-left-rotate::before { + content: "\f0e2"; } + +.fa-arrow-rotate-back::before { + content: "\f0e2"; } + +.fa-arrow-rotate-backward::before { + content: "\f0e2"; } + +.fa-undo::before { + content: "\f0e2"; } + +.fa-arrow-rotate-right::before { + content: "\f01e"; } + +.fa-arrow-right-rotate::before { + content: "\f01e"; } + +.fa-arrow-rotate-forward::before { + content: "\f01e"; } + +.fa-redo::before { + content: "\f01e"; } + +.fa-arrow-trend-down::before { + content: "\e097"; } + +.fa-arrow-trend-up::before { + content: "\e098"; } + +.fa-arrow-turn-down::before { + content: "\f149"; } + +.fa-level-down::before { + content: "\f149"; } + +.fa-arrow-turn-up::before { + content: "\f148"; } + +.fa-level-up::before { + content: "\f148"; } + +.fa-arrow-up::before { + content: "\f062"; } + +.fa-arrow-up-1-9::before { + content: "\f163"; } + +.fa-sort-numeric-up::before { + content: "\f163"; } + +.fa-arrow-up-9-1::before { + content: "\f887"; } + +.fa-sort-numeric-up-alt::before { + content: "\f887"; } + +.fa-arrow-up-a-z::before { + content: "\f15e"; } + +.fa-sort-alpha-up::before { + content: "\f15e"; } + +.fa-arrow-up-from-bracket::before { + content: "\e09a"; } + +.fa-arrow-up-from-ground-water::before { + content: "\e4b5"; } + +.fa-arrow-up-from-water-pump::before { + content: "\e4b6"; } + +.fa-arrow-up-long::before { + content: "\f176"; } + +.fa-long-arrow-up::before { + content: "\f176"; } + +.fa-arrow-up-right-dots::before { + content: "\e4b7"; } + +.fa-arrow-up-right-from-square::before { + content: "\f08e"; } + +.fa-external-link::before { + content: "\f08e"; } + +.fa-arrow-up-short-wide::before { + content: "\f885"; } + +.fa-sort-amount-up-alt::before { + content: "\f885"; } + +.fa-arrow-up-wide-short::before { + content: "\f161"; } + +.fa-sort-amount-up::before { + content: "\f161"; } + +.fa-arrow-up-z-a::before { + content: "\f882"; } + +.fa-sort-alpha-up-alt::before { + content: "\f882"; } + +.fa-arrows-down-to-line::before { + content: "\e4b8"; } + +.fa-arrows-down-to-people::before { + content: "\e4b9"; } + +.fa-arrows-left-right::before { + content: "\f07e"; } + +.fa-arrows-h::before { + content: "\f07e"; } + +.fa-arrows-left-right-to-line::before { + content: "\e4ba"; } + +.fa-arrows-rotate::before { + content: "\f021"; } + +.fa-refresh::before { + content: "\f021"; } + +.fa-sync::before { + content: "\f021"; } + +.fa-arrows-spin::before { + content: "\e4bb"; } + +.fa-arrows-split-up-and-left::before { + content: "\e4bc"; } + +.fa-arrows-to-circle::before { + content: "\e4bd"; } + +.fa-arrows-to-dot::before { + content: "\e4be"; } + +.fa-arrows-to-eye::before { + content: "\e4bf"; } + +.fa-arrows-turn-right::before { + content: "\e4c0"; } + +.fa-arrows-turn-to-dots::before { + content: "\e4c1"; } + +.fa-arrows-up-down::before { + content: "\f07d"; } + +.fa-arrows-v::before { + content: "\f07d"; } + +.fa-arrows-up-down-left-right::before { + content: "\f047"; } + +.fa-arrows::before { + content: "\f047"; } + +.fa-arrows-up-to-line::before { + content: "\e4c2"; } + +.fa-asterisk::before { + content: "\2a"; } + +.fa-at::before { + content: "\40"; } + +.fa-atom::before { + content: "\f5d2"; } + +.fa-audio-description::before { + content: "\f29e"; } + +.fa-austral-sign::before { + content: "\e0a9"; } + +.fa-award::before { + content: "\f559"; } + +.fa-b::before { + content: "\42"; } + +.fa-baby::before { + content: "\f77c"; } + +.fa-baby-carriage::before { + content: "\f77d"; } + +.fa-carriage-baby::before { + content: "\f77d"; } + +.fa-backward::before { + content: "\f04a"; } + +.fa-backward-fast::before { + content: "\f049"; } + +.fa-fast-backward::before { + content: "\f049"; } + +.fa-backward-step::before { + content: "\f048"; } + +.fa-step-backward::before { + content: "\f048"; } + +.fa-bacon::before { + content: "\f7e5"; } + +.fa-bacteria::before { + content: "\e059"; } + +.fa-bacterium::before { + content: "\e05a"; } + +.fa-bag-shopping::before { + content: "\f290"; } + +.fa-shopping-bag::before { + content: "\f290"; } + +.fa-bahai::before { + content: "\f666"; } + +.fa-baht-sign::before { + content: "\e0ac"; } + +.fa-ban::before { + content: "\f05e"; } + +.fa-cancel::before { + content: "\f05e"; } + +.fa-ban-smoking::before { + content: "\f54d"; } + +.fa-smoking-ban::before { + content: "\f54d"; } + +.fa-bandage::before { + content: "\f462"; } + +.fa-band-aid::before { + content: "\f462"; } + +.fa-barcode::before { + content: "\f02a"; } + +.fa-bars::before { + content: "\f0c9"; } + +.fa-navicon::before { + content: "\f0c9"; } + +.fa-bars-progress::before { + content: "\f828"; } + +.fa-tasks-alt::before { + content: "\f828"; } + +.fa-bars-staggered::before { + content: "\f550"; } + +.fa-reorder::before { + content: "\f550"; } + +.fa-stream::before { + content: "\f550"; } + +.fa-baseball::before { + content: "\f433"; } + +.fa-baseball-ball::before { + content: "\f433"; } + +.fa-baseball-bat-ball::before { + content: "\f432"; } + +.fa-basket-shopping::before { + content: "\f291"; } + +.fa-shopping-basket::before { + content: "\f291"; } + +.fa-basketball::before { + content: "\f434"; } + +.fa-basketball-ball::before { + content: "\f434"; } + +.fa-bath::before { + content: "\f2cd"; } + +.fa-bathtub::before { + content: "\f2cd"; } + +.fa-battery-empty::before { + content: "\f244"; } + +.fa-battery-0::before { + content: "\f244"; } + +.fa-battery-full::before { + content: "\f240"; } + +.fa-battery::before { + content: "\f240"; } + +.fa-battery-5::before { + content: "\f240"; } + +.fa-battery-half::before { + content: "\f242"; } + +.fa-battery-3::before { + content: "\f242"; } + +.fa-battery-quarter::before { + content: "\f243"; } + +.fa-battery-2::before { + content: "\f243"; } + +.fa-battery-three-quarters::before { + content: "\f241"; } + +.fa-battery-4::before { + content: "\f241"; } + +.fa-bed::before { + content: "\f236"; } + +.fa-bed-pulse::before { + content: "\f487"; } + +.fa-procedures::before { + content: "\f487"; } + +.fa-beer-mug-empty::before { + content: "\f0fc"; } + +.fa-beer::before { + content: "\f0fc"; } + +.fa-bell::before { + content: "\f0f3"; } + +.fa-bell-concierge::before { + content: "\f562"; } + +.fa-concierge-bell::before { + content: "\f562"; } + +.fa-bell-slash::before { + content: "\f1f6"; } + +.fa-bezier-curve::before { + content: "\f55b"; } + +.fa-bicycle::before { + content: "\f206"; } + +.fa-binoculars::before { + content: "\f1e5"; } + +.fa-biohazard::before { + content: "\f780"; } + +.fa-bitcoin-sign::before { + content: "\e0b4"; } + +.fa-blender::before { + content: "\f517"; } + +.fa-blender-phone::before { + content: "\f6b6"; } + +.fa-blog::before { + content: "\f781"; } + +.fa-bold::before { + content: "\f032"; } + +.fa-bolt::before { + content: "\f0e7"; } + +.fa-zap::before { + content: "\f0e7"; } + +.fa-bolt-lightning::before { + content: "\e0b7"; } + +.fa-bomb::before { + content: "\f1e2"; } + +.fa-bone::before { + content: "\f5d7"; } + +.fa-bong::before { + content: "\f55c"; } + +.fa-book::before { + content: "\f02d"; } + +.fa-book-atlas::before { + content: "\f558"; } + +.fa-atlas::before { + content: "\f558"; } + +.fa-book-bible::before { + content: "\f647"; } + +.fa-bible::before { + content: "\f647"; } + +.fa-book-bookmark::before { + content: "\e0bb"; } + +.fa-book-journal-whills::before { + content: "\f66a"; } + +.fa-journal-whills::before { + content: "\f66a"; } + +.fa-book-medical::before { + content: "\f7e6"; } + +.fa-book-open::before { + content: "\f518"; } + +.fa-book-open-reader::before { + content: "\f5da"; } + +.fa-book-reader::before { + content: "\f5da"; } + +.fa-book-quran::before { + content: "\f687"; } + +.fa-quran::before { + content: "\f687"; } + +.fa-book-skull::before { + content: "\f6b7"; } + +.fa-book-dead::before { + content: "\f6b7"; } + +.fa-bookmark::before { + content: "\f02e"; } + +.fa-border-all::before { + content: "\f84c"; } + +.fa-border-none::before { + content: "\f850"; } + +.fa-border-top-left::before { + content: "\f853"; } + +.fa-border-style::before { + content: "\f853"; } + +.fa-bore-hole::before { + content: "\e4c3"; } + +.fa-bottle-droplet::before { + content: "\e4c4"; } + +.fa-bottle-water::before { + content: "\e4c5"; } + +.fa-bowl-food::before { + content: "\e4c6"; } + +.fa-bowl-rice::before { + content: "\e2eb"; } + +.fa-bowling-ball::before { + content: "\f436"; } + +.fa-box::before { + content: "\f466"; } + +.fa-box-archive::before { + content: "\f187"; } + +.fa-archive::before { + content: "\f187"; } + +.fa-box-open::before { + content: "\f49e"; } + +.fa-box-tissue::before { + content: "\e05b"; } + +.fa-boxes-packing::before { + content: "\e4c7"; } + +.fa-boxes-stacked::before { + content: "\f468"; } + +.fa-boxes::before { + content: "\f468"; } + +.fa-boxes-alt::before { + content: "\f468"; } + +.fa-braille::before { + content: "\f2a1"; } + +.fa-brain::before { + content: "\f5dc"; } + +.fa-brazilian-real-sign::before { + content: "\e46c"; } + +.fa-bread-slice::before { + content: "\f7ec"; } + +.fa-bridge::before { + content: "\e4c8"; } + +.fa-bridge-circle-check::before { + content: "\e4c9"; } + +.fa-bridge-circle-exclamation::before { + content: "\e4ca"; } + +.fa-bridge-circle-xmark::before { + content: "\e4cb"; } + +.fa-bridge-lock::before { + content: "\e4cc"; } + +.fa-bridge-water::before { + content: "\e4ce"; } + +.fa-briefcase::before { + content: "\f0b1"; } + +.fa-briefcase-medical::before { + content: "\f469"; } + +.fa-broom::before { + content: "\f51a"; } + +.fa-broom-ball::before { + content: "\f458"; } + +.fa-quidditch::before { + content: "\f458"; } + +.fa-quidditch-broom-ball::before { + content: "\f458"; } + +.fa-brush::before { + content: "\f55d"; } + +.fa-bucket::before { + content: "\e4cf"; } + +.fa-bug::before { + content: "\f188"; } + +.fa-bug-slash::before { + content: "\e490"; } + +.fa-bugs::before { + content: "\e4d0"; } + +.fa-building::before { + content: "\f1ad"; } + +.fa-building-circle-arrow-right::before { + content: "\e4d1"; } + +.fa-building-circle-check::before { + content: "\e4d2"; } + +.fa-building-circle-exclamation::before { + content: "\e4d3"; } + +.fa-building-circle-xmark::before { + content: "\e4d4"; } + +.fa-building-columns::before { + content: "\f19c"; } + +.fa-bank::before { + content: "\f19c"; } + +.fa-institution::before { + content: "\f19c"; } + +.fa-museum::before { + content: "\f19c"; } + +.fa-university::before { + content: "\f19c"; } + +.fa-building-flag::before { + content: "\e4d5"; } + +.fa-building-lock::before { + content: "\e4d6"; } + +.fa-building-ngo::before { + content: "\e4d7"; } + +.fa-building-shield::before { + content: "\e4d8"; } + +.fa-building-un::before { + content: "\e4d9"; } + +.fa-building-user::before { + content: "\e4da"; } + +.fa-building-wheat::before { + content: "\e4db"; } + +.fa-bullhorn::before { + content: "\f0a1"; } + +.fa-bullseye::before { + content: "\f140"; } + +.fa-burger::before { + content: "\f805"; } + +.fa-hamburger::before { + content: "\f805"; } + +.fa-burst::before { + content: "\e4dc"; } + +.fa-bus::before { + content: "\f207"; } + +.fa-bus-simple::before { + content: "\f55e"; } + +.fa-bus-alt::before { + content: "\f55e"; } + +.fa-business-time::before { + content: "\f64a"; } + +.fa-briefcase-clock::before { + content: "\f64a"; } + +.fa-c::before { + content: "\43"; } + +.fa-cake-candles::before { + content: "\f1fd"; } + +.fa-birthday-cake::before { + content: "\f1fd"; } + +.fa-cake::before { + content: "\f1fd"; } + +.fa-calculator::before { + content: "\f1ec"; } + +.fa-calendar::before { + content: "\f133"; } + +.fa-calendar-check::before { + content: "\f274"; } + +.fa-calendar-day::before { + content: "\f783"; } + +.fa-calendar-days::before { + content: "\f073"; } + +.fa-calendar-alt::before { + content: "\f073"; } + +.fa-calendar-minus::before { + content: "\f272"; } + +.fa-calendar-plus::before { + content: "\f271"; } + +.fa-calendar-week::before { + content: "\f784"; } + +.fa-calendar-xmark::before { + content: "\f273"; } + +.fa-calendar-times::before { + content: "\f273"; } + +.fa-camera::before { + content: "\f030"; } + +.fa-camera-alt::before { + content: "\f030"; } + +.fa-camera-retro::before { + content: "\f083"; } + +.fa-camera-rotate::before { + content: "\e0d8"; } + +.fa-campground::before { + content: "\f6bb"; } + +.fa-candy-cane::before { + content: "\f786"; } + +.fa-cannabis::before { + content: "\f55f"; } + +.fa-capsules::before { + content: "\f46b"; } + +.fa-car::before { + content: "\f1b9"; } + +.fa-automobile::before { + content: "\f1b9"; } + +.fa-car-battery::before { + content: "\f5df"; } + +.fa-battery-car::before { + content: "\f5df"; } + +.fa-car-burst::before { + content: "\f5e1"; } + +.fa-car-crash::before { + content: "\f5e1"; } + +.fa-car-on::before { + content: "\e4dd"; } + +.fa-car-rear::before { + content: "\f5de"; } + +.fa-car-alt::before { + content: "\f5de"; } + +.fa-car-side::before { + content: "\f5e4"; } + +.fa-car-tunnel::before { + content: "\e4de"; } + +.fa-caravan::before { + content: "\f8ff"; } + +.fa-caret-down::before { + content: "\f0d7"; } + +.fa-caret-left::before { + content: "\f0d9"; } + +.fa-caret-right::before { + content: "\f0da"; } + +.fa-caret-up::before { + content: "\f0d8"; } + +.fa-carrot::before { + content: "\f787"; } + +.fa-cart-arrow-down::before { + content: "\f218"; } + +.fa-cart-flatbed::before { + content: "\f474"; } + +.fa-dolly-flatbed::before { + content: "\f474"; } + +.fa-cart-flatbed-suitcase::before { + content: "\f59d"; } + +.fa-luggage-cart::before { + content: "\f59d"; } + +.fa-cart-plus::before { + content: "\f217"; } + +.fa-cart-shopping::before { + content: "\f07a"; } + +.fa-shopping-cart::before { + content: "\f07a"; } + +.fa-cash-register::before { + content: "\f788"; } + +.fa-cat::before { + content: "\f6be"; } + +.fa-cedi-sign::before { + content: "\e0df"; } + +.fa-cent-sign::before { + content: "\e3f5"; } + +.fa-certificate::before { + content: "\f0a3"; } + +.fa-chair::before { + content: "\f6c0"; } + +.fa-chalkboard::before { + content: "\f51b"; } + +.fa-blackboard::before { + content: "\f51b"; } + +.fa-chalkboard-user::before { + content: "\f51c"; } + +.fa-chalkboard-teacher::before { + content: "\f51c"; } + +.fa-champagne-glasses::before { + content: "\f79f"; } + +.fa-glass-cheers::before { + content: "\f79f"; } + +.fa-charging-station::before { + content: "\f5e7"; } + +.fa-chart-area::before { + content: "\f1fe"; } + +.fa-area-chart::before { + content: "\f1fe"; } + +.fa-chart-bar::before { + content: "\f080"; } + +.fa-bar-chart::before { + content: "\f080"; } + +.fa-chart-column::before { + content: "\e0e3"; } + +.fa-chart-gantt::before { + content: "\e0e4"; } + +.fa-chart-line::before { + content: "\f201"; } + +.fa-line-chart::before { + content: "\f201"; } + +.fa-chart-pie::before { + content: "\f200"; } + +.fa-pie-chart::before { + content: "\f200"; } + +.fa-chart-simple::before { + content: "\e473"; } + +.fa-check::before { + content: "\f00c"; } + +.fa-check-double::before { + content: "\f560"; } + +.fa-check-to-slot::before { + content: "\f772"; } + +.fa-vote-yea::before { + content: "\f772"; } + +.fa-cheese::before { + content: "\f7ef"; } + +.fa-chess::before { + content: "\f439"; } + +.fa-chess-bishop::before { + content: "\f43a"; } + +.fa-chess-board::before { + content: "\f43c"; } + +.fa-chess-king::before { + content: "\f43f"; } + +.fa-chess-knight::before { + content: "\f441"; } + +.fa-chess-pawn::before { + content: "\f443"; } + +.fa-chess-queen::before { + content: "\f445"; } + +.fa-chess-rook::before { + content: "\f447"; } + +.fa-chevron-down::before { + content: "\f078"; } + +.fa-chevron-left::before { + content: "\f053"; } + +.fa-chevron-right::before { + content: "\f054"; } + +.fa-chevron-up::before { + content: "\f077"; } + +.fa-child::before { + content: "\f1ae"; } + +.fa-child-dress::before { + content: "\e59c"; } + +.fa-child-reaching::before { + content: "\e59d"; } + +.fa-child-rifle::before { + content: "\e4e0"; } + +.fa-children::before { + content: "\e4e1"; } + +.fa-church::before { + content: "\f51d"; } + +.fa-circle::before { + content: "\f111"; } + +.fa-circle-arrow-down::before { + content: "\f0ab"; } + +.fa-arrow-circle-down::before { + content: "\f0ab"; } + +.fa-circle-arrow-left::before { + content: "\f0a8"; } + +.fa-arrow-circle-left::before { + content: "\f0a8"; } + +.fa-circle-arrow-right::before { + content: "\f0a9"; } + +.fa-arrow-circle-right::before { + content: "\f0a9"; } + +.fa-circle-arrow-up::before { + content: "\f0aa"; } + +.fa-arrow-circle-up::before { + content: "\f0aa"; } + +.fa-circle-check::before { + content: "\f058"; } + +.fa-check-circle::before { + content: "\f058"; } + +.fa-circle-chevron-down::before { + content: "\f13a"; } + +.fa-chevron-circle-down::before { + content: "\f13a"; } + +.fa-circle-chevron-left::before { + content: "\f137"; } + +.fa-chevron-circle-left::before { + content: "\f137"; } + +.fa-circle-chevron-right::before { + content: "\f138"; } + +.fa-chevron-circle-right::before { + content: "\f138"; } + +.fa-circle-chevron-up::before { + content: "\f139"; } + +.fa-chevron-circle-up::before { + content: "\f139"; } + +.fa-circle-dollar-to-slot::before { + content: "\f4b9"; } + +.fa-donate::before { + content: "\f4b9"; } + +.fa-circle-dot::before { + content: "\f192"; } + +.fa-dot-circle::before { + content: "\f192"; } + +.fa-circle-down::before { + content: "\f358"; } + +.fa-arrow-alt-circle-down::before { + content: "\f358"; } + +.fa-circle-exclamation::before { + content: "\f06a"; } + +.fa-exclamation-circle::before { + content: "\f06a"; } + +.fa-circle-h::before { + content: "\f47e"; } + +.fa-hospital-symbol::before { + content: "\f47e"; } + +.fa-circle-half-stroke::before { + content: "\f042"; } + +.fa-adjust::before { + content: "\f042"; } + +.fa-circle-info::before { + content: "\f05a"; } + +.fa-info-circle::before { + content: "\f05a"; } + +.fa-circle-left::before { + content: "\f359"; } + +.fa-arrow-alt-circle-left::before { + content: "\f359"; } + +.fa-circle-minus::before { + content: "\f056"; } + +.fa-minus-circle::before { + content: "\f056"; } + +.fa-circle-nodes::before { + content: "\e4e2"; } + +.fa-circle-notch::before { + content: "\f1ce"; } + +.fa-circle-pause::before { + content: "\f28b"; } + +.fa-pause-circle::before { + content: "\f28b"; } + +.fa-circle-play::before { + content: "\f144"; } + +.fa-play-circle::before { + content: "\f144"; } + +.fa-circle-plus::before { + content: "\f055"; } + +.fa-plus-circle::before { + content: "\f055"; } + +.fa-circle-question::before { + content: "\f059"; } + +.fa-question-circle::before { + content: "\f059"; } + +.fa-circle-radiation::before { + content: "\f7ba"; } + +.fa-radiation-alt::before { + content: "\f7ba"; } + +.fa-circle-right::before { + content: "\f35a"; } + +.fa-arrow-alt-circle-right::before { + content: "\f35a"; } + +.fa-circle-stop::before { + content: "\f28d"; } + +.fa-stop-circle::before { + content: "\f28d"; } + +.fa-circle-up::before { + content: "\f35b"; } + +.fa-arrow-alt-circle-up::before { + content: "\f35b"; } + +.fa-circle-user::before { + content: "\f2bd"; } + +.fa-user-circle::before { + content: "\f2bd"; } + +.fa-circle-xmark::before { + content: "\f057"; } + +.fa-times-circle::before { + content: "\f057"; } + +.fa-xmark-circle::before { + content: "\f057"; } + +.fa-city::before { + content: "\f64f"; } + +.fa-clapperboard::before { + content: "\e131"; } + +.fa-clipboard::before { + content: "\f328"; } + +.fa-clipboard-check::before { + content: "\f46c"; } + +.fa-clipboard-list::before { + content: "\f46d"; } + +.fa-clipboard-question::before { + content: "\e4e3"; } + +.fa-clipboard-user::before { + content: "\f7f3"; } + +.fa-clock::before { + content: "\f017"; } + +.fa-clock-four::before { + content: "\f017"; } + +.fa-clock-rotate-left::before { + content: "\f1da"; } + +.fa-history::before { + content: "\f1da"; } + +.fa-clone::before { + content: "\f24d"; } + +.fa-closed-captioning::before { + content: "\f20a"; } + +.fa-cloud::before { + content: "\f0c2"; } + +.fa-cloud-arrow-down::before { + content: "\f0ed"; } + +.fa-cloud-download::before { + content: "\f0ed"; } + +.fa-cloud-download-alt::before { + content: "\f0ed"; } + +.fa-cloud-arrow-up::before { + content: "\f0ee"; } + +.fa-cloud-upload::before { + content: "\f0ee"; } + +.fa-cloud-upload-alt::before { + content: "\f0ee"; } + +.fa-cloud-bolt::before { + content: "\f76c"; } + +.fa-thunderstorm::before { + content: "\f76c"; } + +.fa-cloud-meatball::before { + content: "\f73b"; } + +.fa-cloud-moon::before { + content: "\f6c3"; } + +.fa-cloud-moon-rain::before { + content: "\f73c"; } + +.fa-cloud-rain::before { + content: "\f73d"; } + +.fa-cloud-showers-heavy::before { + content: "\f740"; } + +.fa-cloud-showers-water::before { + content: "\e4e4"; } + +.fa-cloud-sun::before { + content: "\f6c4"; } + +.fa-cloud-sun-rain::before { + content: "\f743"; } + +.fa-clover::before { + content: "\e139"; } + +.fa-code::before { + content: "\f121"; } + +.fa-code-branch::before { + content: "\f126"; } + +.fa-code-commit::before { + content: "\f386"; } + +.fa-code-compare::before { + content: "\e13a"; } + +.fa-code-fork::before { + content: "\e13b"; } + +.fa-code-merge::before { + content: "\f387"; } + +.fa-code-pull-request::before { + content: "\e13c"; } + +.fa-coins::before { + content: "\f51e"; } + +.fa-colon-sign::before { + content: "\e140"; } + +.fa-comment::before { + content: "\f075"; } + +.fa-comment-dollar::before { + content: "\f651"; } + +.fa-comment-dots::before { + content: "\f4ad"; } + +.fa-commenting::before { + content: "\f4ad"; } + +.fa-comment-medical::before { + content: "\f7f5"; } + +.fa-comment-slash::before { + content: "\f4b3"; } + +.fa-comment-sms::before { + content: "\f7cd"; } + +.fa-sms::before { + content: "\f7cd"; } + +.fa-comments::before { + content: "\f086"; } + +.fa-comments-dollar::before { + content: "\f653"; } + +.fa-compact-disc::before { + content: "\f51f"; } + +.fa-compass::before { + content: "\f14e"; } + +.fa-compass-drafting::before { + content: "\f568"; } + +.fa-drafting-compass::before { + content: "\f568"; } + +.fa-compress::before { + content: "\f066"; } + +.fa-computer::before { + content: "\e4e5"; } + +.fa-computer-mouse::before { + content: "\f8cc"; } + +.fa-mouse::before { + content: "\f8cc"; } + +.fa-cookie::before { + content: "\f563"; } + +.fa-cookie-bite::before { + content: "\f564"; } + +.fa-copy::before { + content: "\f0c5"; } + +.fa-copyright::before { + content: "\f1f9"; } + +.fa-couch::before { + content: "\f4b8"; } + +.fa-cow::before { + content: "\f6c8"; } + +.fa-credit-card::before { + content: "\f09d"; } + +.fa-credit-card-alt::before { + content: "\f09d"; } + +.fa-crop::before { + content: "\f125"; } + +.fa-crop-simple::before { + content: "\f565"; } + +.fa-crop-alt::before { + content: "\f565"; } + +.fa-cross::before { + content: "\f654"; } + +.fa-crosshairs::before { + content: "\f05b"; } + +.fa-crow::before { + content: "\f520"; } + +.fa-crown::before { + content: "\f521"; } + +.fa-crutch::before { + content: "\f7f7"; } + +.fa-cruzeiro-sign::before { + content: "\e152"; } + +.fa-cube::before { + content: "\f1b2"; } + +.fa-cubes::before { + content: "\f1b3"; } + +.fa-cubes-stacked::before { + content: "\e4e6"; } + +.fa-d::before { + content: "\44"; } + +.fa-database::before { + content: "\f1c0"; } + +.fa-delete-left::before { + content: "\f55a"; } + +.fa-backspace::before { + content: "\f55a"; } + +.fa-democrat::before { + content: "\f747"; } + +.fa-desktop::before { + content: "\f390"; } + +.fa-desktop-alt::before { + content: "\f390"; } + +.fa-dharmachakra::before { + content: "\f655"; } + +.fa-diagram-next::before { + content: "\e476"; } + +.fa-diagram-predecessor::before { + content: "\e477"; } + +.fa-diagram-project::before { + content: "\f542"; } + +.fa-project-diagram::before { + content: "\f542"; } + +.fa-diagram-successor::before { + content: "\e47a"; } + +.fa-diamond::before { + content: "\f219"; } + +.fa-diamond-turn-right::before { + content: "\f5eb"; } + +.fa-directions::before { + content: "\f5eb"; } + +.fa-dice::before { + content: "\f522"; } + +.fa-dice-d20::before { + content: "\f6cf"; } + +.fa-dice-d6::before { + content: "\f6d1"; } + +.fa-dice-five::before { + content: "\f523"; } + +.fa-dice-four::before { + content: "\f524"; } + +.fa-dice-one::before { + content: "\f525"; } + +.fa-dice-six::before { + content: "\f526"; } + +.fa-dice-three::before { + content: "\f527"; } + +.fa-dice-two::before { + content: "\f528"; } + +.fa-disease::before { + content: "\f7fa"; } + +.fa-display::before { + content: "\e163"; } + +.fa-divide::before { + content: "\f529"; } + +.fa-dna::before { + content: "\f471"; } + +.fa-dog::before { + content: "\f6d3"; } + +.fa-dollar-sign::before { + content: "\24"; } + +.fa-dollar::before { + content: "\24"; } + +.fa-usd::before { + content: "\24"; } + +.fa-dolly::before { + content: "\f472"; } + +.fa-dolly-box::before { + content: "\f472"; } + +.fa-dong-sign::before { + content: "\e169"; } + +.fa-door-closed::before { + content: "\f52a"; } + +.fa-door-open::before { + content: "\f52b"; } + +.fa-dove::before { + content: "\f4ba"; } + +.fa-down-left-and-up-right-to-center::before { + content: "\f422"; } + +.fa-compress-alt::before { + content: "\f422"; } + +.fa-down-long::before { + content: "\f309"; } + +.fa-long-arrow-alt-down::before { + content: "\f309"; } + +.fa-download::before { + content: "\f019"; } + +.fa-dragon::before { + content: "\f6d5"; } + +.fa-draw-polygon::before { + content: "\f5ee"; } + +.fa-droplet::before { + content: "\f043"; } + +.fa-tint::before { + content: "\f043"; } + +.fa-droplet-slash::before { + content: "\f5c7"; } + +.fa-tint-slash::before { + content: "\f5c7"; } + +.fa-drum::before { + content: "\f569"; } + +.fa-drum-steelpan::before { + content: "\f56a"; } + +.fa-drumstick-bite::before { + content: "\f6d7"; } + +.fa-dumbbell::before { + content: "\f44b"; } + +.fa-dumpster::before { + content: "\f793"; } + +.fa-dumpster-fire::before { + content: "\f794"; } + +.fa-dungeon::before { + content: "\f6d9"; } + +.fa-e::before { + content: "\45"; } + +.fa-ear-deaf::before { + content: "\f2a4"; } + +.fa-deaf::before { + content: "\f2a4"; } + +.fa-deafness::before { + content: "\f2a4"; } + +.fa-hard-of-hearing::before { + content: "\f2a4"; } + +.fa-ear-listen::before { + content: "\f2a2"; } + +.fa-assistive-listening-systems::before { + content: "\f2a2"; } + +.fa-earth-africa::before { + content: "\f57c"; } + +.fa-globe-africa::before { + content: "\f57c"; } + +.fa-earth-americas::before { + content: "\f57d"; } + +.fa-earth::before { + content: "\f57d"; } + +.fa-earth-america::before { + content: "\f57d"; } + +.fa-globe-americas::before { + content: "\f57d"; } + +.fa-earth-asia::before { + content: "\f57e"; } + +.fa-globe-asia::before { + content: "\f57e"; } + +.fa-earth-europe::before { + content: "\f7a2"; } + +.fa-globe-europe::before { + content: "\f7a2"; } + +.fa-earth-oceania::before { + content: "\e47b"; } + +.fa-globe-oceania::before { + content: "\e47b"; } + +.fa-egg::before { + content: "\f7fb"; } + +.fa-eject::before { + content: "\f052"; } + +.fa-elevator::before { + content: "\e16d"; } + +.fa-ellipsis::before { + content: "\f141"; } + +.fa-ellipsis-h::before { + content: "\f141"; } + +.fa-ellipsis-vertical::before { + content: "\f142"; } + +.fa-ellipsis-v::before { + content: "\f142"; } + +.fa-envelope::before { + content: "\f0e0"; } + +.fa-envelope-circle-check::before { + content: "\e4e8"; } + +.fa-envelope-open::before { + content: "\f2b6"; } + +.fa-envelope-open-text::before { + content: "\f658"; } + +.fa-envelopes-bulk::before { + content: "\f674"; } + +.fa-mail-bulk::before { + content: "\f674"; } + +.fa-equals::before { + content: "\3d"; } + +.fa-eraser::before { + content: "\f12d"; } + +.fa-ethernet::before { + content: "\f796"; } + +.fa-euro-sign::before { + content: "\f153"; } + +.fa-eur::before { + content: "\f153"; } + +.fa-euro::before { + content: "\f153"; } + +.fa-exclamation::before { + content: "\21"; } + +.fa-expand::before { + content: "\f065"; } + +.fa-explosion::before { + content: "\e4e9"; } + +.fa-eye::before { + content: "\f06e"; } + +.fa-eye-dropper::before { + content: "\f1fb"; } + +.fa-eye-dropper-empty::before { + content: "\f1fb"; } + +.fa-eyedropper::before { + content: "\f1fb"; } + +.fa-eye-low-vision::before { + content: "\f2a8"; } + +.fa-low-vision::before { + content: "\f2a8"; } + +.fa-eye-slash::before { + content: "\f070"; } + +.fa-f::before { + content: "\46"; } + +.fa-face-angry::before { + content: "\f556"; } + +.fa-angry::before { + content: "\f556"; } + +.fa-face-dizzy::before { + content: "\f567"; } + +.fa-dizzy::before { + content: "\f567"; } + +.fa-face-flushed::before { + content: "\f579"; } + +.fa-flushed::before { + content: "\f579"; } + +.fa-face-frown::before { + content: "\f119"; } + +.fa-frown::before { + content: "\f119"; } + +.fa-face-frown-open::before { + content: "\f57a"; } + +.fa-frown-open::before { + content: "\f57a"; } + +.fa-face-grimace::before { + content: "\f57f"; } + +.fa-grimace::before { + content: "\f57f"; } + +.fa-face-grin::before { + content: "\f580"; } + +.fa-grin::before { + content: "\f580"; } + +.fa-face-grin-beam::before { + content: "\f582"; } + +.fa-grin-beam::before { + content: "\f582"; } + +.fa-face-grin-beam-sweat::before { + content: "\f583"; } + +.fa-grin-beam-sweat::before { + content: "\f583"; } + +.fa-face-grin-hearts::before { + content: "\f584"; } + +.fa-grin-hearts::before { + content: "\f584"; } + +.fa-face-grin-squint::before { + content: "\f585"; } + +.fa-grin-squint::before { + content: "\f585"; } + +.fa-face-grin-squint-tears::before { + content: "\f586"; } + +.fa-grin-squint-tears::before { + content: "\f586"; } + +.fa-face-grin-stars::before { + content: "\f587"; } + +.fa-grin-stars::before { + content: "\f587"; } + +.fa-face-grin-tears::before { + content: "\f588"; } + +.fa-grin-tears::before { + content: "\f588"; } + +.fa-face-grin-tongue::before { + content: "\f589"; } + +.fa-grin-tongue::before { + content: "\f589"; } + +.fa-face-grin-tongue-squint::before { + content: "\f58a"; } + +.fa-grin-tongue-squint::before { + content: "\f58a"; } + +.fa-face-grin-tongue-wink::before { + content: "\f58b"; } + +.fa-grin-tongue-wink::before { + content: "\f58b"; } + +.fa-face-grin-wide::before { + content: "\f581"; } + +.fa-grin-alt::before { + content: "\f581"; } + +.fa-face-grin-wink::before { + content: "\f58c"; } + +.fa-grin-wink::before { + content: "\f58c"; } + +.fa-face-kiss::before { + content: "\f596"; } + +.fa-kiss::before { + content: "\f596"; } + +.fa-face-kiss-beam::before { + content: "\f597"; } + +.fa-kiss-beam::before { + content: "\f597"; } + +.fa-face-kiss-wink-heart::before { + content: "\f598"; } + +.fa-kiss-wink-heart::before { + content: "\f598"; } + +.fa-face-laugh::before { + content: "\f599"; } + +.fa-laugh::before { + content: "\f599"; } + +.fa-face-laugh-beam::before { + content: "\f59a"; } + +.fa-laugh-beam::before { + content: "\f59a"; } + +.fa-face-laugh-squint::before { + content: "\f59b"; } + +.fa-laugh-squint::before { + content: "\f59b"; } + +.fa-face-laugh-wink::before { + content: "\f59c"; } + +.fa-laugh-wink::before { + content: "\f59c"; } + +.fa-face-meh::before { + content: "\f11a"; } + +.fa-meh::before { + content: "\f11a"; } + +.fa-face-meh-blank::before { + content: "\f5a4"; } + +.fa-meh-blank::before { + content: "\f5a4"; } + +.fa-face-rolling-eyes::before { + content: "\f5a5"; } + +.fa-meh-rolling-eyes::before { + content: "\f5a5"; } + +.fa-face-sad-cry::before { + content: "\f5b3"; } + +.fa-sad-cry::before { + content: "\f5b3"; } + +.fa-face-sad-tear::before { + content: "\f5b4"; } + +.fa-sad-tear::before { + content: "\f5b4"; } + +.fa-face-smile::before { + content: "\f118"; } + +.fa-smile::before { + content: "\f118"; } + +.fa-face-smile-beam::before { + content: "\f5b8"; } + +.fa-smile-beam::before { + content: "\f5b8"; } + +.fa-face-smile-wink::before { + content: "\f4da"; } + +.fa-smile-wink::before { + content: "\f4da"; } + +.fa-face-surprise::before { + content: "\f5c2"; } + +.fa-surprise::before { + content: "\f5c2"; } + +.fa-face-tired::before { + content: "\f5c8"; } + +.fa-tired::before { + content: "\f5c8"; } + +.fa-fan::before { + content: "\f863"; } + +.fa-faucet::before { + content: "\e005"; } + +.fa-faucet-drip::before { + content: "\e006"; } + +.fa-fax::before { + content: "\f1ac"; } + +.fa-feather::before { + content: "\f52d"; } + +.fa-feather-pointed::before { + content: "\f56b"; } + +.fa-feather-alt::before { + content: "\f56b"; } + +.fa-ferry::before { + content: "\e4ea"; } + +.fa-file::before { + content: "\f15b"; } + +.fa-file-arrow-down::before { + content: "\f56d"; } + +.fa-file-download::before { + content: "\f56d"; } + +.fa-file-arrow-up::before { + content: "\f574"; } + +.fa-file-upload::before { + content: "\f574"; } + +.fa-file-audio::before { + content: "\f1c7"; } + +.fa-file-circle-check::before { + content: "\e493"; } + +.fa-file-circle-exclamation::before { + content: "\e4eb"; } + +.fa-file-circle-minus::before { + content: "\e4ed"; } + +.fa-file-circle-plus::before { + content: "\e4ee"; } + +.fa-file-circle-question::before { + content: "\e4ef"; } + +.fa-file-circle-xmark::before { + content: "\e494"; } + +.fa-file-code::before { + content: "\f1c9"; } + +.fa-file-contract::before { + content: "\f56c"; } + +.fa-file-csv::before { + content: "\f6dd"; } + +.fa-file-excel::before { + content: "\f1c3"; } + +.fa-file-export::before { + content: "\f56e"; } + +.fa-arrow-right-from-file::before { + content: "\f56e"; } + +.fa-file-image::before { + content: "\f1c5"; } + +.fa-file-import::before { + content: "\f56f"; } + +.fa-arrow-right-to-file::before { + content: "\f56f"; } + +.fa-file-invoice::before { + content: "\f570"; } + +.fa-file-invoice-dollar::before { + content: "\f571"; } + +.fa-file-lines::before { + content: "\f15c"; } + +.fa-file-alt::before { + content: "\f15c"; } + +.fa-file-text::before { + content: "\f15c"; } + +.fa-file-medical::before { + content: "\f477"; } + +.fa-file-pdf::before { + content: "\f1c1"; } + +.fa-file-pen::before { + content: "\f31c"; } + +.fa-file-edit::before { + content: "\f31c"; } + +.fa-file-powerpoint::before { + content: "\f1c4"; } + +.fa-file-prescription::before { + content: "\f572"; } + +.fa-file-shield::before { + content: "\e4f0"; } + +.fa-file-signature::before { + content: "\f573"; } + +.fa-file-video::before { + content: "\f1c8"; } + +.fa-file-waveform::before { + content: "\f478"; } + +.fa-file-medical-alt::before { + content: "\f478"; } + +.fa-file-word::before { + content: "\f1c2"; } + +.fa-file-zipper::before { + content: "\f1c6"; } + +.fa-file-archive::before { + content: "\f1c6"; } + +.fa-fill::before { + content: "\f575"; } + +.fa-fill-drip::before { + content: "\f576"; } + +.fa-film::before { + content: "\f008"; } + +.fa-filter::before { + content: "\f0b0"; } + +.fa-filter-circle-dollar::before { + content: "\f662"; } + +.fa-funnel-dollar::before { + content: "\f662"; } + +.fa-filter-circle-xmark::before { + content: "\e17b"; } + +.fa-fingerprint::before { + content: "\f577"; } + +.fa-fire::before { + content: "\f06d"; } + +.fa-fire-burner::before { + content: "\e4f1"; } + +.fa-fire-extinguisher::before { + content: "\f134"; } + +.fa-fire-flame-curved::before { + content: "\f7e4"; } + +.fa-fire-alt::before { + content: "\f7e4"; } + +.fa-fire-flame-simple::before { + content: "\f46a"; } + +.fa-burn::before { + content: "\f46a"; } + +.fa-fish::before { + content: "\f578"; } + +.fa-fish-fins::before { + content: "\e4f2"; } + +.fa-flag::before { + content: "\f024"; } + +.fa-flag-checkered::before { + content: "\f11e"; } + +.fa-flag-usa::before { + content: "\f74d"; } + +.fa-flask::before { + content: "\f0c3"; } + +.fa-flask-vial::before { + content: "\e4f3"; } + +.fa-floppy-disk::before { + content: "\f0c7"; } + +.fa-save::before { + content: "\f0c7"; } + +.fa-florin-sign::before { + content: "\e184"; } + +.fa-folder::before { + content: "\f07b"; } + +.fa-folder-blank::before { + content: "\f07b"; } + +.fa-folder-closed::before { + content: "\e185"; } + +.fa-folder-minus::before { + content: "\f65d"; } + +.fa-folder-open::before { + content: "\f07c"; } + +.fa-folder-plus::before { + content: "\f65e"; } + +.fa-folder-tree::before { + content: "\f802"; } + +.fa-font::before { + content: "\f031"; } + +.fa-football::before { + content: "\f44e"; } + +.fa-football-ball::before { + content: "\f44e"; } + +.fa-forward::before { + content: "\f04e"; } + +.fa-forward-fast::before { + content: "\f050"; } + +.fa-fast-forward::before { + content: "\f050"; } + +.fa-forward-step::before { + content: "\f051"; } + +.fa-step-forward::before { + content: "\f051"; } + +.fa-franc-sign::before { + content: "\e18f"; } + +.fa-frog::before { + content: "\f52e"; } + +.fa-futbol::before { + content: "\f1e3"; } + +.fa-futbol-ball::before { + content: "\f1e3"; } + +.fa-soccer-ball::before { + content: "\f1e3"; } + +.fa-g::before { + content: "\47"; } + +.fa-gamepad::before { + content: "\f11b"; } + +.fa-gas-pump::before { + content: "\f52f"; } + +.fa-gauge::before { + content: "\f624"; } + +.fa-dashboard::before { + content: "\f624"; } + +.fa-gauge-med::before { + content: "\f624"; } + +.fa-tachometer-alt-average::before { + content: "\f624"; } + +.fa-gauge-high::before { + content: "\f625"; } + +.fa-tachometer-alt::before { + content: "\f625"; } + +.fa-tachometer-alt-fast::before { + content: "\f625"; } + +.fa-gauge-simple::before { + content: "\f629"; } + +.fa-gauge-simple-med::before { + content: "\f629"; } + +.fa-tachometer-average::before { + content: "\f629"; } + +.fa-gauge-simple-high::before { + content: "\f62a"; } + +.fa-tachometer::before { + content: "\f62a"; } + +.fa-tachometer-fast::before { + content: "\f62a"; } + +.fa-gavel::before { + content: "\f0e3"; } + +.fa-legal::before { + content: "\f0e3"; } + +.fa-gear::before { + content: "\f013"; } + +.fa-cog::before { + content: "\f013"; } + +.fa-gears::before { + content: "\f085"; } + +.fa-cogs::before { + content: "\f085"; } + +.fa-gem::before { + content: "\f3a5"; } + +.fa-genderless::before { + content: "\f22d"; } + +.fa-ghost::before { + content: "\f6e2"; } + +.fa-gift::before { + content: "\f06b"; } + +.fa-gifts::before { + content: "\f79c"; } + +.fa-glass-water::before { + content: "\e4f4"; } + +.fa-glass-water-droplet::before { + content: "\e4f5"; } + +.fa-glasses::before { + content: "\f530"; } + +.fa-globe::before { + content: "\f0ac"; } + +.fa-golf-ball-tee::before { + content: "\f450"; } + +.fa-golf-ball::before { + content: "\f450"; } + +.fa-gopuram::before { + content: "\f664"; } + +.fa-graduation-cap::before { + content: "\f19d"; } + +.fa-mortar-board::before { + content: "\f19d"; } + +.fa-greater-than::before { + content: "\3e"; } + +.fa-greater-than-equal::before { + content: "\f532"; } + +.fa-grip::before { + content: "\f58d"; } + +.fa-grip-horizontal::before { + content: "\f58d"; } + +.fa-grip-lines::before { + content: "\f7a4"; } + +.fa-grip-lines-vertical::before { + content: "\f7a5"; } + +.fa-grip-vertical::before { + content: "\f58e"; } + +.fa-group-arrows-rotate::before { + content: "\e4f6"; } + +.fa-guarani-sign::before { + content: "\e19a"; } + +.fa-guitar::before { + content: "\f7a6"; } + +.fa-gun::before { + content: "\e19b"; } + +.fa-h::before { + content: "\48"; } + +.fa-hammer::before { + content: "\f6e3"; } + +.fa-hamsa::before { + content: "\f665"; } + +.fa-hand::before { + content: "\f256"; } + +.fa-hand-paper::before { + content: "\f256"; } + +.fa-hand-back-fist::before { + content: "\f255"; } + +.fa-hand-rock::before { + content: "\f255"; } + +.fa-hand-dots::before { + content: "\f461"; } + +.fa-allergies::before { + content: "\f461"; } + +.fa-hand-fist::before { + content: "\f6de"; } + +.fa-fist-raised::before { + content: "\f6de"; } + +.fa-hand-holding::before { + content: "\f4bd"; } + +.fa-hand-holding-dollar::before { + content: "\f4c0"; } + +.fa-hand-holding-usd::before { + content: "\f4c0"; } + +.fa-hand-holding-droplet::before { + content: "\f4c1"; } + +.fa-hand-holding-water::before { + content: "\f4c1"; } + +.fa-hand-holding-hand::before { + content: "\e4f7"; } + +.fa-hand-holding-heart::before { + content: "\f4be"; } + +.fa-hand-holding-medical::before { + content: "\e05c"; } + +.fa-hand-lizard::before { + content: "\f258"; } + +.fa-hand-middle-finger::before { + content: "\f806"; } + +.fa-hand-peace::before { + content: "\f25b"; } + +.fa-hand-point-down::before { + content: "\f0a7"; } + +.fa-hand-point-left::before { + content: "\f0a5"; } + +.fa-hand-point-right::before { + content: "\f0a4"; } + +.fa-hand-point-up::before { + content: "\f0a6"; } + +.fa-hand-pointer::before { + content: "\f25a"; } + +.fa-hand-scissors::before { + content: "\f257"; } + +.fa-hand-sparkles::before { + content: "\e05d"; } + +.fa-hand-spock::before { + content: "\f259"; } + +.fa-handcuffs::before { + content: "\e4f8"; } + +.fa-hands::before { + content: "\f2a7"; } + +.fa-sign-language::before { + content: "\f2a7"; } + +.fa-signing::before { + content: "\f2a7"; } + +.fa-hands-asl-interpreting::before { + content: "\f2a3"; } + +.fa-american-sign-language-interpreting::before { + content: "\f2a3"; } + +.fa-asl-interpreting::before { + content: "\f2a3"; } + +.fa-hands-american-sign-language-interpreting::before { + content: "\f2a3"; } + +.fa-hands-bound::before { + content: "\e4f9"; } + +.fa-hands-bubbles::before { + content: "\e05e"; } + +.fa-hands-wash::before { + content: "\e05e"; } + +.fa-hands-clapping::before { + content: "\e1a8"; } + +.fa-hands-holding::before { + content: "\f4c2"; } + +.fa-hands-holding-child::before { + content: "\e4fa"; } + +.fa-hands-holding-circle::before { + content: "\e4fb"; } + +.fa-hands-praying::before { + content: "\f684"; } + +.fa-praying-hands::before { + content: "\f684"; } + +.fa-handshake::before { + content: "\f2b5"; } + +.fa-handshake-angle::before { + content: "\f4c4"; } + +.fa-hands-helping::before { + content: "\f4c4"; } + +.fa-handshake-simple::before { + content: "\f4c6"; } + +.fa-handshake-alt::before { + content: "\f4c6"; } + +.fa-handshake-simple-slash::before { + content: "\e05f"; } + +.fa-handshake-alt-slash::before { + content: "\e05f"; } + +.fa-handshake-slash::before { + content: "\e060"; } + +.fa-hanukiah::before { + content: "\f6e6"; } + +.fa-hard-drive::before { + content: "\f0a0"; } + +.fa-hdd::before { + content: "\f0a0"; } + +.fa-hashtag::before { + content: "\23"; } + +.fa-hat-cowboy::before { + content: "\f8c0"; } + +.fa-hat-cowboy-side::before { + content: "\f8c1"; } + +.fa-hat-wizard::before { + content: "\f6e8"; } + +.fa-head-side-cough::before { + content: "\e061"; } + +.fa-head-side-cough-slash::before { + content: "\e062"; } + +.fa-head-side-mask::before { + content: "\e063"; } + +.fa-head-side-virus::before { + content: "\e064"; } + +.fa-heading::before { + content: "\f1dc"; } + +.fa-header::before { + content: "\f1dc"; } + +.fa-headphones::before { + content: "\f025"; } + +.fa-headphones-simple::before { + content: "\f58f"; } + +.fa-headphones-alt::before { + content: "\f58f"; } + +.fa-headset::before { + content: "\f590"; } + +.fa-heart::before { + content: "\f004"; } + +.fa-heart-circle-bolt::before { + content: "\e4fc"; } + +.fa-heart-circle-check::before { + content: "\e4fd"; } + +.fa-heart-circle-exclamation::before { + content: "\e4fe"; } + +.fa-heart-circle-minus::before { + content: "\e4ff"; } + +.fa-heart-circle-plus::before { + content: "\e500"; } + +.fa-heart-circle-xmark::before { + content: "\e501"; } + +.fa-heart-crack::before { + content: "\f7a9"; } + +.fa-heart-broken::before { + content: "\f7a9"; } + +.fa-heart-pulse::before { + content: "\f21e"; } + +.fa-heartbeat::before { + content: "\f21e"; } + +.fa-helicopter::before { + content: "\f533"; } + +.fa-helicopter-symbol::before { + content: "\e502"; } + +.fa-helmet-safety::before { + content: "\f807"; } + +.fa-hard-hat::before { + content: "\f807"; } + +.fa-hat-hard::before { + content: "\f807"; } + +.fa-helmet-un::before { + content: "\e503"; } + +.fa-highlighter::before { + content: "\f591"; } + +.fa-hill-avalanche::before { + content: "\e507"; } + +.fa-hill-rockslide::before { + content: "\e508"; } + +.fa-hippo::before { + content: "\f6ed"; } + +.fa-hockey-puck::before { + content: "\f453"; } + +.fa-holly-berry::before { + content: "\f7aa"; } + +.fa-horse::before { + content: "\f6f0"; } + +.fa-horse-head::before { + content: "\f7ab"; } + +.fa-hospital::before { + content: "\f0f8"; } + +.fa-hospital-alt::before { + content: "\f0f8"; } + +.fa-hospital-wide::before { + content: "\f0f8"; } + +.fa-hospital-user::before { + content: "\f80d"; } + +.fa-hot-tub-person::before { + content: "\f593"; } + +.fa-hot-tub::before { + content: "\f593"; } + +.fa-hotdog::before { + content: "\f80f"; } + +.fa-hotel::before { + content: "\f594"; } + +.fa-hourglass::before { + content: "\f254"; } + +.fa-hourglass-2::before { + content: "\f254"; } + +.fa-hourglass-half::before { + content: "\f254"; } + +.fa-hourglass-empty::before { + content: "\f252"; } + +.fa-hourglass-end::before { + content: "\f253"; } + +.fa-hourglass-3::before { + content: "\f253"; } + +.fa-hourglass-start::before { + content: "\f251"; } + +.fa-hourglass-1::before { + content: "\f251"; } + +.fa-house::before { + content: "\f015"; } + +.fa-home::before { + content: "\f015"; } + +.fa-home-alt::before { + content: "\f015"; } + +.fa-home-lg-alt::before { + content: "\f015"; } + +.fa-house-chimney::before { + content: "\e3af"; } + +.fa-home-lg::before { + content: "\e3af"; } + +.fa-house-chimney-crack::before { + content: "\f6f1"; } + +.fa-house-damage::before { + content: "\f6f1"; } + +.fa-house-chimney-medical::before { + content: "\f7f2"; } + +.fa-clinic-medical::before { + content: "\f7f2"; } + +.fa-house-chimney-user::before { + content: "\e065"; } + +.fa-house-chimney-window::before { + content: "\e00d"; } + +.fa-house-circle-check::before { + content: "\e509"; } + +.fa-house-circle-exclamation::before { + content: "\e50a"; } + +.fa-house-circle-xmark::before { + content: "\e50b"; } + +.fa-house-crack::before { + content: "\e3b1"; } + +.fa-house-fire::before { + content: "\e50c"; } + +.fa-house-flag::before { + content: "\e50d"; } + +.fa-house-flood-water::before { + content: "\e50e"; } + +.fa-house-flood-water-circle-arrow-right::before { + content: "\e50f"; } + +.fa-house-laptop::before { + content: "\e066"; } + +.fa-laptop-house::before { + content: "\e066"; } + +.fa-house-lock::before { + content: "\e510"; } + +.fa-house-medical::before { + content: "\e3b2"; } + +.fa-house-medical-circle-check::before { + content: "\e511"; } + +.fa-house-medical-circle-exclamation::before { + content: "\e512"; } + +.fa-house-medical-circle-xmark::before { + content: "\e513"; } + +.fa-house-medical-flag::before { + content: "\e514"; } + +.fa-house-signal::before { + content: "\e012"; } + +.fa-house-tsunami::before { + content: "\e515"; } + +.fa-house-user::before { + content: "\e1b0"; } + +.fa-home-user::before { + content: "\e1b0"; } + +.fa-hryvnia-sign::before { + content: "\f6f2"; } + +.fa-hryvnia::before { + content: "\f6f2"; } + +.fa-hurricane::before { + content: "\f751"; } + +.fa-i::before { + content: "\49"; } + +.fa-i-cursor::before { + content: "\f246"; } + +.fa-ice-cream::before { + content: "\f810"; } + +.fa-icicles::before { + content: "\f7ad"; } + +.fa-icons::before { + content: "\f86d"; } + +.fa-heart-music-camera-bolt::before { + content: "\f86d"; } + +.fa-id-badge::before { + content: "\f2c1"; } + +.fa-id-card::before { + content: "\f2c2"; } + +.fa-drivers-license::before { + content: "\f2c2"; } + +.fa-id-card-clip::before { + content: "\f47f"; } + +.fa-id-card-alt::before { + content: "\f47f"; } + +.fa-igloo::before { + content: "\f7ae"; } + +.fa-image::before { + content: "\f03e"; } + +.fa-image-portrait::before { + content: "\f3e0"; } + +.fa-portrait::before { + content: "\f3e0"; } + +.fa-images::before { + content: "\f302"; } + +.fa-inbox::before { + content: "\f01c"; } + +.fa-indent::before { + content: "\f03c"; } + +.fa-indian-rupee-sign::before { + content: "\e1bc"; } + +.fa-indian-rupee::before { + content: "\e1bc"; } + +.fa-inr::before { + content: "\e1bc"; } + +.fa-industry::before { + content: "\f275"; } + +.fa-infinity::before { + content: "\f534"; } + +.fa-info::before { + content: "\f129"; } + +.fa-italic::before { + content: "\f033"; } + +.fa-j::before { + content: "\4a"; } + +.fa-jar::before { + content: "\e516"; } + +.fa-jar-wheat::before { + content: "\e517"; } + +.fa-jedi::before { + content: "\f669"; } + +.fa-jet-fighter::before { + content: "\f0fb"; } + +.fa-fighter-jet::before { + content: "\f0fb"; } + +.fa-jet-fighter-up::before { + content: "\e518"; } + +.fa-joint::before { + content: "\f595"; } + +.fa-jug-detergent::before { + content: "\e519"; } + +.fa-k::before { + content: "\4b"; } + +.fa-kaaba::before { + content: "\f66b"; } + +.fa-key::before { + content: "\f084"; } + +.fa-keyboard::before { + content: "\f11c"; } + +.fa-khanda::before { + content: "\f66d"; } + +.fa-kip-sign::before { + content: "\e1c4"; } + +.fa-kit-medical::before { + content: "\f479"; } + +.fa-first-aid::before { + content: "\f479"; } + +.fa-kitchen-set::before { + content: "\e51a"; } + +.fa-kiwi-bird::before { + content: "\f535"; } + +.fa-l::before { + content: "\4c"; } + +.fa-land-mine-on::before { + content: "\e51b"; } + +.fa-landmark::before { + content: "\f66f"; } + +.fa-landmark-dome::before { + content: "\f752"; } + +.fa-landmark-alt::before { + content: "\f752"; } + +.fa-landmark-flag::before { + content: "\e51c"; } + +.fa-language::before { + content: "\f1ab"; } + +.fa-laptop::before { + content: "\f109"; } + +.fa-laptop-code::before { + content: "\f5fc"; } + +.fa-laptop-file::before { + content: "\e51d"; } + +.fa-laptop-medical::before { + content: "\f812"; } + +.fa-lari-sign::before { + content: "\e1c8"; } + +.fa-layer-group::before { + content: "\f5fd"; } + +.fa-leaf::before { + content: "\f06c"; } + +.fa-left-long::before { + content: "\f30a"; } + +.fa-long-arrow-alt-left::before { + content: "\f30a"; } + +.fa-left-right::before { + content: "\f337"; } + +.fa-arrows-alt-h::before { + content: "\f337"; } + +.fa-lemon::before { + content: "\f094"; } + +.fa-less-than::before { + content: "\3c"; } + +.fa-less-than-equal::before { + content: "\f537"; } + +.fa-life-ring::before { + content: "\f1cd"; } + +.fa-lightbulb::before { + content: "\f0eb"; } + +.fa-lines-leaning::before { + content: "\e51e"; } + +.fa-link::before { + content: "\f0c1"; } + +.fa-chain::before { + content: "\f0c1"; } + +.fa-link-slash::before { + content: "\f127"; } + +.fa-chain-broken::before { + content: "\f127"; } + +.fa-chain-slash::before { + content: "\f127"; } + +.fa-unlink::before { + content: "\f127"; } + +.fa-lira-sign::before { + content: "\f195"; } + +.fa-list::before { + content: "\f03a"; } + +.fa-list-squares::before { + content: "\f03a"; } + +.fa-list-check::before { + content: "\f0ae"; } + +.fa-tasks::before { + content: "\f0ae"; } + +.fa-list-ol::before { + content: "\f0cb"; } + +.fa-list-1-2::before { + content: "\f0cb"; } + +.fa-list-numeric::before { + content: "\f0cb"; } + +.fa-list-ul::before { + content: "\f0ca"; } + +.fa-list-dots::before { + content: "\f0ca"; } + +.fa-litecoin-sign::before { + content: "\e1d3"; } + +.fa-location-arrow::before { + content: "\f124"; } + +.fa-location-crosshairs::before { + content: "\f601"; } + +.fa-location::before { + content: "\f601"; } + +.fa-location-dot::before { + content: "\f3c5"; } + +.fa-map-marker-alt::before { + content: "\f3c5"; } + +.fa-location-pin::before { + content: "\f041"; } + +.fa-map-marker::before { + content: "\f041"; } + +.fa-location-pin-lock::before { + content: "\e51f"; } + +.fa-lock::before { + content: "\f023"; } + +.fa-lock-open::before { + content: "\f3c1"; } + +.fa-locust::before { + content: "\e520"; } + +.fa-lungs::before { + content: "\f604"; } + +.fa-lungs-virus::before { + content: "\e067"; } + +.fa-m::before { + content: "\4d"; } + +.fa-magnet::before { + content: "\f076"; } + +.fa-magnifying-glass::before { + content: "\f002"; } + +.fa-search::before { + content: "\f002"; } + +.fa-magnifying-glass-arrow-right::before { + content: "\e521"; } + +.fa-magnifying-glass-chart::before { + content: "\e522"; } + +.fa-magnifying-glass-dollar::before { + content: "\f688"; } + +.fa-search-dollar::before { + content: "\f688"; } + +.fa-magnifying-glass-location::before { + content: "\f689"; } + +.fa-search-location::before { + content: "\f689"; } + +.fa-magnifying-glass-minus::before { + content: "\f010"; } + +.fa-search-minus::before { + content: "\f010"; } + +.fa-magnifying-glass-plus::before { + content: "\f00e"; } + +.fa-search-plus::before { + content: "\f00e"; } + +.fa-manat-sign::before { + content: "\e1d5"; } + +.fa-map::before { + content: "\f279"; } + +.fa-map-location::before { + content: "\f59f"; } + +.fa-map-marked::before { + content: "\f59f"; } + +.fa-map-location-dot::before { + content: "\f5a0"; } + +.fa-map-marked-alt::before { + content: "\f5a0"; } + +.fa-map-pin::before { + content: "\f276"; } + +.fa-marker::before { + content: "\f5a1"; } + +.fa-mars::before { + content: "\f222"; } + +.fa-mars-and-venus::before { + content: "\f224"; } + +.fa-mars-and-venus-burst::before { + content: "\e523"; } + +.fa-mars-double::before { + content: "\f227"; } + +.fa-mars-stroke::before { + content: "\f229"; } + +.fa-mars-stroke-right::before { + content: "\f22b"; } + +.fa-mars-stroke-h::before { + content: "\f22b"; } + +.fa-mars-stroke-up::before { + content: "\f22a"; } + +.fa-mars-stroke-v::before { + content: "\f22a"; } + +.fa-martini-glass::before { + content: "\f57b"; } + +.fa-glass-martini-alt::before { + content: "\f57b"; } + +.fa-martini-glass-citrus::before { + content: "\f561"; } + +.fa-cocktail::before { + content: "\f561"; } + +.fa-martini-glass-empty::before { + content: "\f000"; } + +.fa-glass-martini::before { + content: "\f000"; } + +.fa-mask::before { + content: "\f6fa"; } + +.fa-mask-face::before { + content: "\e1d7"; } + +.fa-mask-ventilator::before { + content: "\e524"; } + +.fa-masks-theater::before { + content: "\f630"; } + +.fa-theater-masks::before { + content: "\f630"; } + +.fa-mattress-pillow::before { + content: "\e525"; } + +.fa-maximize::before { + content: "\f31e"; } + +.fa-expand-arrows-alt::before { + content: "\f31e"; } + +.fa-medal::before { + content: "\f5a2"; } + +.fa-memory::before { + content: "\f538"; } + +.fa-menorah::before { + content: "\f676"; } + +.fa-mercury::before { + content: "\f223"; } + +.fa-message::before { + content: "\f27a"; } + +.fa-comment-alt::before { + content: "\f27a"; } + +.fa-meteor::before { + content: "\f753"; } + +.fa-microchip::before { + content: "\f2db"; } + +.fa-microphone::before { + content: "\f130"; } + +.fa-microphone-lines::before { + content: "\f3c9"; } + +.fa-microphone-alt::before { + content: "\f3c9"; } + +.fa-microphone-lines-slash::before { + content: "\f539"; } + +.fa-microphone-alt-slash::before { + content: "\f539"; } + +.fa-microphone-slash::before { + content: "\f131"; } + +.fa-microscope::before { + content: "\f610"; } + +.fa-mill-sign::before { + content: "\e1ed"; } + +.fa-minimize::before { + content: "\f78c"; } + +.fa-compress-arrows-alt::before { + content: "\f78c"; } + +.fa-minus::before { + content: "\f068"; } + +.fa-subtract::before { + content: "\f068"; } + +.fa-mitten::before { + content: "\f7b5"; } + +.fa-mobile::before { + content: "\f3ce"; } + +.fa-mobile-android::before { + content: "\f3ce"; } + +.fa-mobile-phone::before { + content: "\f3ce"; } + +.fa-mobile-button::before { + content: "\f10b"; } + +.fa-mobile-retro::before { + content: "\e527"; } + +.fa-mobile-screen::before { + content: "\f3cf"; } + +.fa-mobile-android-alt::before { + content: "\f3cf"; } + +.fa-mobile-screen-button::before { + content: "\f3cd"; } + +.fa-mobile-alt::before { + content: "\f3cd"; } + +.fa-money-bill::before { + content: "\f0d6"; } + +.fa-money-bill-1::before { + content: "\f3d1"; } + +.fa-money-bill-alt::before { + content: "\f3d1"; } + +.fa-money-bill-1-wave::before { + content: "\f53b"; } + +.fa-money-bill-wave-alt::before { + content: "\f53b"; } + +.fa-money-bill-transfer::before { + content: "\e528"; } + +.fa-money-bill-trend-up::before { + content: "\e529"; } + +.fa-money-bill-wave::before { + content: "\f53a"; } + +.fa-money-bill-wheat::before { + content: "\e52a"; } + +.fa-money-bills::before { + content: "\e1f3"; } + +.fa-money-check::before { + content: "\f53c"; } + +.fa-money-check-dollar::before { + content: "\f53d"; } + +.fa-money-check-alt::before { + content: "\f53d"; } + +.fa-monument::before { + content: "\f5a6"; } + +.fa-moon::before { + content: "\f186"; } + +.fa-mortar-pestle::before { + content: "\f5a7"; } + +.fa-mosque::before { + content: "\f678"; } + +.fa-mosquito::before { + content: "\e52b"; } + +.fa-mosquito-net::before { + content: "\e52c"; } + +.fa-motorcycle::before { + content: "\f21c"; } + +.fa-mound::before { + content: "\e52d"; } + +.fa-mountain::before { + content: "\f6fc"; } + +.fa-mountain-city::before { + content: "\e52e"; } + +.fa-mountain-sun::before { + content: "\e52f"; } + +.fa-mug-hot::before { + content: "\f7b6"; } + +.fa-mug-saucer::before { + content: "\f0f4"; } + +.fa-coffee::before { + content: "\f0f4"; } + +.fa-music::before { + content: "\f001"; } + +.fa-n::before { + content: "\4e"; } + +.fa-naira-sign::before { + content: "\e1f6"; } + +.fa-network-wired::before { + content: "\f6ff"; } + +.fa-neuter::before { + content: "\f22c"; } + +.fa-newspaper::before { + content: "\f1ea"; } + +.fa-not-equal::before { + content: "\f53e"; } + +.fa-note-sticky::before { + content: "\f249"; } + +.fa-sticky-note::before { + content: "\f249"; } + +.fa-notes-medical::before { + content: "\f481"; } + +.fa-o::before { + content: "\4f"; } + +.fa-object-group::before { + content: "\f247"; } + +.fa-object-ungroup::before { + content: "\f248"; } + +.fa-oil-can::before { + content: "\f613"; } + +.fa-oil-well::before { + content: "\e532"; } + +.fa-om::before { + content: "\f679"; } + +.fa-otter::before { + content: "\f700"; } + +.fa-outdent::before { + content: "\f03b"; } + +.fa-dedent::before { + content: "\f03b"; } + +.fa-p::before { + content: "\50"; } + +.fa-pager::before { + content: "\f815"; } + +.fa-paint-roller::before { + content: "\f5aa"; } + +.fa-paintbrush::before { + content: "\f1fc"; } + +.fa-paint-brush::before { + content: "\f1fc"; } + +.fa-palette::before { + content: "\f53f"; } + +.fa-pallet::before { + content: "\f482"; } + +.fa-panorama::before { + content: "\e209"; } + +.fa-paper-plane::before { + content: "\f1d8"; } + +.fa-paperclip::before { + content: "\f0c6"; } + +.fa-parachute-box::before { + content: "\f4cd"; } + +.fa-paragraph::before { + content: "\f1dd"; } + +.fa-passport::before { + content: "\f5ab"; } + +.fa-paste::before { + content: "\f0ea"; } + +.fa-file-clipboard::before { + content: "\f0ea"; } + +.fa-pause::before { + content: "\f04c"; } + +.fa-paw::before { + content: "\f1b0"; } + +.fa-peace::before { + content: "\f67c"; } + +.fa-pen::before { + content: "\f304"; } + +.fa-pen-clip::before { + content: "\f305"; } + +.fa-pen-alt::before { + content: "\f305"; } + +.fa-pen-fancy::before { + content: "\f5ac"; } + +.fa-pen-nib::before { + content: "\f5ad"; } + +.fa-pen-ruler::before { + content: "\f5ae"; } + +.fa-pencil-ruler::before { + content: "\f5ae"; } + +.fa-pen-to-square::before { + content: "\f044"; } + +.fa-edit::before { + content: "\f044"; } + +.fa-pencil::before { + content: "\f303"; } + +.fa-pencil-alt::before { + content: "\f303"; } + +.fa-people-arrows-left-right::before { + content: "\e068"; } + +.fa-people-arrows::before { + content: "\e068"; } + +.fa-people-carry-box::before { + content: "\f4ce"; } + +.fa-people-carry::before { + content: "\f4ce"; } + +.fa-people-group::before { + content: "\e533"; } + +.fa-people-line::before { + content: "\e534"; } + +.fa-people-pulling::before { + content: "\e535"; } + +.fa-people-robbery::before { + content: "\e536"; } + +.fa-people-roof::before { + content: "\e537"; } + +.fa-pepper-hot::before { + content: "\f816"; } + +.fa-percent::before { + content: "\25"; } + +.fa-percentage::before { + content: "\25"; } + +.fa-person::before { + content: "\f183"; } + +.fa-male::before { + content: "\f183"; } + +.fa-person-arrow-down-to-line::before { + content: "\e538"; } + +.fa-person-arrow-up-from-line::before { + content: "\e539"; } + +.fa-person-biking::before { + content: "\f84a"; } + +.fa-biking::before { + content: "\f84a"; } + +.fa-person-booth::before { + content: "\f756"; } + +.fa-person-breastfeeding::before { + content: "\e53a"; } + +.fa-person-burst::before { + content: "\e53b"; } + +.fa-person-cane::before { + content: "\e53c"; } + +.fa-person-chalkboard::before { + content: "\e53d"; } + +.fa-person-circle-check::before { + content: "\e53e"; } + +.fa-person-circle-exclamation::before { + content: "\e53f"; } + +.fa-person-circle-minus::before { + content: "\e540"; } + +.fa-person-circle-plus::before { + content: "\e541"; } + +.fa-person-circle-question::before { + content: "\e542"; } + +.fa-person-circle-xmark::before { + content: "\e543"; } + +.fa-person-digging::before { + content: "\f85e"; } + +.fa-digging::before { + content: "\f85e"; } + +.fa-person-dots-from-line::before { + content: "\f470"; } + +.fa-diagnoses::before { + content: "\f470"; } + +.fa-person-dress::before { + content: "\f182"; } + +.fa-female::before { + content: "\f182"; } + +.fa-person-dress-burst::before { + content: "\e544"; } + +.fa-person-drowning::before { + content: "\e545"; } + +.fa-person-falling::before { + content: "\e546"; } + +.fa-person-falling-burst::before { + content: "\e547"; } + +.fa-person-half-dress::before { + content: "\e548"; } + +.fa-person-harassing::before { + content: "\e549"; } + +.fa-person-hiking::before { + content: "\f6ec"; } + +.fa-hiking::before { + content: "\f6ec"; } + +.fa-person-military-pointing::before { + content: "\e54a"; } + +.fa-person-military-rifle::before { + content: "\e54b"; } + +.fa-person-military-to-person::before { + content: "\e54c"; } + +.fa-person-praying::before { + content: "\f683"; } + +.fa-pray::before { + content: "\f683"; } + +.fa-person-pregnant::before { + content: "\e31e"; } + +.fa-person-rays::before { + content: "\e54d"; } + +.fa-person-rifle::before { + content: "\e54e"; } + +.fa-person-running::before { + content: "\f70c"; } + +.fa-running::before { + content: "\f70c"; } + +.fa-person-shelter::before { + content: "\e54f"; } + +.fa-person-skating::before { + content: "\f7c5"; } + +.fa-skating::before { + content: "\f7c5"; } + +.fa-person-skiing::before { + content: "\f7c9"; } + +.fa-skiing::before { + content: "\f7c9"; } + +.fa-person-skiing-nordic::before { + content: "\f7ca"; } + +.fa-skiing-nordic::before { + content: "\f7ca"; } + +.fa-person-snowboarding::before { + content: "\f7ce"; } + +.fa-snowboarding::before { + content: "\f7ce"; } + +.fa-person-swimming::before { + content: "\f5c4"; } + +.fa-swimmer::before { + content: "\f5c4"; } + +.fa-person-through-window::before { + content: "\e433"; } + +.fa-person-walking::before { + content: "\f554"; } + +.fa-walking::before { + content: "\f554"; } + +.fa-person-walking-arrow-loop-left::before { + content: "\e551"; } + +.fa-person-walking-arrow-right::before { + content: "\e552"; } + +.fa-person-walking-dashed-line-arrow-right::before { + content: "\e553"; } + +.fa-person-walking-luggage::before { + content: "\e554"; } + +.fa-person-walking-with-cane::before { + content: "\f29d"; } + +.fa-blind::before { + content: "\f29d"; } + +.fa-peseta-sign::before { + content: "\e221"; } + +.fa-peso-sign::before { + content: "\e222"; } + +.fa-phone::before { + content: "\f095"; } + +.fa-phone-flip::before { + content: "\f879"; } + +.fa-phone-alt::before { + content: "\f879"; } + +.fa-phone-slash::before { + content: "\f3dd"; } + +.fa-phone-volume::before { + content: "\f2a0"; } + +.fa-volume-control-phone::before { + content: "\f2a0"; } + +.fa-photo-film::before { + content: "\f87c"; } + +.fa-photo-video::before { + content: "\f87c"; } + +.fa-piggy-bank::before { + content: "\f4d3"; } + +.fa-pills::before { + content: "\f484"; } + +.fa-pizza-slice::before { + content: "\f818"; } + +.fa-place-of-worship::before { + content: "\f67f"; } + +.fa-plane::before { + content: "\f072"; } + +.fa-plane-arrival::before { + content: "\f5af"; } + +.fa-plane-circle-check::before { + content: "\e555"; } + +.fa-plane-circle-exclamation::before { + content: "\e556"; } + +.fa-plane-circle-xmark::before { + content: "\e557"; } + +.fa-plane-departure::before { + content: "\f5b0"; } + +.fa-plane-lock::before { + content: "\e558"; } + +.fa-plane-slash::before { + content: "\e069"; } + +.fa-plane-up::before { + content: "\e22d"; } + +.fa-plant-wilt::before { + content: "\e43b"; } + +.fa-plate-wheat::before { + content: "\e55a"; } + +.fa-play::before { + content: "\f04b"; } + +.fa-plug::before { + content: "\f1e6"; } + +.fa-plug-circle-bolt::before { + content: "\e55b"; } + +.fa-plug-circle-check::before { + content: "\e55c"; } + +.fa-plug-circle-exclamation::before { + content: "\e55d"; } + +.fa-plug-circle-minus::before { + content: "\e55e"; } + +.fa-plug-circle-plus::before { + content: "\e55f"; } + +.fa-plug-circle-xmark::before { + content: "\e560"; } + +.fa-plus::before { + content: "\2b"; } + +.fa-add::before { + content: "\2b"; } + +.fa-plus-minus::before { + content: "\e43c"; } + +.fa-podcast::before { + content: "\f2ce"; } + +.fa-poo::before { + content: "\f2fe"; } + +.fa-poo-storm::before { + content: "\f75a"; } + +.fa-poo-bolt::before { + content: "\f75a"; } + +.fa-poop::before { + content: "\f619"; } + +.fa-power-off::before { + content: "\f011"; } + +.fa-prescription::before { + content: "\f5b1"; } + +.fa-prescription-bottle::before { + content: "\f485"; } + +.fa-prescription-bottle-medical::before { + content: "\f486"; } + +.fa-prescription-bottle-alt::before { + content: "\f486"; } + +.fa-print::before { + content: "\f02f"; } + +.fa-pump-medical::before { + content: "\e06a"; } + +.fa-pump-soap::before { + content: "\e06b"; } + +.fa-puzzle-piece::before { + content: "\f12e"; } + +.fa-q::before { + content: "\51"; } + +.fa-qrcode::before { + content: "\f029"; } + +.fa-question::before { + content: "\3f"; } + +.fa-quote-left::before { + content: "\f10d"; } + +.fa-quote-left-alt::before { + content: "\f10d"; } + +.fa-quote-right::before { + content: "\f10e"; } + +.fa-quote-right-alt::before { + content: "\f10e"; } + +.fa-r::before { + content: "\52"; } + +.fa-radiation::before { + content: "\f7b9"; } + +.fa-radio::before { + content: "\f8d7"; } + +.fa-rainbow::before { + content: "\f75b"; } + +.fa-ranking-star::before { + content: "\e561"; } + +.fa-receipt::before { + content: "\f543"; } + +.fa-record-vinyl::before { + content: "\f8d9"; } + +.fa-rectangle-ad::before { + content: "\f641"; } + +.fa-ad::before { + content: "\f641"; } + +.fa-rectangle-list::before { + content: "\f022"; } + +.fa-list-alt::before { + content: "\f022"; } + +.fa-rectangle-xmark::before { + content: "\f410"; } + +.fa-rectangle-times::before { + content: "\f410"; } + +.fa-times-rectangle::before { + content: "\f410"; } + +.fa-window-close::before { + content: "\f410"; } + +.fa-recycle::before { + content: "\f1b8"; } + +.fa-registered::before { + content: "\f25d"; } + +.fa-repeat::before { + content: "\f363"; } + +.fa-reply::before { + content: "\f3e5"; } + +.fa-mail-reply::before { + content: "\f3e5"; } + +.fa-reply-all::before { + content: "\f122"; } + +.fa-mail-reply-all::before { + content: "\f122"; } + +.fa-republican::before { + content: "\f75e"; } + +.fa-restroom::before { + content: "\f7bd"; } + +.fa-retweet::before { + content: "\f079"; } + +.fa-ribbon::before { + content: "\f4d6"; } + +.fa-right-from-bracket::before { + content: "\f2f5"; } + +.fa-sign-out-alt::before { + content: "\f2f5"; } + +.fa-right-left::before { + content: "\f362"; } + +.fa-exchange-alt::before { + content: "\f362"; } + +.fa-right-long::before { + content: "\f30b"; } + +.fa-long-arrow-alt-right::before { + content: "\f30b"; } + +.fa-right-to-bracket::before { + content: "\f2f6"; } + +.fa-sign-in-alt::before { + content: "\f2f6"; } + +.fa-ring::before { + content: "\f70b"; } + +.fa-road::before { + content: "\f018"; } + +.fa-road-barrier::before { + content: "\e562"; } + +.fa-road-bridge::before { + content: "\e563"; } + +.fa-road-circle-check::before { + content: "\e564"; } + +.fa-road-circle-exclamation::before { + content: "\e565"; } + +.fa-road-circle-xmark::before { + content: "\e566"; } + +.fa-road-lock::before { + content: "\e567"; } + +.fa-road-spikes::before { + content: "\e568"; } + +.fa-robot::before { + content: "\f544"; } + +.fa-rocket::before { + content: "\f135"; } + +.fa-rotate::before { + content: "\f2f1"; } + +.fa-sync-alt::before { + content: "\f2f1"; } + +.fa-rotate-left::before { + content: "\f2ea"; } + +.fa-rotate-back::before { + content: "\f2ea"; } + +.fa-rotate-backward::before { + content: "\f2ea"; } + +.fa-undo-alt::before { + content: "\f2ea"; } + +.fa-rotate-right::before { + content: "\f2f9"; } + +.fa-redo-alt::before { + content: "\f2f9"; } + +.fa-rotate-forward::before { + content: "\f2f9"; } + +.fa-route::before { + content: "\f4d7"; } + +.fa-rss::before { + content: "\f09e"; } + +.fa-feed::before { + content: "\f09e"; } + +.fa-ruble-sign::before { + content: "\f158"; } + +.fa-rouble::before { + content: "\f158"; } + +.fa-rub::before { + content: "\f158"; } + +.fa-ruble::before { + content: "\f158"; } + +.fa-rug::before { + content: "\e569"; } + +.fa-ruler::before { + content: "\f545"; } + +.fa-ruler-combined::before { + content: "\f546"; } + +.fa-ruler-horizontal::before { + content: "\f547"; } + +.fa-ruler-vertical::before { + content: "\f548"; } + +.fa-rupee-sign::before { + content: "\f156"; } + +.fa-rupee::before { + content: "\f156"; } + +.fa-rupiah-sign::before { + content: "\e23d"; } + +.fa-s::before { + content: "\53"; } + +.fa-sack-dollar::before { + content: "\f81d"; } + +.fa-sack-xmark::before { + content: "\e56a"; } + +.fa-sailboat::before { + content: "\e445"; } + +.fa-satellite::before { + content: "\f7bf"; } + +.fa-satellite-dish::before { + content: "\f7c0"; } + +.fa-scale-balanced::before { + content: "\f24e"; } + +.fa-balance-scale::before { + content: "\f24e"; } + +.fa-scale-unbalanced::before { + content: "\f515"; } + +.fa-balance-scale-left::before { + content: "\f515"; } + +.fa-scale-unbalanced-flip::before { + content: "\f516"; } + +.fa-balance-scale-right::before { + content: "\f516"; } + +.fa-school::before { + content: "\f549"; } + +.fa-school-circle-check::before { + content: "\e56b"; } + +.fa-school-circle-exclamation::before { + content: "\e56c"; } + +.fa-school-circle-xmark::before { + content: "\e56d"; } + +.fa-school-flag::before { + content: "\e56e"; } + +.fa-school-lock::before { + content: "\e56f"; } + +.fa-scissors::before { + content: "\f0c4"; } + +.fa-cut::before { + content: "\f0c4"; } + +.fa-screwdriver::before { + content: "\f54a"; } + +.fa-screwdriver-wrench::before { + content: "\f7d9"; } + +.fa-tools::before { + content: "\f7d9"; } + +.fa-scroll::before { + content: "\f70e"; } + +.fa-scroll-torah::before { + content: "\f6a0"; } + +.fa-torah::before { + content: "\f6a0"; } + +.fa-sd-card::before { + content: "\f7c2"; } + +.fa-section::before { + content: "\e447"; } + +.fa-seedling::before { + content: "\f4d8"; } + +.fa-sprout::before { + content: "\f4d8"; } + +.fa-server::before { + content: "\f233"; } + +.fa-shapes::before { + content: "\f61f"; } + +.fa-triangle-circle-square::before { + content: "\f61f"; } + +.fa-share::before { + content: "\f064"; } + +.fa-arrow-turn-right::before { + content: "\f064"; } + +.fa-mail-forward::before { + content: "\f064"; } + +.fa-share-from-square::before { + content: "\f14d"; } + +.fa-share-square::before { + content: "\f14d"; } + +.fa-share-nodes::before { + content: "\f1e0"; } + +.fa-share-alt::before { + content: "\f1e0"; } + +.fa-sheet-plastic::before { + content: "\e571"; } + +.fa-shekel-sign::before { + content: "\f20b"; } + +.fa-ils::before { + content: "\f20b"; } + +.fa-shekel::before { + content: "\f20b"; } + +.fa-sheqel::before { + content: "\f20b"; } + +.fa-sheqel-sign::before { + content: "\f20b"; } + +.fa-shield::before { + content: "\f132"; } + +.fa-shield-blank::before { + content: "\f132"; } + +.fa-shield-cat::before { + content: "\e572"; } + +.fa-shield-dog::before { + content: "\e573"; } + +.fa-shield-halved::before { + content: "\f3ed"; } + +.fa-shield-alt::before { + content: "\f3ed"; } + +.fa-shield-heart::before { + content: "\e574"; } + +.fa-shield-virus::before { + content: "\e06c"; } + +.fa-ship::before { + content: "\f21a"; } + +.fa-shirt::before { + content: "\f553"; } + +.fa-t-shirt::before { + content: "\f553"; } + +.fa-tshirt::before { + content: "\f553"; } + +.fa-shoe-prints::before { + content: "\f54b"; } + +.fa-shop::before { + content: "\f54f"; } + +.fa-store-alt::before { + content: "\f54f"; } + +.fa-shop-lock::before { + content: "\e4a5"; } + +.fa-shop-slash::before { + content: "\e070"; } + +.fa-store-alt-slash::before { + content: "\e070"; } + +.fa-shower::before { + content: "\f2cc"; } + +.fa-shrimp::before { + content: "\e448"; } + +.fa-shuffle::before { + content: "\f074"; } + +.fa-random::before { + content: "\f074"; } + +.fa-shuttle-space::before { + content: "\f197"; } + +.fa-space-shuttle::before { + content: "\f197"; } + +.fa-sign-hanging::before { + content: "\f4d9"; } + +.fa-sign::before { + content: "\f4d9"; } + +.fa-signal::before { + content: "\f012"; } + +.fa-signal-5::before { + content: "\f012"; } + +.fa-signal-perfect::before { + content: "\f012"; } + +.fa-signature::before { + content: "\f5b7"; } + +.fa-signs-post::before { + content: "\f277"; } + +.fa-map-signs::before { + content: "\f277"; } + +.fa-sim-card::before { + content: "\f7c4"; } + +.fa-sink::before { + content: "\e06d"; } + +.fa-sitemap::before { + content: "\f0e8"; } + +.fa-skull::before { + content: "\f54c"; } + +.fa-skull-crossbones::before { + content: "\f714"; } + +.fa-slash::before { + content: "\f715"; } + +.fa-sleigh::before { + content: "\f7cc"; } + +.fa-sliders::before { + content: "\f1de"; } + +.fa-sliders-h::before { + content: "\f1de"; } + +.fa-smog::before { + content: "\f75f"; } + +.fa-smoking::before { + content: "\f48d"; } + +.fa-snowflake::before { + content: "\f2dc"; } + +.fa-snowman::before { + content: "\f7d0"; } + +.fa-snowplow::before { + content: "\f7d2"; } + +.fa-soap::before { + content: "\e06e"; } + +.fa-socks::before { + content: "\f696"; } + +.fa-solar-panel::before { + content: "\f5ba"; } + +.fa-sort::before { + content: "\f0dc"; } + +.fa-unsorted::before { + content: "\f0dc"; } + +.fa-sort-down::before { + content: "\f0dd"; } + +.fa-sort-desc::before { + content: "\f0dd"; } + +.fa-sort-up::before { + content: "\f0de"; } + +.fa-sort-asc::before { + content: "\f0de"; } + +.fa-spa::before { + content: "\f5bb"; } + +.fa-spaghetti-monster-flying::before { + content: "\f67b"; } + +.fa-pastafarianism::before { + content: "\f67b"; } + +.fa-spell-check::before { + content: "\f891"; } + +.fa-spider::before { + content: "\f717"; } + +.fa-spinner::before { + content: "\f110"; } + +.fa-splotch::before { + content: "\f5bc"; } + +.fa-spoon::before { + content: "\f2e5"; } + +.fa-utensil-spoon::before { + content: "\f2e5"; } + +.fa-spray-can::before { + content: "\f5bd"; } + +.fa-spray-can-sparkles::before { + content: "\f5d0"; } + +.fa-air-freshener::before { + content: "\f5d0"; } + +.fa-square::before { + content: "\f0c8"; } + +.fa-square-arrow-up-right::before { + content: "\f14c"; } + +.fa-external-link-square::before { + content: "\f14c"; } + +.fa-square-caret-down::before { + content: "\f150"; } + +.fa-caret-square-down::before { + content: "\f150"; } + +.fa-square-caret-left::before { + content: "\f191"; } + +.fa-caret-square-left::before { + content: "\f191"; } + +.fa-square-caret-right::before { + content: "\f152"; } + +.fa-caret-square-right::before { + content: "\f152"; } + +.fa-square-caret-up::before { + content: "\f151"; } + +.fa-caret-square-up::before { + content: "\f151"; } + +.fa-square-check::before { + content: "\f14a"; } + +.fa-check-square::before { + content: "\f14a"; } + +.fa-square-envelope::before { + content: "\f199"; } + +.fa-envelope-square::before { + content: "\f199"; } + +.fa-square-full::before { + content: "\f45c"; } + +.fa-square-h::before { + content: "\f0fd"; } + +.fa-h-square::before { + content: "\f0fd"; } + +.fa-square-minus::before { + content: "\f146"; } + +.fa-minus-square::before { + content: "\f146"; } + +.fa-square-nfi::before { + content: "\e576"; } + +.fa-square-parking::before { + content: "\f540"; } + +.fa-parking::before { + content: "\f540"; } + +.fa-square-pen::before { + content: "\f14b"; } + +.fa-pen-square::before { + content: "\f14b"; } + +.fa-pencil-square::before { + content: "\f14b"; } + +.fa-square-person-confined::before { + content: "\e577"; } + +.fa-square-phone::before { + content: "\f098"; } + +.fa-phone-square::before { + content: "\f098"; } + +.fa-square-phone-flip::before { + content: "\f87b"; } + +.fa-phone-square-alt::before { + content: "\f87b"; } + +.fa-square-plus::before { + content: "\f0fe"; } + +.fa-plus-square::before { + content: "\f0fe"; } + +.fa-square-poll-horizontal::before { + content: "\f682"; } + +.fa-poll-h::before { + content: "\f682"; } + +.fa-square-poll-vertical::before { + content: "\f681"; } + +.fa-poll::before { + content: "\f681"; } + +.fa-square-root-variable::before { + content: "\f698"; } + +.fa-square-root-alt::before { + content: "\f698"; } + +.fa-square-rss::before { + content: "\f143"; } + +.fa-rss-square::before { + content: "\f143"; } + +.fa-square-share-nodes::before { + content: "\f1e1"; } + +.fa-share-alt-square::before { + content: "\f1e1"; } + +.fa-square-up-right::before { + content: "\f360"; } + +.fa-external-link-square-alt::before { + content: "\f360"; } + +.fa-square-virus::before { + content: "\e578"; } + +.fa-square-xmark::before { + content: "\f2d3"; } + +.fa-times-square::before { + content: "\f2d3"; } + +.fa-xmark-square::before { + content: "\f2d3"; } + +.fa-staff-aesculapius::before { + content: "\e579"; } + +.fa-rod-asclepius::before { + content: "\e579"; } + +.fa-rod-snake::before { + content: "\e579"; } + +.fa-staff-snake::before { + content: "\e579"; } + +.fa-stairs::before { + content: "\e289"; } + +.fa-stamp::before { + content: "\f5bf"; } + +.fa-star::before { + content: "\f005"; } + +.fa-star-and-crescent::before { + content: "\f699"; } + +.fa-star-half::before { + content: "\f089"; } + +.fa-star-half-stroke::before { + content: "\f5c0"; } + +.fa-star-half-alt::before { + content: "\f5c0"; } + +.fa-star-of-david::before { + content: "\f69a"; } + +.fa-star-of-life::before { + content: "\f621"; } + +.fa-sterling-sign::before { + content: "\f154"; } + +.fa-gbp::before { + content: "\f154"; } + +.fa-pound-sign::before { + content: "\f154"; } + +.fa-stethoscope::before { + content: "\f0f1"; } + +.fa-stop::before { + content: "\f04d"; } + +.fa-stopwatch::before { + content: "\f2f2"; } + +.fa-stopwatch-20::before { + content: "\e06f"; } + +.fa-store::before { + content: "\f54e"; } + +.fa-store-slash::before { + content: "\e071"; } + +.fa-street-view::before { + content: "\f21d"; } + +.fa-strikethrough::before { + content: "\f0cc"; } + +.fa-stroopwafel::before { + content: "\f551"; } + +.fa-subscript::before { + content: "\f12c"; } + +.fa-suitcase::before { + content: "\f0f2"; } + +.fa-suitcase-medical::before { + content: "\f0fa"; } + +.fa-medkit::before { + content: "\f0fa"; } + +.fa-suitcase-rolling::before { + content: "\f5c1"; } + +.fa-sun::before { + content: "\f185"; } + +.fa-sun-plant-wilt::before { + content: "\e57a"; } + +.fa-superscript::before { + content: "\f12b"; } + +.fa-swatchbook::before { + content: "\f5c3"; } + +.fa-synagogue::before { + content: "\f69b"; } + +.fa-syringe::before { + content: "\f48e"; } + +.fa-t::before { + content: "\54"; } + +.fa-table::before { + content: "\f0ce"; } + +.fa-table-cells::before { + content: "\f00a"; } + +.fa-th::before { + content: "\f00a"; } + +.fa-table-cells-large::before { + content: "\f009"; } + +.fa-th-large::before { + content: "\f009"; } + +.fa-table-columns::before { + content: "\f0db"; } + +.fa-columns::before { + content: "\f0db"; } + +.fa-table-list::before { + content: "\f00b"; } + +.fa-th-list::before { + content: "\f00b"; } + +.fa-table-tennis-paddle-ball::before { + content: "\f45d"; } + +.fa-ping-pong-paddle-ball::before { + content: "\f45d"; } + +.fa-table-tennis::before { + content: "\f45d"; } + +.fa-tablet::before { + content: "\f3fb"; } + +.fa-tablet-android::before { + content: "\f3fb"; } + +.fa-tablet-button::before { + content: "\f10a"; } + +.fa-tablet-screen-button::before { + content: "\f3fa"; } + +.fa-tablet-alt::before { + content: "\f3fa"; } + +.fa-tablets::before { + content: "\f490"; } + +.fa-tachograph-digital::before { + content: "\f566"; } + +.fa-digital-tachograph::before { + content: "\f566"; } + +.fa-tag::before { + content: "\f02b"; } + +.fa-tags::before { + content: "\f02c"; } + +.fa-tape::before { + content: "\f4db"; } + +.fa-tarp::before { + content: "\e57b"; } + +.fa-tarp-droplet::before { + content: "\e57c"; } + +.fa-taxi::before { + content: "\f1ba"; } + +.fa-cab::before { + content: "\f1ba"; } + +.fa-teeth::before { + content: "\f62e"; } + +.fa-teeth-open::before { + content: "\f62f"; } + +.fa-temperature-arrow-down::before { + content: "\e03f"; } + +.fa-temperature-down::before { + content: "\e03f"; } + +.fa-temperature-arrow-up::before { + content: "\e040"; } + +.fa-temperature-up::before { + content: "\e040"; } + +.fa-temperature-empty::before { + content: "\f2cb"; } + +.fa-temperature-0::before { + content: "\f2cb"; } + +.fa-thermometer-0::before { + content: "\f2cb"; } + +.fa-thermometer-empty::before { + content: "\f2cb"; } + +.fa-temperature-full::before { + content: "\f2c7"; } + +.fa-temperature-4::before { + content: "\f2c7"; } + +.fa-thermometer-4::before { + content: "\f2c7"; } + +.fa-thermometer-full::before { + content: "\f2c7"; } + +.fa-temperature-half::before { + content: "\f2c9"; } + +.fa-temperature-2::before { + content: "\f2c9"; } + +.fa-thermometer-2::before { + content: "\f2c9"; } + +.fa-thermometer-half::before { + content: "\f2c9"; } + +.fa-temperature-high::before { + content: "\f769"; } + +.fa-temperature-low::before { + content: "\f76b"; } + +.fa-temperature-quarter::before { + content: "\f2ca"; } + +.fa-temperature-1::before { + content: "\f2ca"; } + +.fa-thermometer-1::before { + content: "\f2ca"; } + +.fa-thermometer-quarter::before { + content: "\f2ca"; } + +.fa-temperature-three-quarters::before { + content: "\f2c8"; } + +.fa-temperature-3::before { + content: "\f2c8"; } + +.fa-thermometer-3::before { + content: "\f2c8"; } + +.fa-thermometer-three-quarters::before { + content: "\f2c8"; } + +.fa-tenge-sign::before { + content: "\f7d7"; } + +.fa-tenge::before { + content: "\f7d7"; } + +.fa-tent::before { + content: "\e57d"; } + +.fa-tent-arrow-down-to-line::before { + content: "\e57e"; } + +.fa-tent-arrow-left-right::before { + content: "\e57f"; } + +.fa-tent-arrow-turn-left::before { + content: "\e580"; } + +.fa-tent-arrows-down::before { + content: "\e581"; } + +.fa-tents::before { + content: "\e582"; } + +.fa-terminal::before { + content: "\f120"; } + +.fa-text-height::before { + content: "\f034"; } + +.fa-text-slash::before { + content: "\f87d"; } + +.fa-remove-format::before { + content: "\f87d"; } + +.fa-text-width::before { + content: "\f035"; } + +.fa-thermometer::before { + content: "\f491"; } + +.fa-thumbs-down::before { + content: "\f165"; } + +.fa-thumbs-up::before { + content: "\f164"; } + +.fa-thumbtack::before { + content: "\f08d"; } + +.fa-thumb-tack::before { + content: "\f08d"; } + +.fa-ticket::before { + content: "\f145"; } + +.fa-ticket-simple::before { + content: "\f3ff"; } + +.fa-ticket-alt::before { + content: "\f3ff"; } + +.fa-timeline::before { + content: "\e29c"; } + +.fa-toggle-off::before { + content: "\f204"; } + +.fa-toggle-on::before { + content: "\f205"; } + +.fa-toilet::before { + content: "\f7d8"; } + +.fa-toilet-paper::before { + content: "\f71e"; } + +.fa-toilet-paper-slash::before { + content: "\e072"; } + +.fa-toilet-portable::before { + content: "\e583"; } + +.fa-toilets-portable::before { + content: "\e584"; } + +.fa-toolbox::before { + content: "\f552"; } + +.fa-tooth::before { + content: "\f5c9"; } + +.fa-torii-gate::before { + content: "\f6a1"; } + +.fa-tornado::before { + content: "\f76f"; } + +.fa-tower-broadcast::before { + content: "\f519"; } + +.fa-broadcast-tower::before { + content: "\f519"; } + +.fa-tower-cell::before { + content: "\e585"; } + +.fa-tower-observation::before { + content: "\e586"; } + +.fa-tractor::before { + content: "\f722"; } + +.fa-trademark::before { + content: "\f25c"; } + +.fa-traffic-light::before { + content: "\f637"; } + +.fa-trailer::before { + content: "\e041"; } + +.fa-train::before { + content: "\f238"; } + +.fa-train-subway::before { + content: "\f239"; } + +.fa-subway::before { + content: "\f239"; } + +.fa-train-tram::before { + content: "\f7da"; } + +.fa-tram::before { + content: "\f7da"; } + +.fa-transgender::before { + content: "\f225"; } + +.fa-transgender-alt::before { + content: "\f225"; } + +.fa-trash::before { + content: "\f1f8"; } + +.fa-trash-arrow-up::before { + content: "\f829"; } + +.fa-trash-restore::before { + content: "\f829"; } + +.fa-trash-can::before { + content: "\f2ed"; } + +.fa-trash-alt::before { + content: "\f2ed"; } + +.fa-trash-can-arrow-up::before { + content: "\f82a"; } + +.fa-trash-restore-alt::before { + content: "\f82a"; } + +.fa-tree::before { + content: "\f1bb"; } + +.fa-tree-city::before { + content: "\e587"; } + +.fa-triangle-exclamation::before { + content: "\f071"; } + +.fa-exclamation-triangle::before { + content: "\f071"; } + +.fa-warning::before { + content: "\f071"; } + +.fa-trophy::before { + content: "\f091"; } + +.fa-trowel::before { + content: "\e589"; } + +.fa-trowel-bricks::before { + content: "\e58a"; } + +.fa-truck::before { + content: "\f0d1"; } + +.fa-truck-arrow-right::before { + content: "\e58b"; } + +.fa-truck-droplet::before { + content: "\e58c"; } + +.fa-truck-fast::before { + content: "\f48b"; } + +.fa-shipping-fast::before { + content: "\f48b"; } + +.fa-truck-field::before { + content: "\e58d"; } + +.fa-truck-field-un::before { + content: "\e58e"; } + +.fa-truck-front::before { + content: "\e2b7"; } + +.fa-truck-medical::before { + content: "\f0f9"; } + +.fa-ambulance::before { + content: "\f0f9"; } + +.fa-truck-monster::before { + content: "\f63b"; } + +.fa-truck-moving::before { + content: "\f4df"; } + +.fa-truck-pickup::before { + content: "\f63c"; } + +.fa-truck-plane::before { + content: "\e58f"; } + +.fa-truck-ramp-box::before { + content: "\f4de"; } + +.fa-truck-loading::before { + content: "\f4de"; } + +.fa-tty::before { + content: "\f1e4"; } + +.fa-teletype::before { + content: "\f1e4"; } + +.fa-turkish-lira-sign::before { + content: "\e2bb"; } + +.fa-try::before { + content: "\e2bb"; } + +.fa-turkish-lira::before { + content: "\e2bb"; } + +.fa-turn-down::before { + content: "\f3be"; } + +.fa-level-down-alt::before { + content: "\f3be"; } + +.fa-turn-up::before { + content: "\f3bf"; } + +.fa-level-up-alt::before { + content: "\f3bf"; } + +.fa-tv::before { + content: "\f26c"; } + +.fa-television::before { + content: "\f26c"; } + +.fa-tv-alt::before { + content: "\f26c"; } + +.fa-u::before { + content: "\55"; } + +.fa-umbrella::before { + content: "\f0e9"; } + +.fa-umbrella-beach::before { + content: "\f5ca"; } + +.fa-underline::before { + content: "\f0cd"; } + +.fa-universal-access::before { + content: "\f29a"; } + +.fa-unlock::before { + content: "\f09c"; } + +.fa-unlock-keyhole::before { + content: "\f13e"; } + +.fa-unlock-alt::before { + content: "\f13e"; } + +.fa-up-down::before { + content: "\f338"; } + +.fa-arrows-alt-v::before { + content: "\f338"; } + +.fa-up-down-left-right::before { + content: "\f0b2"; } + +.fa-arrows-alt::before { + content: "\f0b2"; } + +.fa-up-long::before { + content: "\f30c"; } + +.fa-long-arrow-alt-up::before { + content: "\f30c"; } + +.fa-up-right-and-down-left-from-center::before { + content: "\f424"; } + +.fa-expand-alt::before { + content: "\f424"; } + +.fa-up-right-from-square::before { + content: "\f35d"; } + +.fa-external-link-alt::before { + content: "\f35d"; } + +.fa-upload::before { + content: "\f093"; } + +.fa-user::before { + content: "\f007"; } + +.fa-user-astronaut::before { + content: "\f4fb"; } + +.fa-user-check::before { + content: "\f4fc"; } + +.fa-user-clock::before { + content: "\f4fd"; } + +.fa-user-doctor::before { + content: "\f0f0"; } + +.fa-user-md::before { + content: "\f0f0"; } + +.fa-user-gear::before { + content: "\f4fe"; } + +.fa-user-cog::before { + content: "\f4fe"; } + +.fa-user-graduate::before { + content: "\f501"; } + +.fa-user-group::before { + content: "\f500"; } + +.fa-user-friends::before { + content: "\f500"; } + +.fa-user-injured::before { + content: "\f728"; } + +.fa-user-large::before { + content: "\f406"; } + +.fa-user-alt::before { + content: "\f406"; } + +.fa-user-large-slash::before { + content: "\f4fa"; } + +.fa-user-alt-slash::before { + content: "\f4fa"; } + +.fa-user-lock::before { + content: "\f502"; } + +.fa-user-minus::before { + content: "\f503"; } + +.fa-user-ninja::before { + content: "\f504"; } + +.fa-user-nurse::before { + content: "\f82f"; } + +.fa-user-pen::before { + content: "\f4ff"; } + +.fa-user-edit::before { + content: "\f4ff"; } + +.fa-user-plus::before { + content: "\f234"; } + +.fa-user-secret::before { + content: "\f21b"; } + +.fa-user-shield::before { + content: "\f505"; } + +.fa-user-slash::before { + content: "\f506"; } + +.fa-user-tag::before { + content: "\f507"; } + +.fa-user-tie::before { + content: "\f508"; } + +.fa-user-xmark::before { + content: "\f235"; } + +.fa-user-times::before { + content: "\f235"; } + +.fa-users::before { + content: "\f0c0"; } + +.fa-users-between-lines::before { + content: "\e591"; } + +.fa-users-gear::before { + content: "\f509"; } + +.fa-users-cog::before { + content: "\f509"; } + +.fa-users-line::before { + content: "\e592"; } + +.fa-users-rays::before { + content: "\e593"; } + +.fa-users-rectangle::before { + content: "\e594"; } + +.fa-users-slash::before { + content: "\e073"; } + +.fa-users-viewfinder::before { + content: "\e595"; } + +.fa-utensils::before { + content: "\f2e7"; } + +.fa-cutlery::before { + content: "\f2e7"; } + +.fa-v::before { + content: "\56"; } + +.fa-van-shuttle::before { + content: "\f5b6"; } + +.fa-shuttle-van::before { + content: "\f5b6"; } + +.fa-vault::before { + content: "\e2c5"; } + +.fa-vector-square::before { + content: "\f5cb"; } + +.fa-venus::before { + content: "\f221"; } + +.fa-venus-double::before { + content: "\f226"; } + +.fa-venus-mars::before { + content: "\f228"; } + +.fa-vest::before { + content: "\e085"; } + +.fa-vest-patches::before { + content: "\e086"; } + +.fa-vial::before { + content: "\f492"; } + +.fa-vial-circle-check::before { + content: "\e596"; } + +.fa-vial-virus::before { + content: "\e597"; } + +.fa-vials::before { + content: "\f493"; } + +.fa-video::before { + content: "\f03d"; } + +.fa-video-camera::before { + content: "\f03d"; } + +.fa-video-slash::before { + content: "\f4e2"; } + +.fa-vihara::before { + content: "\f6a7"; } + +.fa-virus::before { + content: "\e074"; } + +.fa-virus-covid::before { + content: "\e4a8"; } + +.fa-virus-covid-slash::before { + content: "\e4a9"; } + +.fa-virus-slash::before { + content: "\e075"; } + +.fa-viruses::before { + content: "\e076"; } + +.fa-voicemail::before { + content: "\f897"; } + +.fa-volcano::before { + content: "\f770"; } + +.fa-volleyball::before { + content: "\f45f"; } + +.fa-volleyball-ball::before { + content: "\f45f"; } + +.fa-volume-high::before { + content: "\f028"; } + +.fa-volume-up::before { + content: "\f028"; } + +.fa-volume-low::before { + content: "\f027"; } + +.fa-volume-down::before { + content: "\f027"; } + +.fa-volume-off::before { + content: "\f026"; } + +.fa-volume-xmark::before { + content: "\f6a9"; } + +.fa-volume-mute::before { + content: "\f6a9"; } + +.fa-volume-times::before { + content: "\f6a9"; } + +.fa-vr-cardboard::before { + content: "\f729"; } + +.fa-w::before { + content: "\57"; } + +.fa-walkie-talkie::before { + content: "\f8ef"; } + +.fa-wallet::before { + content: "\f555"; } + +.fa-wand-magic::before { + content: "\f0d0"; } + +.fa-magic::before { + content: "\f0d0"; } + +.fa-wand-magic-sparkles::before { + content: "\e2ca"; } + +.fa-magic-wand-sparkles::before { + content: "\e2ca"; } + +.fa-wand-sparkles::before { + content: "\f72b"; } + +.fa-warehouse::before { + content: "\f494"; } + +.fa-water::before { + content: "\f773"; } + +.fa-water-ladder::before { + content: "\f5c5"; } + +.fa-ladder-water::before { + content: "\f5c5"; } + +.fa-swimming-pool::before { + content: "\f5c5"; } + +.fa-wave-square::before { + content: "\f83e"; } + +.fa-weight-hanging::before { + content: "\f5cd"; } + +.fa-weight-scale::before { + content: "\f496"; } + +.fa-weight::before { + content: "\f496"; } + +.fa-wheat-awn::before { + content: "\e2cd"; } + +.fa-wheat-alt::before { + content: "\e2cd"; } + +.fa-wheat-awn-circle-exclamation::before { + content: "\e598"; } + +.fa-wheelchair::before { + content: "\f193"; } + +.fa-wheelchair-move::before { + content: "\e2ce"; } + +.fa-wheelchair-alt::before { + content: "\e2ce"; } + +.fa-whiskey-glass::before { + content: "\f7a0"; } + +.fa-glass-whiskey::before { + content: "\f7a0"; } + +.fa-wifi::before { + content: "\f1eb"; } + +.fa-wifi-3::before { + content: "\f1eb"; } + +.fa-wifi-strong::before { + content: "\f1eb"; } + +.fa-wind::before { + content: "\f72e"; } + +.fa-window-maximize::before { + content: "\f2d0"; } + +.fa-window-minimize::before { + content: "\f2d1"; } + +.fa-window-restore::before { + content: "\f2d2"; } + +.fa-wine-bottle::before { + content: "\f72f"; } + +.fa-wine-glass::before { + content: "\f4e3"; } + +.fa-wine-glass-empty::before { + content: "\f5ce"; } + +.fa-wine-glass-alt::before { + content: "\f5ce"; } + +.fa-won-sign::before { + content: "\f159"; } + +.fa-krw::before { + content: "\f159"; } + +.fa-won::before { + content: "\f159"; } + +.fa-worm::before { + content: "\e599"; } + +.fa-wrench::before { + content: "\f0ad"; } + +.fa-x::before { + content: "\58"; } + +.fa-x-ray::before { + content: "\f497"; } + +.fa-xmark::before { + content: "\f00d"; } + +.fa-close::before { + content: "\f00d"; } + +.fa-multiply::before { + content: "\f00d"; } + +.fa-remove::before { + content: "\f00d"; } + +.fa-times::before { + content: "\f00d"; } + +.fa-xmarks-lines::before { + content: "\e59a"; } + +.fa-y::before { + content: "\59"; } + +.fa-yen-sign::before { + content: "\f157"; } + +.fa-cny::before { + content: "\f157"; } + +.fa-jpy::before { + content: "\f157"; } + +.fa-rmb::before { + content: "\f157"; } + +.fa-yen::before { + content: "\f157"; } + +.fa-yin-yang::before { + content: "\f6ad"; } + +.fa-z::before { + content: "\5a"; } + +.sr-only, +.fa-sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; } + +.sr-only-focusable:not(:focus), +.fa-sr-only-focusable:not(:focus) { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; } +:root, :host { + --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands"; } + +@font-face { + font-family: 'Font Awesome 6 Brands'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +.fab, +.fa-brands { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa-42-group:before { + content: "\e080"; } + +.fa-innosoft:before { + content: "\e080"; } + +.fa-500px:before { + content: "\f26e"; } + +.fa-accessible-icon:before { + content: "\f368"; } + +.fa-accusoft:before { + content: "\f369"; } + +.fa-adn:before { + content: "\f170"; } + +.fa-adversal:before { + content: "\f36a"; } + +.fa-affiliatetheme:before { + content: "\f36b"; } + +.fa-airbnb:before { + content: "\f834"; } + +.fa-algolia:before { + content: "\f36c"; } + +.fa-alipay:before { + content: "\f642"; } + +.fa-amazon:before { + content: "\f270"; } + +.fa-amazon-pay:before { + content: "\f42c"; } + +.fa-amilia:before { + content: "\f36d"; } + +.fa-android:before { + content: "\f17b"; } + +.fa-angellist:before { + content: "\f209"; } + +.fa-angrycreative:before { + content: "\f36e"; } + +.fa-angular:before { + content: "\f420"; } + +.fa-app-store:before { + content: "\f36f"; } + +.fa-app-store-ios:before { + content: "\f370"; } + +.fa-apper:before { + content: "\f371"; } + +.fa-apple:before { + content: "\f179"; } + +.fa-apple-pay:before { + content: "\f415"; } + +.fa-artstation:before { + content: "\f77a"; } + +.fa-asymmetrik:before { + content: "\f372"; } + +.fa-atlassian:before { + content: "\f77b"; } + +.fa-audible:before { + content: "\f373"; } + +.fa-autoprefixer:before { + content: "\f41c"; } + +.fa-avianex:before { + content: "\f374"; } + +.fa-aviato:before { + content: "\f421"; } + +.fa-aws:before { + content: "\f375"; } + +.fa-bandcamp:before { + content: "\f2d5"; } + +.fa-battle-net:before { + content: "\f835"; } + +.fa-behance:before { + content: "\f1b4"; } + +.fa-behance-square:before { + content: "\f1b5"; } + +.fa-bilibili:before { + content: "\e3d9"; } + +.fa-bimobject:before { + content: "\f378"; } + +.fa-bitbucket:before { + content: "\f171"; } + +.fa-bitcoin:before { + content: "\f379"; } + +.fa-bity:before { + content: "\f37a"; } + +.fa-black-tie:before { + content: "\f27e"; } + +.fa-blackberry:before { + content: "\f37b"; } + +.fa-blogger:before { + content: "\f37c"; } + +.fa-blogger-b:before { + content: "\f37d"; } + +.fa-bluetooth:before { + content: "\f293"; } + +.fa-bluetooth-b:before { + content: "\f294"; } + +.fa-bootstrap:before { + content: "\f836"; } + +.fa-bots:before { + content: "\e340"; } + +.fa-btc:before { + content: "\f15a"; } + +.fa-buffer:before { + content: "\f837"; } + +.fa-buromobelexperte:before { + content: "\f37f"; } + +.fa-buy-n-large:before { + content: "\f8a6"; } + +.fa-buysellads:before { + content: "\f20d"; } + +.fa-canadian-maple-leaf:before { + content: "\f785"; } + +.fa-cc-amazon-pay:before { + content: "\f42d"; } + +.fa-cc-amex:before { + content: "\f1f3"; } + +.fa-cc-apple-pay:before { + content: "\f416"; } + +.fa-cc-diners-club:before { + content: "\f24c"; } + +.fa-cc-discover:before { + content: "\f1f2"; } + +.fa-cc-jcb:before { + content: "\f24b"; } + +.fa-cc-mastercard:before { + content: "\f1f1"; } + +.fa-cc-paypal:before { + content: "\f1f4"; } + +.fa-cc-stripe:before { + content: "\f1f5"; } + +.fa-cc-visa:before { + content: "\f1f0"; } + +.fa-centercode:before { + content: "\f380"; } + +.fa-centos:before { + content: "\f789"; } + +.fa-chrome:before { + content: "\f268"; } + +.fa-chromecast:before { + content: "\f838"; } + +.fa-cloudflare:before { + content: "\e07d"; } + +.fa-cloudscale:before { + content: "\f383"; } + +.fa-cloudsmith:before { + content: "\f384"; } + +.fa-cloudversify:before { + content: "\f385"; } + +.fa-cmplid:before { + content: "\e360"; } + +.fa-codepen:before { + content: "\f1cb"; } + +.fa-codiepie:before { + content: "\f284"; } + +.fa-confluence:before { + content: "\f78d"; } + +.fa-connectdevelop:before { + content: "\f20e"; } + +.fa-contao:before { + content: "\f26d"; } + +.fa-cotton-bureau:before { + content: "\f89e"; } + +.fa-cpanel:before { + content: "\f388"; } + +.fa-creative-commons:before { + content: "\f25e"; } + +.fa-creative-commons-by:before { + content: "\f4e7"; } + +.fa-creative-commons-nc:before { + content: "\f4e8"; } + +.fa-creative-commons-nc-eu:before { + content: "\f4e9"; } + +.fa-creative-commons-nc-jp:before { + content: "\f4ea"; } + +.fa-creative-commons-nd:before { + content: "\f4eb"; } + +.fa-creative-commons-pd:before { + content: "\f4ec"; } + +.fa-creative-commons-pd-alt:before { + content: "\f4ed"; } + +.fa-creative-commons-remix:before { + content: "\f4ee"; } + +.fa-creative-commons-sa:before { + content: "\f4ef"; } + +.fa-creative-commons-sampling:before { + content: "\f4f0"; } + +.fa-creative-commons-sampling-plus:before { + content: "\f4f1"; } + +.fa-creative-commons-share:before { + content: "\f4f2"; } + +.fa-creative-commons-zero:before { + content: "\f4f3"; } + +.fa-critical-role:before { + content: "\f6c9"; } + +.fa-css3:before { + content: "\f13c"; } + +.fa-css3-alt:before { + content: "\f38b"; } + +.fa-cuttlefish:before { + content: "\f38c"; } + +.fa-d-and-d:before { + content: "\f38d"; } + +.fa-d-and-d-beyond:before { + content: "\f6ca"; } + +.fa-dailymotion:before { + content: "\e052"; } + +.fa-dashcube:before { + content: "\f210"; } + +.fa-deezer:before { + content: "\e077"; } + +.fa-delicious:before { + content: "\f1a5"; } + +.fa-deploydog:before { + content: "\f38e"; } + +.fa-deskpro:before { + content: "\f38f"; } + +.fa-dev:before { + content: "\f6cc"; } + +.fa-deviantart:before { + content: "\f1bd"; } + +.fa-dhl:before { + content: "\f790"; } + +.fa-diaspora:before { + content: "\f791"; } + +.fa-digg:before { + content: "\f1a6"; } + +.fa-digital-ocean:before { + content: "\f391"; } + +.fa-discord:before { + content: "\f392"; } + +.fa-discourse:before { + content: "\f393"; } + +.fa-dochub:before { + content: "\f394"; } + +.fa-docker:before { + content: "\f395"; } + +.fa-draft2digital:before { + content: "\f396"; } + +.fa-dribbble:before { + content: "\f17d"; } + +.fa-dribbble-square:before { + content: "\f397"; } + +.fa-dropbox:before { + content: "\f16b"; } + +.fa-drupal:before { + content: "\f1a9"; } + +.fa-dyalog:before { + content: "\f399"; } + +.fa-earlybirds:before { + content: "\f39a"; } + +.fa-ebay:before { + content: "\f4f4"; } + +.fa-edge:before { + content: "\f282"; } + +.fa-edge-legacy:before { + content: "\e078"; } + +.fa-elementor:before { + content: "\f430"; } + +.fa-ello:before { + content: "\f5f1"; } + +.fa-ember:before { + content: "\f423"; } + +.fa-empire:before { + content: "\f1d1"; } + +.fa-envira:before { + content: "\f299"; } + +.fa-erlang:before { + content: "\f39d"; } + +.fa-ethereum:before { + content: "\f42e"; } + +.fa-etsy:before { + content: "\f2d7"; } + +.fa-evernote:before { + content: "\f839"; } + +.fa-expeditedssl:before { + content: "\f23e"; } + +.fa-facebook:before { + content: "\f09a"; } + +.fa-facebook-f:before { + content: "\f39e"; } + +.fa-facebook-messenger:before { + content: "\f39f"; } + +.fa-facebook-square:before { + content: "\f082"; } + +.fa-fantasy-flight-games:before { + content: "\f6dc"; } + +.fa-fedex:before { + content: "\f797"; } + +.fa-fedora:before { + content: "\f798"; } + +.fa-figma:before { + content: "\f799"; } + +.fa-firefox:before { + content: "\f269"; } + +.fa-firefox-browser:before { + content: "\e007"; } + +.fa-first-order:before { + content: "\f2b0"; } + +.fa-first-order-alt:before { + content: "\f50a"; } + +.fa-firstdraft:before { + content: "\f3a1"; } + +.fa-flickr:before { + content: "\f16e"; } + +.fa-flipboard:before { + content: "\f44d"; } + +.fa-fly:before { + content: "\f417"; } + +.fa-font-awesome:before { + content: "\f2b4"; } + +.fa-font-awesome-flag:before { + content: "\f2b4"; } + +.fa-font-awesome-logo-full:before { + content: "\f2b4"; } + +.fa-fonticons:before { + content: "\f280"; } + +.fa-fonticons-fi:before { + content: "\f3a2"; } + +.fa-fort-awesome:before { + content: "\f286"; } + +.fa-fort-awesome-alt:before { + content: "\f3a3"; } + +.fa-forumbee:before { + content: "\f211"; } + +.fa-foursquare:before { + content: "\f180"; } + +.fa-free-code-camp:before { + content: "\f2c5"; } + +.fa-freebsd:before { + content: "\f3a4"; } + +.fa-fulcrum:before { + content: "\f50b"; } + +.fa-galactic-republic:before { + content: "\f50c"; } + +.fa-galactic-senate:before { + content: "\f50d"; } + +.fa-get-pocket:before { + content: "\f265"; } + +.fa-gg:before { + content: "\f260"; } + +.fa-gg-circle:before { + content: "\f261"; } + +.fa-git:before { + content: "\f1d3"; } + +.fa-git-alt:before { + content: "\f841"; } + +.fa-git-square:before { + content: "\f1d2"; } + +.fa-github:before { + content: "\f09b"; } + +.fa-github-alt:before { + content: "\f113"; } + +.fa-github-square:before { + content: "\f092"; } + +.fa-gitkraken:before { + content: "\f3a6"; } + +.fa-gitlab:before { + content: "\f296"; } + +.fa-gitter:before { + content: "\f426"; } + +.fa-glide:before { + content: "\f2a5"; } + +.fa-glide-g:before { + content: "\f2a6"; } + +.fa-gofore:before { + content: "\f3a7"; } + +.fa-golang:before { + content: "\e40f"; } + +.fa-goodreads:before { + content: "\f3a8"; } + +.fa-goodreads-g:before { + content: "\f3a9"; } + +.fa-google:before { + content: "\f1a0"; } + +.fa-google-drive:before { + content: "\f3aa"; } + +.fa-google-pay:before { + content: "\e079"; } + +.fa-google-play:before { + content: "\f3ab"; } + +.fa-google-plus:before { + content: "\f2b3"; } + +.fa-google-plus-g:before { + content: "\f0d5"; } + +.fa-google-plus-square:before { + content: "\f0d4"; } + +.fa-google-wallet:before { + content: "\f1ee"; } + +.fa-gratipay:before { + content: "\f184"; } + +.fa-grav:before { + content: "\f2d6"; } + +.fa-gripfire:before { + content: "\f3ac"; } + +.fa-grunt:before { + content: "\f3ad"; } + +.fa-guilded:before { + content: "\e07e"; } + +.fa-gulp:before { + content: "\f3ae"; } + +.fa-hacker-news:before { + content: "\f1d4"; } + +.fa-hacker-news-square:before { + content: "\f3af"; } + +.fa-hackerrank:before { + content: "\f5f7"; } + +.fa-hashnode:before { + content: "\e499"; } + +.fa-hips:before { + content: "\f452"; } + +.fa-hire-a-helper:before { + content: "\f3b0"; } + +.fa-hive:before { + content: "\e07f"; } + +.fa-hooli:before { + content: "\f427"; } + +.fa-hornbill:before { + content: "\f592"; } + +.fa-hotjar:before { + content: "\f3b1"; } + +.fa-houzz:before { + content: "\f27c"; } + +.fa-html5:before { + content: "\f13b"; } + +.fa-hubspot:before { + content: "\f3b2"; } + +.fa-ideal:before { + content: "\e013"; } + +.fa-imdb:before { + content: "\f2d8"; } + +.fa-instagram:before { + content: "\f16d"; } + +.fa-instagram-square:before { + content: "\e055"; } + +.fa-instalod:before { + content: "\e081"; } + +.fa-intercom:before { + content: "\f7af"; } + +.fa-internet-explorer:before { + content: "\f26b"; } + +.fa-invision:before { + content: "\f7b0"; } + +.fa-ioxhost:before { + content: "\f208"; } + +.fa-itch-io:before { + content: "\f83a"; } + +.fa-itunes:before { + content: "\f3b4"; } + +.fa-itunes-note:before { + content: "\f3b5"; } + +.fa-java:before { + content: "\f4e4"; } + +.fa-jedi-order:before { + content: "\f50e"; } + +.fa-jenkins:before { + content: "\f3b6"; } + +.fa-jira:before { + content: "\f7b1"; } + +.fa-joget:before { + content: "\f3b7"; } + +.fa-joomla:before { + content: "\f1aa"; } + +.fa-js:before { + content: "\f3b8"; } + +.fa-js-square:before { + content: "\f3b9"; } + +.fa-jsfiddle:before { + content: "\f1cc"; } + +.fa-kaggle:before { + content: "\f5fa"; } + +.fa-keybase:before { + content: "\f4f5"; } + +.fa-keycdn:before { + content: "\f3ba"; } + +.fa-kickstarter:before { + content: "\f3bb"; } + +.fa-kickstarter-k:before { + content: "\f3bc"; } + +.fa-korvue:before { + content: "\f42f"; } + +.fa-laravel:before { + content: "\f3bd"; } + +.fa-lastfm:before { + content: "\f202"; } + +.fa-lastfm-square:before { + content: "\f203"; } + +.fa-leanpub:before { + content: "\f212"; } + +.fa-less:before { + content: "\f41d"; } + +.fa-line:before { + content: "\f3c0"; } + +.fa-linkedin:before { + content: "\f08c"; } + +.fa-linkedin-in:before { + content: "\f0e1"; } + +.fa-linode:before { + content: "\f2b8"; } + +.fa-linux:before { + content: "\f17c"; } + +.fa-lyft:before { + content: "\f3c3"; } + +.fa-magento:before { + content: "\f3c4"; } + +.fa-mailchimp:before { + content: "\f59e"; } + +.fa-mandalorian:before { + content: "\f50f"; } + +.fa-markdown:before { + content: "\f60f"; } + +.fa-mastodon:before { + content: "\f4f6"; } + +.fa-maxcdn:before { + content: "\f136"; } + +.fa-mdb:before { + content: "\f8ca"; } + +.fa-medapps:before { + content: "\f3c6"; } + +.fa-medium:before { + content: "\f23a"; } + +.fa-medium-m:before { + content: "\f23a"; } + +.fa-medrt:before { + content: "\f3c8"; } + +.fa-meetup:before { + content: "\f2e0"; } + +.fa-megaport:before { + content: "\f5a3"; } + +.fa-mendeley:before { + content: "\f7b3"; } + +.fa-microblog:before { + content: "\e01a"; } + +.fa-microsoft:before { + content: "\f3ca"; } + +.fa-mix:before { + content: "\f3cb"; } + +.fa-mixcloud:before { + content: "\f289"; } + +.fa-mixer:before { + content: "\e056"; } + +.fa-mizuni:before { + content: "\f3cc"; } + +.fa-modx:before { + content: "\f285"; } + +.fa-monero:before { + content: "\f3d0"; } + +.fa-napster:before { + content: "\f3d2"; } + +.fa-neos:before { + content: "\f612"; } + +.fa-nfc-directional:before { + content: "\e530"; } + +.fa-nfc-symbol:before { + content: "\e531"; } + +.fa-nimblr:before { + content: "\f5a8"; } + +.fa-node:before { + content: "\f419"; } + +.fa-node-js:before { + content: "\f3d3"; } + +.fa-npm:before { + content: "\f3d4"; } + +.fa-ns8:before { + content: "\f3d5"; } + +.fa-nutritionix:before { + content: "\f3d6"; } + +.fa-octopus-deploy:before { + content: "\e082"; } + +.fa-odnoklassniki:before { + content: "\f263"; } + +.fa-odnoklassniki-square:before { + content: "\f264"; } + +.fa-old-republic:before { + content: "\f510"; } + +.fa-opencart:before { + content: "\f23d"; } + +.fa-openid:before { + content: "\f19b"; } + +.fa-opera:before { + content: "\f26a"; } + +.fa-optin-monster:before { + content: "\f23c"; } + +.fa-orcid:before { + content: "\f8d2"; } + +.fa-osi:before { + content: "\f41a"; } + +.fa-padlet:before { + content: "\e4a0"; } + +.fa-page4:before { + content: "\f3d7"; } + +.fa-pagelines:before { + content: "\f18c"; } + +.fa-palfed:before { + content: "\f3d8"; } + +.fa-patreon:before { + content: "\f3d9"; } + +.fa-paypal:before { + content: "\f1ed"; } + +.fa-perbyte:before { + content: "\e083"; } + +.fa-periscope:before { + content: "\f3da"; } + +.fa-phabricator:before { + content: "\f3db"; } + +.fa-phoenix-framework:before { + content: "\f3dc"; } + +.fa-phoenix-squadron:before { + content: "\f511"; } + +.fa-php:before { + content: "\f457"; } + +.fa-pied-piper:before { + content: "\f2ae"; } + +.fa-pied-piper-alt:before { + content: "\f1a8"; } + +.fa-pied-piper-hat:before { + content: "\f4e5"; } + +.fa-pied-piper-pp:before { + content: "\f1a7"; } + +.fa-pied-piper-square:before { + content: "\e01e"; } + +.fa-pinterest:before { + content: "\f0d2"; } + +.fa-pinterest-p:before { + content: "\f231"; } + +.fa-pinterest-square:before { + content: "\f0d3"; } + +.fa-pix:before { + content: "\e43a"; } + +.fa-playstation:before { + content: "\f3df"; } + +.fa-product-hunt:before { + content: "\f288"; } + +.fa-pushed:before { + content: "\f3e1"; } + +.fa-python:before { + content: "\f3e2"; } + +.fa-qq:before { + content: "\f1d6"; } + +.fa-quinscape:before { + content: "\f459"; } + +.fa-quora:before { + content: "\f2c4"; } + +.fa-r-project:before { + content: "\f4f7"; } + +.fa-raspberry-pi:before { + content: "\f7bb"; } + +.fa-ravelry:before { + content: "\f2d9"; } + +.fa-react:before { + content: "\f41b"; } + +.fa-reacteurope:before { + content: "\f75d"; } + +.fa-readme:before { + content: "\f4d5"; } + +.fa-rebel:before { + content: "\f1d0"; } + +.fa-red-river:before { + content: "\f3e3"; } + +.fa-reddit:before { + content: "\f1a1"; } + +.fa-reddit-alien:before { + content: "\f281"; } + +.fa-reddit-square:before { + content: "\f1a2"; } + +.fa-redhat:before { + content: "\f7bc"; } + +.fa-renren:before { + content: "\f18b"; } + +.fa-replyd:before { + content: "\f3e6"; } + +.fa-researchgate:before { + content: "\f4f8"; } + +.fa-resolving:before { + content: "\f3e7"; } + +.fa-rev:before { + content: "\f5b2"; } + +.fa-rocketchat:before { + content: "\f3e8"; } + +.fa-rockrms:before { + content: "\f3e9"; } + +.fa-rust:before { + content: "\e07a"; } + +.fa-safari:before { + content: "\f267"; } + +.fa-salesforce:before { + content: "\f83b"; } + +.fa-sass:before { + content: "\f41e"; } + +.fa-schlix:before { + content: "\f3ea"; } + +.fa-screenpal:before { + content: "\e570"; } + +.fa-scribd:before { + content: "\f28a"; } + +.fa-searchengin:before { + content: "\f3eb"; } + +.fa-sellcast:before { + content: "\f2da"; } + +.fa-sellsy:before { + content: "\f213"; } + +.fa-servicestack:before { + content: "\f3ec"; } + +.fa-shirtsinbulk:before { + content: "\f214"; } + +.fa-shopify:before { + content: "\e057"; } + +.fa-shopware:before { + content: "\f5b5"; } + +.fa-simplybuilt:before { + content: "\f215"; } + +.fa-sistrix:before { + content: "\f3ee"; } + +.fa-sith:before { + content: "\f512"; } + +.fa-sitrox:before { + content: "\e44a"; } + +.fa-sketch:before { + content: "\f7c6"; } + +.fa-skyatlas:before { + content: "\f216"; } + +.fa-skype:before { + content: "\f17e"; } + +.fa-slack:before { + content: "\f198"; } + +.fa-slack-hash:before { + content: "\f198"; } + +.fa-slideshare:before { + content: "\f1e7"; } + +.fa-snapchat:before { + content: "\f2ab"; } + +.fa-snapchat-ghost:before { + content: "\f2ab"; } + +.fa-snapchat-square:before { + content: "\f2ad"; } + +.fa-soundcloud:before { + content: "\f1be"; } + +.fa-sourcetree:before { + content: "\f7d3"; } + +.fa-speakap:before { + content: "\f3f3"; } + +.fa-speaker-deck:before { + content: "\f83c"; } + +.fa-spotify:before { + content: "\f1bc"; } + +.fa-square-font-awesome:before { + content: "\f425"; } + +.fa-square-font-awesome-stroke:before { + content: "\f35c"; } + +.fa-font-awesome-alt:before { + content: "\f35c"; } + +.fa-squarespace:before { + content: "\f5be"; } + +.fa-stack-exchange:before { + content: "\f18d"; } + +.fa-stack-overflow:before { + content: "\f16c"; } + +.fa-stackpath:before { + content: "\f842"; } + +.fa-staylinked:before { + content: "\f3f5"; } + +.fa-steam:before { + content: "\f1b6"; } + +.fa-steam-square:before { + content: "\f1b7"; } + +.fa-steam-symbol:before { + content: "\f3f6"; } + +.fa-sticker-mule:before { + content: "\f3f7"; } + +.fa-strava:before { + content: "\f428"; } + +.fa-stripe:before { + content: "\f429"; } + +.fa-stripe-s:before { + content: "\f42a"; } + +.fa-studiovinari:before { + content: "\f3f8"; } + +.fa-stumbleupon:before { + content: "\f1a4"; } + +.fa-stumbleupon-circle:before { + content: "\f1a3"; } + +.fa-superpowers:before { + content: "\f2dd"; } + +.fa-supple:before { + content: "\f3f9"; } + +.fa-suse:before { + content: "\f7d6"; } + +.fa-swift:before { + content: "\f8e1"; } + +.fa-symfony:before { + content: "\f83d"; } + +.fa-teamspeak:before { + content: "\f4f9"; } + +.fa-telegram:before { + content: "\f2c6"; } + +.fa-telegram-plane:before { + content: "\f2c6"; } + +.fa-tencent-weibo:before { + content: "\f1d5"; } + +.fa-the-red-yeti:before { + content: "\f69d"; } + +.fa-themeco:before { + content: "\f5c6"; } + +.fa-themeisle:before { + content: "\f2b2"; } + +.fa-think-peaks:before { + content: "\f731"; } + +.fa-tiktok:before { + content: "\e07b"; } + +.fa-trade-federation:before { + content: "\f513"; } + +.fa-trello:before { + content: "\f181"; } + +.fa-tumblr:before { + content: "\f173"; } + +.fa-tumblr-square:before { + content: "\f174"; } + +.fa-twitch:before { + content: "\f1e8"; } + +.fa-twitter:before { + content: "\f099"; } + +.fa-twitter-square:before { + content: "\f081"; } + +.fa-typo3:before { + content: "\f42b"; } + +.fa-uber:before { + content: "\f402"; } + +.fa-ubuntu:before { + content: "\f7df"; } + +.fa-uikit:before { + content: "\f403"; } + +.fa-umbraco:before { + content: "\f8e8"; } + +.fa-uncharted:before { + content: "\e084"; } + +.fa-uniregistry:before { + content: "\f404"; } + +.fa-unity:before { + content: "\e049"; } + +.fa-unsplash:before { + content: "\e07c"; } + +.fa-untappd:before { + content: "\f405"; } + +.fa-ups:before { + content: "\f7e0"; } + +.fa-usb:before { + content: "\f287"; } + +.fa-usps:before { + content: "\f7e1"; } + +.fa-ussunnah:before { + content: "\f407"; } + +.fa-vaadin:before { + content: "\f408"; } + +.fa-viacoin:before { + content: "\f237"; } + +.fa-viadeo:before { + content: "\f2a9"; } + +.fa-viadeo-square:before { + content: "\f2aa"; } + +.fa-viber:before { + content: "\f409"; } + +.fa-vimeo:before { + content: "\f40a"; } + +.fa-vimeo-square:before { + content: "\f194"; } + +.fa-vimeo-v:before { + content: "\f27d"; } + +.fa-vine:before { + content: "\f1ca"; } + +.fa-vk:before { + content: "\f189"; } + +.fa-vnv:before { + content: "\f40b"; } + +.fa-vuejs:before { + content: "\f41f"; } + +.fa-watchman-monitoring:before { + content: "\e087"; } + +.fa-waze:before { + content: "\f83f"; } + +.fa-weebly:before { + content: "\f5cc"; } + +.fa-weibo:before { + content: "\f18a"; } + +.fa-weixin:before { + content: "\f1d7"; } + +.fa-whatsapp:before { + content: "\f232"; } + +.fa-whatsapp-square:before { + content: "\f40c"; } + +.fa-whmcs:before { + content: "\f40d"; } + +.fa-wikipedia-w:before { + content: "\f266"; } + +.fa-windows:before { + content: "\f17a"; } + +.fa-wirsindhandwerk:before { + content: "\e2d0"; } + +.fa-wsh:before { + content: "\e2d0"; } + +.fa-wix:before { + content: "\f5cf"; } + +.fa-wizards-of-the-coast:before { + content: "\f730"; } + +.fa-wodu:before { + content: "\e088"; } + +.fa-wolf-pack-battalion:before { + content: "\f514"; } + +.fa-wordpress:before { + content: "\f19a"; } + +.fa-wordpress-simple:before { + content: "\f411"; } + +.fa-wpbeginner:before { + content: "\f297"; } + +.fa-wpexplorer:before { + content: "\f2de"; } + +.fa-wpforms:before { + content: "\f298"; } + +.fa-wpressr:before { + content: "\f3e4"; } + +.fa-xbox:before { + content: "\f412"; } + +.fa-xing:before { + content: "\f168"; } + +.fa-xing-square:before { + content: "\f169"; } + +.fa-y-combinator:before { + content: "\f23b"; } + +.fa-yahoo:before { + content: "\f19e"; } + +.fa-yammer:before { + content: "\f840"; } + +.fa-yandex:before { + content: "\f413"; } + +.fa-yandex-international:before { + content: "\f414"; } + +.fa-yarn:before { + content: "\f7e3"; } + +.fa-yelp:before { + content: "\f1e9"; } + +.fa-yoast:before { + content: "\f2b1"; } + +.fa-youtube:before { + content: "\f167"; } + +.fa-youtube-square:before { + content: "\f431"; } + +.fa-zhihu:before { + content: "\f63f"; } +:root, :host { + --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free"; } + +@font-face { + font-family: 'Font Awesome 6 Free'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } + +.far, +.fa-regular { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } +:root, :host { + --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free"; } + +@font-face { + font-family: 'Font Awesome 6 Free'; + font-style: normal; + font-weight: 900; + font-display: block; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +.fas, +.fa-solid { + font-family: 'Font Awesome 6 Free'; + font-weight: 900; } +@font-face { + font-family: "Font Awesome 5 Brands"; + font-display: block; + font-weight: 400; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +@font-face { + font-family: "Font Awesome 5 Free"; + font-display: block; + font-weight: 900; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +@font-face { + font-family: "Font Awesome 5 Free"; + font-display: block; + font-weight: 400; + src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } +@font-face { + font-family: "FontAwesome"; + font-display: block; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +@font-face { + font-family: "FontAwesome"; + font-display: block; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +@font-face { + font-family: "FontAwesome"; + font-display: block; + src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); + unicode-range: U+F003,U+F006,U+F014,U+F016-F017,U+F01A-F01B,U+F01D,U+F022,U+F03E,U+F044,U+F046,U+F05C-F05D,U+F06E,U+F070,U+F087-F088,U+F08A,U+F094,U+F096-F097,U+F09D,U+F0A0,U+F0A2,U+F0A4-F0A7,U+F0C5,U+F0C7,U+F0E5-F0E6,U+F0EB,U+F0F6-F0F8,U+F10C,U+F114-F115,U+F118-F11A,U+F11C-F11D,U+F133,U+F147,U+F14E,U+F150-F152,U+F185-F186,U+F18E,U+F190-F192,U+F196,U+F1C1-F1C9,U+F1D9,U+F1DB,U+F1E3,U+F1EA,U+F1F7,U+F1F9,U+F20A,U+F247-F248,U+F24A,U+F24D,U+F255-F25B,U+F25D,U+F271-F274,U+F278,U+F27B,U+F28C,U+F28E,U+F29C,U+F2B5,U+F2B7,U+F2BA,U+F2BC,U+F2BE,U+F2C0-F2C1,U+F2C3,U+F2D0,U+F2D2,U+F2D4,U+F2DC; } + +@font-face { + font-family: "FontAwesome"; + font-display: block; + src: url("../webfonts/fa-v4compatibility.woff2") format("woff2"), url("../webfonts/fa-v4compatibility.ttf") format("truetype"); + unicode-range: U+F041,U+F047,U+F065-F066,U+F07D-F07E,U+F080,U+F08B,U+F08E,U+F090,U+F09A,U+F0AC,U+F0AE,U+F0B2,U+F0D0,U+F0D6,U+F0E4,U+F0EC,U+F10A-F10B,U+F123,U+F13E,U+F148-F149,U+F14C,U+F156,U+F15E,U+F160-F161,U+F163,U+F175-F178,U+F195,U+F1F8,U+F219,U+F250,U+F252,U+F27A; } diff --git a/fonts/FontAwesome.otf b/fonts/FontAwesome.otf deleted file mode 100644 index 8b0f54e..0000000 Binary files a/fonts/FontAwesome.otf and /dev/null differ diff --git a/fonts/Novecento sans wide Medium-Webfont.zip b/fonts/Novecento sans wide Medium-Webfont.zip deleted file mode 100644 index 1c38be2..0000000 Binary files a/fonts/Novecento sans wide Medium-Webfont.zip and /dev/null differ diff --git a/fonts/Novecento sans wide Medium-Webfont/Licenses/Synthview Type Design - Webfont License 1.0.0.txt b/fonts/Novecento sans wide Medium-Webfont/Licenses/Synthview Type Design - Webfont License 1.0.0.txt deleted file mode 100755 index 24453eb..0000000 --- a/fonts/Novecento sans wide Medium-Webfont/Licenses/Synthview Type Design - Webfont License 1.0.0.txt +++ /dev/null @@ -1,48 +0,0 @@ -Synthview/Fontspring Webfont End User License Agreement Version 2.0 - October 25, 2012 - - -By downloading and/or installing and/or embedding the licensed font software from Fontspring ("Webfont") in any HTML websites or webpages ("Websites"), the purchaser or designated licensee ("Licensee") agrees to be bound by the terms and conditions of this end user license agreement ("EULA"). This EULA, in conjunction with the receipt (“Receipt”) that accompanies each purchase from Fontspring or its distributors, constitutes the complete agreement (“Agreement”) between the Licensee and Fontspring. -This Agreement allows for using the Webfont within Websites with the following rights, requirements and restrictions: - -1. Rights -Licensee may only link the Webfont to Websites using the @font-face selector in CSS files. - -2. Requirements/Restrictions -a. Licensee must use the provided Webfont from Fontspring. Linking to the full, CFF OpenType or TrueType font designed for desktop installation is prohibited. -b. Licensee must include the entire commented header in the provided CSS file. -c. Webfont may be simultaneously installed on no more than the number of website domains specified in the Receipt. -d. Webfont may only be installed on Websites owned or directly controlled by the Licensee. -e. Agencies freelancers or any kind of entity responsible for multiple clients’ Websites, for example web design agencies, freelance designers or hosting providers, may not share a single Webfont license across multiple clients’ Websites. -f. Webfont may be used in a Website where visitors produce “Styled Content”, by directly or indirectly selecting a Webfont and entering or editing text using that Webfont, at the condition the Website may not enable or facilitate the Styled Content being used outside said Website, including but not limited to producing merchandise, PDF documents, image files, or personalized physical objects. - -3. Third parties and Transferability -Licensee may temporarily provide the Webfont to a website developer or other agent who is working on behalf of the Licensee, only if they agree to use the Font exclusively for Licensee’s work, agree to the terms of this Agreement, and retain no copies of the Font upon completion of the work. -Licensee may not otherwise distribute the Webfont to third parties or make the Webfont publicly accessible except by embedding or linking in accordance with this EULA. - -4. Terms -Rights granted by this Agreement are perpetual. Fontspring will not charge additional fees post purchase, annually or otherwise. - - -5. Other Usage -Licenses for desktop use, computer applications and games, installable interactive books, software, mobile applications and games, Ebooks and Epubs, product creation websites, website template distribution (excepted webfonts sold 0$), website templates (excepted webfonts sold 0$), and other uses not allowed by this Agreement may be available for an additional fee. Contact Fontspring at support@fontspring.com for more information. - -6. Modifications -Licensee may not modify the Webfont or create derivative works based on the Webfont without prior written consent from Fontspring or the owning foundry except to generate files necessary for embedding or linking in accordance with this EULA. - -7. Copyright -Licensee agrees that the Font is the exclusive property of the owning foundry and is protected by copyright and intellectual property laws. Licensee may be held legally responsible for any infringements on the foundry's rights caused by failure to abide by the terms of this Agreement. - -8. Termination -Licensee agrees that the Agreement shall automatically terminate, without notice from Fontspring or the owning foundry, if Licensee fails to comply with any provision contained herein. - -9. Disclaimer and Limited Warranty -Fontspring warrants the Product to be free from defects in materials and workmanship under normal use for a period of twenty one (21) days from the date of delivery as shown on Receipt. Fontspring's entire liability and Licensee’s exclusive remedy as to a defective product shall -be, at Fontspring's option, either return of purchase price or replacement of any such product that is returned to Fontspring with a copy of the invoice. Fontspring shall have no responsibility to replace the product or refund the purchase price if failure results from accident, abuse -or misapplication, or if any product is lost or damaged due to theft, fire, or negligence. Any replacement product will be warranted for twenty one (21) days. This warranty gives Licensee specific legal rights. Licensee may have other rights, which vary from state to state. -EXCEPT AS EXPRESSLY PROVIDED ABOVE, THE PRODUCT, IS PROVIDED “AS IS”. FONTSPRING MAKES NO WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -The entire risk as to the quality and performance of the Product rests upon Licensee. Neither Fontspring nor the Foundry warrants that the functions contained in the Product will meet Licensee’s requirements or that the operation of the software will be uninterrupted or error free. -FONTSPRING SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, OR INCIDENTAL DAMAGES (INCLUDING DAMAGES FROM LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, AND THE LIKE) ARISING OUT OF THE USE OF OR INABILITY TO USE THE PRODUCT EVEN IF Fontspring OR THE FOUNDRY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -Because some states do not allow the exclusion or limitation of liability for consequential or incidental damages, the above limitation may not apply to Licensee. - -10. APPLICABLE LAW AND ASSIGNMENT OF JURISDICTION -You accept this Web EULA to be exclusively governed by French law. In the absence of an amicable settlement, any dispute that may arise due to the interpretation or execution of the present EULA shall be submitted to the competent jurisdiction of the Paris court of first instance of general jurisdiction (Tribunal de grande instance de Paris - 75). \ No newline at end of file diff --git a/fonts/Novecento sans wide Medium-Webfont/Reference/How_to_use_webfonts.html b/fonts/Novecento sans wide Medium-Webfont/Reference/How_to_use_webfonts.html deleted file mode 100755 index 1f4c2f8..0000000 --- a/fonts/Novecento sans wide Medium-Webfont/Reference/How_to_use_webfonts.html +++ /dev/null @@ -1,230 +0,0 @@ - - - - - - - - - - -How to Use Webfonts - - - - -
- -
-
-
-

Installing Webfonts

- -

Webfonts are supported by all major browser platforms but not all in the same way. There are currently four different font formats that must be included in order to target all browsers. This includes TTF, WOFF, EOT and SVG.

- -

1. Upload your webfonts

-

You must upload your webfont kit to your website. They should be in or near the same directory as your CSS files.

- -

2. Include the webfont stylesheet

-

A special CSS @font-face declaration helps the various browsers select the appropriate font it needs without causing you a bunch of headaches. Learn more about this syntax by reading the Fontspring blog post about it. The code for it is as follows:

- - - -@font-face{ - font-family: 'MyWebFont'; - src: url('WebFont.eot'); - src: url('WebFont.eot?#iefix') format('embedded-opentype'), - url('WebFont.woff') format('woff'), - url('WebFont.ttf') format('truetype'), - url('WebFont.svg#webfont') format('svg'); -} - -

We've already gone ahead and generated the code for you. All you have to do is link to the stylesheet in your HTML, like this:

- <link rel="stylesheet" href="stylesheet.css" type="text/css" charset="utf-8" /> - -

3. Modify your own stylesheet

-

To take advantage of your new fonts, you must tell your stylesheet to use them. Look at the original @font-face declaration above and find the property called "font-family." The name linked there will be what you use to reference the font. Prepend that webfont name to the font stack in the "font-family" property, inside the selector you want to change. For example:

-p { font-family: 'MyWebFont', Arial, sans-serif; } - -

4. Test

-

Getting webfonts to work cross-browser can be tricky. Use the information in the sidebar to help you if you find that fonts aren't loading in a particular browser.

-
- - -
- -
- -
- - - - diff --git a/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/Novecentosanswide-Medium-demo.html b/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/Novecentosanswide-Medium-demo.html deleted file mode 100755 index 2bb2d81..0000000 --- a/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/Novecentosanswide-Medium-demo.html +++ /dev/null @@ -1,521 +0,0 @@ - - - - - - - - - - - - -Novecento sans wide Medium Specimen - - - - - - -
- - - -
- - -
- -
-
-
AaBb
-
-
- -
-
A​B​C​D​E​F​G​H​I​J​K​L​M​N​O​P​Q​R​S​T​U​V​W​X​Y​Z​a​b​c​d​e​f​g​h​i​j​k​l​m​n​o​p​q​r​s​t​u​v​w​x​y​z​1​2​3​4​5​6​7​8​9​0​&​.​,​?​!​@​(​)​#​$​%​*​+​-​=​:​;
-
-
-
- - - - - - - - - - - - - - - - -
10abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
11abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
12abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
13abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
14abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
16abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
18abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
20abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
24abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
30abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
36abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
48abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
60abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
72abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
90abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
- -
- -
- - - -
- - -
-
body
body
body
body
-
- bodyNovecento sans wide Medium -
-
- bodyArial -
-
- bodyVerdana -
-
- bodyGeorgia -
- - - -
- - -
- -
-

10.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
-
-

11.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
-
-

12.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
-
-

13.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
-
- -
-
-
-

14.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
-
-

16.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
-
-

18.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
- -
- -
- -
-
-

20.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

-
-
-

24.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

-
- -
- -
- -
-
-

30.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

-
-
- -
- - - -
-
-

10.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
-
-

11.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
-
-

12.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
-
-

13.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
-
- -
- -
-
-

14.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
-
-

16.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
-
-

18.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
-
- -
- -
-
-

20.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

-
-
-

24.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

-
- -
- -
- -
-
-

30.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

-
-
- -
- - - - -
- -
- -
- -
-

Lorem Ipsum Dolor

-

Etiam porta sem malesuada magna mollis euismod

- - -
-
-
-
-

Donec sed odio dui. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.

- - -

Pellentesque ornare sem

- -

Maecenas sed diam eget risus varius blandit sit amet non magna. Maecenas faucibus mollis interdum. Donec ullamcorper nulla non metus auctor fringilla. Nullam id dolor id nibh ultricies vehicula ut id elit. Nullam id dolor id nibh ultricies vehicula ut id elit.

- -

Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

- -

Nulla vitae elit libero, a pharetra augue. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Aenean lacinia bibendum nulla sed consectetur.

- -

Nullam quis risus eget urna mollis ornare vel eu leo. Nullam quis risus eget urna mollis ornare vel eu leo. Maecenas sed diam eget risus varius blandit sit amet non magna. Donec ullamcorper nulla non metus auctor fringilla.

- -

Cras mattis consectetur

- -

Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Aenean lacinia bibendum nulla sed consectetur. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Cras mattis consectetur purus sit amet fermentum.

- -

Nullam id dolor id nibh ultricies vehicula ut id elit. Nullam quis risus eget urna mollis ornare vel eu leo. Cras mattis consectetur purus sit amet fermentum.

-
- - -
- -
- - - - - - -
-
-
- -

Language Support

-

The subset of Novecento sans wide Medium in this kit supports the following languages:
- - Albanian, Alsatian, Aragonese, Arapaho, Aromanian, Arrernte, Asturian, Aymara, Basque, Belarusian (Lacinka), Bislama, Bosnian, Breton, Catalan, Cebuano, Chamorro, Cheyenne, Chichewa (Nyanja), Cimbrian, Corsican, Croatian, Czech, Danish, Dutch, English, Esperanto, Estonian, Faroese, Fijian, Finnish, French, French Creole (Saint Lucia), Frisian, Friulian, Galician, Genoese, German, Gilbertese (Kiribati), Greenlandic, Haitian Creole, Hawaiian, Hiligaynon, Hmong, Hopi, Hungarian, Ibanag, Iloko (Ilokano), Indonesian, Interglossa (Glosa), Interlingua, Irish (Gaelic), Islandic, Istro-Romanian, Italian, Jèrriais, Kashubian, Kurdish (Kurmanji), Ladin, Latin Basic, Latvian, Lithuanian, Lojban, Lombard, Low Saxon, Luxembourgian, Malagasy, Maltese, Manx, Maori, Megleno-Romanian, Mohawk, Nahuatl, Norfolk/Pitcairnese, Northern Sotho (Pedi), Norwegian, Occitan, Oromo, Pangasinan, Papiamento, Piedmontese, Polish, Portuguese, Potawatomi, Quechua, Rhaeto-Romance, Romanian, Romansh (Rumantsch), Rotokas, Sami (Inari), Sami (Lule), Samoan, Sardinian (Sardu), Scots (Gaelic), Serbian, Seychellois Creole (Seselwa), Shona, Sicilian, Slovak, Slovenian (Slovene), Somali, Southern Ndebele, Southern Sotho (Sesotho), Spanish, Swahili, Swati/Swazi, Swedish, Tagalog (Filipino/Pilipino), Tahitian, Tausug, Tetum (Tetun), Tok Pisin, Tongan (Faka-Tonga), Tswana, Turkish, Turkmen, Turkmen (Latinized), Tuvaluan, ubasic, Uyghur (Latinized), Veps, Volapük, Votic (Latinized), Walloon, Warlpiri, Welsh, Xhosa, Yapese, Zulu

-

Glyph Chart

-

The subset of Novecento sans wide Medium in this kit includes all the glyphs listed below. Unicode entities are included above each glyph to help you insert individual characters into your layout.

-
- -

&#32;

-

&#33;

!
-

&#34;

"
-

&#35;

#
-

&#36;

$
-

&#37;

%
-

&#38;

&
-

&#39;

'
-

&#40;

(
-

&#41;

)
-

&#42;

*
-

&#43;

+
-

&#44;

,
-

&#45;

-
-

&#46;

.
-

&#47;

/
-

&#48;

0
-

&#49;

1
-

&#50;

2
-

&#51;

3
-

&#52;

4
-

&#53;

5
-

&#54;

6
-

&#55;

7
-

&#56;

8
-

&#57;

9
-

&#58;

:
-

&#59;

;
-

&#60;

<
-

&#61;

=
-

&#62;

>
-

&#63;

?
-

&#64;

@
-

&#65;

A
-

&#66;

B
-

&#67;

C
-

&#68;

D
-

&#69;

E
-

&#70;

F
-

&#71;

G
-

&#72;

H
-

&#73;

I
-

&#74;

J
-

&#75;

K
-

&#76;

L
-

&#77;

M
-

&#78;

N
-

&#79;

O
-

&#80;

P
-

&#81;

Q
-

&#82;

R
-

&#83;

S
-

&#84;

T
-

&#85;

U
-

&#86;

V
-

&#87;

W
-

&#88;

X
-

&#89;

Y
-

&#90;

Z
-

&#91;

[
-

&#92;

\
-

&#93;

]
-

&#94;

^
-

&#95;

_
-

&#96;

`
-

&#97;

a
-

&#98;

b
-

&#99;

c
-

&#100;

d
-

&#101;

e
-

&#102;

f
-

&#103;

g
-

&#104;

h
-

&#105;

i
-

&#106;

j
-

&#107;

k
-

&#108;

l
-

&#109;

m
-

&#110;

n
-

&#111;

o
-

&#112;

p
-

&#113;

q
-

&#114;

r
-

&#115;

s
-

&#116;

t
-

&#117;

u
-

&#118;

v
-

&#119;

w
-

&#120;

x
-

&#121;

y
-

&#122;

z
-

&#123;

{
-

&#124;

|
-

&#125;

}
-

&#126;

~
-

&#162;

¢
-

&#163;

£
-

&#165;

¥
-

&#168;

¨
-

&#169;

©
-

&#171;

«
-

&#174;

®
-

&#180;

´
-

&#184;

¸
-

&#187;

»
-

&#211;

Ó
-

&#243;

ó
-

&#260;

Ą
-

&#261;

ą
-

&#262;

Ć
-

&#263;

ć
-

&#280;

Ę
-

&#281;

ę
-

&#321;

Ł
-

&#322;

ł
-

&#323;

Ń
-

&#324;

ń
-

&#346;

Ś
-

&#347;

ś
-

&#377;

Ź
-

&#378;

ź
-

&#379;

Ż
-

&#380;

ż
-

&#710;

ˆ
-

&#730;

˚
-

&#732;

˜
-

&#8211;

-

&#8212;

-

&#8216;

-

&#8217;

-

&#8218;

-

&#8220;

-

&#8221;

-

&#8222;

-

&#8230;

-

&#8249;

-

&#8250;

-

&#8364;

-

&#8482;

-
-
- - -
-
- - -
- -
- -
-
-
-

Installing Webfonts

- -

Webfonts are supported by all major browser platforms but not all in the same way. There are currently four different font formats that must be included in order to target all browsers. This includes TTF, WOFF, EOT and SVG.

- -

1. Upload your webfonts

-

You must upload your webfont kit to your website. They should be in or near the same directory as your CSS files.

- -

2. Include the webfont stylesheet

-

A special CSS @font-face declaration helps the various browsers select the appropriate font it needs without causing you a bunch of headaches. Learn more about this syntax by reading the Fontspring blog post about it. The code for it is as follows:

- - - -@font-face{ - font-family: 'MyWebFont'; - src: url('WebFont.eot'); - src: url('WebFont.eot?#iefix') format('embedded-opentype'), - url('WebFont.woff') format('woff'), - url('WebFont.ttf') format('truetype'), - url('WebFont.svg#webfont') format('svg'); -} - - -

We've already gone ahead and generated the code for you. All you have to do is link to the stylesheet in your HTML, like this:

- <link rel="stylesheet" href="stylesheet.css" type="text/css" charset="utf-8" /> - -

3. Modify your own stylesheet

-

To take advantage of your new fonts, you must tell your stylesheet to use them. Look at the original @font-face declaration above and find the property called "font-family." The name linked there will be what you use to reference the font. Prepend that webfont name to the font stack in the "font-family" property, inside the selector you want to change. For example:

-p { font-family: 'MyWebFont', Arial, sans-serif; } - -

4. Test

-

Getting webfonts to work cross-browser can be tricky. Use the information in the sidebar to help you if you find that fonts aren't loading in a particular browser.

-
- - -
- -
- -
- -
- - diff --git a/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/Novecentosanswide-Medium-webfont.eot b/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/Novecentosanswide-Medium-webfont.eot deleted file mode 100755 index 056dee0..0000000 Binary files a/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/Novecentosanswide-Medium-webfont.eot and /dev/null differ diff --git a/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/Novecentosanswide-Medium-webfont.svg b/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/Novecentosanswide-Medium-webfont.svg deleted file mode 100755 index c3eb3ce..0000000 --- a/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/Novecentosanswide-Medium-webfont.svg +++ /dev/null @@ -1,879 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/Novecentosanswide-Medium-webfont.ttf b/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/Novecentosanswide-Medium-webfont.ttf deleted file mode 100755 index e6b9392..0000000 Binary files a/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/Novecentosanswide-Medium-webfont.ttf and /dev/null differ diff --git a/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/Novecentosanswide-Medium-webfont.woff b/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/Novecentosanswide-Medium-webfont.woff deleted file mode 100755 index 7c4af94..0000000 Binary files a/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/Novecentosanswide-Medium-webfont.woff and /dev/null differ diff --git a/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/Novecentosanswide-Medium-webfont.woff2 b/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/Novecentosanswide-Medium-webfont.woff2 deleted file mode 100755 index 3c7a3e5..0000000 Binary files a/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/Novecentosanswide-Medium-webfont.woff2 and /dev/null differ diff --git a/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/specimen_files/easytabs.js b/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/specimen_files/easytabs.js deleted file mode 100755 index 167f53b..0000000 --- a/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/specimen_files/easytabs.js +++ /dev/null @@ -1,7 +0,0 @@ -(function($){$.fn.easyTabs=function(option){var param=jQuery.extend({fadeSpeed:"fast",defaultContent:1,activeClass:'active'},option);$(this).each(function(){var thisId="#"+this.id;if(param.defaultContent==''){param.defaultContent=1;} -if(typeof param.defaultContent=="number") -{var defaultTab=$(thisId+" .tabs li:eq("+(param.defaultContent-1)+") a").attr('href').substr(1);}else{var defaultTab=param.defaultContent;} -$(thisId+" .tabs li a").each(function(){var tabToHide=$(this).attr('href').substr(1);$("#"+tabToHide).addClass('easytabs-tab-content');});hideAll();changeContent(defaultTab);function hideAll(){$(thisId+" .easytabs-tab-content").hide();} -function changeContent(tabId){hideAll();$(thisId+" .tabs li").removeClass(param.activeClass);$(thisId+" .tabs li a[href=#"+tabId+"]").closest('li').addClass(param.activeClass);if(param.fadeSpeed!="none") -{$(thisId+" #"+tabId).fadeIn(param.fadeSpeed);}else{$(thisId+" #"+tabId).show();}} -$(thisId+" .tabs li").click(function(){var tabId=$(this).find('a').attr('href').substr(1);changeContent(tabId);return false;});});}})(jQuery); \ No newline at end of file diff --git a/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/specimen_files/grid_12-825-55-15.css b/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/specimen_files/grid_12-825-55-15.css deleted file mode 100755 index 3d6aef7..0000000 --- a/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/specimen_files/grid_12-825-55-15.css +++ /dev/null @@ -1,129 +0,0 @@ -/*Notes about grid: -Columns: 12 -Grid Width: 825px -Column Width: 55px -Gutter Width: 15px --------------------------------*/ - - - -.section {margin-bottom: 18px; -} -.section:after {content: ".";display: block;height: 0;clear: both;visibility: hidden;} -.section {*zoom: 1;} - -.section .firstcolumn, -.section .firstcol {margin-left: 0;} - - -/* Border on left hand side of a column. */ -.border { - padding-left: 7px; - margin-left: 7px; - border-left: 1px solid #eee; -} - -/* Border with more whitespace, spans one column. */ -.colborder { - padding-left: 42px; - margin-left: 42px; - border-left: 1px solid #eee; -} - - - -/* The Grid Classes */ -.grid1, .grid1_2cols, .grid1_3cols, .grid1_4cols, .grid2, .grid2_3cols, .grid2_4cols, .grid3, .grid3_2cols, .grid3_4cols, .grid4, .grid4_3cols, .grid5, .grid5_2cols, .grid5_3cols, .grid5_4cols, .grid6, .grid6_4cols, .grid7, .grid7_2cols, .grid7_3cols, .grid7_4cols, .grid8, .grid8_3cols, .grid9, .grid9_2cols, .grid9_4cols, .grid10, .grid10_3cols, .grid10_4cols, .grid11, .grid11_2cols, .grid11_3cols, .grid11_4cols, .grid12 -{margin-left: 15px;float: left;display: inline; overflow: hidden;} - - -.width1, .grid1, .span-1 {width: 55px;} -.width1_2cols,.grid1_2cols {width: 20px;} -.width1_3cols,.grid1_3cols {width: 8px;} -.width1_4cols,.grid1_4cols {width: 2px;} -.input_width1 {width: 49px;} - -.width2, .grid2, .span-2 {width: 125px;} -.width2_3cols,.grid2_3cols {width: 31px;} -.width2_4cols,.grid2_4cols {width: 20px;} -.input_width2 {width: 119px;} - -.width3, .grid3, .span-3 {width: 195px;} -.width3_2cols,.grid3_2cols {width: 90px;} -.width3_4cols,.grid3_4cols {width: 37px;} -.input_width3 {width: 189px;} - -.width4, .grid4, .span-4 {width: 265px;} -.width4_3cols,.grid4_3cols {width: 78px;} -.input_width4 {width: 259px;} - -.width5, .grid5, .span-5 {width: 335px;} -.width5_2cols,.grid5_2cols {width: 160px;} -.width5_3cols,.grid5_3cols {width: 101px;} -.width5_4cols,.grid5_4cols {width: 72px;} -.input_width5 {width: 329px;} - -.width6, .grid6, .span-6 {width: 405px;} -.width6_4cols,.grid6_4cols {width: 90px;} -.input_width6 {width: 399px;} - -.width7, .grid7, .span-7 {width: 475px;} -.width7_2cols,.grid7_2cols {width: 230px;} -.width7_3cols,.grid7_3cols {width: 148px;} -.width7_4cols,.grid7_4cols {width: 107px;} -.input_width7 {width: 469px;} - -.width8, .grid8, .span-8 {width: 545px;} -.width8_3cols,.grid8_3cols {width: 171px;} -.input_width8 {width: 539px;} - -.width9, .grid9, .span-9 {width: 615px;} -.width9_2cols,.grid9_2cols {width: 300px;} -.width9_4cols,.grid9_4cols {width: 142px;} -.input_width9 {width: 609px;} - -.width10, .grid10, .span-10 {width: 685px;} -.width10_3cols,.grid10_3cols {width: 218px;} -.width10_4cols,.grid10_4cols {width: 160px;} -.input_width10 {width: 679px;} - -.width11, .grid11, .span-11 {width: 755px;} -.width11_2cols,.grid11_2cols {width: 370px;} -.width11_3cols,.grid11_3cols {width: 241px;} -.width11_4cols,.grid11_4cols {width: 177px;} -.input_width11 {width: 749px;} - -.width12, .grid12, .span-12 {width: 825px;} -.input_width12 {width: 819px;} - -/* Subdivided grid spaces */ -.emptycols_left1, .prepend-1 {padding-left: 70px;} -.emptycols_right1, .append-1 {padding-right: 70px;} -.emptycols_left2, .prepend-2 {padding-left: 140px;} -.emptycols_right2, .append-2 {padding-right: 140px;} -.emptycols_left3, .prepend-3 {padding-left: 210px;} -.emptycols_right3, .append-3 {padding-right: 210px;} -.emptycols_left4, .prepend-4 {padding-left: 280px;} -.emptycols_right4, .append-4 {padding-right: 280px;} -.emptycols_left5, .prepend-5 {padding-left: 350px;} -.emptycols_right5, .append-5 {padding-right: 350px;} -.emptycols_left6, .prepend-6 {padding-left: 420px;} -.emptycols_right6, .append-6 {padding-right: 420px;} -.emptycols_left7, .prepend-7 {padding-left: 490px;} -.emptycols_right7, .append-7 {padding-right: 490px;} -.emptycols_left8, .prepend-8 {padding-left: 560px;} -.emptycols_right8, .append-8 {padding-right: 560px;} -.emptycols_left9, .prepend-9 {padding-left: 630px;} -.emptycols_right9, .append-9 {padding-right: 630px;} -.emptycols_left10, .prepend-10 {padding-left: 700px;} -.emptycols_right10, .append-10 {padding-right: 700px;} -.emptycols_left11, .prepend-11 {padding-left: 770px;} -.emptycols_right11, .append-11 {padding-right: 770px;} -.pull-1 {margin-left: -70px;} -.push-1 {margin-right: -70px;margin-left: 18px;float: right;} -.pull-2 {margin-left: -140px;} -.push-2 {margin-right: -140px;margin-left: 18px;float: right;} -.pull-3 {margin-left: -210px;} -.push-3 {margin-right: -210px;margin-left: 18px;float: right;} -.pull-4 {margin-left: -280px;} -.push-4 {margin-right: -280px;margin-left: 18px;float: right;} \ No newline at end of file diff --git a/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/specimen_files/specimen_stylesheet.css b/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/specimen_files/specimen_stylesheet.css deleted file mode 100755 index aecc43c..0000000 --- a/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/specimen_files/specimen_stylesheet.css +++ /dev/null @@ -1,396 +0,0 @@ -@import url('grid_12-825-55-15.css'); - -/* - CSS Reset by Eric Meyer - Released under Public Domain - http://meyerweb.com/eric/tools/css/reset/ -*/ -html, body, div, span, applet, object, iframe, -h1, h2, h3, h4, h5, h6, p, blockquote, pre, -a, abbr, acronym, address, big, cite, code, -del, dfn, em, font, img, ins, kbd, q, s, samp, -small, strike, strong, sub, sup, tt, var, -b, u, i, center, dl, dt, dd, ol, ul, li, -fieldset, form, label, legend, table, -caption, tbody, tfoot, thead, tr, th, td - {margin: 0;padding: 0;border: 0;outline: 0; - font-size: 100%;vertical-align: baseline; - background: transparent;} -body {line-height: 1;} -ol, ul {list-style: none;} -blockquote, q {quotes: none;} -blockquote:before, blockquote:after, -q:before, q:after {content: ''; content: none;} -:focus {outline: 0;} -ins {text-decoration: none;} -del {text-decoration: line-through;} -table {border-collapse: collapse;border-spacing: 0;} - - - - -body { - color: #000; - background-color: #dcdcdc; -} - -a { - text-decoration: none; - color: #1883ba; -} - -h1{ - font-size: 32px; - font-weight: normal; - font-style: normal; - margin-bottom: 18px; -} - -h2{ - font-size: 18px; -} - -#container { - width: 865px; - margin: 0px auto; -} - - -#header { - padding: 20px; - font-size: 36px; - background-color: #000; - color: #fff; -} - -#header span { - color: #666; -} -#main_content { - background-color: #fff; - padding: 60px 20px 20px; -} - - -#footer p { - margin: 0; - padding-top: 10px; - padding-bottom: 50px; - color: #333; - font: 10px Arial, sans-serif; -} - -.tabs { - width: 100%; - height: 31px; - background-color: #444; -} -.tabs li { - float: left; - margin: 0; - overflow: hidden; - background-color: #444; -} -.tabs li a { - display: block; - color: #fff; - text-decoration: none; - font: bold 11px/11px 'Arial'; - text-transform: uppercase; - padding: 10px 15px; - border-right: 1px solid #fff; -} - -.tabs li a:hover { - background-color: #00b3ff; - -} - -.tabs li.active a { - color: #000; - background-color: #fff; -} - - - -div.huge { - - font-size: 300px; - line-height: 1em; - padding: 0; - letter-spacing: -.02em; - overflow: hidden; -} -div.glyph_range { - font-size: 72px; - line-height: 1.1em; -} - -.size10{ font-size: 10px; } -.size11{ font-size: 11px; } -.size12{ font-size: 12px; } -.size13{ font-size: 13px; } -.size14{ font-size: 14px; } -.size16{ font-size: 16px; } -.size18{ font-size: 18px; } -.size20{ font-size: 20px; } -.size24{ font-size: 24px; } -.size30{ font-size: 30px; } -.size36{ font-size: 36px; } -.size48{ font-size: 48px; } -.size60{ font-size: 60px; } -.size72{ font-size: 72px; } -.size90{ font-size: 90px; } - - -.psample_row1 { height: 120px;} -.psample_row1 { height: 120px;} -.psample_row2 { height: 160px;} -.psample_row3 { height: 160px;} -.psample_row4 { height: 160px;} - -.psample { - overflow: hidden; - position: relative; -} -.psample p { - line-height: 1.3em; - display: block; - overflow: hidden; - margin: 0; -} - -.psample span { - margin-right: .5em; -} - -.white_blend { - width: 100%; - height: 61px; - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVkAAAA9CAYAAAAH4BojAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAO1JREFUeNrs3TsKgFAMRUE/eer+NxztxMYuEWQG3ECKwwUF58ycAKixOAGAyAKILAAiCyCyACILgMgCiCyAyAIgsgAiCyCyAIgsgMgCiCwAIgsgsgAiC4DIAogsACIL0CWuZ3UGgLrIhjMA1EV2OAOAJQtgyQLwjOzmDAAiCyCyAIgsQFtkd2cAEFkAkQVAZAHaIns4A4AlC2DJAiCyACILILIAiCzAV5H1dQGAJQsgsgCILIDIAvwisl58AViyAJYsACILILIAIgvAe2T9EhxAZAFEFgCRBeiL7HAGgLrIhjMAWLIAliwAt1OAAQDwygTBulLIlQAAAABJRU5ErkJggg==); - position: absolute; - bottom: 0; -} -.black_blend { - width: 100%; - height: 61px; - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVkAAAA9CAYAAAAH4BojAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAPJJREFUeNrs3TEKhTAQRVGjibr/9QoxhY2N3Ywo50A28IrLwP9g6b1PAMSYTQAgsgAiC4DIAogsgMgCILIAIgsgsgCILIDIAogsACILILIAIguAyAKILIDIAiCyACILgMgCZCnjLWYAiFGvB0BQZJsZAFyyAC5ZAO6RXc0AILIAIguAyAKkRXYzA4DIAogsACILkBbZ3QwALlkAlywAIgsgsgAiC4DIArwVWf8uAHDJAogsACILILIAv4isH74AXLIALlkARBZAZAFEFoDnyPokOIDIAogsACILkBfZZgaAuMhWMwC4ZAE+p4x3mAEgxinAAJ+XBbPWGkwAAAAAAElFTkSuQmCC); - position: absolute; - bottom: 0; -} -.fullreverse { - background: #000 !important; - color: #fff !important; - margin-left: -20px; - padding-left: 20px; - margin-right: -20px; - padding-right: 20px; - padding: 20px; - margin-bottom:0; -} - - -.sample_table td { - padding-top: 3px; - padding-bottom:5px; - padding-left: 5px; - vertical-align: middle; - line-height: 1.2em; -} - -.sample_table td:first-child { - background-color: #eee; - text-align: right; - padding-right: 5px; - padding-left: 0; - padding: 5px; - font: 11px/12px "Courier New", Courier, mono; -} - -code { - white-space: pre; - background-color: #eee; - display: block; - padding: 10px; - margin-bottom: 18px; - overflow: auto; -} - - -.bottom,.last {margin-bottom:0 !important; padding-bottom:0 !important;} - -.box { - padding: 18px; - margin-bottom: 18px; - background: #eee; -} - -.reverse,.reversed { background: #000 !important;color: #fff !important; border: none !important;} - -#bodycomparison { - position: relative; - overflow: hidden; - font-size: 72px; - height: 90px; - white-space: nowrap; -} - -#bodycomparison div{ - font-size: 72px; - line-height: 90px; - display: inline; - margin: 0 15px 0 0; - padding: 0; -} - -#bodycomparison div span{ - font: 10px Arial; - position: absolute; - left: 0; -} -#xheight { - float: none; - position: absolute; - color: #d9f3ff; - font-size: 72px; - line-height: 90px; -} - -.fontbody { - position: relative; -} -.arialbody{ - font-family: Arial; - position: relative; -} -.verdanabody{ - font-family: Verdana; - position: relative; -} -.georgiabody{ - font-family: Georgia; - position: relative; -} - -/* @group Layout page - */ - -#layout h1 { - font-size: 36px; - line-height: 42px; - font-weight: normal; - font-style: normal; -} - -#layout h2 { - font-size: 24px; - line-height: 23px; - font-weight: normal; - font-style: normal; -} - -#layout h3 { - font-size: 22px; - line-height: 1.4em; - margin-top: 1em; - font-weight: normal; - font-style: normal; -} - - -#layout p.byline { - font-size: 12px; - margin-top: 18px; - line-height: 12px; - margin-bottom: 0; -} -#layout p { - font-size: 14px; - line-height: 21px; - margin-bottom: .5em; -} - -#layout p.large{ - font-size: 18px; - line-height: 26px; -} - -#layout .sidebar p{ - font-size: 12px; - line-height: 1.4em; -} - -#layout p.caption { - font-size: 10px; - margin-top: -16px; - margin-bottom: 18px; -} - -/* @end */ - -/* @group Glyphs */ - -#glyph_chart div{ - background-color: #d9f3ff; - color: black; - float: left; - font-size: 36px; - height: 1.2em; - line-height: 1.2em; - margin-bottom: 1px; - margin-right: 1px; - text-align: center; - width: 1.2em; - position: relative; - padding: .6em .2em .2em; -} - -#glyph_chart div p { - position: absolute; - left: 0; - top: 0; - display: block; - text-align: center; - font: bold 9px Arial, sans-serif; - background-color: #3a768f; - width: 100%; - color: #fff; - padding: 2px 0; -} - - -#glyphs h1 { - font-family: Arial, sans-serif; -} -/* @end */ - -/* @group Installing */ - -#installing { - font: 13px Arial, sans-serif; -} - -#installing p, -#glyphs p{ - line-height: 1.2em; - margin-bottom: 18px; - font: 13px Arial, sans-serif; -} - - - -#installing h3{ - font-size: 15px; - margin-top: 18px; -} - -/* @end */ - -#rendering h1 { - font-family: Arial, sans-serif; -} -.render_table td { - font: 11px "Courier New", Courier, mono; - vertical-align: middle; -} - - diff --git a/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/stylesheet.css b/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/stylesheet.css deleted file mode 100755 index 64d7558..0000000 --- a/fonts/Novecento sans wide Medium-Webfont/Webfonts/novecentosanswide_medium_polish/stylesheet.css +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Web Fonts from fontspring.com - * - * All OpenType features and all extended glyphs have been removed. - * Fully installable fonts can be purchased at http://www.fontspring.com - * - * The fonts included in this stylesheet are subject to the End User License you purchased - * from Fontspring. The fonts are protected under domestic and international trademark and - * copyright law. You are prohibited from modifying, reverse engineering, duplicating, or - * distributing this font software. - * - * (c) 2010-2014 Fontspring - * - * - * - * - * The fonts included are copyrighted by the vendor listed below. - * - * Vendor: Synthview Type Design - * License URL: http://www.fontspring.com/licenses/synthview/webfont - * - * - */ - -@font-face { - font-family: 'novecento_sans_widemedium'; - src: url('Novecentosanswide-Medium-webfont.eot'); - src: url('Novecentosanswide-Medium-webfont.eot?#iefix') format('embedded-opentype'), - url('Novecentosanswide-Medium-webfont.woff2') format('woff2'), - url('Novecentosanswide-Medium-webfont.woff') format('woff'), - url('Novecentosanswide-Medium-webfont.ttf') format('truetype'), - url('Novecentosanswide-Medium-webfont.svg#novecento_sans_widemedium') format('svg'); - font-weight: normal; - font-style: normal; - -} - diff --git a/fonts/Novecentosanswide-DemiBold-webfont.eot b/fonts/Novecentosanswide-DemiBold-webfont.eot index 5ee8055..613dedc 100755 Binary files a/fonts/Novecentosanswide-DemiBold-webfont.eot and b/fonts/Novecentosanswide-DemiBold-webfont.eot differ diff --git a/fonts/Novecentosanswide-DemiBold-webfont.svg b/fonts/Novecentosanswide-DemiBold-webfont.svg index a2165f5..284f4f6 100755 --- a/fonts/Novecentosanswide-DemiBold-webfont.svg +++ b/fonts/Novecentosanswide-DemiBold-webfont.svg @@ -1,879 +1,1286 @@ - - + + +Created by FontForge 20200427 at Fri Nov 16 00:13:20 2012 + By www +Copyright 2012 Adobe Systems Incorporated. All rights reserved. + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fonts/Novecentosanswide-DemiBold-webfont.ttf b/fonts/Novecentosanswide-DemiBold-webfont.ttf index 6233328..0260847 100755 Binary files a/fonts/Novecentosanswide-DemiBold-webfont.ttf and b/fonts/Novecentosanswide-DemiBold-webfont.ttf differ diff --git a/fonts/Novecentosanswide-DemiBold-webfont.woff b/fonts/Novecentosanswide-DemiBold-webfont.woff index 8947e8f..604947c 100755 Binary files a/fonts/Novecentosanswide-DemiBold-webfont.woff and b/fonts/Novecentosanswide-DemiBold-webfont.woff differ diff --git a/fonts/Novecentosanswide-DemiBold-webfont.woff2 b/fonts/Novecentosanswide-DemiBold-webfont.woff2 index 1568f3e..d2449fd 100755 Binary files a/fonts/Novecentosanswide-DemiBold-webfont.woff2 and b/fonts/Novecentosanswide-DemiBold-webfont.woff2 differ diff --git a/fonts/fontawesome-webfont.eot b/fonts/fontawesome-webfont.eot deleted file mode 100644 index 6cfd566..0000000 Binary files a/fonts/fontawesome-webfont.eot and /dev/null differ diff --git a/fonts/fontawesome-webfont.svg b/fonts/fontawesome-webfont.svg deleted file mode 100644 index a9f8469..0000000 --- a/fonts/fontawesome-webfont.svg +++ /dev/null @@ -1,504 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/fonts/fontawesome-webfont.ttf b/fonts/fontawesome-webfont.ttf deleted file mode 100644 index 5cd6cff..0000000 Binary files a/fonts/fontawesome-webfont.ttf and /dev/null differ diff --git a/fonts/fontawesome-webfont.woff b/fonts/fontawesome-webfont.woff deleted file mode 100644 index 9eaecb3..0000000 Binary files a/fonts/fontawesome-webfont.woff and /dev/null differ diff --git a/fonts/fontawesome-webfont.woff2 b/fonts/fontawesome-webfont.woff2 deleted file mode 100644 index 500e517..0000000 Binary files a/fonts/fontawesome-webfont.woff2 and /dev/null differ diff --git a/fonts/pacifico.ttf b/fonts/pacifico.ttf new file mode 100644 index 0000000..2d7c970 Binary files /dev/null and b/fonts/pacifico.ttf differ diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..74e7bed --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,43 @@ +var gulp = require('gulp'); +var sass = require('gulp-sass'); +var cleancss = require('gulp-clean-css'); +var csscomb = require('gulp-csscomb'); +var rename = require('gulp-rename'); +var autoprefixer = require('gulp-autoprefixer'); +var sourcemaps = require('gulp-sourcemaps'); + +// configure the paths +var watch_dir = './scss/**/*.scss'; +var src_dir = './scss/*.scss'; +var dest_dir = './css-compiled'; + +var paths = { + source: src_dir +}; + +function watch() { + return gulp.watch(watch_dir, build); +} + +function build() { + return gulp.src(paths.source) + .pipe(sourcemaps.init()) + .pipe(sass({ + outputStyle: 'compact', + precision: 10 + }).on('error', sass.logError) + ) + .pipe(sourcemaps.write()) + .pipe(autoprefixer()) + .pipe(gulp.dest(dest_dir)) + .pipe(csscomb()) + .pipe(cleancss()) + .pipe(rename({ + suffix: '.min' + })) + .pipe(gulp.dest(dest_dir)); +} + +exports.watch = watch; +exports.build = build; +exports.default = build; diff --git a/images/favicon.png b/images/favicon.png index 724b97b..522edfa 100644 Binary files a/images/favicon.png and b/images/favicon.png differ diff --git a/package.json b/package.json new file mode 100644 index 0000000..a0d5000 --- /dev/null +++ b/package.json @@ -0,0 +1,49 @@ +{ + "name": "spectre.css", + "version": "0.5.1", + "homepage": "http://picturepan2.github.io/spectre", + "author": "Yan Zhu ", + "description": "Spectre.css: a lightweight, responsive and modern CSS framework", + "main": "docs/dist/spectre.css", + "repository": { + "type": "git", + "url": "https://github.com/picturepan2/spectre.git" + }, + "license": "MIT", + "keywords": [ + "css", + "framework", + "flexbox", + "responsive", + "mobile-friendly", + "front-end", + "sass", + "modern" + ], + "bugs": { + "url": "https://github.com/picturepan2/spectre/issues" + }, + "devDependencies": { + "gulp": "^4.0.0", + "gulp-autoprefixer": "^6.1.0", + "gulp-clean-css": "^3.9.4", + "gulp-csscomb": "^3.0.8", + "gulp-rename": "^1.2.2", + "gulp-sass": "^4.0.1" + }, + "browserslist": [ + "last 4 Chrome versions", + "Edge >= 12", + "Firefox ESR", + "last 4 Safari versions", + "last 4 Opera versions", + "Explorer >= 10" + ], + "scripts": { + "dev": "gulp watch", + "build": "gulp build" + }, + "dependencies": { + "gulp-sourcemaps": "^2.6.4" + } +} diff --git a/scss/template/_fonts.scss b/scss/template/_fonts.scss index 8927da9..23a62d7 100644 --- a/scss/template/_fonts.scss +++ b/scss/template/_fonts.scss @@ -1,6 +1,3 @@ -// Import Google Web Fonts -@import url(//fonts.googleapis.com/css?family=Montserrat:400|Raleway:300,400,600|Inconsolata|Pacifico); - @font-face { font-family: 'novecento_sans_widedemibold'; src: url('../fonts/Novecentosanswide-DemiBold-webfont.eot'); @@ -29,13 +26,21 @@ @font-face { font-family: 'novecento_sans_widemedium'; - src: url('./fonts/Novecentosanswide-Medium-webfont.eot'); - src: url('./fonts/Novecentosanswide-Medium-webfont.eot?#iefix') format('embedded-opentype'), - url('./fonts/Novecentosanswide-Medium-webfont.woff2') format('woff2'), - url('./fonts/Novecentosanswide-Medium-webfont.woff') format('woff'), - url('./fonts/Novecentosanswide-Medium-webfont.ttf') format('truetype'), - url('./fonts/Novecentosanswide-Medium-webfont.svg#novecento_sans_widemedium') format('svg'); + src: url('../fonts/Novecentosanswide-Medium-webfont.eot'); + src: url('../fonts/Novecentosanswide-Medium-webfont.eot?#iefix') format('embedded-opentype'), + url('../fonts/Novecentosanswide-Medium-webfont.woff2') format('woff2'), + url('../fonts/Novecentosanswide-Medium-webfont.woff') format('woff'), + url('../fonts/Novecentosanswide-Medium-webfont.ttf') format('truetype'), + url('../fonts/Novecentosanswide-Medium-webfont.svg#novecento_sans_widemedium') format('svg'); font-weight: normal; font-style: normal; } + +@font-face { + font-family: 'Pacifico'; + src: url('../fonts/pacifico.ttf') format('truetype'); + font-weight: 400; + font-style: normal; + +} diff --git a/scss/template/_footer.scss b/scss/template/_footer.scss index fdd3650..dc33f98 100644 --- a/scss/template/_footer.scss +++ b/scss/template/_footer.scss @@ -45,11 +45,11 @@ } .footer-module { &.large { - width: 40%; + width: 50%; } display: block; float: left; - width: 20%; + width: 25%; vertical-align: top; padding-right: 2rem; @include breakpoint(large-mobile-range) { @@ -157,4 +157,4 @@ vertical-align: top; } } - } \ No newline at end of file + } diff --git a/scss/template/_header.scss b/scss/template/_header.scss index 503453f..c3dc476 100644 --- a/scss/template/_header.scss +++ b/scss/template/_header.scss @@ -290,6 +290,7 @@ #navbar ul.navigation { ul li a { color: $core-accent; + text-shadow: 1px 1px 3px #656161; &:hover { color: darken($core-accent, 20%); } diff --git a/scss/template/_typography.scss b/scss/template/_typography.scss index 524822a..d0778e8 100644 --- a/scss/template/_typography.scss +++ b/scss/template/_typography.scss @@ -16,6 +16,7 @@ h1 { font-size: 2.5rem; line-height: 1.2; margin-bottom: 2.5rem; + text-shadow: 1px 1px 3px #656161; } } @@ -42,7 +43,7 @@ h3 { h4 { font-size: 1.2rem; - font-weight: normal; + font-weight: bold; text-align: center; text-transform: uppercase; color: $light-gray; diff --git a/scss/template/modular/_all.scss b/scss/template/modular/_all.scss index 9a1cc78..74cac16 100644 --- a/scss/template/modular/_all.scss +++ b/scss/template/modular/_all.scss @@ -118,12 +118,12 @@ opacity: 0; margin-top: 0.8rem; margin-left: 0.8rem; + font-size: 2rem; + color: #464C51; background-color: $core-accent; - .fa-plus-square { - font-size: 5rem; - color: #464C51; + .fa-arrow-up-right-from-square { margin-top: 2.5rem; - margin-left: 5.9rem; + margin-left: 4.7rem; } &:hover { opacity: 0.8; @@ -165,4 +165,4 @@ margin: 0.4375rem 0 0 -0.625rem; z-index: -1; border-radius: 100%; - } \ No newline at end of file + } diff --git a/scss/template/modular/_features.scss b/scss/template/modular/_features.scss index 1ac1fa6..fa2915e 100644 --- a/scss/template/modular/_features.scss +++ b/scss/template/modular/_features.scss @@ -90,6 +90,7 @@ .feature-content { padding-right: 2rem; + text-align: justify; &.icon-offset { margin-left: 1rem; diff --git a/scss/template/modular/_showcase.scss b/scss/template/modular/_showcase.scss index 59c93af..a50754d 100644 --- a/scss/template/modular/_showcase.scss +++ b/scss/template/modular/_showcase.scss @@ -34,6 +34,7 @@ color: $header-text; h1 { font-size: 2.2rem; + text-shadow: 1px 1px 3px #656161; margin-top: 0; padding-left: $padding-horiz; padding-right: $padding-horiz; @@ -54,6 +55,7 @@ text-transform: uppercase; } h2 { + text-shadow: 1px 1px 3px #656161; text-transform: none; padding-left: $padding-horiz; padding-right: $padding-horiz; diff --git a/scss/template/modular/_team.scss b/scss/template/modular/_team.scss index 70b3b24..3c86ee5 100644 --- a/scss/template/modular/_team.scss +++ b/scss/template/modular/_team.scss @@ -22,7 +22,7 @@ $module-bg: #EEEEEE; .member { display: inline-block; float: left; - width: 22%; + width: 29%; margin: 0 1rem; margin-bottom: 2rem; @include breakpoint(mobile-only) { diff --git a/scss/template/modular/_text.scss b/scss/template/modular/_text.scss index e78c27c..acd4f1c 100644 --- a/scss/template/modular/_text.scss +++ b/scss/template/modular/_text.scss @@ -36,9 +36,10 @@ $image-margin: 2rem; .pricing-item { @extend .default-animation; -webkit-transform:translateZ(0); - display: inline-block; - width: 24.3%; - margin-right: 0.3rem; + display: inline-grid; + width: 40%; + margin-left: 0rem; + margin-right: 3rem; margin-bottom: 2rem; position: relative; @include breakpoint(mobile-only) { @@ -68,13 +69,14 @@ $image-margin: 2rem; padding: 0.5rem 0; } .info { - line-height: 3rem; + padding-top: 1rem; + padding-bottom: 1rem; border-bottom: $border-color 1px solid; } .price { font-weight: bold; color: $light-gray; - font-size: 3.5rem; + font-size: 2.5rem; font-family: $font-family-header; font-weight: normal; border-bottom: $border-color 1px solid; diff --git a/scss/template/modules/_buttons.scss b/scss/template/modules/_buttons.scss index 787697c..c207862 100644 --- a/scss/template/modules/_buttons.scss +++ b/scss/template/modules/_buttons.scss @@ -1,6 +1,9 @@ %button { display: inline-block; padding: 7px 20px; + margin-left: 5px; + margin-right: 5px; + margin-bottom: 10px; &.button-small { padding: 3px 10px; diff --git a/templates/blog.html.twig b/templates/blog.html.twig index fcb47d5..9678733 100644 --- a/templates/blog.html.twig +++ b/templates/blog.html.twig @@ -16,11 +16,11 @@ {% set blog_image = page.media.images|first %} {% if blog_image %} -
- {% else %} +
+{% else %}
- {% endif %} - {{ page.content|raw }} +{% endif %} + {{ page.content|raw }}
{% if config.plugins.breadcrumbs.enabled %} diff --git a/templates/formdata.html.twig b/templates/formdata.html.twig index 13cb4c9..2dbe583 100644 --- a/templates/formdata.html.twig +++ b/templates/formdata.html.twig @@ -5,7 +5,7 @@ {{ content|raw }}

{{ form.message }}

-

Here is the summary of what you wrote to us:

+

Voici le message que vous nous avez envoyé :

{% include "forms/data.html.twig" %}
diff --git a/templates/item.html.twig b/templates/item.html.twig index d4bdca1..b437107 100644 --- a/templates/item.html.twig +++ b/templates/item.html.twig @@ -23,7 +23,7 @@ {% if config.plugins.breadcrumbs.enabled %} {% include 'partials/breadcrumbs.html.twig' %} {% endif %} - +
{% include 'partials/blog_item.html.twig' with {'truncate':false,'big_header':true} %} diff --git a/templates/modular/document.html.twig b/templates/modular/document.html.twig new file mode 100644 index 0000000..ea9f423 --- /dev/null +++ b/templates/modular/document.html.twig @@ -0,0 +1,4 @@ +
+ {{ content|raw }} +
+ diff --git a/templates/modular/footer.html.twig b/templates/modular/footer.html.twig index 932042d..2f240b4 100644 --- a/templates/modular/footer.html.twig +++ b/templates/modular/footer.html.twig @@ -8,49 +8,48 @@ {% endblock %}
- {% if site.footer.description %} + {% if site.footer.description and site.footer.description is not iterable %}

{{ site.footer.description }}

{% endif %} -
- - +
+
-
- - \ No newline at end of file diff --git a/templates/modular/portfolio.html.twig b/templates/modular/portfolio.html.twig index 1eb07e4..719045e 100644 --- a/templates/modular/portfolio.html.twig +++ b/templates/modular/portfolio.html.twig @@ -2,17 +2,24 @@ {{ content|raw }} {% if page.header.portfolio %}
- {% for row in page.header.portfolio|batch(4) %} + {% for row in page.header.portfolio|batch(3) %}
{% for portfolio in row %}

{{ portfolio.title }}

-

{{ portfolio.desc }}

+ {% if portfolio.url is defined %} +

{{ portfolio.url }}
+ {% endif %} + {{ portfolio.desc|raw }}

- -
-
+ {% if portfolio.details_url is defined %} + +
Détails
+
+ {% else %} +
+ {% endif %}
{% endfor %} @@ -22,35 +29,3 @@ {% endif %}
-{% for portfolio in page.header.portfolio %} - -{% endfor %} diff --git a/templates/modular/showcase.html.twig b/templates/modular/showcase.html.twig index 69b8042..774b04b 100644 --- a/templates/modular/showcase.html.twig +++ b/templates/modular/showcase.html.twig @@ -3,7 +3,7 @@ {% for slide in page.header.slides %}

{{ slide.heading|raw }}

-

{{ slide.subheading }}

+

{{ slide.subheading|raw }}

{{ slide.button_text }}
{% endfor %} diff --git a/templates/modular/team.html.twig b/templates/modular/team.html.twig index bfcbbd9..cbdcf14 100644 --- a/templates/modular/team.html.twig +++ b/templates/modular/team.html.twig @@ -9,18 +9,21 @@

{{ member.info }}

{% endfor %} diff --git a/templates/modular/text.html.twig b/templates/modular/text.html.twig index 0d68b14..df7cedf 100644 --- a/templates/modular/text.html.twig +++ b/templates/modular/text.html.twig @@ -8,7 +8,7 @@
{{ item.price|raw }}
{% for line in item.options %}
- {{ line.line }} + {{ line }}
{% endfor %}
@@ -32,9 +32,8 @@
{% endif %} - -
+
{% for portfolio in page.header.portfolio %} {% endfor %} + + diff --git a/templates/partials/blog_item.html.twig b/templates/partials/blog_item.html.twig index 30132e2..35a0301 100644 --- a/templates/partials/blog_item.html.twig +++ b/templates/partials/blog_item.html.twig @@ -20,7 +20,7 @@ - {{ page.date|date("d") }}, {{ page.date|date("M") }} + {{ page.date|date("d") }} {{ page.date|localizeddate('long', 'none', 'fr', 'Europe/Paris', 'MMM') }} {{ page.date|date("Y") }} {% if page.header.author %} @@ -48,10 +48,10 @@ {% endif %} {% elseif truncate and page.summary != page.content %}

{{ page.summary|raw }}

-

Continue Reading...

+

Continuer la lecture...

{% elseif truncate %}

{{ page.content|truncate(550) }}

-

Continue Reading...

+

Continuer la lecture...

{% else %}

{{ page.content|raw }}

{% set show_prev_next = true %} @@ -61,11 +61,11 @@

{% if not page.isLast %} - Previous Post + Article précédent {% endif %} {% if not page.isFirst %} - Next Post + Article suivant {% endif %}

{% endif %} diff --git a/templates/partials/sidebar.html.twig b/templates/partials/sidebar.html.twig index 2e0d09c..635d92b 100644 --- a/templates/partials/sidebar.html.twig +++ b/templates/partials/sidebar.html.twig @@ -1,28 +1,24 @@ {% if config.plugins.simplesearch.enabled %} {% endif %} {% if config.plugins.relatedpages.enabled and related_pages|length > 0 %} {% endif %} {% if config.plugins.random.enabled %} {% endif %} - {% if config.plugins.taxonomylist.enabled %} {% endif %} @@ -34,8 +30,8 @@ {% endif %} {% if config.plugins.feed.enabled %} -{% endif %} \ No newline at end of file +{% endif %} diff --git a/templates/partials/simplesearch_searchbox.html.twig b/templates/partials/simplesearch_searchbox.html.twig index a87fb46..b042b7a 100644 --- a/templates/partials/simplesearch_searchbox.html.twig +++ b/templates/partials/simplesearch_searchbox.html.twig @@ -1,4 +1,4 @@ - +