/**
 * Settings
 *
 * - Globally-available settings.
 * - Config switches.
 * - Brand colors, etc.
 */
/**
 * Generic
 *
 * - Ground zero styles.
 * - Low-specificity, far-reaching.
 * - Resets, Normalize.css, etc.
 */
html {
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

*, *::before, *::after {
  -webkit-box-sizing: inherit;
          box-sizing: inherit; }

/**
 * Prevent adjustments of font size after orientation changes in
 * IE on Windows Phone and in iOS.
 */
html {
  -webkit-text-size-adjust: 100%;
     -moz-text-size-adjust: 100%;
      -ms-text-size-adjust: 100%;
          text-size-adjust: 100%; }

/**
 * Add the correct display in IE 9-.
 * 1. Add the correct display in IE.
 */
article,
aside,
figcaption,
figure,
footer,
header,
main,
nav,
section {
  display: block; }

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-size: 1em;
  /* 2 */
  font-family: monospace, monospace;
  /* 1 */ }

/**
 * 1. Remove the gray background on active links in IE 10.
 * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
 */
a {
  background-color: transparent;
  /* 1 */
  -webkit-text-decoration-skip: objects;
          text-decoration-skip: objects;
  /* 2 */ }

/**
 * Remove the outline on focused links when they are also active or hovered
 * in all browsers (opinionated).
 */
a:active,
a:hover {
  outline-width: 0; }

/**
 * 1. Remove the bottom border in Firefox 39-.
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
  /* 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; }

/**
 * 1. Correct the odd `em` font sizing in all browsers.
 * 2. Correct the inheritance and scaling of font size in all browsers.
 */
code,
kbd,
samp {
  font-size: 1em;
  /* 1 */
  font-family: monospace, monospace;
  /* 2 */ }

/**
 * Add the correct font style in Android 4.3-.
 */
dfn {
  font-style: italic; }

/**
 * Add the correct background and color in IE 9-.
 */
mark {
  background-color: #ff0;
  color: #000; }

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%; }

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  position: relative;
  line-height: 0;
  vertical-align: baseline;
  font-size: 75%; }

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

/**
 * Remove the border on images inside links in IE 10-
 * and make images responsive.
 */
img {
  max-width: 100%;
  width: auto;
  height: auto;
  border-style: none; }

/**
 * Hide the overflow in IE.
 */
svg:not(:root) {
  overflow: hidden; }

/**
 * Add the correct display in IE 10-.
 */
[hidden] {
  display: none; }

/*
 * Remove text-shadow in selection highlight:
 * https://twitter.com/miketaylr/status/12228805301
 */
::-moz-selection {
  background: #52787b;
  color: #fff;
  text-shadow: none; }
::selection {
  background: #52787b;
  color: #fff;
  text-shadow: none; }

html {
  line-height: 1.6;
  color: #333;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; }

* {
  margin: 0;
  padding: 0; }

h1,
h2,
h3,
h4,
h5,
h6 {
  line-height: 1.2;
  font-weight: 500;
  font-size: 1.25em; }

a {
  color: #52787b;
  text-decoration: none; }
  a:hover, a:focus {
    text-decoration: underline; }

pre,
code {
  font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; }

pre {
  position: relative;
  padding: 1.5em 0.75em 1em;
  background: #f5f5f5;
  font-size: 100%; }
  pre::before {
    position: absolute;
    top: 0.2em;
    right: 0.5em;
    font-size: 0.8em; }
  pre.language-html::before {
    content: 'HTML'; }
  pre.language-javascript::before {
    content: 'JavaScript'; }

code {
  padding: 0.2em 0.4em;
  border-radius: 0.1875em;
  background: #f5f5f5;
  font-size: 85%; }
  pre code {
    display: block;
    padding: 0;
    overflow: auto; }

/**
 * Objects
 *
 * - OOCSS.
 * - Design patterns.
 * - No cosmetics.
 * - Agnostically named classes only (e.g. .o-uilist {}).
 */
.o-container {
  max-width: 64rem;
  padding-right: 1rem;
  padding-left: 1rem;
  margin-right: auto;
  margin-left: auto; }

.o-container--s {
  max-width: 42rem; }

.o-grid {
  margin-left: -1em;
  margin-top: -1em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .o-grid > .o-grid__item {
    padding-left: 1em;
    padding-top: 1em;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    -webkit-box-sizing: border-box;
            box-sizing: border-box; }

.o-media {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .o-media > :last-child {
    margin-left: 1em; }

.o-media__body {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1; }

.o-vertical-spacing > * + * {
  margin-top: 1em; }

.o-vertical-spacing--s > * + * {
  margin-top: 0.75em; }

.o-vertical-spacing--xl > * + * {
  margin-top: 2em; }

.o-vertical-spacing--xxl > * + * {
  margin-top: 3.5em; }

/**
 * Components
 *
 * - Designed pieces of UI.
 * - Still only using classes.
 * - More explicitly named (e.g. .c-products-list {}).
 */
@-webkit-keyframes bounceIn {
  from, 20%, 40%, 60%, 80%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  20% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1); }
  40% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(1.03, 1.03, 1.03);
    transform: scale3d(1.03, 1.03, 1.03); }
  80% {
    -webkit-transform: scale3d(0.97, 0.97, 0.97);
    transform: scale3d(0.97, 0.97, 0.97); }
  to {
    opacity: 1;
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }
@keyframes bounceIn {
  from, 20%, 40%, 60%, 80%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  20% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1); }
  40% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(1.03, 1.03, 1.03);
    transform: scale3d(1.03, 1.03, 1.03); }
  80% {
    -webkit-transform: scale3d(0.97, 0.97, 0.97);
    transform: scale3d(0.97, 0.97, 0.97); }
  to {
    opacity: 1;
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }

.bounceIn {
  -webkit-animation-name: bounceIn;
  animation-name: bounceIn; }

@-webkit-keyframes fadeIn {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

@keyframes fadeIn {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

.fadeIn {
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn; }

@-webkit-keyframes fadeInLeft {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes fadeInLeft {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.fadeInLeft {
  -webkit-animation-name: fadeInLeft;
  animation-name: fadeInLeft; }

/*

github.com style (c) Vasily Polovnyov <vast@whiteants.net>

*/
.hljs {
  display: block;
  overflow-x: auto;
  padding: 0.5em;
  color: #333;
  background: #f8f8f8; }

.hljs-comment,
.hljs-quote {
  color: #998;
  font-style: italic; }

.hljs-keyword,
.hljs-selector-tag,
.hljs-subst {
  color: #333;
  font-weight: bold; }

.hljs-number,
.hljs-literal,
.hljs-variable,
.hljs-template-variable,
.hljs-tag .hljs-attr {
  color: #008080; }

.hljs-string,
.hljs-doctag {
  color: #d14; }

.hljs-title,
.hljs-section,
.hljs-selector-id {
  color: #900;
  font-weight: bold; }

.hljs-subst {
  font-weight: normal; }

.hljs-type,
.hljs-class .hljs-title {
  color: #458;
  font-weight: bold; }

.hljs-tag,
.hljs-name,
.hljs-attribute {
  color: #000080;
  font-weight: normal; }

.hljs-regexp,
.hljs-link {
  color: #009926; }

.hljs-symbol,
.hljs-bullet {
  color: #990073; }

.hljs-built_in,
.hljs-builtin-name {
  color: #0086b3; }

.hljs-meta {
  color: #999;
  font-weight: bold; }

.hljs-deletion {
  background: #fdd; }

.hljs-addition {
  background: #dfd; }

.hljs-emphasis {
  font-style: italic; }

.hljs-strong {
  font-weight: bold; }

.c-button {
  display: inline-block;
  padding: 0.75em;
  background: #fff;
  font-weight: 700;
  -webkit-transition: background 0.2s, color 0.2s;
  transition: background 0.2s, color 0.2s; }
  .c-button:hover, .c-button:focus {
    background-color: #cbd7d7;
    text-decoration: none; }

.c-button--secondary {
  padding: 0.5625em;
  border: 0.1875em solid #fff;
  background: transparent; }

.c-button--github {
  padding-left: 3.25em;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2233%22%20height%3D%2233%22%20viewBox%3D%220%200%2033%2033%22%20version%3D%221.1%22%3E%3Cg%20stroke%3D%22none%22%20stroke-width%3D%221%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Cg%20transform%3D%22translate(-136.000000%2C%20-55.000000)%22%3E%3Cpath%20d%3D%22M152.6%2055.5C143.6%2055.5%20136.3%2062.7%20136.3%2071.7%20136.3%2078.9%20141%2085%20147.5%2087.2%20148.3%2087.4%20148.6%2086.8%20148.6%2086.4%20148.6%2086%20148.6%2085%20148.6%2083.6%20144%2084.6%20143.1%2081.5%20143.1%2081.5%20142.3%2079.6%20141.3%2079.1%20141.3%2079.1%20139.8%2078.1%20141.4%2078.1%20141.4%2078.1%20143%2078.2%20143.9%2079.8%20143.9%2079.8%20145.3%2082.3%20147.7%2081.5%20148.6%2081.1%20148.8%2080.1%20149.2%2079.4%20149.6%2078.9%20146%2078.5%20142.2%2077.1%20142.2%2070.9%20142.2%2069.1%20142.9%2067.7%20143.9%2066.5%20143.7%2066.1%20143.2%2064.5%20144.1%2062.2%20144.1%2062.2%20145.4%2061.8%20148.5%2063.9%20149.8%2063.5%20151.2%2063.3%20152.6%2063.3%20154%2063.3%20155.4%2063.5%20156.7%2063.9%20159.8%2061.8%20161.2%2062.2%20161.2%2062.2%20162.1%2064.5%20161.5%2066.1%20161.3%2066.5%20162.4%2067.7%20163%2069.1%20163%2070.9%20163%2077.2%20159.2%2078.5%20155.6%2078.9%20156.1%2079.4%20156.7%2080.4%20156.7%2081.9%20156.7%2084.1%20156.6%2085.9%20156.6%2086.4%20156.6%2086.9%20156.9%2087.4%20157.8%2087.2%20164.2%2085%20168.9%2078.9%20168.9%2071.7%20168.9%2062.7%20161.6%2055.5%20152.6%2055.5%22%20fill%3D%22%23161614%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  background-position: 0.75em center;
  background-repeat: no-repeat; }

.c-button--contrast.c-button--secondary, .c-button--contrast.c-button--secondary:visited {
  color: #fff; }

.c-button--contrast.c-button--secondary:hover, .c-button--contrast.c-button--secondary:focus {
  background-color: #fff;
  color: #52787b; }

.c-gallery__item {
  width: 33.3333333%; }

.c-h1 {
  font-size: 2.441em; }

.c-h2 {
  font-size: 1.953em; }

.c-h3 {
  font-size: 1.563em; }

.c-hero {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding: 3.5em 1em;
  min-height: 100vh;
  max-height: 67.5em;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: #52787b;
  color: #fff;
  text-align: center; }

.c-hero__sub-title {
  display: block;
  margin-top: 0.35em;
  font-weight: 400;
  font-size: 0.5em; }

.c-hero__head {
  font-size: 1.25em; }

.c-hero__img {
  max-height: 48vh; }

.c-list--flatten {
  padding: 0;
  list-style: none; }
  .c-list--flatten li {
    display: inline-block; }
  .c-list--flatten li:not(:first-child) {
    margin-left: 0.5em; }

.c-main-content {
  padding-top: 5em;
  padding-bottom: 5em; }

.c-main-footer {
  margin-top: 0;
  padding: 1em 0;
  border-top: 1px solid #ccc;
  font-size: 0.85em; }

.c-quick-demo__link {
  display: block;
  position: relative;
  border: 1em solid #fff;
  -webkit-transition: opacity 0.2s;
  transition: opacity 0.2s; }
  .c-quick-demo__link::before, .c-quick-demo__link::after {
    position: absolute;
    right: 0;
    bottom: 0;
    content: ''; }
  .c-quick-demo__link::before {
    border: 2em solid #fff;
    border-top-color: transparent;
    border-left-color: transparent; }
  .c-quick-demo__link::after {
    right: 0.15em;
    content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjI2IiBoZWlnaHQ9IjI2IiB2aWV3Qm94PSIwIDAgMjYgMjYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI2IDI2IiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBmaWxsPSIjMzMzMzMzIiBkPSJNMjUuMyAyMS45bC00LjYtNC42Yy0wLjYtMC42LTEuNS0wLjctMi4xLTAuM2wtMC45LTAuOWMxLjMtMS43IDIuMS0zLjggMi4xLTYuMSAwLTUuNC00LjQtOS44LTkuOC05LjhTMC4yIDQuNiAwLjIgMTAgNC42IDE5LjggMTAgMTkuOGMyLjMgMCA0LjQtMC44IDYuMS0yLjFsMC45IDAuOWMtMC40IDAuNy0wLjMgMS42IDAuMyAyLjFsNC42IDQuNmMwLjcgMC43IDEuOSAwLjcgMi42IDBsMC45LTAuOUMyNiAyMy44IDI2IDIyLjYgMjUuMyAyMS45ek0yIDEwYzAtNC40IDMuNi04IDgtOFMxOCA1LjYgMTggMTBzLTMuNiA4LTggOFMyIDE0LjQgMiAxMHoiLz48cG9seWdvbiBmaWxsPSIjMzMzMzMzIiBwb2ludHM9IjExIDUgOSA1IDkgOSA1IDkgNSAxMSA5IDExIDkgMTUgMTEgMTUgMTEgMTEgMTUgMTEgMTUgOSAxMSA5ICIvPjwvc3ZnPg=="); }
  .c-quick-demo__link:hover, .c-quick-demo__link:focus {
    opacity: 0.8; }

.c-quick-demo__img {
  display: block; }

.c-teaser {
  padding-top: 3.5rem;
  padding-bottom: 3.5rem;
  border: 1px solid #e0e0e0;
  border-right: none;
  border-left: none;
  font-size: 1.25em; }

.c-teaser__content {
  font-size: 1.25em; }

/**
 * Utilities
 *
 * - Overrides, helpers, utilities.
 * - Only affect one piece of the DOM at a time.
 * - Usually carry !important.
 */
.u-text-align-center {
  text-align: center !important; }
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3Njc3MvaW5kZXguc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AYXZhbGFuY2hlL2dlbmVyaWMtYm94LXNpemluZy1yZXNldC9zY3NzL19taXhpbnMuc2NzcyIsIi4uL3Njc3MvZ2VuZXJpYy9fbm9ybWFsaXplLnNjc3MiLCJpbmRleC5jc3MiLCIuLi9zY3NzL3NldHRpbmdzL19nZW5lcmljLnNjc3MiLCIuLi9zY3NzL2dlbmVyaWMvX3Jlc2V0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGF2YWxhbmNoZS9zZXR0aW5nLWZvbnQtc2l6ZXMvc2Nzcy9fc2V0dGluZ3Muc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AYXZhbGFuY2hlL3NldHRpbmctc3BhY2luZ3Mvc2Nzcy9fc2V0dGluZ3Muc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AYXZhbGFuY2hlL3NldHRpbmctY29sb3JzL3Njc3MvX3NldHRpbmdzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGF2YWxhbmNoZS9vYmplY3QtY29udGFpbmVyL3Njc3MvaW5kZXguc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AYXZhbGFuY2hlL29iamVjdC1jb250YWluZXIvc2Nzcy9fbWl4aW5zLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGF2YWxhbmNoZS9zZXR0aW5nLXNwYWNpbmdzL3Njc3MvX2Z1bmN0aW9ucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0BhdmFsYW5jaGUvb2JqZWN0LWdyaWQvc2Nzcy9pbmRleC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0BhdmFsYW5jaGUvb2JqZWN0LWdyaWQvc2Nzcy9fbWl4aW5zLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGF2YWxhbmNoZS9vYmplY3QtbWVkaWEvc2Nzcy9pbmRleC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0BhdmFsYW5jaGUvb2JqZWN0LW1lZGlhL3Njc3MvX21peGlucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0BhdmFsYW5jaGUvb2JqZWN0LXZlcnRpY2FsLXNwYWNpbmcvc2Nzcy9pbmRleC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0BhdmFsYW5jaGUvb2JqZWN0LXZlcnRpY2FsLXNwYWNpbmcvc2Nzcy9fbWl4aW5zLnNjc3MiLCIuLi92ZW5kb3IvYW5pbWF0ZS5jc3MvYW5pbWF0ZS5jc3MiLCIuLi92ZW5kb3IvaGlnaGxpZ2h0LmpzL3N0eWxlcy9naXRodWIuY3NzIiwiLi4vc2Nzcy9jb21wb25lbnRzL19idXR0b24uc2NzcyIsIi4uL3Njc3MvY29tcG9uZW50cy9fZ2FsbGVyeS5zY3NzIiwiLi4vc2Nzcy9jb21wb25lbnRzL19oLnNjc3MiLCIuLi9zY3NzL2NvbXBvbmVudHMvX2hlcm8uc2NzcyIsIi4uL3Njc3MvY29tcG9uZW50cy9fbGlzdC5zY3NzIiwiLi4vc2Nzcy9jb21wb25lbnRzL19tYWluX2NvbnRlbnQuc2NzcyIsIi4uL3Njc3MvY29tcG9uZW50cy9fbWFpbl9mb290ZXIuc2NzcyIsIi4uL3Njc3MvY29tcG9uZW50cy9fcXVpY2tfZGVtby5zY3NzIiwiLi4vc2Nzcy9jb21wb25lbnRzL190ZWFzZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AYXZhbGFuY2hlL3V0aWxpdHktdGV4dC1hbGlnbi9zY3NzL2luZGV4LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGF2YWxhbmNoZS91dGlsaXR5LXRleHQtYWxpZ24vc2Nzcy9fbWl4aW5zLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBT0g7Ozs7OztHQU1HO0FDWEQ7RUFDRSwrQkFBc0I7VUFBdEIsdUJBQXNCLEVBQ3ZCOztBQUVEO0VBSUksNEJBQW1CO1VBQW5CLG9CQUFtQixFQUNwQjs7QUNqQkw7OztHQUdHO0FBQ0g7RUFDRSwrQkFBc0I7S0FBdEIsNEJBQXNCO01BQXRCLDJCQUFzQjtVQUF0Qix1QkFBc0IsRUFDdkI7O0FBRUQ7OztHQUdHO0FBQ0g7Ozs7Ozs7OztFQVNFLGVBQWMsRUFD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dUIsRUFDeEI7O0FBRUQ7RUFDRSxxQkFBb0I7RUFDcEIsNmhEQUE0aEQ7RUFDNWhELG1DQUFrQztFQUNsQyw2QkFBNEIsRUFDN0I7O0FBRUQ7RUFLTSxZaEJ2QkcsRWdCd0JKOztBQU5MO0VBVU0sdUJoQjVCRztFZ0I2QkgsZWhCckNNLEVnQnNDUDs7QUN2Q0w7RUFDRSxtQkFBa0IsRUFDbkI7O0FDRkQ7RUFDRSxtQmhCYWEsRWdCWmQ7O0FBRUQ7RUFDRSxtQmhCUVksRWdCUGI7O0FBRUQ7RUFDRSxtQmhCR1csRWdCRlo7O0FDVkQ7RUFDRSxxQkFBYTtFQUFiLHFCQUFhO0VBQWIsY0FBYTtFQUNiLG1CaEJRTTtFZ0JQTixrQkFBaUI7RUFDakIsbUJBQWtCO0VBQ2xCLHlCQUF1QjtNQUF2QixzQkFBdUI7VUFBdkIsd0JBQXVCO0VBQ3ZCLDBCQUFtQjtNQUFuQix1QkFBbUI7VUFBbkIsb0JBQW1CO0VBQ25CLG9CbkJOVTtFbUJPVixZQUFXO0VBQ1gsbUJBQWtCLEVBQ25COztBQUVEO0VBQ0UsZUFBYztFQUNkLG1CQUFrQjtFQUNsQixpQkFBZ0I7RUFDaEIsaUJBQWdCLEVBQ2pCOztBQUVEO0VBQ0Usa0JqQlRTLEVpQlVWOztBQUVEO0VBQ0UsaUJBQWdCLEVBQ2pCOztBQ3pCRDtFQUNFLFdBQVU7RUFDVixpQkFBZ0IsRUFTakI7RUFYRDtJQUtJLHNCQUFxQixFQUN0QjtFQU5IO0lBU0ksbUJqQkRPLEVpQkVSOztBQ1ZIO0VBQ0UsaUJBQWdCO0VBQ2hCLG9CQUFtQixFQUNwQjs7QUNIRDtFQUNFLGNBQWE7RUFDYixlQUFjO0VBQ2QsMkJBQTBCO0VBQzFCLGtCQUFpQixFQUNsQjs7QUNMRDtFQUNFLGVBQWM7RUFDZCxtQkFBa0I7RUFDbEIsdUJBQXNCO0VBQ3RCLGlDQUF3QjtFQUF4Qix5QkFBd0IsRUF5QnpCO0VBN0JEO0lBUUksbUJBQWtCO0lBQ2xCLFNBQVE7SUFDUixVQUFTO0lBQ1QsWUFBVyxFQUNaO0VBWkg7SUFlSSx1QkFBc0I7SUFDdEIsOEJBQTZCO0lBQzdCLCtCQUE4QixFQUMvQjtFQWxCSDtJQXFCSSxjQUFhO0lBQ2IsKzBCQUE4MEIsRUFDLzBCO0VBdkJIO0lBMkJJLGFBQVksRUFDYjs7QUFHSDtFQUNFLGVBQWMsRUFDZjs7QUNqQ0Q7RUFDRSxvQmpCbUI0QztFaUJsQjVDLHVCakJrQjRDO0VpQmpCNUMsMEJwQm1DVTtFb0JsQ1YsbUJBQWtCO0VBQ2xCLGtCQUFpQjtFQUNqQixrQnRCS1MsRXNCSlY7O0FBRUQ7RUFDRSxrQnRCQ1MsRXNCQVY7O0E1QjBERDs7Ozs7O0dBTUc7QTZCcEVIO0VDUUUsOEJBQWlDLEVETmxDIiwiZmlsZSI6ImluZGV4LmNzcyJ9 */