/**
 * Print stylesheet
 */
/**
 * Abstracts
 *
 * Global variables, functions, mixins and placeholders.
 */
/**
 * Hides things but keeps it available for screen readers.
 *
 * @soruce https://github.com/inuitcss/inuitcss/blob/develop/tools/_tools.hidden.scss
 * @param $important Apply all styles as !important
 */
/**
 * Undos hidden-visually()
 *
 * @param $important Apply all styles as !important
 */
/**
 * Removes browser-default list styles
 */
/**
 * Vendors
 *
 * CSS files from external libraries and frameworks.
 */
/*! sanitize.css v4.1.0 | CC0 License | github.com/jonathantneal/sanitize.css */
/* Display definitions
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 * 1. Add the correct display in Edge, IE, and Firefox.
 * 2. Add the correct display in IE.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
menu,
nav,
section,
summary { /* 1 */
  display: block;
}
/**
 * Add the correct display in IE 9-.
 */
audio,
canvas,
progress,
video {
  display: inline-block;
}
/**
 * Add the correct display in iOS 4-7.
 */
audio:not([controls]) {
  display: none;
  height: 0;
}
/**
 * Add the correct display in IE 10-.
 * 1. Add the correct display in IE.
 */
template,
[hidden] {
  display: none;
}
/* Elements of HTML (https://www.w3.org/TR/html5/semantics.html)
   ========================================================================== */
/**
 * 1. Remove repeating backgrounds in all browsers (opinionated).
 * 2. Add box sizing inheritence in all browsers (opinionated).
 */
*,
::before,
::after {
  background-repeat: no-repeat; /* 1 */
  box-sizing: inherit; /* 2 */
}
/**
 * 1. Add text decoration inheritance in all browsers (opinionated).
 * 2. Add vertical alignment inheritence in all browsers (opinionated).
 */
::before,
::after {
  text-decoration: inherit; /* 1 */
  vertical-align: inherit; /* 2 */
}
/**
 * 1. Add border box sizing in all browsers (opinionated).
 * 2. Add the default cursor in all browsers (opinionated).
 * 3. Add a flattened line height in all browsers (opinionated).
 * 4. Prevent font size adjustments after orientation changes in IE and iOS.
 */
html {
  box-sizing: border-box; /* 1 */
  cursor: default; /* 2 */
  font-family: sans-serif; /* 3 */
  line-height: 1.5; /* 3 */
  -ms-text-size-adjust: 100%; /* 4 */
  -webkit-text-size-adjust: 100%; /* 5 */
}
/* Sections (https://www.w3.org/TR/html5/sections.html)
   ========================================================================== */
/**
 * Remove the margin in all browsers (opinionated).
 */
body {
  margin: 0;
}
/**
 * Correct the font sizes and margins on `h1` elements within
 * `section` and `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
/* Grouping content (https://www.w3.org/TR/html5/grouping-content.html)
   ========================================================================== */
/**
 * 1. Correct font sizing inheritance and scaling in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}
/**
 * 1. Correct the height in Firefox.
 * 2. Add visible overflow in Edge and IE.
 */
hr {
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}
/**
 * Remove the list style on navigation lists in all browsers (opinionated).
 */
nav ol,
nav ul {
  list-style: none;
}
/* Text-level semantics
   ========================================================================== */
/**
 * 1. Add a bordered underline effect in all browsers.
 * 2. Remove text decoration in Firefox 40+.
 */
abbr[title] {
  border-bottom: 1px dotted; /* 1 */
  text-decoration: none; /* 2 */
}
/**
 * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
 */
b,
strong {
  font-weight: inherit;
}
/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}
/**
 * Add the correct font style in Android 4.3-.
 */
dfn {
  font-style: italic;
}
/**
 * Add the correct colors in IE 9-.
 */
mark {
  background-color: #ffff00;
  color: #000000;
}
/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}
/**
 * Correct the font size in all browsers.
 */
small {
  font-size: 83.3333%;
}
/**
 * Change the positioning on superscript and subscript elements
 * in all browsers (opinionated).
 * 1. Correct the font size in all browsers.
 */
