/**
 * Functions - Calculations
 * Simple functions to help developers calculate different values from percentages to sizing such as REMs.
 *
 * - 01 - Imports
 * - 02 - Target/Container Percentage
 * - 03 - REMs
 */
/*------------------------------------*\
  01 - Imports
\*------------------------------------*/
/*------------------------------------*\
  02 - Target/Container Percentage
  Calculate the percentage of a target size compared to a container size.
  - @param $target: Size of an element needing a calculated percentage.
  - @param $container: Size of the target's container, needed to calculate percentage.
  - @example = width: calc-percent(250, 1000);
\*------------------------------------*/
/*------------------------------------*\
  03 - REMs
  Calculate a size into REM units -- mostly used for font size rendering.
  - @param $size: Size of an element needing a calculated size into REMs.
  - @param $base: Base font size of the site -- defaults to 16px.
  - @example = font-size: calc-rem(24px);
\*------------------------------------*/
/*------------------------------------*\
  02 - Theme
\*------------------------------------*/
/*------------------------------------*\
  04 - Mappings
\*------------------------------------*/
/**
 * Settings - Typography
 * Standard sets of typographical variables and mappings to be of use across the site, for consistency and accuracy.
 *
 * - 01 - Line Heights
 * - 02 - Fonts
 */
/*------------------------------------*\
  01 - Line Heights
\*------------------------------------*/
/*------------------------------------*\
  02 - Fonts
\*------------------------------------*/
/*------------------------------------*\
  03 - Weights
\*------------------------------------*/
/**
 * Mixins - Buttons
 * Standard sets of Button mixins to be of use across the site, for consistency and accuracy.
 *
 * - 01 - Small
 * - 02 - Large Red
 * - 03 - Large Underline Red
 */
/*------------------------------------*\
  01 - Small
\*------------------------------------*/
/*------------------------------------*\
  02 - Large Red
\*------------------------------------*/
/*------------------------------------*\
  03 - Large Underline Red
\*------------------------------------*/
/**
 * Mixins - Media
 * Use these mixins when needing to easily define media styles, such as sizing, positioning, etc.
 *
 * - 01 - Background Image
 * - 02 - Responsive IFrame
 */
/*------------------------------------*\
  01 - Background Image
  Instead of using an inline style to define a background image, and needing to set an HTML image as a background
  image, use this mixin.
  - @param $position: Alignment of the image within it's frame [center, top, bottom] (default = center)
  - @example = @include background-image(center);
\*------------------------------------*/
/*------------------------------------*\
  02 - Responsive IFrame
  When needing an IFrame to be responsive to it's container, and ultimately for mobile devices, use this mixin. This
  mixin needs to be applied to the parent HTML element of the IFrame.
  - @param $width: Sizing width to determine the ratio of sizing needed for the responsive IFrame. [defaults to 16]
  - @param $height: Sizing height to determine the ratio of sizing needed for the responsive IFrame. [defaults to 9]
  - @example = @include responsive-iframe(16, 9);
\*------------------------------------*/
/**
 * Components - Text
 * - 01 - Imports
 * - 02 - Layout
 * - 03 - Background Color
 * - 04 - External Links
 */
/*------------------------------------*\
  01 - Imports
\*------------------------------------*/
/*------------------------------------*\
  02 - Layout
\*------------------------------------*/
.campaign .text {
  margin-bottom: 40px;
  margin-top: 40px;
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 992px) {
  .campaign .text {
    margin-bottom: 80px;
    margin-top: 80px;
  }
}
.campaign .text .text-content {
  margin-left: auto;
  margin-right: auto;
}

.paragraph--type--text.text {
  margin-bottom: 48px;
}
@media (min-width: 768px) and (max-width: 991px) {
  .paragraph--type--text.text {
    margin-bottom: 60px;
  }
}
@media (min-width: 1440px) {
  .paragraph--type--text.text {
    margin-bottom: 80px;
  }
}

/*------------------------------------*\
  03 - Background Color
\*------------------------------------*/
.text:not(.bg-color__default) {
  margin-bottom: 0;
  margin-top: 0;
  padding-bottom: 40px;
  padding-top: 40px;
  position: relative;
}
@media (min-width: 1280px) and (max-width: 1439px) {
  .text:not(.bg-color__default) {
    padding-bottom: 60px;
    padding-top: 60px;
  }
}
@media (min-width: 1440px) {
  .text:not(.bg-color__default) {
    padding-bottom: 80px;
    padding-top: 80px;
  }
}
.text:not(.bg-color__default):before {
  content: "";
  display: block;
  height: 100%;
  left: -50%;
  position: absolute;
  right: 0;
  top: 0;
  width: 100vw;
  z-index: -1;
}
.text:not(.bg-color__default):after {
  content: "";
  display: block;
  height: 100%;
  position: absolute;
  right: -50%;
  top: 0;
  width: 100vw;
  z-index: -1;
}
.text:not(.bg-color__default).bg-color__dark-blue {
  background-color: #172636;
}
.text:not(.bg-color__default).bg-color__dark-blue h2,
.text:not(.bg-color__default).bg-color__dark-blue h3,
.text:not(.bg-color__default).bg-color__dark-blue h4,
.text:not(.bg-color__default).bg-color__dark-blue h5,
.text:not(.bg-color__default).bg-color__dark-blue h6,
.text:not(.bg-color__default).bg-color__dark-blue p,
.text:not(.bg-color__default).bg-color__dark-blue a,
.text:not(.bg-color__default).bg-color__dark-blue li {
  color: #FFFFFF;
}
.text:not(.bg-color__default).bg-color__dark-blue:before, .text:not(.bg-color__default).bg-color__dark-blue:after {
  background-color: #172636;
}
.text:not(.bg-color__default).bg-color__light-blue {
  background-color: #E2ECF3;
}
.text:not(.bg-color__default).bg-color__light-blue:before, .text:not(.bg-color__default).bg-color__light-blue:after {
  background-color: #E2ECF3;
}
.text:not(.bg-color__default).bg-color__red {
  background-color: #C84141;
}
.text:not(.bg-color__default).bg-color__red:before, .text:not(.bg-color__default).bg-color__red:after {
  background-color: #C84141;
}