sub,
sup {
  font-size: 83.3333%; /* 1 */
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
/*
 * Remove the text shadow on text selections (opinionated).
 * 1. Restore the coloring undone by defining the text shadow (opinionated).
 */
::-moz-selection {
  background-color: #b3d4fc; /* 1 */
  color: #000000; /* 1 */
  text-shadow: none;
}
::selection {
  background-color: #b3d4fc; /* 1 */
  color: #000000; /* 1 */
  text-shadow: none;
}
/* Embedded content (https://www.w3.org/TR/html5/embedded-content-0.html)
   ========================================================================== */
/*
 * Change the alignment on media elements in all browers (opinionated).
 */
audio,
canvas,
iframe,
img,
svg,
video {
  vertical-align: middle;
}
/**
 * Remove the border on images inside links in IE 10-.
 */
img {
  border-style: none;
}
/**
 * Change the fill color to match the text color in all browsers (opinionated).
 */
svg {
  fill: currentColor;
}
/**
 * Hide the overflow in IE.
 */
svg:not(:root) {
  overflow: hidden;
}
/* Links (https://www.w3.org/TR/html5/links.html#links)
   ========================================================================== */
/**
 * 1. Remove the gray background on active links in IE 10.
 * 2. Remove the gaps in underlines in iOS 8+ and Safari 8+.
 */
a {
  background-color: transparent; /* 1 */
  -webkit-text-decoration-skip: objects; /* 2 */
}
/**
 * Remove the outline when hovering in all browsers (opinionated).
 */
a:hover {
  outline-width: 0;
}
/* Tabular data (https://www.w3.org/TR/html5/tabular-data.html)
   ========================================================================== */
/*
 * Remove border spacing in all browsers (opinionated).
 */
table {
  border-collapse: collapse;
  border-spacing: 0;
}
/* transform-style:  (https://www.w3.org/TR/html5/forms.html)
   ========================================================================== */
/**
 * 1. Remove the default styling in all browsers (opinionated).
 * 3. Remove the margin in Firefox and Safari.
 */
button,
input,
select,
textarea {
  background-color: transparent; /* 1 */
  border-style: none; /* 1 */
  color: inherit; /* 1 */
  font-size: 1em; /* 1 */
  margin: 0; /* 3 */
}
/**
 * Correct the overflow in IE.
 * 1. Correct the overflow in Edge.
 */
button,
input { /* 1 */
  overflow: visible;
}
/**
 * Remove the inheritance in Edge, Firefox, and IE.
 * 1. Remove the inheritance in Firefox.
 */
button,
select { /* 1 */
  text-transform: none;
}
/**
 * 1. Prevent the WebKit bug where (2) destroys native `audio` and `video`
 *    controls in Android 4.
 * 2. Correct the inability to style clickable types in iOS and Safari.
 */
button,
html [type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button; /* 2 */
}
/**
 * Remove the inner border and padding in Firefox.
 */
::-moz-focus-inner {
  border-style: none;
  padding: 0;
}
/**
 * Correct the focus styles unset by the previous rule.
 */
:-moz-focusring {
  outline: 1px dotted ButtonText;
}
/**
 * Correct the border, margin, and padding in all browsers.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}
/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 2 */
  white-space: normal; /* 1 */
}
/**
 * 1. Remove the vertical scrollbar in IE.
 * 2. Change the resize direction on textareas in all browsers (opinionated).
 */
textarea {
  overflow: auto; /* 1 */
  resize: vertical; /* 2 */
}
/**
 * Remove the padding in IE 10-.
 */
[type=checkbox],
[type=radio] {
  padding: 0;
}
/**
 * Correct the cursor style on increment and decrement buttons in Chrome.
 */
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}
/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type=search] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}
/**
 * Remove the inner padding and cancel buttons in Chrome and Safari for OS X.
 */
::-webkit-search-cancel-button,
::-webkit-search-decoration {
  -webkit-appearance: none;
}
/**
 * Correct the text style on placeholders in Chrome, Edge, and Safari.
 */
::-webkit-input-placeholder {
  color: inherit;
  opacity: 0.54;
}
/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}
/* WAI-ARIA (https://www.w3.org/TR/html5/dom.html#wai-aria)
   ========================================================================== */
/**
 * Change the cursor on busy elements (opinionated).
 */
[aria-busy=true] {
  cursor: progress;
}
/*
 * Change the cursor on control elements (opinionated).
 */
[aria-controls] {
  cursor: pointer;
}
/*
 * Change the cursor on disabled, not-editable, or otherwise
 * inoperable elements (opinionated).
 */
[aria-disabled] {
  cursor: default;
}
/* User interaction (https://www.w3.org/TR/html5/editing.html)
   ========================================================================== */
/*
 * Remove the tapping delay on clickable elements (opinionated).
 * 1. Remove the tapping delay in IE 10.
 */
a,
area,
button,
input,
label,
select,
textarea,
[tabindex] {
  -ms-touch-action: manipulation; /* 1 */
  touch-action: manipulation;
}
/*
 * Change the display on visually hidden accessible elements (opinionated).
 */
[hidden][aria-hidden=false] {
  clip: rect(0, 0, 0, 0);
  display: inherit;
  position: absolute;
}
[hidden][aria-hidden=false]:focus {
  clip: auto;
}
/**
 * Base
 *
 * Boilerplate code for the project.
 */
/**
 * 1. Set default type styles for the project.
 * 2. Ensure the page always fills at least the entire height of the viewport.
 */
html {
  color: #000;
  font-family: "Circular", "Helvetica", "Arial", sans-serif;
  font-size: 62.5%;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-weight: normal;
  line-height: 1.33;
  min-height: 100%;
  scroll-behavior: smooth;
}
.language-cn {
  font-family: "Noto", "Helvetica", "Arial", sans-serif;
}
.has-overlay {
  overflow: hidden;
}
.has-optimized-font {
  font-family: "Circular", "Helvetica", "Arial", sans-serif;
  letter-spacing: 0;
}
.has-fonts,
.no-js {
  font-family: "Circular", "Helvetica", "Arial", sans-serif;
  letter-spacing: 0;
}
body {
  background-color: #fff;
  font-size: 1.6rem;
  min-width: 375px;
  overflow-x: hidden;
  overflow-y: scroll;
}
.body--inverted {
  background-color: #00a17c;
  background-image: none;
}
@font-face {
  font-family: "Circular";
  font-weight: bold;
  src: url("../fonts/CircularXXWeb-Bold.woff2") format("woff2"), url("fonts/CircularXXWeb-Bold.woff") format("woff");
}
@font-face {
  font-family: "Circular";
  font-style: italic;
  font-weight: bold;
  src: url("../fonts/CircularXXWeb-BoldItalic.woff2") format("woff2"), url("fonts/CircularXXWeb-BoldItalic.woff") format("woff");
}
@font-face {
  font-family: "Circular";
  font-weight: normal;
  src: url("../fonts/CircularXXWeb-Book.woff2") format("woff2"), url("fonts/CircularXXWeb-Book.woff") format("woff");
}
@font-face {
  font-family: "Noto";
  font-weight: bold;
  src: url("../fonts/noto-sans-sc-v11-latin_chinese-simplified-700.woff2") format("woff2"), url("fonts/noto-sans-sc-v11-latin_chinese-simplified-700.woff") format("woff");
}
@font-face {
  font-family: "Noto";
  font-weight: normal;
  src: url("../fonts/noto-sans-sc-v11-latin_chinese-simplified-regular.woff2") format("woff2"), url("fonts/noto-sans-sc-v11-latin_chinese-simplified-regular.woff") format("woff");
}
.f-fallback {
  font-family: "Circular", "Helvetica", "Arial", sans-serif;
}
.f-normal {
  font-family: "Circular", "Helvetica", "Arial", sans-serif;
  letter-spacing: -0.15px;
}
.has-optimized-font .f-normal {
  font-family: "Circular", "Helvetica", "Arial", sans-serif;
  letter-spacing: 0;
}
.has-fonts .f-normal, .no-js .f-normal {
  font-family: "Circular", "Helvetica", "Arial", sans-serif;
  letter-spacing: 0;
}
.f-condensed {
  font-family: "Circular", "Helvetica", "Arial", sans-serif;
}
.has-optimized-font .f-condensed {
  font-family: "Circular", "Helvetica", "Arial", sans-serif;
  letter-spacing: -1.5px;
}
.has-condensed-fonts .f-condensed, .no-js .f-condensed {
  font-family: "Barlow Semi Condensed", "Circular", "Helvetica", "Arial", sans-serif;
  letter-spacing: 0;
}
.f-w-normal {
  font-weight: normal;
}
.f-w-bold {
  font-weight: bold;
}
.f-s-normal {
  font-style: normal;
}
.f-s-italic {
  font-style: italic;
}
/**
 * 1. Offset `alt` text from surrounding copy.
 * 2. Keep images from scaling beyond the width of their parents.
 * 3. Prevent images from being stretched when width or height attributes are
 *    present.
 */
img {
  font-style: italic;
  height: auto;
  max-width: 100%;
}
/**
 * Theme
 *
 * CSS theme for print
 */
/**
 * Print styles
 */
/**
 * Page margin
 */
@page {
  margin: 15mm 20mm;
}
/**
 * Default color
 *
 * Do not change this.
 */
*,
*::before,
*::after {
  background-color: transparent;
  color: #000;
}
/**
 * Font
 */