/*------------------------------------*\
  04 - External Links
\*------------------------------------*/
.text-content p > [class*=btn].is-external i {
  margin-left: 8px;
}

.civicengine-embed-loaded {
  height: 600px !important;
}
.civicengine-embed-loaded #root .Main .AddressForm {
  display: block !important;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhcnRpYWxzL2Z1bmN0aW9ucy9fY2FsY3VsYXRpb25zLnNjc3MiLCJwYXJ0aWFscy9zZXR0aW5ncy9fY29sb3JzLnNjc3MiLCJwYXJ0aWFscy9zZXR0aW5ncy9fdHlwb2dyYXBoeS5zY3NzIiwicGFydGlhbHMvbWl4aW5zL19idXR0b25zLnNjc3MiLCJwYXJ0aWFscy9taXhpbnMvX21lZGlhLnNjc3MiLCJjb21wb25lbnRzL3RleHQvdGV4dC5zY3NzIiwiY29tcG9uZW50cy90ZXh0L3RleHQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0VBQUE7QUFVQTs7dUNBQUE7QUFTQTs7Ozs7O3VDQUFBO0FBZUE7Ozs7Ozt1Q0FBQTtBQ09BOzt1Q0FBQTtBQW1DQTs7dUNBQUE7QUM1RUE7Ozs7OztFQUFBO0FBUUE7O3VDQUFBO0FBT0E7O3VDQUFBO0FBT0E7O3VDQUFBO0FDdEJBOzs7Ozs7O0VBQUE7QUFTQTs7dUNBQUE7QUErQkE7O3VDQUFBO0FBMkNBOzt1Q0FBQTtBQ25GQTs7Ozs7O0VBQUE7QUFTQTs7Ozs7O3VDQUFBO0FBb0NBOzs7Ozs7O3VDQUFBO0FDN0NBOzs7Ozs7RUFBQTtBQVFBOzt1Q0FBQTtBQU1BOzt1Q0FBQTtBQUtBO0VBQ0UsbUJBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7QUNpRkY7QUQvRUU7RUFORjtJQU9JLG1CQUFBO0lBQ0EsZ0JBQUE7RUNrRkY7QUFDRjtBRC9FRTtFQUNFLGlCQUFBO0VBQ0Esa0JBQUE7QUNpRko7O0FEN0VBO0VBQ0UsbUJBQUE7QUNnRkY7QUQ5RUU7RUFIRjtJQUlJLG1CQUFBO0VDaUZGO0FBQ0Y7QURoRkU7RUFORjtJQU9JLG1CQUFBO0VDbUZGO0FBQ0Y7O0FEaEZBOzt1Q0FBQTtBQUlBO0VBQ0UsZ0JBQUE7RUFDQSxhQUFBO0VBQ0Esb0JBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0FDa0ZGO0FEaEZFO0VBUEY7SUFRSSxvQkFBQTtJQUNBLGlCQUFBO0VDbUZGO0FBQ0Y7QURqRkU7RUFaRjtJQWFJLG9CQUFBO0lBQ0EsaUJBQUE7RUNvRkY7QUFDRjtBRGxGRTtFQUNFLFdBQUE7RUFDQSxjQUFBO0VBQ0EsWUFBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxNQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7QUNvRko7QURqRkU7RUFDRSxXQUFBO0VBQ0EsY0FBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxNQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7QUNtRko7QUQ5RUk7RUFDRSx5QkpmYztBSytGcEI7QUQ3RVE7Ozs7Ozs7O0VBUUUsY0p0Rlc7QUtxS3JCO0FEMUVJO0VBRUUseUJKakNjO0FLNEdwQjtBRDlGSTtFQUNFLHlCSmZjO0FLK0dwQjtBRGhGSTtFQUVFLHlCSmpDYztBS2tIcEI7QURwR0k7RUFDRSx5QkpmYztBS3FIcEI7QUR0Rkk7RUFFRSx5QkpqQ2M7QUt3SHBCOztBRGxGQTs7dUNBQUE7QUFHQTtFQUNFLGdCQUFBO0FDcUZGOztBRGxGQTtFQUNFLHdCQUFBO0FDcUZGO0FEcEZFO0VBQ0UseUJBQUE7QUNzRkoiLCJmaWxlIjoiY29tcG9uZW50cy90ZXh0L3RleHQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGdW5jdGlvbnMgLSBDYWxjdWxhdGlvbnNcbiAqIFNpbXBsZSBmdW5jdGlvbnMgdG8gaGVscCBkZXZlbG9wZXJzIGNhbGN1bGF0ZSBkaWZmZXJlbnQgdmFsdWVzIGZyb20gcGVyY2VudGFnZXMgdG8gc2l6aW5nIHN1Y2ggYXMgUkVNcy5cbiAqXG4gKiAtIDAxIC0gSW1wb3J0c1xuICogLSAwMiAtIFRhcmdldC9Db250YWluZXIgUGVyY2VudGFnZVxuICogLSAwMyAtIFJFTXNcbiAqL1xuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIDAxIC0gSW1wb3J0c1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuQHVzZSAnc2FzczptYXRoJztcblxuXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgMDIgLSBUYXJnZXQvQ29udGFpbmVyIFBlcmNlbnRhZ2VcbiAgQ2FsY3VsYXRlIHRoZSBwZXJjZW50YWdlIG9mIGEgdGFyZ2V0IHNpemUgY29tcGFyZWQgdG8gYSBjb250YWluZXIgc2l6ZS5cbiAgLSBAcGFyYW0gJHRhcmdldDogU2l6ZSBvZiBhbiBlbGVtZW50IG5lZWRpbmcgYSBjYWxjdWxhdGVkIHBlcmNlbnRhZ2UuXG4gIC0gQHBhcmFtICRjb250YWluZXI6IFNpemUgb2YgdGhlIHRhcmdldCdzIGNvbnRhaW5lciwgbmVlZGVkIHRvIGNhbGN1bGF0ZSBwZXJjZW50YWdlLlxuICAtIEBleGFtcGxlID0gd2lkdGg6IGNhbGMtcGVyY2VudCgyNTAsIDEwMDApO1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuQGZ1bmN0aW9uIGNhbGMtcGVyY2VudCgkdGFyZ2V0LCAkY29udGFpbmVyKSB7XG4gIEByZXR1cm4gKCR0YXJnZXQgLyAkY29udGFpbmVyKSAqIDEwMCU7XG59XG5cblxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIDAzIC0gUkVNc1xuICBDYWxjdWxhdGUgYSBzaXplIGludG8gUkVNIHVuaXRzIC0tIG1vc3RseSB1c2VkIGZvciBmb250IHNpemUgcmVuZGVyaW5nLlxuICAtIEBwYXJhbSAkc2l6ZTogU2l6ZSBvZiBhbiBlbGVtZW50IG5lZWRpbmcgYSBjYWxjdWxhdGVkIHNpemUgaW50byBSRU1zLlxuICAtIEBwYXJhbSAkYmFzZTogQmFzZSBmb250IHNpemUgb2YgdGhlIHNpdGUgLS0gZGVmYXVsdHMgdG8gMTZweC5cbiAgLSBAZXhhbXBsZSA9IGZvbnQtc2l6ZTogY2FsYy1yZW0oMjRweCk7XG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4kYmFzZS1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XG5cbkBmdW5jdGlvbiBjYWxjLXJlbSgkc2l6ZSwgJGJhc2U6ICRiYXNlLWZvbnQtc2l6ZSkge1xuICAkcmVtLXNpemU6IG1hdGguZGl2KCRzaXplLCAkYmFzZSk7XG4gIEByZXR1cm4gI3skcmVtLXNpemV9cmVtO1xufSIsIi8vXG4vLyBAZmlsZVxuLy8gQ29sb3IgdmFyaWFibGVzLlxuLy9cbi8vIFNFRSBodHRwczovL3lldW4uZ2l0aHViLmlvL29wZW4tY29sb3IvXG4vL1xuXG4vLyBHcmF5c2NhbGVcblxuJGJsYWNrOiAgICAgICAgICAgICAgIzAwMDAwMDtcbiRncmF5LTAwOiAgICAgICAgICAgICMxMzBmMTM7XG4kZ3JheS0xMDogICAgICAgICAgICAjMjYxZjI2O1xuJGdyYXktMjA6ICAgICAgICAgICAgIzM2MzEzNjtcbiRncmF5LTMwOiAgICAgICAgICAgICM1MDRiNTA7XG4kZ3JheS00MDogICAgICAgICAgICAjNzc3Mjc3O1xuJGdyYXktNTA6ICAgICAgICAgICAgIzlkOTk5ZDtcbiRncmF5LTYwOiAgICAgICAgICAgICNjM2MxYzM7XG4kZ3JheS03MDogICAgICAgICAgICAjZTFlMGUxO1xuJGdyYXktODA6ICAgICAgICAgICAgI2YwZWZmMDtcbiRncmF5LTkwOiAgICAgICAgICAgICNmN2Y2Zjc7XG4kd2hpdGU6ICAgICAgICAgICAgICAjRkZGRkZGO1xuXG4vLyBSZWRcbiRyZWQtNTA6ICAgICAgICAgICAgICNjMDA7XG5cblxuLy8gR3JlZW5cbiRncmVlbi0zMDogICAgICAgICAgICM0MTc1MDU7XG4kZ3JlZW4tNTA6ICAgICAgICAgICAjN2VkMzIxO1xuXG4vLyBCbHVlXG4kYmx1ZS00MDogICAgICAgICAgICAjMDA2NTliO1xuJGJsdWUtNTA6ICAgICAgICAgICAgIzAwOThjZTtcblxuLy8gWWVsbG93XG4keWVsbG93LTUwOiAgICAgICAgICAjZmRjNDAwO1xuJHllbGxvdy05MDogICAgICAgICAgI2Y5ZThhYztcblxuXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgMDIgLSBUaGVtZVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiRpbmRpdmlzaWJsZS1uYXZ5OiAgICAgICAgIzBGMkU0RDtcbiRpbmRpdmlzaWJsZS1ibGFjazogICAgICAgIzE3MjYzNjtcbiRpbmRpdmlzaWJsZS1ncmF5OiAgICAgICAgIzJENEM2QjtcbiRpbmRpdmlzaWJsZS1iYXNlLWdyYXk6ICAgIzcwNzA3MDtcbiRpbmRpdmlzaWJsZS1saWdodC1ncmF5OiAgI0YyRjdGQTtcbiRpbmRpdmlzaWJsZS1ibHVlOiAgICAgICAgIzZDOUZDMjtcbiRpbmRpdmlzaWJsZS1yZWQ6ICAgICAgICAgI0M4NDE0MTtcbiRpbmRpdmlzaWJsZS1kYXJrLXJlZDogICAgIzk4MzczNjtcbiRpbmRpdmlzaWJsZS1saWdodC1ibHVlOiAgI0UyRUNGMztcbiRpbmRpdmlzaWJsZS1ibHVlLWdyYXk6ICAgI0MxRDVFMjtcblxuXG5cbi8vXG4vLyBTZW1hbnRpYyBjb2xvcnNcbi8vXG4kY2xyLW5ldXRyYWw6ICAgICAgICAkZ3JheS01MDsgICAgICAgICAgIC8vIERlZmF1bHQgbnVldHJhbCBjb2xvclxuJGNsci10ZXh0OiAgICAgICAgICAgJGdyYXktMjA7ICAgICAgICAgICAvLyBEZWZhdWx0IGJvZHkgY29weSBjb2xvclxuJGNsci1saW5rOiAgICAgICAgICAgJGJsdWUtNTA7ICAgICAgICAgICAgIC8vIERlZmF1bHQgbGluayBjb2xvclxuJGNsci1oZWFkaW5nOiAgICAgICAgJGdyYXktMjA7ICAgICAgICAgICAvLyBEZWZhdWx0IGFjY2VudCBjb2xvclxuJGNsci1hY2NlbnQ6ICAgICAgICAgJHllbGxvdy01MDsgICAgICAgICAgICAvLyBEZWZhdWx0IGFjY2VudCBjb2xvclxuJGNsci1ib3JkZXI6ICAgICAgICAgJGdyYXktNjA7ICAgICAgICAgICAgICAvLyBEZWZhdWx0IGJvcmRlciBhbmQgcmVxdWlyZWQgY29sb3JcbiRjbHItc3RhdHVzOiAgICAgICAgICRncmVlbi01MDsgICAgICAgICAgICAgIC8vIERlZmF1bHQgc3RhdHVzIGNvbG9yXG4kY2xyLXdhcm5pbmc6ICAgICAgICAkeWVsbG93LTUwOyAgICAgICAgICAgICAgLy8gRGVmYXVsdCB3YXJuaW5nIGNvbG9yXG4kY2xyLWVycm9yOiAgICAgICAgICAkcmVkLTUwOyAgICAgICAgICAgICAgLy8gRGVmYXVsdCBlcnJvciBhbmQgcmVxdWlyZWQgY29sb3JcbiRjbHItdGFibGUtYm9yZGVyOiAgIHZhcigtLWJvcmRlci1jb2xvcik7ICAgICAgIC8vIERlZmF1bHQgdGFibGUgYm9yZGVyIGNvbG9yXG4kY2xyLXRhYmxlLWhlYWRlcjogICAkZ3JheS03MDtcbiRjbHItdGFibGUtb2RkOiAgICAgICNmZmY7ICAgICAgICAgICAvLyBEZWZhdWx0IHRhYmxlIG9kZCByb3cgY29sb3JcbiRjbHItdGFibGUtZXZlbjogICAgICRncmF5LTkwOyAgICAgICAgICAgIC8vIERlZmF1bHQgdGFibGUgZXZlbiByb3cgY29sb3JcblxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIDA0IC0gTWFwcGluZ3NcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiRiYWNrZ3JvdW5kLWNvbG9yczogKFxuICAnZGFyay1ibHVlJzogICRpbmRpdmlzaWJsZS1ibGFjayxcbiAgJ2xpZ2h0LWJsdWUnOiAkaW5kaXZpc2libGUtbGlnaHQtYmx1ZSxcbiAgJ3JlZCc6ICAgICAgICAkaW5kaXZpc2libGUtcmVkLFxuKVxuIiwiLyoqXG4gKiBTZXR0aW5ncyAtIFR5cG9ncmFwaHlcbiAqIFN0YW5kYXJkIHNldHMgb2YgdHlwb2dyYXBoaWNhbCB2YXJpYWJsZXMgYW5kIG1hcHBpbmdzIHRvIGJlIG9mIHVzZSBhY3Jvc3MgdGhlIHNpdGUsIGZvciBjb25zaXN0ZW5jeSBhbmQgYWNjdXJhY3kuXG4gKlxuICogLSAwMSAtIExpbmUgSGVpZ2h0c1xuICogLSAwMiAtIEZvbnRzXG4gKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgMDEgLSBMaW5lIEhlaWdodHNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiRsaW5lLWhlaWdodC1oZWFkaW5nOiAxLjI7XG4kbGluZS1oZWlnaHQtYm9keTogMS41O1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAwMiAtIEZvbnRzXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4kZm9udC1mYW1pbHktc2FuczogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmO1xuJGZvbnQtZmFtaWx5LXNlcmlmOiAnRG9taW5lJywgc2VyaWY7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIDAzIC0gV2VpZ2h0c1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuJGZvbnQtd2VpZ2h0LXRoaW46IDEwMDtcbiRmb250LXdlaWdodC1saWdodDogMzAwO1xuJGZvbnQtd2VpZ2h0LXJlZ3VsYXI6IDQwMDtcbiRmb250LXdlaWdodC1ib29rOiA0MDA7XG4kZm9udC13ZWlnaHQtbWVkaXVtOiA1MDA7XG4kZm9udC13ZWlnaHQtc2VtaWJvbGQ6IDYwMDtcbiRmb250LXdlaWdodC1ib2xkOiA3MDA7XG4kZm9udC13ZWlnaHQtYm9sZC1oZWFkaW5nOiA4MDA7XG4iLCIvKipcbiAqIE1peGlucyAtIEJ1dHRvbnNcbiAqIFN0YW5kYXJkIHNldHMgb2YgQnV0dG9uIG1peGlucyB0byBiZSBvZiB1c2UgYWNyb3NzIHRoZSBzaXRlLCBmb3IgY29uc2lzdGVuY3kgYW5kIGFjY3VyYWN5LlxuICpcbiAqIC0gMDEgLSBTbWFsbFxuICogLSAwMiAtIExhcmdlIFJlZFxuICogLSAwMyAtIExhcmdlIFVuZGVybGluZSBSZWRcbiAqL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAwMSAtIFNtYWxsXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5AbWl4aW4gYnRuLXNtYWxsKCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5kaXZpc2libGUtZ3JheTtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwLjYyNXJlbTtcbiAgY29sb3I6ICR3aGl0ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtZmFtaWx5OiBNb250c2VycmF0LCBzYW5zLXNlcmlmO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIGxldHRlci1zcGFjaW5nOiBpbml0aWFsO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbmRpdmlzaWJsZS1ibGFjaztcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBhdXRvIDJweCAkaW5kaXZpc2libGUtYmxhY2s7XG4gIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgMDIgLSBMYXJnZSBSZWRcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbkBtaXhpbiBidG4tbGFyZ2UtcmVkKCRsZXR0ZXItc3BhY2luZzogMnB4LCAkdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5kaXZpc2libGUtcmVkO1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiAjZmZmO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2FucztcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtYm9keSk7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZC1oZWFkaW5nO1xuICBsZXR0ZXItc3BhY2luZzogJGxldHRlci1zcGFjaW5nO1xuICBwYWRkaW5nOiAxcmVtIDEuMjVyZW07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06ICR0ZXh0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxNTBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG5cbiAgYSB7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5kaXZpc2libGUtZGFyay1yZWQ7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDE1MG1zO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgLy8gb3V0bGluZTogYXV0byAycHggJGluZGl2aXNpYmxlLWRhcmstcmVkO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxNTBtcztcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAwMyAtIExhcmdlIFVuZGVybGluZSBSZWRcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbkBtaXhpbiBidG4tbGFyZ2UtdW5kZXJsaW5lLXJlZCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICRpbmRpdmlzaWJsZS1yZWQ7XG4gIGNvbG9yOiAkaW5kaXZpc2libGUtcmVkO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAgMCAwLjI1cmVtIDA7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2FucztcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtYm9keSk7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZC1oZWFkaW5nO1xuICBtYXJnaW46IDZweCAxNXB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMTUwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICBsZXR0ZXItc3BhY2luZzogMnB4O1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkaW5kaXZpc2libGUtZGFyay1yZWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkaW5kaXZpc2libGUtZGFyay1yZWQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxNTBtcztcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IGF1dG8gMnB4ICRpbmRpdmlzaWJsZS1kYXJrLXJlZDtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMTUwbXM7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIH1cbn1cbiIsIi8qKlxuICogTWl4aW5zIC0gTWVkaWFcbiAqIFVzZSB0aGVzZSBtaXhpbnMgd2hlbiBuZWVkaW5nIHRvIGVhc2lseSBkZWZpbmUgbWVkaWEgc3R5bGVzLCBzdWNoIGFzIHNpemluZywgcG9zaXRpb25pbmcsIGV0Yy5cbiAqXG4gKiAtIDAxIC0gQmFja2dyb3VuZCBJbWFnZVxuICogLSAwMiAtIFJlc3BvbnNpdmUgSUZyYW1lXG4gKi9cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAwMSAtIEJhY2tncm91bmQgSW1hZ2VcbiAgSW5zdGVhZCBvZiB1c2luZyBhbiBpbmxpbmUgc3R5bGUgdG8gZGVmaW5lIGEgYmFja2dyb3VuZCBpbWFnZSwgYW5kIG5lZWRpbmcgdG8gc2V0IGFuIEhUTUwgaW1hZ2UgYXMgYSBiYWNrZ3JvdW5kXG4gIGltYWdlLCB1c2UgdGhpcyBtaXhpbi5cbiAgLSBAcGFyYW0gJHBvc2l0aW9uOiBBbGlnbm1lbnQgb2YgdGhlIGltYWdlIHdpdGhpbiBpdCdzIGZyYW1lIFtjZW50ZXIsIHRvcCwgYm90dG9tXSAoZGVmYXVsdCA9IGNlbnRlcilcbiAgLSBAZXhhbXBsZSA9IEBpbmNsdWRlIGJhY2tncm91bmQtaW1hZ2UoY2VudGVyKTtcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbkBtaXhpbiBiYWNrZ3JvdW5kLWltYWdlKCRwb3NpdGlvbjogY2VudGVyKSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBvYmplY3QtcG9zaXRpb246ICRwb3NpdGlvbjtcblxuICAvLyBJRTExIEFkanVzdG1lbnRzXG4gIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSB7XG4gICAgbWF4LXdpZHRoOiBpbmhlcml0O1xuICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICBAaWYoJHBvc2l0aW9uID09IGNlbnRlcikge1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgfSBAZWxzZSBpZigkcG9zaXRpb24gPT0gdG9wKSB7XG4gICAgICB0b3A6IDA7XG4gICAgfSBAZWxzZSBpZigkcG9zaXRpb24gPT0gYm90dG9tKSB7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuICB9XG59XG5cblxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIDAyIC0gUmVzcG9uc2l2ZSBJRnJhbWVcbiAgV2hlbiBuZWVkaW5nIGFuIElGcmFtZSB0byBiZSByZXNwb25zaXZlIHRvIGl0J3MgY29udGFpbmVyLCBhbmQgdWx0aW1hdGVseSBmb3IgbW9iaWxlIGRldmljZXMsIHVzZSB0aGlzIG1peGluLiBUaGlzXG4gIG1peGluIG5lZWRzIHRvIGJlIGFwcGxpZWQgdG8gdGhlIHBhcmVudCBIVE1MIGVsZW1lbnQgb2YgdGhlIElGcmFtZS5cbiAgLSBAcGFyYW0gJHdpZHRoOiBTaXppbmcgd2lkdGggdG8gZGV0ZXJtaW5lIHRoZSByYXRpbyBvZiBzaXppbmcgbmVlZGVkIGZvciB0aGUgcmVzcG9uc2l2ZSBJRnJhbWUuIFtkZWZhdWx0cyB0byAxNl1cbiAgLSBAcGFyYW0gJGhlaWdodDogU2l6aW5nIGhlaWdodCB0byBkZXRlcm1pbmUgdGhlIHJhdGlvIG9mIHNpemluZyBuZWVkZWQgZm9yIHRoZSByZXNwb25zaXZlIElGcmFtZS4gW2RlZmF1bHRzIHRvIDldXG4gIC0gQGV4YW1wbGUgPSBAaW5jbHVkZSByZXNwb25zaXZlLWlmcmFtZSgxNiwgOSk7XG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5AbWl4aW4gcmVzcG9uc2l2ZS1pZnJhbWUoJHdpZHRoOiAxNiwgJGhlaWdodDogOSkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctdG9wOiBjYWxjKCN7JGhlaWdodH0gLyAjeyR3aWR0aH0gKiAxMDAlKTtcblxuICBpZnJhbWUge1xuICAgIGJvcmRlcjogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvKipcbiAqIENvbXBvbmVudHMgLSBUZXh0XG4gKiAtIDAxIC0gSW1wb3J0c1xuICogLSAwMiAtIExheW91dFxuICogLSAwMyAtIEJhY2tncm91bmQgQ29sb3JcbiAqIC0gMDQgLSBFeHRlcm5hbCBMaW5rc1xuICovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIDAxIC0gSW1wb3J0c1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuQHVzZSAnLi4vLi4vcGFydGlhbHMvX3BhcnRpYWxzJyBhcyAqO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAwMiAtIExheW91dFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLy8gQ2FtcGFpZ24gUGFnZSBTcGVjaWZpY1xuLmNhbXBhaWduIC50ZXh0IHtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgbWFyZ2luLXRvcDogNDBweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcblxuICBAbWVkaWEgKC0tdGFibGV0LW1heC1hbmQtbGFyZ2VyKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogODBweDtcbiAgICBtYXJnaW4tdG9wOiA4MHB4O1xuICB9XG5cbiAgLy8gQ2VudGVyIGNvbnRlbnRcbiAgLnRleHQtY29udGVudCB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG59XG5cbi5wYXJhZ3JhcGgtLXR5cGUtLXRleHQudGV4dCB7XG4gIG1hcmdpbi1ib3R0b206IDQ4cHg7XG5cbiAgQG1lZGlhICgtLXRhYmxldCkge1xuICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gIH1cbiAgQG1lZGlhICgtLWRlc2t0b3AtYW5kLWxhcmdlcikge1xuICAgIG1hcmdpbi1ib3R0b206IDgwcHg7XG4gIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgMDMgLSBCYWNrZ3JvdW5kIENvbG9yXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udGV4dDpub3QoLmJnLWNvbG9yX19kZWZhdWx0KSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG1hcmdpbi10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiA0MHB4O1xuICBwYWRkaW5nLXRvcDogNDBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBtZWRpYSAoLS1sYXB0b3ApIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNjBweDtcbiAgICBwYWRkaW5nLXRvcDogNjBweDtcbiAgfVxuXG4gIEBtZWRpYSAoLS1kZXNrdG9wLWFuZC1sYXJnZXIpIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogODBweDtcbiAgICBwYWRkaW5nLXRvcDogODBweDtcbiAgfVxuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogLTUwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICB6LWluZGV4OiAtMTtcbiAgfVxuXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IC01MCU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICB6LWluZGV4OiAtMTtcbiAgfVxuXG4gIC8vIENvbG9yc1xuICBAZWFjaCAkY29sb3IsICR2YWx1ZSBpbiAkYmFja2dyb3VuZC1jb2xvcnMge1xuICAgICYuYmctY29sb3JfXyN7JGNvbG9yfSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdmFsdWU7XG5cbiAgICAgIEBpZiAkY29sb3IgPT0gJ2RhcmstYmx1ZScge1xuICAgICAgICBoMixcbiAgICAgICAgaDMsXG4gICAgICAgIGg0LFxuICAgICAgICBoNSxcbiAgICAgICAgaDYsXG4gICAgICAgIHAsXG4gICAgICAgIGEsXG4gICAgICAgIGxpIHtcbiAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5iZy1jb2xvcl9fI3skY29sb3J9OmJlZm9yZSxcbiAgICAmLmJnLWNvbG9yX18jeyRjb2xvcn06YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHZhbHVlO1xuICAgIH1cbiAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAwNCAtIEV4dGVybmFsIExpbmtzXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnRleHQtY29udGVudCBwID4gW2NsYXNzKj0nYnRuJ10uaXMtZXh0ZXJuYWwgaSB7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG59XG5cbi5jaXZpY2VuZ2luZS1lbWJlZC1sb2FkZWQge1xuICBoZWlnaHQ6IDYwMHB4ICFpbXBvcnRhbnQ7XG4gICNyb290IC5NYWluIC5BZGRyZXNzRm9ybSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiLyoqXG4gKiBGdW5jdGlvbnMgLSBDYWxjdWxhdGlvbnNcbiAqIFNpbXBsZSBmdW5jdGlvbnMgdG8gaGVscCBkZXZlbG9wZXJzIGNhbGN1bGF0ZSBkaWZmZXJlbnQgdmFsdWVzIGZyb20gcGVyY2VudGFnZXMgdG8gc2l6aW5nIHN1Y2ggYXMgUkVNcy5cbiAqXG4gKiAtIDAxIC0gSW1wb3J0c1xuICogLSAwMiAtIFRhcmdldC9Db250YWluZXIgUGVyY2VudGFnZVxuICogLSAwMyAtIFJFTXNcbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgMDEgLSBJbXBvcnRzXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgMDIgLSBUYXJnZXQvQ29udGFpbmVyIFBlcmNlbnRhZ2VcbiAgQ2FsY3VsYXRlIHRoZSBwZXJjZW50YWdlIG9mIGEgdGFyZ2V0IHNpemUgY29tcGFyZWQgdG8gYSBjb250YWluZXIgc2l6ZS5cbiAgLSBAcGFyYW0gJHRhcmdldDogU2l6ZSBvZiBhbiBlbGVtZW50IG5lZWRpbmcgYSBjYWxjdWxhdGVkIHBlcmNlbnRhZ2UuXG4gIC0gQHBhcmFtICRjb250YWluZXI6IFNpemUgb2YgdGhlIHRhcmdldCdzIGNvbnRhaW5lciwgbmVlZGVkIHRvIGNhbGN1bGF0ZSBwZXJjZW50YWdlLlxuICAtIEBleGFtcGxlID0gd2lkdGg6IGNhbGMtcGVyY2VudCgyNTAsIDEwMDApO1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIDAzIC0gUkVNc1xuICBDYWxjdWxhdGUgYSBzaXplIGludG8gUkVNIHVuaXRzIC0tIG1vc3RseSB1c2VkIGZvciBmb250IHNpemUgcmVuZGVyaW5nLlxuICAtIEBwYXJhbSAkc2l6ZTogU2l6ZSBvZiBhbiBlbGVtZW50IG5lZWRpbmcgYSBjYWxjdWxhdGVkIHNpemUgaW50byBSRU1zLlxuICAtIEBwYXJhbSAkYmFzZTogQmFzZSBmb250IHNpemUgb2YgdGhlIHNpdGUgLS0gZGVmYXVsdHMgdG8gMTZweC5cbiAgLSBAZXhhbXBsZSA9IGZvbnQtc2l6ZTogY2FsYy1yZW0oMjRweCk7XG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgMDIgLSBUaGVtZVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIDA0IC0gTWFwcGluZ3NcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNldHRpbmdzIC0gVHlwb2dyYXBoeVxuICogU3RhbmRhcmQgc2V0cyBvZiB0eXBvZ3JhcGhpY2FsIHZhcmlhYmxlcyBhbmQgbWFwcGluZ3MgdG8gYmUgb2YgdXNlIGFjcm9zcyB0aGUgc2l0ZSwgZm9yIGNvbnNpc3RlbmN5IGFuZCBhY2N1cmFjeS5cbiAqXG4gKiAtIDAxIC0gTGluZSBIZWlnaHRzXG4gKiAtIDAyIC0gRm9udHNcbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgMDEgLSBMaW5lIEhlaWdodHNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAwMiAtIEZvbnRzXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgMDMgLSBXZWlnaHRzXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBNaXhpbnMgLSBCdXR0b25zXG4gKiBTdGFuZGFyZCBzZXRzIG9mIEJ1dHRvbiBtaXhpbnMgdG8gYmUgb2YgdXNlIGFjcm9zcyB0aGUgc2l0ZSwgZm9yIGNvbnNpc3RlbmN5IGFuZCBhY2N1cmFjeS5cbiAqXG4gKiAtIDAxIC0gU21hbGxcbiAqIC0gMDIgLSBMYXJnZSBSZWRcbiAqIC0gMDMgLSBMYXJnZSBVbmRlcmxpbmUgUmVkXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIDAxIC0gU21hbGxcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAwMiAtIExhcmdlIFJlZFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIDAzIC0gTGFyZ2UgVW5kZXJsaW5lIFJlZFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogTWl4aW5zIC0gTWVkaWFcbiAqIFVzZSB0aGVzZSBtaXhpbnMgd2hlbiBuZWVkaW5nIHRvIGVhc2lseSBkZWZpbmUgbWVkaWEgc3R5bGVzLCBzdWNoIGFzIHNpemluZywgcG9zaXRpb25pbmcsIGV0Yy5cbiAqXG4gKiAtIDAxIC0gQmFja2dyb3VuZCBJbWFnZVxuICogLSAwMiAtIFJlc3BvbnNpdmUgSUZyYW1lXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIDAxIC0gQmFja2dyb3VuZCBJbWFnZVxuICBJbnN0ZWFkIG9mIHVzaW5nIGFuIGlubGluZSBzdHlsZSB0byBkZWZpbmUgYSBiYWNrZ3JvdW5kIGltYWdlLCBhbmQgbmVlZGluZyB0byBzZXQgYW4gSFRNTCBpbWFnZSBhcyBhIGJhY2tncm91bmRcbiAgaW1hZ2UsIHVzZSB0aGlzIG1peGluLlxuICAtIEBwYXJhbSAkcG9zaXRpb246IEFsaWdubWVudCBvZiB0aGUgaW1hZ2Ugd2l0aGluIGl0J3MgZnJhbWUgW2NlbnRlciwgdG9wLCBib3R0b21dIChkZWZhdWx0ID0gY2VudGVyKVxuICAtIEBleGFtcGxlID0gQGluY2x1ZGUgYmFja2dyb3VuZC1pbWFnZShjZW50ZXIpO1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIDAyIC0gUmVzcG9uc2l2ZSBJRnJhbWVcbiAgV2hlbiBuZWVkaW5nIGFuIElGcmFtZSB0byBiZSByZXNwb25zaXZlIHRvIGl0J3MgY29udGFpbmVyLCBhbmQgdWx0aW1hdGVseSBmb3IgbW9iaWxlIGRldmljZXMsIHVzZSB0aGlzIG1peGluLiBUaGlzXG4gIG1peGluIG5lZWRzIHRvIGJlIGFwcGxpZWQgdG8gdGhlIHBhcmVudCBIVE1MIGVsZW1lbnQgb2YgdGhlIElGcmFtZS5cbiAgLSBAcGFyYW0gJHdpZHRoOiBTaXppbmcgd2lkdGggdG8gZGV0ZXJtaW5lIHRoZSByYXRpbyBvZiBzaXppbmcgbmVlZGVkIGZvciB0aGUgcmVzcG9uc2l2ZSBJRnJhbWUuIFtkZWZhdWx0cyB0byAxNl1cbiAgLSBAcGFyYW0gJGhlaWdodDogU2l6aW5nIGhlaWdodCB0byBkZXRlcm1pbmUgdGhlIHJhdGlvIG9mIHNpemluZyBuZWVkZWQgZm9yIHRoZSByZXNwb25zaXZlIElGcmFtZS4gW2RlZmF1bHRzIHRvIDldXG4gIC0gQGV4YW1wbGUgPSBAaW5jbHVkZSByZXNwb25zaXZlLWlmcmFtZSgxNiwgOSk7XG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBDb21wb25lbnRzIC0gVGV4dFxuICogLSAwMSAtIEltcG9ydHNcbiAqIC0gMDIgLSBMYXlvdXRcbiAqIC0gMDMgLSBCYWNrZ3JvdW5kIENvbG9yXG4gKiAtIDA0IC0gRXh0ZXJuYWwgTGlua3NcbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgMDEgLSBJbXBvcnRzXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgMDIgLSBMYXlvdXRcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uY2FtcGFpZ24gLnRleHQge1xuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICBtYXJnaW4tdG9wOiA0MHB4O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuQG1lZGlhICgtLXRhYmxldC1tYXgtYW5kLWxhcmdlcikge1xuICAuY2FtcGFpZ24gLnRleHQge1xuICAgIG1hcmdpbi1ib3R0b206IDgwcHg7XG4gICAgbWFyZ2luLXRvcDogODBweDtcbiAgfVxufVxuLmNhbXBhaWduIC50ZXh0IC50ZXh0LWNvbnRlbnQge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4ucGFyYWdyYXBoLS10eXBlLS10ZXh0LnRleHQge1xuICBtYXJnaW4tYm90dG9tOiA0OHB4O1xufVxuQG1lZGlhICgtLXRhYmxldCkge1xuICAucGFyYWdyYXBoLS10eXBlLS10ZXh0LnRleHQge1xuICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gIH1cbn1cbkBtZWRpYSAoLS1kZXNrdG9wLWFuZC1sYXJnZXIpIHtcbiAgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC50ZXh0IHtcbiAgICBtYXJnaW4tYm90dG9tOiA4MHB4O1xuICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIDAzIC0gQmFja2dyb3VuZCBDb2xvclxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi50ZXh0Om5vdCguYmctY29sb3JfX2RlZmF1bHQpIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7XG4gIHBhZGRpbmctdG9wOiA0MHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5AbWVkaWEgKC0tbGFwdG9wKSB7XG4gIC50ZXh0Om5vdCguYmctY29sb3JfX2RlZmF1bHQpIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNjBweDtcbiAgICBwYWRkaW5nLXRvcDogNjBweDtcbiAgfVxufVxuQG1lZGlhICgtLWRlc2t0b3AtYW5kLWxhcmdlcikge1xuICAudGV4dDpub3QoLmJnLWNvbG9yX19kZWZhdWx0KSB7XG4gICAgcGFkZGluZy1ib3R0b206IDgwcHg7XG4gICAgcGFkZGluZy10b3A6IDgwcHg7XG4gIH1cbn1cbi50ZXh0Om5vdCguYmctY29sb3JfX2RlZmF1bHQpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IC01MCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMHZ3O1xuICB6LWluZGV4OiAtMTtcbn1cbi50ZXh0Om5vdCguYmctY29sb3JfX2RlZmF1bHQpOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogLTUwJTtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwdnc7XG4gIHotaW5kZXg6IC0xO1xufVxuLnRleHQ6bm90KC5iZy1jb2xvcl9fZGVmYXVsdCkuYmctY29sb3JfX2RhcmstYmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNzI2MzY7XG59XG4udGV4dDpub3QoLmJnLWNvbG9yX19kZWZhdWx0KS5iZy1jb2xvcl9fZGFyay1ibHVlIGgyLFxuLnRleHQ6bm90KC5iZy1jb2xvcl9fZGVmYXVsdCkuYmctY29sb3JfX2RhcmstYmx1ZSBoMyxcbi50ZXh0Om5vdCguYmctY29sb3JfX2RlZmF1bHQpLmJnLWNvbG9yX19kYXJrLWJsdWUgaDQsXG4udGV4dDpub3QoLmJnLWNvbG9yX19kZWZhdWx0KS5iZy1jb2xvcl9fZGFyay1ibHVlIGg1LFxuLnRleHQ6bm90KC5iZy1jb2xvcl9fZGVmYXVsdCkuYmctY29sb3JfX2RhcmstYmx1ZSBoNixcbi50ZXh0Om5vdCguYmctY29sb3JfX2RlZmF1bHQpLmJnLWNvbG9yX19kYXJrLWJsdWUgcCxcbi50ZXh0Om5vdCguYmctY29sb3JfX2RlZmF1bHQpLmJnLWNvbG9yX19kYXJrLWJsdWUgYSxcbi50ZXh0Om5vdCguYmctY29sb3JfX2RlZmF1bHQpLmJnLWNvbG9yX19kYXJrLWJsdWUgbGkge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi50ZXh0Om5vdCguYmctY29sb3JfX2RlZmF1bHQpLmJnLWNvbG9yX19kYXJrLWJsdWU6YmVmb3JlLCAudGV4dDpub3QoLmJnLWNvbG9yX19kZWZhdWx0KS5iZy1jb2xvcl9fZGFyay1ibHVlOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3MjYzNjtcbn1cbi50ZXh0Om5vdCguYmctY29sb3JfX2RlZmF1bHQpLmJnLWNvbG9yX19saWdodC1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0UyRUNGMztcbn1cbi50ZXh0Om5vdCguYmctY29sb3JfX2RlZmF1bHQpLmJnLWNvbG9yX19saWdodC1ibHVlOmJlZm9yZSwgLnRleHQ6bm90KC5iZy1jb2xvcl9fZGVmYXVsdCkuYmctY29sb3JfX2xpZ2h0LWJsdWU6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTJFQ0YzO1xufVxuLnRleHQ6bm90KC5iZy1jb2xvcl9fZGVmYXVsdCkuYmctY29sb3JfX3JlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDODQxNDE7XG59XG4udGV4dDpub3QoLmJnLWNvbG9yX19kZWZhdWx0KS5iZy1jb2xvcl9fcmVkOmJlZm9yZSwgLnRleHQ6bm90KC5iZy1jb2xvcl9fZGVmYXVsdCkuYmctY29sb3JfX3JlZDphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDODQxNDE7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gIDA0IC0gRXh0ZXJuYWwgTGlua3NcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udGV4dC1jb250ZW50IHAgPiBbY2xhc3MqPWJ0bl0uaXMtZXh0ZXJuYWwgaSB7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG59XG5cbi5jaXZpY2VuZ2luZS1lbWJlZC1sb2FkZWQge1xuICBoZWlnaHQ6IDYwMHB4ICFpbXBvcnRhbnQ7XG59XG4uY2l2aWNlbmdpbmUtZW1iZWQtbG9hZGVkICNyb290IC5NYWluIC5BZGRyZXNzRm9ybSB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59Il19 */