body {
  font-family: Cambria, "Hoefler Text", Utopia, "Liberation Serif", "Nimbus Roman No9 L Regular", Times, "Times New Roman", serif;
  font-size: 12pt;
  line-height: 1.4;
}
/**
 * Show hidden elements
 */
[hidden] {
  display: block !important;
}
/**
 * Define breaks
 */
h1,
h2,
h3,
h4,
h5,
h6 {
  page-break-after: avoid;
  page-break-inside: avoid;
}
a,
blockquote,
code,
figure,
hr,
li,
ol,
pre,
table,
tr,
ul {
  page-break-inside: avoid;
}
a,
blockquote,
tr {
  page-break-inside: avoid;
}
a,
h2,
h3,
p {
  orphans: 3;
  widows: 3;
}
/**
 * Image
 */
img {
  max-width: 100%;
  page-break-after: auto;
  page-break-before: auto;
  page-break-inside: avoid;
}
/**
 * Table
 */
thead {
  display: table-header-group;
}
th,
td {
  border: 1pt solid #000;
  padding: 5mm;
}
/**
 * Form elements
 */
input,
select,
textarea {
  display: block;
}
fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}
/**
 * Code
 */
code {
  font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace;
  font-size: 12pt;
}
pre {
  white-space: pre-wrap;
  word-wrap: break-word;
}
/**
 * Hide elements
 */
/**
 * Display external link url
 */
/**
 * Display abbrevation expansions
 */
/**
 * Display images from @image atom
 */
/**
 * Video/embed placeholder
 */
/*# sourceURL=undefinedprint.scss */
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q1QsVUFBVTtBQUNaO0FBRUE7O0VBRUU7QUFDRjtFQUNFLGlPQUFpTztFQUNqTyxlQUFlO0FBQ2pCO0FBRUE7RUFDRSxxQkFBcUI7RUFDckIscUJBQXFCO0FBQ3ZCO0FBRUE7O0VBRUU7QUFDRjs7RUFFRTtBQUNGOztFQUVFO0FBQ0Y7O0VBRUU7QUFDRjs7RUFFRSIsImZpbGUiOiJwcmludC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQcmludCBzdHlsZXNoZWV0XG4gKi9cbi8qKlxuICogQWJzdHJhY3RzXG4gKlxuICogR2xvYmFsIHZhcmlhYmxlcywgZnVuY3Rpb25zLCBtaXhpbnMgYW5kIHBsYWNlaG9sZGVycy5cbiAqL1xuLyoqXG4gKiBIaWRlcyB0aGluZ3MgYnV0IGtlZXBzIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnMuXG4gKlxuICogQHNvcnVjZSBodHRwczovL2dpdGh1Yi5jb20vaW51aXRjc3MvaW51aXRjc3MvYmxvYi9kZXZlbG9wL3Rvb2xzL190b29scy5oaWRkZW4uc2Nzc1xuICogQHBhcmFtICRpbXBvcnRhbnQgQXBwbHkgYWxsIHN0eWxlcyBhcyAhaW1wb3J0YW50XG4gKi9cbi8qKlxuICogVW5kb3MgaGlkZGVuLXZpc3VhbGx5KClcbiAqXG4gKiBAcGFyYW0gJGltcG9ydGFudCBBcHBseSBhbGwgc3R5bGVzIGFzICFpbXBvcnRhbnRcbiAqL1xuLyoqXG4gKiBSZW1vdmVzIGJyb3dzZXItZGVmYXVsdCBsaXN0IHN0eWxlc1xuICovXG4vKipcbiAqIFZlbmRvcnNcbiAqXG4gKiBDU1MgZmlsZXMgZnJvbSBleHRlcm5hbCBsaWJyYXJpZXMgYW5kIGZyYW1ld29ya3MuXG4gKi9cbi8qISBzYW5pdGl6ZS5jc3MgdjQuMS4wIHwgQ0MwIExpY2Vuc2UgfCBnaXRodWIuY29tL2pvbmF0aGFudG5lYWwvc2FuaXRpemUuY3NzICovXG4vKiBEaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFLCBhbmQgRmlyZWZveC5cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkgeyAvKiAxICovXG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICovXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cbiAqL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLS5cbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG50ZW1wbGF0ZSxcbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogRWxlbWVudHMgb2YgSFRNTCAoaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L3NlbWFudGljcy5odG1sKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gUmVtb3ZlIHJlcGVhdGluZyBiYWNrZ3JvdW5kcyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqIDIuIEFkZCBib3ggc2l6aW5nIGluaGVyaXRlbmNlIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG4qLFxuOjpiZWZvcmUsXG46OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgLyogMSAqL1xuICBib3gtc2l6aW5nOiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQWRkIHRleHQgZGVjb3JhdGlvbiBpbmhlcml0YW5jZSBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqIDIuIEFkZCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW5oZXJpdGVuY2UgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cbjo6YmVmb3JlLFxuOjphZnRlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDsgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIEFkZCBib3JkZXIgYm94IHNpemluZyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqIDIuIEFkZCB0aGUgZGVmYXVsdCBjdXJzb3IgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAzLiBBZGQgYSBmbGF0dGVuZWQgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiA0LiBQcmV2ZW50IGZvbnQgc2l6ZSBhZGp1c3RtZW50cyBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIElFIGFuZCBpT1MuXG4gKi9cbmh0bWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIGN1cnNvcjogZGVmYXVsdDsgLyogMiAqL1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMyAqL1xuICBsaW5lLWhlaWdodDogMS41OyAvKiAzICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiA0ICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogNSAqL1xufVxuXG4vKiBTZWN0aW9ucyAoaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L3NlY3Rpb25zLmh0bWwpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemVzIGFuZCBtYXJnaW5zIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluXG4gKiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnQgKGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9ncm91cGluZy1jb250ZW50Lmh0bWwpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBDb3JyZWN0IGZvbnQgc2l6aW5nIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBoZWlnaHQgaW4gRmlyZWZveC5cbiAqIDIuIEFkZCB2aXNpYmxlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5ociB7XG4gIGhlaWdodDogMDsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgbGlzdCBzdHlsZSBvbiBuYXZpZ2F0aW9uIGxpc3RzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5uYXYgb2wsXG5uYXYgdWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQWRkIGEgYm9yZGVyZWQgdW5kZXJsaW5lIGVmZmVjdCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGV4dCBkZWNvcmF0aW9uIGluIEZpcmVmb3ggNDArLlxuICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7IC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCB0aGUgZHVwbGljYXRlIGFwcGxpY2F0aW9uIG9mIGBib2xkZXJgIGJ5IHRoZSBuZXh0IHJ1bGUgaW4gU2FmYXJpIDYuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzdHlsZSBpbiBBbmRyb2lkIDQuMy0uXG4gKi9cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgY29sb3JzIGluIElFIDktLlxuICovXG5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmYwMDtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgzLjMzMzMlO1xufVxuXG4vKipcbiAqIENoYW5nZSB0aGUgcG9zaXRpb25pbmcgb24gc3VwZXJzY3JpcHQgYW5kIHN1YnNjcmlwdCBlbGVtZW50c1xuICogaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAxLiBDb3JyZWN0IHRoZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDgzLjMzMzMlOyAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLypcbiAqIFJlbW92ZSB0aGUgdGV4dCBzaGFkb3cgb24gdGV4dCBzZWxlY3Rpb25zIChvcGluaW9uYXRlZCkuXG4gKiAxLiBSZXN0b3JlIHRoZSBjb2xvcmluZyB1bmRvbmUgYnkgZGVmaW5pbmcgdGhlIHRleHQgc2hhZG93IChvcGluaW9uYXRlZCkuXG4gKi9cbjo6LW1vei1zZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjNkNGZjOyAvKiAxICovXG4gIGNvbG9yOiAjMDAwMDAwOyAvKiAxICovXG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuXG46OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiM2Q0ZmM7IC8qIDEgKi9cbiAgY29sb3I6ICMwMDAwMDA7IC8qIDEgKi9cbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnQgKGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9lbWJlZGRlZC1jb250ZW50LTAuaHRtbClcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQ2hhbmdlIHRoZSBhbGlnbm1lbnQgb24gbWVkaWEgZWxlbWVudHMgaW4gYWxsIGJyb3dlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuYXVkaW8sXG5jYW52YXMsXG5pZnJhbWUsXG5pbWcsXG5zdmcsXG52aWRlbyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG4gKi9cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLyoqXG4gKiBDaGFuZ2UgdGhlIGZpbGwgY29sb3IgdG8gbWF0Y2ggdGhlIHRleHQgY29sb3IgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cbnN2ZyB7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbn1cblxuLyoqXG4gKiBIaWRlIHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqL1xuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBMaW5rcyAoaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L2xpbmtzLmh0bWwjbGlua3MpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIGdhcHMgaW4gdW5kZXJsaW5lcyBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAqL1xuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG91dGxpbmUgd2hlbiBob3ZlcmluZyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuYTpob3ZlciB7XG4gIG91dGxpbmUtd2lkdGg6IDA7XG59XG5cbi8qIFRhYnVsYXIgZGF0YSAoaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L3RhYnVsYXItZGF0YS5odG1sKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBSZW1vdmUgYm9yZGVyIHNwYWNpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbi8qIHRyYW5zZm9ybS1zdHlsZTogIChodHRwczovL3d3dy53My5vcmcvVFIvaHRtbDUvZm9ybXMuaHRtbClcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgZGVmYXVsdCBzdHlsaW5nIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogMy4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5idXR0b24sXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIDEgKi9cbiAgYm9yZGVyLXN0eWxlOiBub25lOyAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMyAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gQ29ycmVjdCB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQgeyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2UgaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICovXG5idXR0b24sXG5zZWxlY3QgeyAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIFByZXZlbnQgdGhlIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4gKiAgICBjb250cm9scyBpbiBBbmRyb2lkIDQuXG4gKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5idXR0b24sXG5odG1sIFt0eXBlPWJ1dHRvbl0sXG5bdHlwZT1yZXNldF0sXG5bdHlwZT1zdWJtaXRdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG46Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG46LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5sZWdlbmQge1xuICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXG4gKiAyLiBDaGFuZ2UgdGhlIHJlc2l6ZSBkaXJlY3Rpb24gb24gdGV4dGFyZWFzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvOyAvKiAxICovXG4gIHJlc2l6ZTogdmVydGljYWw7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICovXG5bdHlwZT1jaGVja2JveF0sXG5bdHlwZT1yYWRpb10ge1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvbiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblt0eXBlPXNlYXJjaF0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgZm9yIE9TIFguXG4gKi9cbjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbjo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSB0ZXh0IHN0eWxlIG9uIHBsYWNlaG9sZGVycyBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cbjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBvcGFjaXR5OiAwLjU0O1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qIFdBSS1BUklBIChodHRwczovL3d3dy53My5vcmcvVFIvaHRtbDUvZG9tLmh0bWwjd2FpLWFyaWEpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBDaGFuZ2UgdGhlIGN1cnNvciBvbiBidXN5IGVsZW1lbnRzIChvcGluaW9uYXRlZCkuXG4gKi9cblthcmlhLWJ1c3k9dHJ1ZV0ge1xuICBjdXJzb3I6IHByb2dyZXNzO1xufVxuXG4vKlxuICogQ2hhbmdlIHRoZSBjdXJzb3Igb24gY29udHJvbCBlbGVtZW50cyAob3BpbmlvbmF0ZWQpLlxuICovXG5bYXJpYS1jb250cm9sc10ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qXG4gKiBDaGFuZ2UgdGhlIGN1cnNvciBvbiBkaXNhYmxlZCwgbm90LWVkaXRhYmxlLCBvciBvdGhlcndpc2VcbiAqIGlub3BlcmFibGUgZWxlbWVudHMgKG9waW5pb25hdGVkKS5cbiAqL1xuW2FyaWEtZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBVc2VyIGludGVyYWN0aW9uIChodHRwczovL3d3dy53My5vcmcvVFIvaHRtbDUvZWRpdGluZy5odG1sKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBSZW1vdmUgdGhlIHRhcHBpbmcgZGVsYXkgb24gY2xpY2thYmxlIGVsZW1lbnRzIChvcGluaW9uYXRlZCkuXG4gKiAxLiBSZW1vdmUgdGhlIHRhcHBpbmcgZGVsYXkgaW4gSUUgMTAuXG4gKi9cbmEsXG5hcmVhLFxuYnV0dG9uLFxuaW5wdXQsXG5sYWJlbCxcbnNlbGVjdCxcbnRleHRhcmVhLFxuW3RhYmluZGV4XSB7XG4gIC1tcy10b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjsgLyogMSAqL1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbn1cblxuLypcbiAqIENoYW5nZSB0aGUgZGlzcGxheSBvbiB2aXN1YWxseSBoaWRkZW4gYWNjZXNzaWJsZSBlbGVtZW50cyAob3BpbmlvbmF0ZWQpLlxuICovXG5baGlkZGVuXVthcmlhLWhpZGRlbj1mYWxzZV0ge1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICBkaXNwbGF5OiBpbmhlcml0O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbltoaWRkZW5dW2FyaWEtaGlkZGVuPWZhbHNlXTpmb2N1cyB7XG4gIGNsaXA6IGF1dG87XG59XG5cbi8qKlxuICogQmFzZVxuICpcbiAqIEJvaWxlcnBsYXRlIGNvZGUgZm9yIHRoZSBwcm9qZWN0LlxuICovXG4vKipcbiAqIDEuIFNldCBkZWZhdWx0IHR5cGUgc3R5bGVzIGZvciB0aGUgcHJvamVjdC5cbiAqIDIuIEVuc3VyZSB0aGUgcGFnZSBhbHdheXMgZmlsbHMgYXQgbGVhc3QgdGhlIGVudGlyZSBoZWlnaHQgb2YgdGhlIHZpZXdwb3J0LlxuICovXG5odG1sIHtcbiAgY29sb3I6ICMwMDA7XG4gIGZvbnQtZmFtaWx5OiBcIkNpcmN1bGFyXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiA2Mi41JTtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjMzO1xuICBtaW4taGVpZ2h0OiAxMDAlO1xuICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbn1cblxuLmxhbmd1YWdlLWNuIHtcbiAgZm9udC1mYW1pbHk6IFwiTm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5oYXMtb3ZlcmxheSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5oYXMtb3B0aW1pemVkLWZvbnQge1xuICBmb250LWZhbWlseTogXCJDaXJjdWxhclwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xufVxuXG4uaGFzLWZvbnRzLFxuLm5vLWpzIHtcbiAgZm9udC1mYW1pbHk6IFwiQ2lyY3VsYXJcIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbn1cblxuYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBtaW4td2lkdGg6IDM3NXB4O1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cblxuLmJvZHktLWludmVydGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYTE3YztcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIkNpcmN1bGFyXCI7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL0NpcmN1bGFyWFhXZWItQm9sZC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiZm9udHMvQ2lyY3VsYXJYWFdlYi1Cb2xkLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJDaXJjdWxhclwiO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL0NpcmN1bGFyWFhXZWItQm9sZEl0YWxpYy53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiZm9udHMvQ2lyY3VsYXJYWFdlYi1Cb2xkSXRhbGljLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJDaXJjdWxhclwiO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL0NpcmN1bGFyWFhXZWItQm9vay53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiZm9udHMvQ2lyY3VsYXJYWFdlYi1Cb29rLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJOb3RvXCI7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL25vdG8tc2Fucy1zYy12MTEtbGF0aW5fY2hpbmVzZS1zaW1wbGlmaWVkLTcwMC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiZm9udHMvbm90by1zYW5zLXNjLXYxMS1sYXRpbl9jaGluZXNlLXNpbXBsaWZpZWQtNzAwLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJOb3RvXCI7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvbm90by1zYW5zLXNjLXYxMS1sYXRpbl9jaGluZXNlLXNpbXBsaWZpZWQtcmVndWxhci53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiZm9udHMvbm90by1zYW5zLXNjLXYxMS1sYXRpbl9jaGluZXNlLXNpbXBsaWZpZWQtcmVndWxhci53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG59XG4uZi1mYWxsYmFjayB7XG4gIGZvbnQtZmFtaWx5OiBcIkNpcmN1bGFyXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbn1cblxuLmYtbm9ybWFsIHtcbiAgZm9udC1mYW1pbHk6IFwiQ2lyY3VsYXJcIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMTVweDtcbn1cbi5oYXMtb3B0aW1pemVkLWZvbnQgLmYtbm9ybWFsIHtcbiAgZm9udC1mYW1pbHk6IFwiQ2lyY3VsYXJcIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbn1cbi5oYXMtZm9udHMgLmYtbm9ybWFsLCAubm8tanMgLmYtbm9ybWFsIHtcbiAgZm9udC1mYW1pbHk6IFwiQ2lyY3VsYXJcIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbn1cblxuLmYtY29uZGVuc2VkIHtcbiAgZm9udC1mYW1pbHk6IFwiQ2lyY3VsYXJcIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xufVxuLmhhcy1vcHRpbWl6ZWQtZm9udCAuZi1jb25kZW5zZWQge1xuICBmb250LWZhbWlseTogXCJDaXJjdWxhclwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAtMS41cHg7XG59XG4uaGFzLWNvbmRlbnNlZC1mb250cyAuZi1jb25kZW5zZWQsIC5uby1qcyAuZi1jb25kZW5zZWQge1xuICBmb250LWZhbWlseTogXCJCYXJsb3cgU2VtaSBDb25kZW5zZWRcIiwgXCJDaXJjdWxhclwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xufVxuXG4uZi13LW5vcm1hbCB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi5mLXctYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uZi1zLW5vcm1hbCB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLmYtcy1pdGFsaWMge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qKlxuICogMS4gT2Zmc2V0IGBhbHRgIHRleHQgZnJvbSBzdXJyb3VuZGluZyBjb3B5LlxuICogMi4gS2VlcCBpbWFnZXMgZnJvbSBzY2FsaW5nIGJleW9uZCB0aGUgd2lkdGggb2YgdGhlaXIgcGFyZW50cy5cbiAqIDMuIFByZXZlbnQgaW1hZ2VzIGZyb20gYmVpbmcgc3RyZXRjaGVkIHdoZW4gd2lkdGggb3IgaGVpZ2h0IGF0dHJpYnV0ZXMgYXJlXG4gKiAgICBwcmVzZW50LlxuICovXG5pbWcge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGhlaWdodDogYXV0bztcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4vKipcbiAqIFRoZW1lXG4gKlxuICogQ1NTIHRoZW1lIGZvciBwcmludFxuICovXG4vKipcbiAqIFByaW50IHN0eWxlc1xuICovXG4vKipcbiAqIFBhZ2UgbWFyZ2luXG4gKi9cbkBwYWdlIHtcbiAgbWFyZ2luOiAxNW1tIDIwbW07XG59XG4vKipcbiAqIERlZmF1bHQgY29sb3JcbiAqXG4gKiBEbyBub3QgY2hhbmdlIHRoaXMuXG4gKi9cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBGb250XG4gKi9cbmJvZHkge1xuICBmb250LWZhbWlseTogQ2FtYnJpYSwgXCJIb2VmbGVyIFRleHRcIiwgVXRvcGlhLCBcIkxpYmVyYXRpb24gU2VyaWZcIiwgXCJOaW1idXMgUm9tYW4gTm85IEwgUmVndWxhclwiLCBUaW1lcywgXCJUaW1lcyBOZXcgUm9tYW5cIiwgc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJwdDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuLyoqXG4gKiBTaG93IGhpZGRlbiBlbGVtZW50c1xuICovXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG5cbi8qKlxuICogRGVmaW5lIGJyZWFrc1xuICovXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xufVxuXG5hLFxuYmxvY2txdW90ZSxcbmNvZGUsXG5maWd1cmUsXG5ocixcbmxpLFxub2wsXG5wcmUsXG50YWJsZSxcbnRyLFxudWwge1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG59XG5cbmEsXG5ibG9ja3F1b3RlLFxudHIge1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG59XG5cbmEsXG5oMixcbmgzLFxucCB7XG4gIG9ycGhhbnM6IDM7XG4gIHdpZG93czogMztcbn1cblxuLyoqXG4gKiBJbWFnZVxuICovXG5pbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZ2UtYnJlYWstYWZ0ZXI6IGF1dG87XG4gIHBhZ2UtYnJlYWstYmVmb3JlOiBhdXRvO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG59XG5cbi8qKlxuICogVGFibGVcbiAqL1xudGhlYWQge1xuICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7XG59XG5cbnRoLFxudGQge1xuICBib3JkZXI6IDFwdCBzb2xpZCAjMDAwO1xuICBwYWRkaW5nOiA1bW07XG59XG5cbi8qKlxuICogRm9ybSBlbGVtZW50c1xuICovXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogQ29kZVxuICovXG5jb2RlIHtcbiAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBcIkFuZGFsZSBNb25vIFdUXCIsIFwiQW5kYWxlIE1vbm9cIiwgXCJMdWNpZGEgQ29uc29sZVwiLCBcIkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXJcIiwgXCJEZWphVnUgU2FucyBNb25vXCIsIFwiQml0c3RyZWFtIFZlcmEgU2FucyBNb25vXCIsIFwiTGliZXJhdGlvbiBNb25vXCIsIFwiTmltYnVzIE1vbm8gTFwiLCBNb25hY28sIFwiQ291cmllciBOZXdcIiwgQ291cmllciwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDEycHQ7XG59XG5cbnByZSB7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuXG4vKipcbiAqIEhpZGUgZWxlbWVudHNcbiAqL1xuLyoqXG4gKiBEaXNwbGF5IGV4dGVybmFsIGxpbmsgdXJsXG4gKi9cbi8qKlxuICogRGlzcGxheSBhYmJyZXZhdGlvbiBleHBhbnNpb25zXG4gKi9cbi8qKlxuICogRGlzcGxheSBpbWFnZXMgZnJvbSBAaW1hZ2UgYXRvbVxuICovXG4vKipcbiAqIFZpZGVvL2VtYmVkIHBsYWNlaG9sZGVyXG4gKi8iXX0= */