@charset "UTF-8";
/**
 *  Do not remove the comments below. It's the markers used by wiredep to inject
 *  sass dependencies when defined in the bower.json of your dependencies
 */
body {
  background-color: #fafafa !important; }

html body, input, button, h1, h2, h3, h4, h5, h6, textarea {
  font-family: Roboto, Helvetica, sans-serif !important; }

.success-message-sent p {
  color: #999;
  text-align: center; }

.success-message-sent h3 {
  color: #777;
  text-align: center; }

.notification-fsense {
  position: fixed;
  height: auto;
  padding: 4px 16px;
  box-sizing: border-box;
  min-width: 450px;
  text-align: center;
  left: 50%;
  line-height: 30px;
  font-size: 14px;
  font-weight: 400;
  border-radius: 0 0 4px 4px;
  top: 0;
  box-shadow: 0 0 3px grey;
  animation-name: notification-enter;
  animation-timing-function: ease-out;
  animation-duration: 0.3s;
  animation-iteration-count: 1; }

.notification-leave {
  top: -40px;
  animation-name: notification-leave;
  animation-timing-function: ease-out;
  animation-duration: 0.3s;
  animation-iteration-count: 1; }

.notification-default {
  background-color: grey; }

.notification-primary {
  background-color: grey; }

.notification-success {
  background-color: #58ce58;
  color: white; }

.notification-warning {
  background-color: grey; }

.notification-error {
  color: white;
  background-color: #dc6464; }

@keyframes notification-enter {
  from {
    top: -30px; }
  to {
    top: 0; } }

@keyframes notification-leave {
  from {
    top: 0px; }
  to {
    top: -40px; } }

/* fallback */
@font-face {
  font-family: 'Material Icons';
  font-style: normal;
  font-weight: 400;
  src: url(../fonts/Material-Icons.woff2) format("woff2"); }

.material-icons {
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  font-feature-settings: 'liga';
  -moz-font-feature-settings: 'liga';
  -moz-osx-font-smoothing: grayscale; }

/* Rules for sizing the icon. */
.material-icons.md-18 {
  font-size: 18px; }

.material-icons.md-24 {
  font-size: 24px; }

.material-icons.md-36 {
  font-size: 36px; }

.material-icons.md-48 {
  font-size: 48px; }

/* Rules for using icons as black on a light background. */
.material-icons.md-dark {
  color: rgba(0, 0, 0, 0.54); }

.material-icons.md-dark.md-inactive {
  color: rgba(0, 0, 0, 0.26); }

/* Rules for using icons as white on a dark background. */
.material-icons.md-light {
  color: white; }

.material-icons.md-light.md-inactive {
  color: rgba(255, 255, 255, 0.3); }

/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  src: url(../fonts/Roboto-Light.ttf) format("truetype");
  unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F; }

/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  src: url(../fonts/Roboto-Light.ttf) format("truetype");
  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }

/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  src: url(../fonts/Roboto-Light.ttf) format("truetype");
  unicode-range: U+1F00-1FFF; }

/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  src: url(../fonts/Roboto-Light.ttf) format("truetype");
  unicode-range: U+0370-03FF; }

/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  src: url(../fonts/Roboto-Light.ttf) format("truetype");
  unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB; }

/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  src: url(../fonts/Roboto-Light.ttf) format("truetype");
  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; }

/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  src: url(../fonts/Roboto-Light.ttf) format("truetype");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; }

/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  src: url(../fonts/Roboto-Regular.ttf) format("truetype");
  unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F; }

/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  src: url(../fonts/Roboto-Regular.ttf) format("truetype");
  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }

/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  src: url(../fonts/Roboto-Regular.ttf) format("truetype");
  unicode-range: U+1F00-1FFF; }

/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  src: url(../fonts/Roboto-Regular.ttf) format("truetype");
  unicode-range: U+0370-03FF; }

/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  src: url(../fonts/Roboto-Regular.ttf) format("truetype");
  unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB; }

/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  src: url(../fonts/Roboto-Regular.ttf) format("truetype");
  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; }

/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  src: url(../fonts/Roboto-Regular.ttf) format("truetype");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; }

/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  src: url(../fonts/Roboto-Medium.ttf) format("truetype");
  unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F; }

/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  src: url(../fonts/Roboto-Medium.ttf) format("truetype");
  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }

/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  src: url(../fonts/Roboto-Medium.ttf) format("truetype");
  unicode-range: U+1F00-1FFF; }

/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  src: url(../fonts/Roboto-Medium.ttf) format("truetype");
  unicode-range: U+0370-03FF; }

/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  src: url(../fonts/Roboto-Medium.ttf) format("truetype");
  unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB; }

/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  src: url(../fonts/Roboto-Medium.ttf) format("truetype");
  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; }

/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  src: url(../fonts/Roboto-Medium.ttf) format("truetype");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; }

/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  src: url(../fonts/Roboto-Bold.ttf) format("truetype");
  unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F; }

/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  src: url(../fonts/Roboto-Bold.ttf) format("truetype");
  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }

/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  src: url(../fonts/Roboto-Bold.ttf) format("truetype");
  unicode-range: U+1F00-1FFF; }

/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  src: url(../fonts/Roboto-Bold.ttf) format("truetype");
  unicode-range: U+0370-03FF; }

/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  src: url(../fonts/Roboto-Bold.ttf) format("truetype");
  unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB; }

/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  src: url(../fonts/Roboto-Bold.ttf) format("truetype");
  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; }

/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  src: url(../fonts/Roboto-Bold.ttf) format("truetype");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; }

/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 400;
  src: url(../fonts/Roboto-Italic.ttf) format("truetype");
  unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F; }

/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 400;
  src: url(../fonts/Roboto-Italic.ttf) format("truetype");
  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }

/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 400;
  src: url(../fonts/Roboto-Italic.ttf) format("truetype");
  unicode-range: U+1F00-1FFF; }

/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 400;
  src: url(../fonts/Roboto-Italic.ttf) format("truetype");
  unicode-range: U+0370-03FF; }

/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 400;
  src: url(../fonts/Roboto-Italic.ttf) format("truetype");
  unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB; }

/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 400;
  src: url(../fonts/Roboto-Italic.ttf) format("truetype");
  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; }

/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 400;
  src: url(../fonts/Roboto-Italic.ttf) format("truetype");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Material Design Lite */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
/*
 * What follows is the result of much research on cross-browser styling.
 * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,
 * Kroc Camen, and the H5BP dev community and team.
 */
/* ==========================================================================
   Base styles: opinionated defaults
   ========================================================================== */
html {
  color: rgba(0,0,0, 0.87);
  font-size: 1em;
  line-height: 1.4; }

/*
 * Remove text-shadow in selection highlight:
 * https://twitter.com/miketaylr/status/12228805301
 *
 * These selection rule sets have to be separate.
 * Customize the background color to match your design.
 */
::-moz-selection {
  background: #b3d4fc;
  text-shadow: none; }
::selection {
  background: #b3d4fc;
  text-shadow: none; }

/*
 * A better looking default horizontal rule
 */
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0; }

/*
 * Remove the gap between audio, canvas, iframes,
 * images, videos and the bottom of their containers:
 * https://github.com/h5bp/html5-boilerplate/issues/440
 */
audio,
canvas,
iframe,
img,
svg,
video {
  vertical-align: middle; }

/*
 * Remove default fieldset styles.
 */
fieldset {
  border: 0;
  margin: 0;
  padding: 0; }

/*
 * Allow only vertical resizing of textareas.
 */
textarea {
  resize: vertical; }

/* ==========================================================================
   Browser Upgrade Prompt
   ========================================================================== */
.browserupgrade {
  margin: 0.2em 0;
  background: #ccc;
  color: #000;
  padding: 0.2em 0; }

/* ==========================================================================
   Author's custom styles
   ========================================================================== */
/* ==========================================================================
   Helper classes
   ========================================================================== */
/*
 * Hide visually and from screen readers:
 */
.hidden {
  display: none !important; }

/*
 * Hide only visually, but have it available for screen readers:
 * http://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 */
.visuallyhidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

/*
 * Extends the .visuallyhidden class to allow the element
 * to be focusable when navigated to via the keyboard:
 * https://www.drupal.org/node/897638
 */
.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  width: auto; }

/*
 * Hide visually and from screen readers, but maintain layout
 */
.invisible {
  visibility: hidden; }

/*
 * Clearfix: contain floats
 *
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *    `contenteditable` attribute is included anywhere else in the document.
 *    Otherwise it causes space to appear at the top and bottom of elements
 *    that receive the `clearfix` class.
 * 2. The use of `table` rather than `block` is only necessary if using
 *    `:before` to contain the top-margins of child elements.
 */
.clearfix:before,
.clearfix:after {
  content: " ";
  /* 1 */
  display: table;
  /* 2 */ }

.clearfix:after {
  clear: both; }

/* ==========================================================================
   EXAMPLE Media Queries for Responsive Design.
   These examples override the primary ('mobile first') styles.
   Modify as content requires.
   ========================================================================== */
@media only screen and (min-width: 35em) {
  /* Style adjustments for viewports that meet the condition */ }

@media print, (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 1.25dppx), (min-resolution: 120dpi) {
  /* Style adjustments for high resolution devices */ }

/* ==========================================================================
   Print styles.
   Inlined to avoid the additional HTTP request:
   http://www.phpied.com/delay-loading-your-print-css/
   ========================================================================== */
@media print {
  *,
  *:before,
  *:after,
  *:first-letter,
  *:first-line {
    background: transparent !important;
    color: #000 !important;
    /* Black prints faster: http://www.sanbeiji.com/archives/953 */
    box-shadow: none !important;
    text-shadow: none !important; }
  a,
  a:visited {
    text-decoration: underline; }
  a[href]:after {
    content: " (" attr(href) ")"; }
  abbr[title]:after {
    content: " (" attr(title) ")"; }
  /*
     * Don't show links that are fragment identifiers,
     * or use the `javascript:` pseudo protocol
     */
  a[href^="#"]:after,
  a[href^="javascript:"]:after {
    content: ""; }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid; }
  /*
     * Printing Tables:
     * http://css-discuss.incutio.com/wiki/Printing_Tables
     */
  thead {
    display: table-header-group; }
  tr,
  img {
    page-break-inside: avoid; }
  img {
    max-width: 100% !important; }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3; }
  h2,
  h3 {
    page-break-after: avoid; } }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Remove the unwanted box around FAB buttons */
/* More info: http://goo.gl/IPwKi */
a, .mdl-accordion, .mdl-button, .mdl-card, .mdl-checkbox, .mdl-dropdown-menu,
.mdl-icon-toggle, .mdl-item, .mdl-radio, .mdl-slider, .mdl-switch, .mdl-tabs__tab {
  -webkit-tap-highlight-color: transparent;
  -webkit-tap-highlight-color: rgba(255, 255, 255, 0); }

/*
 * Make html take up the entire screen
 * Then set touch-action to avoid touch delay on mobile IE
 */
html {
  width: 100%;
  height: 100%;
  touch-action: manipulation; }

/*
* Make body take up the entire screen
* Remove body margin so layout containers don't cause extra overflow.
*/
body {
  width: 100%;
  min-height: 100%;
  margin: 0; }

/*
 * Main display reset for IE support.
 * Source: http://weblog.west-wind.com/posts/2015/Jan/12/main-HTML5-Tag-not-working-in-Internet-Explorer-91011
 */
main {
  display: block; }

/*
* Apply no display to elements with the hidden attribute.
* IE 9 and 10 support.
*/
*[hidden] {
  display: none !important; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
html, body {
  font-family: "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 20px; }

h1, h2, h3, h4, h5, h6, p {
  margin: 0;
  padding: 0; }

/**
  * Styles for HTML elements
  */
h1 small, h2 small, h3 small, h4 small, h5 small, h6 small {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 56px;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -0.02em;
  opacity: 0.54;
  font-size: 0.6em; }

h1 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 56px;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -0.02em;
  margin-top: 24px;
  margin-bottom: 24px; }

h2 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 45px;
  font-weight: 400;
  line-height: 48px;
  margin-top: 24px;
  margin-bottom: 24px; }

h3 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 34px;
  font-weight: 400;
  line-height: 40px;
  margin-top: 24px;
  margin-bottom: 24px; }

h4 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 24px;
  font-weight: 400;
  line-height: 32px;
  -moz-osx-font-smoothing: grayscale;
  margin-top: 24px;
  margin-bottom: 16px; }

h5 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 20px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.02em;
  margin-top: 24px;
  margin-bottom: 16px; }

h6 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0.04em;
  margin-top: 24px;
  margin-bottom: 16px; }

p {
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0;
  margin-bottom: 16px; }

a {
  color: rgb(255,64,129);
  font-weight: 500; }

blockquote {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  position: relative;
  font-size: 24px;
  font-weight: 300;
  font-style: italic;
  line-height: 1.35;
  letter-spacing: 0.08em; }
  blockquote:before {
    position: absolute;
    left: -0.5em;
    content: '“'; }
  blockquote:after {
    content: '”';
    margin-left: -0.05em; }

mark {
  background-color: #f4ff81; }

dt {
  font-weight: 700; }

address {
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
  font-style: normal; }

ul, ol {
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0; }

/**
 * Class Name Styles
 */
.mdl-typography--display-4 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 112px;
  font-weight: 300;
  line-height: 1;
  letter-spacing: -0.04em; }

.mdl-typography--display-4-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 112px;
  font-weight: 300;
  line-height: 1;
  letter-spacing: -0.04em;
  opacity: 0.54; }

.mdl-typography--display-3 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 56px;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -0.02em; }

.mdl-typography--display-3-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 56px;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -0.02em;
  opacity: 0.54; }

.mdl-typography--display-2 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 45px;
  font-weight: 400;
  line-height: 48px; }

.mdl-typography--display-2-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 45px;
  font-weight: 400;
  line-height: 48px;
  opacity: 0.54; }

.mdl-typography--display-1 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 34px;
  font-weight: 400;
  line-height: 40px; }

.mdl-typography--display-1-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 34px;
  font-weight: 400;
  line-height: 40px;
  opacity: 0.54; }

.mdl-typography--headline {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 24px;
  font-weight: 400;
  line-height: 32px;
  -moz-osx-font-smoothing: grayscale; }

.mdl-typography--headline-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 24px;
  font-weight: 400;
  line-height: 32px;
  -moz-osx-font-smoothing: grayscale;
  opacity: 0.87; }

.mdl-typography--title {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 20px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.02em; }

.mdl-typography--title-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 20px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.02em;
  opacity: 0.87; }

.mdl-typography--subhead {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0.04em; }

.mdl-typography--subhead-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0.04em;
  opacity: 0.87; }

.mdl-typography--body-2 {
  font-size: 14px;
  font-weight: bold;
  line-height: 24px;
  letter-spacing: 0; }

.mdl-typography--body-2-color-contrast {
  font-size: 14px;
  font-weight: bold;
  line-height: 24px;
  letter-spacing: 0;
  opacity: 0.87; }

.mdl-typography--body-1 {
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0; }

.mdl-typography--body-1-color-contrast {
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0;
  opacity: 0.87; }

.mdl-typography--body-2-force-preferred-font {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 24px;
  letter-spacing: 0; }

.mdl-typography--body-2-force-preferred-font-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 24px;
  letter-spacing: 0;
  opacity: 0.87; }

.mdl-typography--body-1-force-preferred-font {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0; }

.mdl-typography--body-1-force-preferred-font-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0;
  opacity: 0.87; }

.mdl-typography--caption {
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0; }

.mdl-typography--caption-force-preferred-font {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0; }

.mdl-typography--caption-color-contrast {
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
  opacity: 0.54; }

.mdl-typography--caption-force-preferred-font-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
  opacity: 0.54; }

.mdl-typography--menu {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0; }

.mdl-typography--menu-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
  opacity: 0.87; }

.mdl-typography--button {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 500;
  text-transform: uppercase;
  line-height: 1;
  letter-spacing: 0; }

.mdl-typography--button-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 500;
  text-transform: uppercase;
  line-height: 1;
  letter-spacing: 0;
  opacity: 0.87; }

.mdl-typography--text-left {
  text-align: left; }

.mdl-typography--text-right {
  text-align: right; }

.mdl-typography--text-center {
  text-align: center; }

.mdl-typography--text-justify {
  text-align: justify; }

.mdl-typography--text-nowrap {
  white-space: nowrap; }

.mdl-typography--text-lowercase {
  text-transform: lowercase; }

.mdl-typography--text-uppercase {
  text-transform: uppercase; }

.mdl-typography--text-capitalize {
  text-transform: capitalize; }

.mdl-typography--font-thin {
  font-weight: 200 !important; }

.mdl-typography--font-light {
  font-weight: 300 !important; }

.mdl-typography--font-regular {
  font-weight: 400 !important; }

.mdl-typography--font-medium {
  font-weight: 500 !important; }

.mdl-typography--font-bold {
  font-weight: 700 !important; }

.mdl-typography--font-black {
  font-weight: 900 !important; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
.mdl-color-text--red {
  color: rgb(244,67,54) !important; }

.mdl-color--red {
  background-color: rgb(244,67,54) !important; }

.mdl-color-text--red-50 {
  color: rgb(255,235,238) !important; }

.mdl-color--red-50 {
  background-color: rgb(255,235,238) !important; }

.mdl-color-text--red-100 {
  color: rgb(255,205,210) !important; }

.mdl-color--red-100 {
  background-color: rgb(255,205,210) !important; }

.mdl-color-text--red-200 {
  color: rgb(239,154,154) !important; }

.mdl-color--red-200 {
  background-color: rgb(239,154,154) !important; }

.mdl-color-text--red-300 {
  color: rgb(229,115,115) !important; }

.mdl-color--red-300 {
  background-color: rgb(229,115,115) !important; }

.mdl-color-text--red-400 {
  color: rgb(239,83,80) !important; }

.mdl-color--red-400 {
  background-color: rgb(239,83,80) !important; }

.mdl-color-text--red-500 {
  color: rgb(244,67,54) !important; }

.mdl-color--red-500 {
  background-color: rgb(244,67,54) !important; }

.mdl-color-text--red-600 {
  color: rgb(229,57,53) !important; }

.mdl-color--red-600 {
  background-color: rgb(229,57,53) !important; }

.mdl-color-text--red-700 {
  color: rgb(211,47,47) !important; }

.mdl-color--red-700 {
  background-color: rgb(211,47,47) !important; }

.mdl-color-text--red-800 {
  color: rgb(198,40,40) !important; }

.mdl-color--red-800 {
  background-color: rgb(198,40,40) !important; }

.mdl-color-text--red-900 {
  color: rgb(183,28,28) !important; }

.mdl-color--red-900 {
  background-color: rgb(183,28,28) !important; }

.mdl-color-text--red-A100 {
  color: rgb(255,138,128) !important; }

.mdl-color--red-A100 {
  background-color: rgb(255,138,128) !important; }

.mdl-color-text--red-A200 {
  color: rgb(255,82,82) !important; }

.mdl-color--red-A200 {
  background-color: rgb(255,82,82) !important; }

.mdl-color-text--red-A400 {
  color: rgb(255,23,68) !important; }

.mdl-color--red-A400 {
  background-color: rgb(255,23,68) !important; }

.mdl-color-text--red-A700 {
  color: rgb(213,0,0) !important; }

.mdl-color--red-A700 {
  background-color: rgb(213,0,0) !important; }

.mdl-color-text--pink {
  color: rgb(233,30,99) !important; }

.mdl-color--pink {
  background-color: rgb(233,30,99) !important; }

.mdl-color-text--pink-50 {
  color: rgb(252,228,236) !important; }

.mdl-color--pink-50 {
  background-color: rgb(252,228,236) !important; }

.mdl-color-text--pink-100 {
  color: rgb(248,187,208) !important; }

.mdl-color--pink-100 {
  background-color: rgb(248,187,208) !important; }

.mdl-color-text--pink-200 {
  color: rgb(244,143,177) !important; }

.mdl-color--pink-200 {
  background-color: rgb(244,143,177) !important; }

.mdl-color-text--pink-300 {
  color: rgb(240,98,146) !important; }

.mdl-color--pink-300 {
  background-color: rgb(240,98,146) !important; }

.mdl-color-text--pink-400 {
  color: rgb(236,64,122) !important; }

.mdl-color--pink-400 {
  background-color: rgb(236,64,122) !important; }

.mdl-color-text--pink-500 {
  color: rgb(233,30,99) !important; }

.mdl-color--pink-500 {
  background-color: rgb(233,30,99) !important; }

.mdl-color-text--pink-600 {
  color: rgb(216,27,96) !important; }

.mdl-color--pink-600 {
  background-color: rgb(216,27,96) !important; }

.mdl-color-text--pink-700 {
  color: rgb(194,24,91) !important; }

.mdl-color--pink-700 {
  background-color: rgb(194,24,91) !important; }

.mdl-color-text--pink-800 {
  color: rgb(173,20,87) !important; }

.mdl-color--pink-800 {
  background-color: rgb(173,20,87) !important; }

.mdl-color-text--pink-900 {
  color: rgb(136,14,79) !important; }

.mdl-color--pink-900 {
  background-color: rgb(136,14,79) !important; }

.mdl-color-text--pink-A100 {
  color: rgb(255,128,171) !important; }

.mdl-color--pink-A100 {
  background-color: rgb(255,128,171) !important; }

.mdl-color-text--pink-A200 {
  color: rgb(255,64,129) !important; }

.mdl-color--pink-A200 {
  background-color: rgb(255,64,129) !important; }

.mdl-color-text--pink-A400 {
  color: rgb(245,0,87) !important; }

.mdl-color--pink-A400 {
  background-color: rgb(245,0,87) !important; }

.mdl-color-text--pink-A700 {
  color: rgb(197,17,98) !important; }

.mdl-color--pink-A700 {
  background-color: rgb(197,17,98) !important; }

.mdl-color-text--purple {
  color: rgb(156,39,176) !important; }

.mdl-color--purple {
  background-color: rgb(156,39,176) !important; }

.mdl-color-text--purple-50 {
  color: rgb(243,229,245) !important; }

.mdl-color--purple-50 {
  background-color: rgb(243,229,245) !important; }

.mdl-color-text--purple-100 {
  color: rgb(225,190,231) !important; }

.mdl-color--purple-100 {
  background-color: rgb(225,190,231) !important; }

.mdl-color-text--purple-200 {
  color: rgb(206,147,216) !important; }

.mdl-color--purple-200 {
  background-color: rgb(206,147,216) !important; }

.mdl-color-text--purple-300 {
  color: rgb(186,104,200) !important; }

.mdl-color--purple-300 {
  background-color: rgb(186,104,200) !important; }

.mdl-color-text--purple-400 {
  color: rgb(171,71,188) !important; }

.mdl-color--purple-400 {
  background-color: rgb(171,71,188) !important; }

.mdl-color-text--purple-500 {
  color: rgb(156,39,176) !important; }

.mdl-color--purple-500 {
  background-color: rgb(156,39,176) !important; }

.mdl-color-text--purple-600 {
  color: rgb(142,36,170) !important; }

.mdl-color--purple-600 {
  background-color: rgb(142,36,170) !important; }

.mdl-color-text--purple-700 {
  color: rgb(123,31,162) !important; }

.mdl-color--purple-700 {
  background-color: rgb(123,31,162) !important; }

.mdl-color-text--purple-800 {
  color: rgb(106,27,154) !important; }

.mdl-color--purple-800 {
  background-color: rgb(106,27,154) !important; }

.mdl-color-text--purple-900 {
  color: rgb(74,20,140) !important; }

.mdl-color--purple-900 {
  background-color: rgb(74,20,140) !important; }

.mdl-color-text--purple-A100 {
  color: rgb(234,128,252) !important; }

.mdl-color--purple-A100 {
  background-color: rgb(234,128,252) !important; }

.mdl-color-text--purple-A200 {
  color: rgb(224,64,251) !important; }

.mdl-color--purple-A200 {
  background-color: rgb(224,64,251) !important; }

.mdl-color-text--purple-A400 {
  color: rgb(213,0,249) !important; }

.mdl-color--purple-A400 {
  background-color: rgb(213,0,249) !important; }

.mdl-color-text--purple-A700 {
  color: rgb(170,0,255) !important; }

.mdl-color--purple-A700 {
  background-color: rgb(170,0,255) !important; }

.mdl-color-text--deep-purple {
  color: rgb(103,58,183) !important; }

.mdl-color--deep-purple {
  background-color: rgb(103,58,183) !important; }

.mdl-color-text--deep-purple-50 {
  color: rgb(237,231,246) !important; }

.mdl-color--deep-purple-50 {
  background-color: rgb(237,231,246) !important; }

.mdl-color-text--deep-purple-100 {
  color: rgb(209,196,233) !important; }

.mdl-color--deep-purple-100 {
  background-color: rgb(209,196,233) !important; }

.mdl-color-text--deep-purple-200 {
  color: rgb(179,157,219) !important; }

.mdl-color--deep-purple-200 {
  background-color: rgb(179,157,219) !important; }

.mdl-color-text--deep-purple-300 {
  color: rgb(149,117,205) !important; }

.mdl-color--deep-purple-300 {
  background-color: rgb(149,117,205) !important; }

.mdl-color-text--deep-purple-400 {
  color: rgb(126,87,194) !important; }

.mdl-color--deep-purple-400 {
  background-color: rgb(126,87,194) !important; }

.mdl-color-text--deep-purple-500 {
  color: rgb(103,58,183) !important; }

.mdl-color--deep-purple-500 {
  background-color: rgb(103,58,183) !important; }

.mdl-color-text--deep-purple-600 {
  color: rgb(94,53,177) !important; }

.mdl-color--deep-purple-600 {
  background-color: rgb(94,53,177) !important; }

.mdl-color-text--deep-purple-700 {
  color: rgb(81,45,168) !important; }

.mdl-color--deep-purple-700 {
  background-color: rgb(81,45,168) !important; }

.mdl-color-text--deep-purple-800 {
  color: rgb(69,39,160) !important; }

.mdl-color--deep-purple-800 {
  background-color: rgb(69,39,160) !important; }

.mdl-color-text--deep-purple-900 {
  color: rgb(49,27,146) !important; }

.mdl-color--deep-purple-900 {
  background-color: rgb(49,27,146) !important; }

.mdl-color-text--deep-purple-A100 {
  color: rgb(179,136,255) !important; }

.mdl-color--deep-purple-A100 {
  background-color: rgb(179,136,255) !important; }

.mdl-color-text--deep-purple-A200 {
  color: rgb(124,77,255) !important; }

.mdl-color--deep-purple-A200 {
  background-color: rgb(124,77,255) !important; }

.mdl-color-text--deep-purple-A400 {
  color: rgb(101,31,255) !important; }

.mdl-color--deep-purple-A400 {
  background-color: rgb(101,31,255) !important; }

.mdl-color-text--deep-purple-A700 {
  color: rgb(98,0,234) !important; }

.mdl-color--deep-purple-A700 {
  background-color: rgb(98,0,234) !important; }

.mdl-color-text--indigo {
  color: rgb(63,81,181) !important; }

.mdl-color--indigo {
  background-color: rgb(63,81,181) !important; }

.mdl-color-text--indigo-50 {
  color: rgb(232,234,246) !important; }

.mdl-color--indigo-50 {
  background-color: rgb(232,234,246) !important; }

.mdl-color-text--indigo-100 {
  color: rgb(197,202,233) !important; }

.mdl-color--indigo-100 {
  background-color: rgb(197,202,233) !important; }

.mdl-color-text--indigo-200 {
  color: rgb(159,168,218) !important; }

.mdl-color--indigo-200 {
  background-color: rgb(159,168,218) !important; }

.mdl-color-text--indigo-300 {
  color: rgb(121,134,203) !important; }

.mdl-color--indigo-300 {
  background-color: rgb(121,134,203) !important; }

.mdl-color-text--indigo-400 {
  color: rgb(92,107,192) !important; }

.mdl-color--indigo-400 {
  background-color: rgb(92,107,192) !important; }

.mdl-color-text--indigo-500 {
  color: rgb(63,81,181) !important; }

.mdl-color--indigo-500 {
  background-color: rgb(63,81,181) !important; }

.mdl-color-text--indigo-600 {
  color: rgb(57,73,171) !important; }

.mdl-color--indigo-600 {
  background-color: rgb(57,73,171) !important; }

.mdl-color-text--indigo-700 {
  color: rgb(48,63,159) !important; }

.mdl-color--indigo-700 {
  background-color: rgb(48,63,159) !important; }

.mdl-color-text--indigo-800 {
  color: rgb(40,53,147) !important; }

.mdl-color--indigo-800 {
  background-color: rgb(40,53,147) !important; }

.mdl-color-text--indigo-900 {
  color: rgb(26,35,126) !important; }

.mdl-color--indigo-900 {
  background-color: rgb(26,35,126) !important; }

.mdl-color-text--indigo-A100 {
  color: rgb(140,158,255) !important; }

.mdl-color--indigo-A100 {
  background-color: rgb(140,158,255) !important; }

.mdl-color-text--indigo-A200 {
  color: rgb(83,109,254) !important; }

.mdl-color--indigo-A200 {
  background-color: rgb(83,109,254) !important; }

.mdl-color-text--indigo-A400 {
  color: rgb(61,90,254) !important; }

.mdl-color--indigo-A400 {
  background-color: rgb(61,90,254) !important; }

.mdl-color-text--indigo-A700 {
  color: rgb(48,79,254) !important; }

.mdl-color--indigo-A700 {
  background-color: rgb(48,79,254) !important; }

.mdl-color-text--blue {
  color: rgb(33,150,243) !important; }

.mdl-color--blue {
  background-color: rgb(33,150,243) !important; }

.mdl-color-text--blue-50 {
  color: rgb(227,242,253) !important; }

.mdl-color--blue-50 {
  background-color: rgb(227,242,253) !important; }

.mdl-color-text--blue-100 {
  color: rgb(187,222,251) !important; }

.mdl-color--blue-100 {
  background-color: rgb(187,222,251) !important; }

.mdl-color-text--blue-200 {
  color: rgb(144,202,249) !important; }

.mdl-color--blue-200 {
  background-color: rgb(144,202,249) !important; }

.mdl-color-text--blue-300 {
  color: rgb(100,181,246) !important; }

.mdl-color--blue-300 {
  background-color: rgb(100,181,246) !important; }

.mdl-color-text--blue-400 {
  color: rgb(66,165,245) !important; }

.mdl-color--blue-400 {
  background-color: rgb(66,165,245) !important; }

.mdl-color-text--blue-500 {
  color: rgb(33,150,243) !important; }

.mdl-color--blue-500 {
  background-color: rgb(33,150,243) !important; }

.mdl-color-text--blue-600 {
  color: rgb(30,136,229) !important; }

.mdl-color--blue-600 {
  background-color: rgb(30,136,229) !important; }

.mdl-color-text--blue-700 {
  color: rgb(25,118,210) !important; }

.mdl-color--blue-700 {
  background-color: rgb(25,118,210) !important; }

.mdl-color-text--blue-800 {
  color: rgb(21,101,192) !important; }

.mdl-color--blue-800 {
  background-color: rgb(21,101,192) !important; }

.mdl-color-text--blue-900 {
  color: rgb(13,71,161) !important; }

.mdl-color--blue-900 {
  background-color: rgb(13,71,161) !important; }

.mdl-color-text--blue-A100 {
  color: rgb(130,177,255) !important; }

.mdl-color--blue-A100 {
  background-color: rgb(130,177,255) !important; }

.mdl-color-text--blue-A200 {
  color: rgb(68,138,255) !important; }

.mdl-color--blue-A200 {
  background-color: rgb(68,138,255) !important; }

.mdl-color-text--blue-A400 {
  color: rgb(41,121,255) !important; }

.mdl-color--blue-A400 {
  background-color: rgb(41,121,255) !important; }

.mdl-color-text--blue-A700 {
  color: rgb(41,98,255) !important; }

.mdl-color--blue-A700 {
  background-color: rgb(41,98,255) !important; }

.mdl-color-text--light-blue {
  color: rgb(3,169,244) !important; }

.mdl-color--light-blue {
  background-color: rgb(3,169,244) !important; }

.mdl-color-text--light-blue-50 {
  color: rgb(225,245,254) !important; }

.mdl-color--light-blue-50 {
  background-color: rgb(225,245,254) !important; }

.mdl-color-text--light-blue-100 {
  color: rgb(179,229,252) !important; }

.mdl-color--light-blue-100 {
  background-color: rgb(179,229,252) !important; }

.mdl-color-text--light-blue-200 {
  color: rgb(129,212,250) !important; }

.mdl-color--light-blue-200 {
  background-color: rgb(129,212,250) !important; }

.mdl-color-text--light-blue-300 {
  color: rgb(79,195,247) !important; }

.mdl-color--light-blue-300 {
  background-color: rgb(79,195,247) !important; }

.mdl-color-text--light-blue-400 {
  color: rgb(41,182,246) !important; }

.mdl-color--light-blue-400 {
  background-color: rgb(41,182,246) !important; }

.mdl-color-text--light-blue-500 {
  color: rgb(3,169,244) !important; }

.mdl-color--light-blue-500 {
  background-color: rgb(3,169,244) !important; }

.mdl-color-text--light-blue-600 {
  color: rgb(3,155,229) !important; }

.mdl-color--light-blue-600 {
  background-color: rgb(3,155,229) !important; }

.mdl-color-text--light-blue-700 {
  color: rgb(2,136,209) !important; }

.mdl-color--light-blue-700 {
  background-color: rgb(2,136,209) !important; }

.mdl-color-text--light-blue-800 {
  color: rgb(2,119,189) !important; }

.mdl-color--light-blue-800 {
  background-color: rgb(2,119,189) !important; }

.mdl-color-text--light-blue-900 {
  color: rgb(1,87,155) !important; }

.mdl-color--light-blue-900 {
  background-color: rgb(1,87,155) !important; }

.mdl-color-text--light-blue-A100 {
  color: rgb(128,216,255) !important; }

.mdl-color--light-blue-A100 {
  background-color: rgb(128,216,255) !important; }

.mdl-color-text--light-blue-A200 {
  color: rgb(64,196,255) !important; }

.mdl-color--light-blue-A200 {
  background-color: rgb(64,196,255) !important; }

.mdl-color-text--light-blue-A400 {
  color: rgb(0,176,255) !important; }

.mdl-color--light-blue-A400 {
  background-color: rgb(0,176,255) !important; }

.mdl-color-text--light-blue-A700 {
  color: rgb(0,145,234) !important; }

.mdl-color--light-blue-A700 {
  background-color: rgb(0,145,234) !important; }

.mdl-color-text--cyan {
  color: rgb(0,188,212) !important; }

.mdl-color--cyan {
  background-color: rgb(0,188,212) !important; }

.mdl-color-text--cyan-50 {
  color: rgb(224,247,250) !important; }

.mdl-color--cyan-50 {
  background-color: rgb(224,247,250) !important; }

.mdl-color-text--cyan-100 {
  color: rgb(178,235,242) !important; }

.mdl-color--cyan-100 {
  background-color: rgb(178,235,242) !important; }

.mdl-color-text--cyan-200 {
  color: rgb(128,222,234) !important; }

.mdl-color--cyan-200 {
  background-color: rgb(128,222,234) !important; }

.mdl-color-text--cyan-300 {
  color: rgb(77,208,225) !important; }

.mdl-color--cyan-300 {
  background-color: rgb(77,208,225) !important; }

.mdl-color-text--cyan-400 {
  color: rgb(38,198,218) !important; }

.mdl-color--cyan-400 {
  background-color: rgb(38,198,218) !important; }

.mdl-color-text--cyan-500 {
  color: rgb(0,188,212) !important; }

.mdl-color--cyan-500 {
  background-color: rgb(0,188,212) !important; }

.mdl-color-text--cyan-600 {
  color: rgb(0,172,193) !important; }

.mdl-color--cyan-600 {
  background-color: rgb(0,172,193) !important; }

.mdl-color-text--cyan-700 {
  color: rgb(0,151,167) !important; }

.mdl-color--cyan-700 {
  background-color: rgb(0,151,167) !important; }

.mdl-color-text--cyan-800 {
  color: rgb(0,131,143) !important; }

.mdl-color--cyan-800 {
  background-color: rgb(0,131,143) !important; }

.mdl-color-text--cyan-900 {
  color: rgb(0,96,100) !important; }

.mdl-color--cyan-900 {
  background-color: rgb(0,96,100) !important; }

.mdl-color-text--cyan-A100 {
  color: rgb(132,255,255) !important; }

.mdl-color--cyan-A100 {
  background-color: rgb(132,255,255) !important; }

.mdl-color-text--cyan-A200 {
  color: rgb(24,255,255) !important; }

.mdl-color--cyan-A200 {
  background-color: rgb(24,255,255) !important; }

.mdl-color-text--cyan-A400 {
  color: rgb(0,229,255) !important; }

.mdl-color--cyan-A400 {
  background-color: rgb(0,229,255) !important; }

.mdl-color-text--cyan-A700 {
  color: rgb(0,184,212) !important; }

.mdl-color--cyan-A700 {
  background-color: rgb(0,184,212) !important; }

.mdl-color-text--teal {
  color: rgb(0,150,136) !important; }

.mdl-color--teal {
  background-color: rgb(0,150,136) !important; }

.mdl-color-text--teal-50 {
  color: rgb(224,242,241) !important; }

.mdl-color--teal-50 {
  background-color: rgb(224,242,241) !important; }

.mdl-color-text--teal-100 {
  color: rgb(178,223,219) !important; }

.mdl-color--teal-100 {
  background-color: rgb(178,223,219) !important; }

.mdl-color-text--teal-200 {
  color: rgb(128,203,196) !important; }

.mdl-color--teal-200 {
  background-color: rgb(128,203,196) !important; }

.mdl-color-text--teal-300 {
  color: rgb(77,182,172) !important; }

.mdl-color--teal-300 {
  background-color: rgb(77,182,172) !important; }

.mdl-color-text--teal-400 {
  color: rgb(38,166,154) !important; }

.mdl-color--teal-400 {
  background-color: rgb(38,166,154) !important; }

.mdl-color-text--teal-500 {
  color: rgb(0,150,136) !important; }

.mdl-color--teal-500 {
  background-color: rgb(0,150,136) !important; }

.mdl-color-text--teal-600 {
  color: rgb(0,137,123) !important; }

.mdl-color--teal-600 {
  background-color: rgb(0,137,123) !important; }

.mdl-color-text--teal-700 {
  color: rgb(0,121,107) !important; }

.mdl-color--teal-700 {
  background-color: rgb(0,121,107) !important; }

.mdl-color-text--teal-800 {
  color: rgb(0,105,92) !important; }

.mdl-color--teal-800 {
  background-color: rgb(0,105,92) !important; }

.mdl-color-text--teal-900 {
  color: rgb(0,77,64) !important; }

.mdl-color--teal-900 {
  background-color: rgb(0,77,64) !important; }

.mdl-color-text--teal-A100 {
  color: rgb(167,255,235) !important; }

.mdl-color--teal-A100 {
  background-color: rgb(167,255,235) !important; }

.mdl-color-text--teal-A200 {
  color: rgb(100,255,218) !important; }

.mdl-color--teal-A200 {
  background-color: rgb(100,255,218) !important; }

.mdl-color-text--teal-A400 {
  color: rgb(29,233,182) !important; }

.mdl-color--teal-A400 {
  background-color: rgb(29,233,182) !important; }

.mdl-color-text--teal-A700 {
  color: rgb(0,191,165) !important; }

.mdl-color--teal-A700 {
  background-color: rgb(0,191,165) !important; }

.mdl-color-text--green {
  color: rgb(76,175,80) !important; }

.mdl-color--green {
  background-color: rgb(76,175,80) !important; }

.mdl-color-text--green-50 {
  color: rgb(232,245,233) !important; }

.mdl-color--green-50 {
  background-color: rgb(232,245,233) !important; }

.mdl-color-text--green-100 {
  color: rgb(200,230,201) !important; }

.mdl-color--green-100 {
  background-color: rgb(200,230,201) !important; }

.mdl-color-text--green-200 {
  color: rgb(165,214,167) !important; }

.mdl-color--green-200 {
  background-color: rgb(165,214,167) !important; }

.mdl-color-text--green-300 {
  color: rgb(129,199,132) !important; }

.mdl-color--green-300 {
  background-color: rgb(129,199,132) !important; }

.mdl-color-text--green-400 {
  color: rgb(102,187,106) !important; }

.mdl-color--green-400 {
  background-color: rgb(102,187,106) !important; }

.mdl-color-text--green-500 {
  color: rgb(76,175,80) !important; }

.mdl-color--green-500 {
  background-color: rgb(76,175,80) !important; }

.mdl-color-text--green-600 {
  color: rgb(67,160,71) !important; }

.mdl-color--green-600 {
  background-color: rgb(67,160,71) !important; }

.mdl-color-text--green-700 {
  color: rgb(56,142,60) !important; }

.mdl-color--green-700 {
  background-color: rgb(56,142,60) !important; }

.mdl-color-text--green-800 {
  color: rgb(46,125,50) !important; }

.mdl-color--green-800 {
  background-color: rgb(46,125,50) !important; }

.mdl-color-text--green-900 {
  color: rgb(27,94,32) !important; }

.mdl-color--green-900 {
  background-color: rgb(27,94,32) !important; }

.mdl-color-text--green-A100 {
  color: rgb(185,246,202) !important; }

.mdl-color--green-A100 {
  background-color: rgb(185,246,202) !important; }

.mdl-color-text--green-A200 {
  color: rgb(105,240,174) !important; }

.mdl-color--green-A200 {
  background-color: rgb(105,240,174) !important; }

.mdl-color-text--green-A400 {
  color: rgb(0,230,118) !important; }

.mdl-color--green-A400 {
  background-color: rgb(0,230,118) !important; }

.mdl-color-text--green-A700 {
  color: rgb(0,200,83) !important; }

.mdl-color--green-A700 {
  background-color: rgb(0,200,83) !important; }

.mdl-color-text--light-green {
  color: rgb(139,195,74) !important; }

.mdl-color--light-green {
  background-color: rgb(139,195,74) !important; }

.mdl-color-text--light-green-50 {
  color: rgb(241,248,233) !important; }

.mdl-color--light-green-50 {
  background-color: rgb(241,248,233) !important; }

.mdl-color-text--light-green-100 {
  color: rgb(220,237,200) !important; }

.mdl-color--light-green-100 {
  background-color: rgb(220,237,200) !important; }

.mdl-color-text--light-green-200 {
  color: rgb(197,225,165) !important; }

.mdl-color--light-green-200 {
  background-color: rgb(197,225,165) !important; }

.mdl-color-text--light-green-300 {
  color: rgb(174,213,129) !important; }

.mdl-color--light-green-300 {
  background-color: rgb(174,213,129) !important; }

.mdl-color-text--light-green-400 {
  color: rgb(156,204,101) !important; }

.mdl-color--light-green-400 {
  background-color: rgb(156,204,101) !important; }

.mdl-color-text--light-green-500 {
  color: rgb(139,195,74) !important; }

.mdl-color--light-green-500 {
  background-color: rgb(139,195,74) !important; }

.mdl-color-text--light-green-600 {
  color: rgb(124,179,66) !important; }

.mdl-color--light-green-600 {
  background-color: rgb(124,179,66) !important; }

.mdl-color-text--light-green-700 {
  color: rgb(104,159,56) !important; }

.mdl-color--light-green-700 {
  background-color: rgb(104,159,56) !important; }

.mdl-color-text--light-green-800 {
  color: rgb(85,139,47) !important; }

.mdl-color--light-green-800 {
  background-color: rgb(85,139,47) !important; }

.mdl-color-text--light-green-900 {
  color: rgb(51,105,30) !important; }

.mdl-color--light-green-900 {
  background-color: rgb(51,105,30) !important; }

.mdl-color-text--light-green-A100 {
  color: rgb(204,255,144) !important; }

.mdl-color--light-green-A100 {
  background-color: rgb(204,255,144) !important; }

.mdl-color-text--light-green-A200 {
  color: rgb(178,255,89) !important; }

.mdl-color--light-green-A200 {
  background-color: rgb(178,255,89) !important; }

.mdl-color-text--light-green-A400 {
  color: rgb(118,255,3) !important; }

.mdl-color--light-green-A400 {
  background-color: rgb(118,255,3) !important; }

.mdl-color-text--light-green-A700 {
  color: rgb(100,221,23) !important; }

.mdl-color--light-green-A700 {
  background-color: rgb(100,221,23) !important; }

.mdl-color-text--lime {
  color: rgb(205,220,57) !important; }

.mdl-color--lime {
  background-color: rgb(205,220,57) !important; }

.mdl-color-text--lime-50 {
  color: rgb(249,251,231) !important; }

.mdl-color--lime-50 {
  background-color: rgb(249,251,231) !important; }

.mdl-color-text--lime-100 {
  color: rgb(240,244,195) !important; }

.mdl-color--lime-100 {
  background-color: rgb(240,244,195) !important; }

.mdl-color-text--lime-200 {
  color: rgb(230,238,156) !important; }

.mdl-color--lime-200 {
  background-color: rgb(230,238,156) !important; }

.mdl-color-text--lime-300 {
  color: rgb(220,231,117) !important; }

.mdl-color--lime-300 {
  background-color: rgb(220,231,117) !important; }

.mdl-color-text--lime-400 {
  color: rgb(212,225,87) !important; }

.mdl-color--lime-400 {
  background-color: rgb(212,225,87) !important; }

.mdl-color-text--lime-500 {
  color: rgb(205,220,57) !important; }

.mdl-color--lime-500 {
  background-color: rgb(205,220,57) !important; }

.mdl-color-text--lime-600 {
  color: rgb(192,202,51) !important; }

.mdl-color--lime-600 {
  background-color: rgb(192,202,51) !important; }

.mdl-color-text--lime-700 {
  color: rgb(175,180,43) !important; }

.mdl-color--lime-700 {
  background-color: rgb(175,180,43) !important; }

.mdl-color-text--lime-800 {
  color: rgb(158,157,36) !important; }

.mdl-color--lime-800 {
  background-color: rgb(158,157,36) !important; }

.mdl-color-text--lime-900 {
  color: rgb(130,119,23) !important; }

.mdl-color--lime-900 {
  background-color: rgb(130,119,23) !important; }

.mdl-color-text--lime-A100 {
  color: rgb(244,255,129) !important; }

.mdl-color--lime-A100 {
  background-color: rgb(244,255,129) !important; }

.mdl-color-text--lime-A200 {
  color: rgb(238,255,65) !important; }

.mdl-color--lime-A200 {
  background-color: rgb(238,255,65) !important; }

.mdl-color-text--lime-A400 {
  color: rgb(198,255,0) !important; }

.mdl-color--lime-A400 {
  background-color: rgb(198,255,0) !important; }

.mdl-color-text--lime-A700 {
  color: rgb(174,234,0) !important; }

.mdl-color--lime-A700 {
  background-color: rgb(174,234,0) !important; }

.mdl-color-text--yellow {
  color: rgb(255,235,59) !important; }

.mdl-color--yellow {
  background-color: rgb(255,235,59) !important; }

.mdl-color-text--yellow-50 {
  color: rgb(255,253,231) !important; }

.mdl-color--yellow-50 {
  background-color: rgb(255,253,231) !important; }

.mdl-color-text--yellow-100 {
  color: rgb(255,249,196) !important; }

.mdl-color--yellow-100 {
  background-color: rgb(255,249,196) !important; }

.mdl-color-text--yellow-200 {
  color: rgb(255,245,157) !important; }

.mdl-color--yellow-200 {
  background-color: rgb(255,245,157) !important; }

.mdl-color-text--yellow-300 {
  color: rgb(255,241,118) !important; }

.mdl-color--yellow-300 {
  background-color: rgb(255,241,118) !important; }

.mdl-color-text--yellow-400 {
  color: rgb(255,238,88) !important; }

.mdl-color--yellow-400 {
  background-color: rgb(255,238,88) !important; }

.mdl-color-text--yellow-500 {
  color: rgb(255,235,59) !important; }

.mdl-color--yellow-500 {
  background-color: rgb(255,235,59) !important; }

.mdl-color-text--yellow-600 {
  color: rgb(253,216,53) !important; }

.mdl-color--yellow-600 {
  background-color: rgb(253,216,53) !important; }

.mdl-color-text--yellow-700 {
  color: rgb(251,192,45) !important; }

.mdl-color--yellow-700 {
  background-color: rgb(251,192,45) !important; }

.mdl-color-text--yellow-800 {
  color: rgb(249,168,37) !important; }

.mdl-color--yellow-800 {
  background-color: rgb(249,168,37) !important; }

.mdl-color-text--yellow-900 {
  color: rgb(245,127,23) !important; }

.mdl-color--yellow-900 {
  background-color: rgb(245,127,23) !important; }

.mdl-color-text--yellow-A100 {
  color: rgb(255,255,141) !important; }

.mdl-color--yellow-A100 {
  background-color: rgb(255,255,141) !important; }

.mdl-color-text--yellow-A200 {
  color: rgb(255,255,0) !important; }

.mdl-color--yellow-A200 {
  background-color: rgb(255,255,0) !important; }

.mdl-color-text--yellow-A400 {
  color: rgb(255,234,0) !important; }

.mdl-color--yellow-A400 {
  background-color: rgb(255,234,0) !important; }

.mdl-color-text--yellow-A700 {
  color: rgb(255,214,0) !important; }

.mdl-color--yellow-A700 {
  background-color: rgb(255,214,0) !important; }

.mdl-color-text--amber {
  color: rgb(255,193,7) !important; }

.mdl-color--amber {
  background-color: rgb(255,193,7) !important; }

.mdl-color-text--amber-50 {
  color: rgb(255,248,225) !important; }

.mdl-color--amber-50 {
  background-color: rgb(255,248,225) !important; }

.mdl-color-text--amber-100 {
  color: rgb(255,236,179) !important; }

.mdl-color--amber-100 {
  background-color: rgb(255,236,179) !important; }

.mdl-color-text--amber-200 {
  color: rgb(255,224,130) !important; }

.mdl-color--amber-200 {
  background-color: rgb(255,224,130) !important; }

.mdl-color-text--amber-300 {
  color: rgb(255,213,79) !important; }

.mdl-color--amber-300 {
  background-color: rgb(255,213,79) !important; }

.mdl-color-text--amber-400 {
  color: rgb(255,202,40) !important; }

.mdl-color--amber-400 {
  background-color: rgb(255,202,40) !important; }

.mdl-color-text--amber-500 {
  color: rgb(255,193,7) !important; }

.mdl-color--amber-500 {
  background-color: rgb(255,193,7) !important; }

.mdl-color-text--amber-600 {
  color: rgb(255,179,0) !important; }

.mdl-color--amber-600 {
  background-color: rgb(255,179,0) !important; }

.mdl-color-text--amber-700 {
  color: rgb(255,160,0) !important; }

.mdl-color--amber-700 {
  background-color: rgb(255,160,0) !important; }

.mdl-color-text--amber-800 {
  color: rgb(255,143,0) !important; }

.mdl-color--amber-800 {
  background-color: rgb(255,143,0) !important; }

.mdl-color-text--amber-900 {
  color: rgb(255,111,0) !important; }

.mdl-color--amber-900 {
  background-color: rgb(255,111,0) !important; }

.mdl-color-text--amber-A100 {
  color: rgb(255,229,127) !important; }

.mdl-color--amber-A100 {
  background-color: rgb(255,229,127) !important; }

.mdl-color-text--amber-A200 {
  color: rgb(255,215,64) !important; }

.mdl-color--amber-A200 {
  background-color: rgb(255,215,64) !important; }

.mdl-color-text--amber-A400 {
  color: rgb(255,196,0) !important; }

.mdl-color--amber-A400 {
  background-color: rgb(255,196,0) !important; }

.mdl-color-text--amber-A700 {
  color: rgb(255,171,0) !important; }

.mdl-color--amber-A700 {
  background-color: rgb(255,171,0) !important; }

.mdl-color-text--orange {
  color: rgb(255,152,0) !important; }

.mdl-color--orange {
  background-color: rgb(255,152,0) !important; }

.mdl-color-text--orange-50 {
  color: rgb(255,243,224) !important; }

.mdl-color--orange-50 {
  background-color: rgb(255,243,224) !important; }

.mdl-color-text--orange-100 {
  color: rgb(255,224,178) !important; }

.mdl-color--orange-100 {
  background-color: rgb(255,224,178) !important; }

.mdl-color-text--orange-200 {
  color: rgb(255,204,128) !important; }

.mdl-color--orange-200 {
  background-color: rgb(255,204,128) !important; }

.mdl-color-text--orange-300 {
  color: rgb(255,183,77) !important; }

.mdl-color--orange-300 {
  background-color: rgb(255,183,77) !important; }

.mdl-color-text--orange-400 {
  color: rgb(255,167,38) !important; }

.mdl-color--orange-400 {
  background-color: rgb(255,167,38) !important; }

.mdl-color-text--orange-500 {
  color: rgb(255,152,0) !important; }

.mdl-color--orange-500 {
  background-color: rgb(255,152,0) !important; }

.mdl-color-text--orange-600 {
  color: rgb(251,140,0) !important; }

.mdl-color--orange-600 {
  background-color: rgb(251,140,0) !important; }

.mdl-color-text--orange-700 {
  color: rgb(245,124,0) !important; }

.mdl-color--orange-700 {
  background-color: rgb(245,124,0) !important; }

.mdl-color-text--orange-800 {
  color: rgb(239,108,0) !important; }

.mdl-color--orange-800 {
  background-color: rgb(239,108,0) !important; }

.mdl-color-text--orange-900 {
  color: rgb(230,81,0) !important; }

.mdl-color--orange-900 {
  background-color: rgb(230,81,0) !important; }

.mdl-color-text--orange-A100 {
  color: rgb(255,209,128) !important; }

.mdl-color--orange-A100 {
  background-color: rgb(255,209,128) !important; }

.mdl-color-text--orange-A200 {
  color: rgb(255,171,64) !important; }

.mdl-color--orange-A200 {
  background-color: rgb(255,171,64) !important; }

.mdl-color-text--orange-A400 {
  color: rgb(255,145,0) !important; }

.mdl-color--orange-A400 {
  background-color: rgb(255,145,0) !important; }

.mdl-color-text--orange-A700 {
  color: rgb(255,109,0) !important; }

.mdl-color--orange-A700 {
  background-color: rgb(255,109,0) !important; }

.mdl-color-text--deep-orange {
  color: rgb(255,87,34) !important; }

.mdl-color--deep-orange {
  background-color: rgb(255,87,34) !important; }

.mdl-color-text--deep-orange-50 {
  color: rgb(251,233,231) !important; }

.mdl-color--deep-orange-50 {
  background-color: rgb(251,233,231) !important; }

.mdl-color-text--deep-orange-100 {
  color: rgb(255,204,188) !important; }

.mdl-color--deep-orange-100 {
  background-color: rgb(255,204,188) !important; }

.mdl-color-text--deep-orange-200 {
  color: rgb(255,171,145) !important; }

.mdl-color--deep-orange-200 {
  background-color: rgb(255,171,145) !important; }

.mdl-color-text--deep-orange-300 {
  color: rgb(255,138,101) !important; }

.mdl-color--deep-orange-300 {
  background-color: rgb(255,138,101) !important; }

.mdl-color-text--deep-orange-400 {
  color: rgb(255,112,67) !important; }

.mdl-color--deep-orange-400 {
  background-color: rgb(255,112,67) !important; }

.mdl-color-text--deep-orange-500 {
  color: rgb(255,87,34) !important; }

.mdl-color--deep-orange-500 {
  background-color: rgb(255,87,34) !important; }

.mdl-color-text--deep-orange-600 {
  color: rgb(244,81,30) !important; }

.mdl-color--deep-orange-600 {
  background-color: rgb(244,81,30) !important; }

.mdl-color-text--deep-orange-700 {
  color: rgb(230,74,25) !important; }

.mdl-color--deep-orange-700 {
  background-color: rgb(230,74,25) !important; }

.mdl-color-text--deep-orange-800 {
  color: rgb(216,67,21) !important; }

.mdl-color--deep-orange-800 {
  background-color: rgb(216,67,21) !important; }

.mdl-color-text--deep-orange-900 {
  color: rgb(191,54,12) !important; }

.mdl-color--deep-orange-900 {
  background-color: rgb(191,54,12) !important; }

.mdl-color-text--deep-orange-A100 {
  color: rgb(255,158,128) !important; }

.mdl-color--deep-orange-A100 {
  background-color: rgb(255,158,128) !important; }

.mdl-color-text--deep-orange-A200 {
  color: rgb(255,110,64) !important; }

.mdl-color--deep-orange-A200 {
  background-color: rgb(255,110,64) !important; }

.mdl-color-text--deep-orange-A400 {
  color: rgb(255,61,0) !important; }

.mdl-color--deep-orange-A400 {
  background-color: rgb(255,61,0) !important; }

.mdl-color-text--deep-orange-A700 {
  color: rgb(221,44,0) !important; }

.mdl-color--deep-orange-A700 {
  background-color: rgb(221,44,0) !important; }

.mdl-color-text--brown {
  color: rgb(121,85,72) !important; }

.mdl-color--brown {
  background-color: rgb(121,85,72) !important; }

.mdl-color-text--brown-50 {
  color: rgb(239,235,233) !important; }

.mdl-color--brown-50 {
  background-color: rgb(239,235,233) !important; }

.mdl-color-text--brown-100 {
  color: rgb(215,204,200) !important; }

.mdl-color--brown-100 {
  background-color: rgb(215,204,200) !important; }

.mdl-color-text--brown-200 {
  color: rgb(188,170,164) !important; }

.mdl-color--brown-200 {
  background-color: rgb(188,170,164) !important; }

.mdl-color-text--brown-300 {
  color: rgb(161,136,127) !important; }

.mdl-color--brown-300 {
  background-color: rgb(161,136,127) !important; }

.mdl-color-text--brown-400 {
  color: rgb(141,110,99) !important; }

.mdl-color--brown-400 {
  background-color: rgb(141,110,99) !important; }

.mdl-color-text--brown-500 {
  color: rgb(121,85,72) !important; }

.mdl-color--brown-500 {
  background-color: rgb(121,85,72) !important; }

.mdl-color-text--brown-600 {
  color: rgb(109,76,65) !important; }

.mdl-color--brown-600 {
  background-color: rgb(109,76,65) !important; }

.mdl-color-text--brown-700 {
  color: rgb(93,64,55) !important; }

.mdl-color--brown-700 {
  background-color: rgb(93,64,55) !important; }

.mdl-color-text--brown-800 {
  color: rgb(78,52,46) !important; }

.mdl-color--brown-800 {
  background-color: rgb(78,52,46) !important; }

.mdl-color-text--brown-900 {
  color: rgb(62,39,35) !important; }

.mdl-color--brown-900 {
  background-color: rgb(62,39,35) !important; }

.mdl-color-text--grey {
  color: rgb(158,158,158) !important; }

.mdl-color--grey {
  background-color: rgb(158,158,158) !important; }

.mdl-color-text--grey-50 {
  color: rgb(250,250,250) !important; }

.mdl-color--grey-50 {
  background-color: rgb(250,250,250) !important; }

.mdl-color-text--grey-100 {
  color: rgb(245,245,245) !important; }

.mdl-color--grey-100 {
  background-color: rgb(245,245,245) !important; }

.mdl-color-text--grey-200 {
  color: rgb(238,238,238) !important; }

.mdl-color--grey-200 {
  background-color: rgb(238,238,238) !important; }

.mdl-color-text--grey-300 {
  color: rgb(224,224,224) !important; }

.mdl-color--grey-300 {
  background-color: rgb(224,224,224) !important; }

.mdl-color-text--grey-400 {
  color: rgb(189,189,189) !important; }

.mdl-color--grey-400 {
  background-color: rgb(189,189,189) !important; }

.mdl-color-text--grey-500 {
  color: rgb(158,158,158) !important; }

.mdl-color--grey-500 {
  background-color: rgb(158,158,158) !important; }

.mdl-color-text--grey-600 {
  color: rgb(117,117,117) !important; }

.mdl-color--grey-600 {
  background-color: rgb(117,117,117) !important; }

.mdl-color-text--grey-700 {
  color: rgb(97,97,97) !important; }

.mdl-color--grey-700 {
  background-color: rgb(97,97,97) !important; }

.mdl-color-text--grey-800 {
  color: rgb(66,66,66) !important; }

.mdl-color--grey-800 {
  background-color: rgb(66,66,66) !important; }

.mdl-color-text--grey-900 {
  color: rgb(33,33,33) !important; }

.mdl-color--grey-900 {
  background-color: rgb(33,33,33) !important; }

.mdl-color-text--blue-grey {
  color: rgb(96,125,139) !important; }

.mdl-color--blue-grey {
  background-color: rgb(96,125,139) !important; }

.mdl-color-text--blue-grey-50 {
  color: rgb(236,239,241) !important; }

.mdl-color--blue-grey-50 {
  background-color: rgb(236,239,241) !important; }

.mdl-color-text--blue-grey-100 {
  color: rgb(207,216,220) !important; }

.mdl-color--blue-grey-100 {
  background-color: rgb(207,216,220) !important; }

.mdl-color-text--blue-grey-200 {
  color: rgb(176,190,197) !important; }

.mdl-color--blue-grey-200 {
  background-color: rgb(176,190,197) !important; }

.mdl-color-text--blue-grey-300 {
  color: rgb(144,164,174) !important; }

.mdl-color--blue-grey-300 {
  background-color: rgb(144,164,174) !important; }

.mdl-color-text--blue-grey-400 {
  color: rgb(120,144,156) !important; }

.mdl-color--blue-grey-400 {
  background-color: rgb(120,144,156) !important; }

.mdl-color-text--blue-grey-500 {
  color: rgb(96,125,139) !important; }

.mdl-color--blue-grey-500 {
  background-color: rgb(96,125,139) !important; }

.mdl-color-text--blue-grey-600 {
  color: rgb(84,110,122) !important; }

.mdl-color--blue-grey-600 {
  background-color: rgb(84,110,122) !important; }

.mdl-color-text--blue-grey-700 {
  color: rgb(69,90,100) !important; }

.mdl-color--blue-grey-700 {
  background-color: rgb(69,90,100) !important; }

.mdl-color-text--blue-grey-800 {
  color: rgb(55,71,79) !important; }

.mdl-color--blue-grey-800 {
  background-color: rgb(55,71,79) !important; }

.mdl-color-text--blue-grey-900 {
  color: rgb(38,50,56) !important; }

.mdl-color--blue-grey-900 {
  background-color: rgb(38,50,56) !important; }

.mdl-color--black {
  background-color: rgb(0,0,0) !important; }

.mdl-color-text--black {
  color: rgb(0,0,0) !important; }

.mdl-color--white {
  background-color: rgb(255,255,255) !important; }

.mdl-color-text--white {
  color: rgb(255,255,255) !important; }

.mdl-color--primary {
  background-color: rgb(63,81,181) !important; }

.mdl-color--primary-contrast {
  background-color: rgb(255,255,255) !important; }

.mdl-color--primary-dark {
  background-color: rgb(48,63,159) !important; }

.mdl-color--accent {
  background-color: rgb(255,64,129) !important; }

.mdl-color--accent-contrast {
  background-color: rgb(255,255,255) !important; }

.mdl-color-text--primary {
  color: rgb(63,81,181) !important; }

.mdl-color-text--primary-contrast {
  color: rgb(255,255,255) !important; }

.mdl-color-text--primary-dark {
  color: rgb(48,63,159) !important; }

.mdl-color-text--accent {
  color: rgb(255,64,129) !important; }

.mdl-color-text--accent-contrast {
  color: rgb(255,255,255) !important; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
.mdl-ripple {
  background: rgb(0,0,0);
  border-radius: 50%;
  height: 50px;
  left: 0;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  top: 0;
  transform: translate(-50%, -50%);
  width: 50px;
  overflow: hidden; }
  .mdl-ripple.is-animating {
    transition: transform 0.3s cubic-bezier(0, 0, 0.2, 1), width 0.3s cubic-bezier(0, 0, 0.2, 1), height 0.3s cubic-bezier(0, 0, 0.2, 1), opacity 0.6s cubic-bezier(0, 0, 0.2, 1); }
  .mdl-ripple.is-visible {
    opacity: 0.3; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
.mdl-animation--default {
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }

.mdl-animation--fast-out-slow-in {
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }

.mdl-animation--linear-out-slow-in {
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1); }

.mdl-animation--fast-out-linear-in {
  transition-timing-function: cubic-bezier(0.4, 0, 1, 1); }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
.mdl-badge {
  position: relative;
  white-space: nowrap;
  margin-right: 24px; }
  .mdl-badge:not([data-badge]) {
    margin-right: auto; }
  .mdl-badge[data-badge]:after {
    content: attr(data-badge);
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-content: center;
    align-items: center;
    position: absolute;
    top: -11px;
    right: -24px;
    font-family: "Roboto", "Helvetica", "Arial", sans-serif;
    font-weight: 600;
    font-size: 12px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: rgb(255,64,129);
    color: rgb(255,255,255); }
    .mdl-button .mdl-badge[data-badge]:after {
      top: -10px;
      right: -5px; }
  .mdl-badge.mdl-badge--no-background[data-badge]:after {
    color: rgb(255,64,129);
    background: rgb(255,255,255);
    box-shadow: 0 0 1px gray; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
.mdl-button {
  background: transparent;
  border: none;
  border-radius: 2px;
  color: rgb(0,0,0);
  position: relative;
  height: 36px;
  min-width: 64px;
  padding: 0 16px;
  display: inline-block;
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 500;
  text-transform: uppercase;
  line-height: 1;
  letter-spacing: 0;
  overflow: hidden;
  will-change: box-shadow, transform;
  transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  outline: none;
  cursor: pointer;
  text-decoration: none;
  text-align: center;
  line-height: 36px;
  vertical-align: middle; }
  .mdl-button::-moz-focus-inner {
    border: 0; }
  .mdl-button:hover {
    background-color: rgba(158,158,158, 0.20); }
  .mdl-button:focus:not(:active) {
    background-color: rgba(0,0,0, 0.12); }
  .mdl-button:active {
    background-color: rgba(158,158,158, 0.40); }
  .mdl-button.mdl-button--colored {
    color: rgb(63,81,181); }
    .mdl-button.mdl-button--colored:focus:not(:active) {
      background-color: rgba(0,0,0, 0.12); }

input.mdl-button[type="submit"] {
  -webkit-appearance: none; }

.mdl-button--raised {
  background: rgba(158,158,158, 0.20);
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }
  .mdl-button--raised:active {
    box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
    background-color: rgba(158,158,158, 0.40); }
  .mdl-button--raised:focus:not(:active) {
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.18), 0 8px 16px rgba(0, 0, 0, 0.36);
    background-color: rgba(158,158,158, 0.40); }
  .mdl-button--raised.mdl-button--colored {
    background: rgb(63,81,181);
    color: rgb(255,255,255); }
    .mdl-button--raised.mdl-button--colored:hover {
      background-color: rgb(63,81,181); }
    .mdl-button--raised.mdl-button--colored:active {
      background-color: rgb(63,81,181); }
    .mdl-button--raised.mdl-button--colored:focus:not(:active) {
      background-color: rgb(63,81,181); }
    .mdl-button--raised.mdl-button--colored .mdl-ripple {
      background: rgb(255,255,255); }

.mdl-button--fab {
  border-radius: 50%;
  font-size: 24px;
  height: 56px;
  margin: auto;
  min-width: 56px;
  width: 56px;
  padding: 0;
  overflow: hidden;
  background: rgba(158,158,158, 0.20);
  box-shadow: 0 1px 1.5px 0 rgba(0, 0, 0, 0.12), 0 1px 1px 0 rgba(0, 0, 0, 0.24);
  position: relative;
  line-height: normal; }
  .mdl-button--fab .material-icons {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-12px, -12px);
    line-height: 24px;
    width: 24px; }
  .mdl-button--fab.mdl-button--mini-fab {
    height: 40px;
    min-width: 40px;
    width: 40px; }
  .mdl-button--fab .mdl-button__ripple-container {
    border-radius: 50%;
    -webkit-mask-image: -webkit-radial-gradient(circle, white, black); }
  .mdl-button--fab:active {
    box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
    background-color: rgba(158,158,158, 0.40); }
  .mdl-button--fab:focus:not(:active) {
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.18), 0 8px 16px rgba(0, 0, 0, 0.36);
    background-color: rgba(158,158,158, 0.40); }
  .mdl-button--fab.mdl-button--colored {
    background: rgb(255,64,129);
    color: rgb(255,255,255); }
    .mdl-button--fab.mdl-button--colored:hover {
      background-color: rgb(255,64,129); }
    .mdl-button--fab.mdl-button--colored:focus:not(:active) {
      background-color: rgb(255,64,129); }
    .mdl-button--fab.mdl-button--colored:active {
      background-color: rgb(255,64,129); }
    .mdl-button--fab.mdl-button--colored .mdl-ripple {
      background: rgb(255,255,255); }

.mdl-button--icon {
  border-radius: 50%;
  font-size: 24px;
  height: 32px;
  margin-left: 0;
  margin-right: 0;
  min-width: 32px;
  width: 32px;
  padding: 0;
  overflow: hidden;
  color: inherit;
  line-height: normal; }
  .mdl-button--icon .material-icons {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-12px, -12px);
    line-height: 24px;
    width: 24px; }
  .mdl-button--icon.mdl-button--mini-icon {
    height: 24px;
    min-width: 24px;
    width: 24px; }
    .mdl-button--icon.mdl-button--mini-icon .material-icons {
      top: 0px;
      left: 0px; }
  .mdl-button--icon .mdl-button__ripple-container {
    border-radius: 50%;
    -webkit-mask-image: -webkit-radial-gradient(circle, white, black); }

.mdl-button__ripple-container {
  display: block;
  height: 100%;
  left: 0px;
  position: absolute;
  top: 0px;
  width: 100%;
  z-index: 0;
  overflow: hidden; }
  .mdl-button[disabled] .mdl-button__ripple-container .mdl-ripple,
  .mdl-button.mdl-button--disabled .mdl-button__ripple-container .mdl-ripple {
    background-color: transparent; }

.mdl-button--primary.mdl-button--primary {
  color: rgb(63,81,181); }
  .mdl-button--primary.mdl-button--primary .mdl-ripple {
    background: rgb(255,255,255); }
  .mdl-button--primary.mdl-button--primary.mdl-button--raised, .mdl-button--primary.mdl-button--primary.mdl-button--fab {
    color: rgb(255,255,255);
    background-color: rgb(63,81,181); }

.mdl-button--accent.mdl-button--accent {
  color: rgb(255,64,129); }
  .mdl-button--accent.mdl-button--accent .mdl-ripple {
    background: rgb(255,255,255); }
  .mdl-button--accent.mdl-button--accent.mdl-button--raised, .mdl-button--accent.mdl-button--accent.mdl-button--fab {
    color: rgb(255,255,255);
    background-color: rgb(255,64,129); }

.mdl-button[disabled][disabled], .mdl-button.mdl-button--disabled.mdl-button--disabled {
  color: rgba(0,0,0, 0.26);
  cursor: default;
  background-color: transparent; }

.mdl-button--fab[disabled][disabled], .mdl-button--fab.mdl-button--disabled.mdl-button--disabled {
  background-color: rgba(0,0,0, 0.12);
  color: rgba(0,0,0, 0.26);
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }

.mdl-button--raised[disabled][disabled], .mdl-button--raised.mdl-button--disabled.mdl-button--disabled {
  background-color: rgba(0,0,0, 0.12);
  color: rgba(0,0,0, 0.26);
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }

.mdl-button--colored[disabled][disabled], .mdl-button--colored.mdl-button--disabled.mdl-button--disabled {
  color: rgba(0,0,0, 0.26); }

.mdl-button .material-icons {
  vertical-align: middle; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
.mdl-card {
  display: flex;
  flex-direction: column;
  font-size: 16px;
  font-weight: 400;
  min-height: 200px;
  overflow: hidden;
  width: 330px;
  z-index: 1;
  position: relative;
  background: rgb(255,255,255);
  border-radius: 2px;
  box-sizing: border-box; }

.mdl-card__media {
  background-color: rgb(255,64,129);
  background-repeat: repeat;
  background-position: 50% 50%;
  background-size: cover;
  background-origin: padding-box;
  background-attachment: scroll;
  box-sizing: border-box; }

.mdl-card__title {
  align-items: center;
  color: rgb(0,0,0);
  display: block;
  display: flex;
  justify-content: stretch;
  line-height: normal;
  padding: 16px 16px;
  perspective-origin: 165px 56px;
  transform-origin: 165px 56px;
  box-sizing: border-box; }
  .mdl-card__title.mdl-card--border {
    border-bottom: 1px solid rgba(0, 0, 0, 0.1); }

.mdl-card__title-text {
  align-self: flex-end;
  color: inherit;
  display: block;
  display: flex;
  font-size: 24px;
  font-weight: 300;
  line-height: normal;
  overflow: hidden;
  transform-origin: 149px 48px;
  margin: 0; }

.mdl-card__subtitle-text {
  font-size: 14px;
  color: rgba(0,0,0, 0.54);
  margin: 0; }

.mdl-card__supporting-text {
  color: rgba(0,0,0, 0.54);
  font-size: 13px;
  line-height: 18px;
  overflow: hidden;
  padding: 16px 16px;
  width: 90%; }

.mdl-card__actions {
  font-size: 16px;
  line-height: normal;
  width: 100%;
  background-color: rgba(0, 0, 0, 0);
  padding: 8px;
  box-sizing: border-box; }
  .mdl-card__actions.mdl-card--border {
    border-top: 1px solid rgba(0, 0, 0, 0.1); }

.mdl-card--expand {
  flex-grow: 1; }

.mdl-card__menu {
  position: absolute;
  right: 16px;
  top: 16px; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
.mdl-checkbox {
  position: relative;
  z-index: 1;
  vertical-align: middle;
  display: inline-block;
  box-sizing: border-box;
  width: 100%;
  height: 24px;
  margin: 0;
  padding: 0; }
  .mdl-checkbox.is-upgraded {
    padding-left: 24px; }

.mdl-checkbox__input {
  line-height: 24px; }
  .mdl-checkbox.is-upgraded .mdl-checkbox__input {
    position: absolute;
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    opacity: 0;
    -moz-appearance: none;
    -webkit-appearance: none;
    appearance: none;
    border: none; }

.mdl-checkbox__box-outline {
  position: absolute;
  top: 3px;
  left: 0;
  display: inline-block;
  box-sizing: border-box;
  width: 16px;
  height: 16px;
  margin: 0;
  cursor: pointer;
  overflow: hidden;
  border: 2px solid rgba(0,0,0, 0.54);
  border-radius: 2px;
  z-index: 2; }
  .mdl-checkbox.is-checked .mdl-checkbox__box-outline {
    border: 2px solid rgb(63,81,181); }
  .mdl-checkbox.is-disabled .mdl-checkbox__box-outline {
    border: 2px solid rgba(0,0,0, 0.26);
    cursor: auto; }

.mdl-checkbox__focus-helper {
  position: absolute;
  top: 3px;
  left: 0;
  display: inline-block;
  box-sizing: border-box;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background-color: transparent; }
  .mdl-checkbox.is-focused .mdl-checkbox__focus-helper {
    box-shadow: 0 0 0px 8px rgba(0, 0, 0, 0.1);
    background-color: rgba(0, 0, 0, 0.1); }
  .mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper {
    box-shadow: 0 0 0px 8px rgba(63,81,181, 0.26);
    background-color: rgba(63,81,181, 0.26); }

.mdl-checkbox__tick-outline {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  -webkit-mask: url("/images/tick-mask.svg?embed");
          mask: url("/images/tick-mask.svg?embed");
  background: transparent;
  transition-duration: 0.28s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-property: background; }
  .mdl-checkbox.is-checked .mdl-checkbox__tick-outline {
    background: rgb(63,81,181) url("/images/tick.svg?embed"); }
  .mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline {
    background: rgba(0,0,0, 0.26) url("/images/tick.svg?embed"); }

.mdl-checkbox__label {
  position: relative;
  cursor: pointer;
  font-size: 16px;
  line-height: 24px;
  margin: 0; }
  .mdl-checkbox.is-disabled .mdl-checkbox__label {
    color: rgba(0,0,0, 0.26);
    cursor: auto; }

.mdl-checkbox__ripple-container {
  position: absolute;
  z-index: 2;
  top: -6px;
  left: -10px;
  box-sizing: border-box;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  cursor: pointer;
  overflow: hidden;
  -webkit-mask-image: -webkit-radial-gradient(circle, white, black); }
  .mdl-checkbox__ripple-container .mdl-ripple {
    background: rgb(63,81,181); }
  .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container {
    cursor: auto; }
  .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple {
    background: transparent; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
.mdl-data-table {
  position: relative;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-collapse: collapse;
  white-space: nowrap;
  font-size: 13px;
  background-color: rgb(255,255,255); }
  .mdl-data-table thead {
    padding-bottom: 3px; }
    .mdl-data-table thead .mdl-data-table__select {
      margin-top: 0; }
  .mdl-data-table tbody tr {
    position: relative;
    height: 48px;
    transition-duration: 0.28s;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-property: background-color; }
    .mdl-data-table tbody tr.is-selected {
      background-color: #e0e0e0; }
    .mdl-data-table tbody tr:hover {
      background-color: #eeeeee; }
  .mdl-data-table td, .mdl-data-table th {
    padding: 0 18px 0 18px;
    text-align: right; }
    .mdl-data-table td:first-of-type, .mdl-data-table th:first-of-type {
      padding-left: 24px; }
    .mdl-data-table td:last-of-type, .mdl-data-table th:last-of-type {
      padding-right: 24px; }
  .mdl-data-table td {
    position: relative;
    vertical-align: top;
    height: 48px;
    border-top: 1px solid rgba(0, 0, 0, 0.12);
    border-bottom: 1px solid rgba(0, 0, 0, 0.12);
    padding-top: 12px;
    box-sizing: border-box; }
    .mdl-data-table td .mdl-data-table__select {
      vertical-align: top;
      position: absolute;
      left: 24px; }
  .mdl-data-table th {
    position: relative;
    vertical-align: bottom;
    text-overflow: ellipsis;
    font-size: 14px;
    font-weight: bold;
    line-height: 24px;
    letter-spacing: 0;
    height: 48px;
    font-size: 12px;
    color: rgba(0, 0, 0, 0.54);
    padding-bottom: 8px;
    box-sizing: border-box; }
    .mdl-data-table th .mdl-data-table__select {
      position: absolute;
      bottom: 8px;
      left: 24px; }

.mdl-data-table__select {
  width: 16px; }

.mdl-data-table__cell--non-numeric.mdl-data-table__cell--non-numeric {
  text-align: left; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
.mdl-mega-footer {
  padding: 16px 40px;
  color: rgb(158,158,158);
  background-color: rgb(66,66,66); }

.mdl-mega-footer--top-section:after,
.mdl-mega-footer--middle-section:after,
.mdl-mega-footer--bottom-section:after,
.mdl-mega-footer__top-section:after,
.mdl-mega-footer__middle-section:after,
.mdl-mega-footer__bottom-section:after {
  content: '';
  display: block;
  clear: both; }

.mdl-mega-footer--left-section,
.mdl-mega-footer__left-section {
  margin-bottom: 16px; }

.mdl-mega-footer--right-section,
.mdl-mega-footer__right-section {
  margin-bottom: 16px; }

.mdl-mega-footer--right-section a,
.mdl-mega-footer__right-section a {
  display: block;
  margin-bottom: 16px;
  color: inherit;
  text-decoration: none; }

@media screen and (min-width: 760px) {
  .mdl-mega-footer--left-section,
  .mdl-mega-footer__left-section {
    float: left; }
  .mdl-mega-footer--right-section,
  .mdl-mega-footer__right-section {
    float: right; }
  .mdl-mega-footer--right-section a,
  .mdl-mega-footer__right-section a {
    display: inline-block;
    margin-left: 16px;
    line-height: 36px;
    vertical-align: middle; } }

.mdl-mega-footer--social-btn,
.mdl-mega-footer__social-btn {
  width: 36px;
  height: 36px;
  padding: 0;
  margin: 0;
  background-color: rgb(158,158,158);
  border: none; }

.mdl-mega-footer--drop-down-section,
.mdl-mega-footer__drop-down-section {
  display: block;
  position: relative; }

@media screen and (min-width: 760px) {
  .mdl-mega-footer--drop-down-section,
  .mdl-mega-footer__drop-down-section {
    width: 33%; }
  .mdl-mega-footer--drop-down-section:nth-child(1),
  .mdl-mega-footer--drop-down-section:nth-child(2),
  .mdl-mega-footer__drop-down-section:nth-child(1),
  .mdl-mega-footer__drop-down-section:nth-child(2) {
    float: left; }
  .mdl-mega-footer--drop-down-section:nth-child(3),
  .mdl-mega-footer__drop-down-section:nth-child(3) {
    float: right; }
    .mdl-mega-footer--drop-down-section:nth-child(3):after,
    .mdl-mega-footer__drop-down-section:nth-child(3):after {
      clear: right; }
  .mdl-mega-footer--drop-down-section:nth-child(4),
  .mdl-mega-footer__drop-down-section:nth-child(4) {
    clear: right;
    float: right; }
  .mdl-mega-footer--middle-section:after,
  .mdl-mega-footer__middle-section:after {
    content: '';
    display: block;
    clear: both; }
  .mdl-mega-footer--bottom-section,
  .mdl-mega-footer__bottom-section {
    padding-top: 0; } }

@media screen and (min-width: 1024px) {
  .mdl-mega-footer--drop-down-section,
  .mdl-mega-footer--drop-down-section:nth-child(3),
  .mdl-mega-footer--drop-down-section:nth-child(4),
  .mdl-mega-footer__drop-down-section,
  .mdl-mega-footer__drop-down-section:nth-child(3),
  .mdl-mega-footer__drop-down-section:nth-child(4) {
    width: 24%;
    float: left; } }

.mdl-mega-footer--heading-checkbox,
.mdl-mega-footer__heading-checkbox {
  position: absolute;
  width: 100%;
  height: 55.8px;
  padding: 32px;
  margin: 0;
  margin-top: -16px;
  cursor: pointer;
  z-index: 1;
  opacity: 0; }
  .mdl-mega-footer--heading-checkbox + .mdl-mega-footer--heading:after,
  .mdl-mega-footer--heading-checkbox + .mdl-mega-footer__heading:after,
  .mdl-mega-footer__heading-checkbox + .mdl-mega-footer--heading:after,
  .mdl-mega-footer__heading-checkbox + .mdl-mega-footer__heading:after {
    font-family: 'Material Icons';
    content: '\E5CE'; }

.mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer--link-list,
.mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer__link-list,
.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list,
.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list,
.mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer--link-list,
.mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer__link-list,
.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list,
.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list {
  display: none; }

.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading:after,
.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading:after,
.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading:after,
.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading:after {
  font-family: 'Material Icons';
  content: '\E5CF'; }

.mdl-mega-footer--heading,
.mdl-mega-footer__heading {
  position: relative;
  width: 100%;
  padding-right: 39.8px;
  margin-bottom: 16px;
  box-sizing: border-box;
  font-size: 14px;
  line-height: 23.8px;
  font-weight: 500;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  color: rgb(224,224,224); }

.mdl-mega-footer--heading:after,
.mdl-mega-footer__heading:after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  display: block;
  width: 23.8px;
  height: 23.8px;
  background-size: cover; }

.mdl-mega-footer--link-list,
.mdl-mega-footer__link-list {
  list-style: none;
  margin: 0;
  padding: 0;
  margin-bottom: 32px; }
  .mdl-mega-footer--link-list:after,
  .mdl-mega-footer__link-list:after {
    clear: both;
    display: block;
    content: ''; }

.mdl-mega-footer--link-list li,
.mdl-mega-footer__link-list li {
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0;
  line-height: 20px; }

.mdl-mega-footer--link-list a,
.mdl-mega-footer__link-list a {
  color: inherit;
  text-decoration: none;
  white-space: nowrap; }

@media screen and (min-width: 760px) {
  .mdl-mega-footer--heading-checkbox,
  .mdl-mega-footer__heading-checkbox {
    display: none; }
    .mdl-mega-footer--heading-checkbox + .mdl-mega-footer--heading:after,
    .mdl-mega-footer--heading-checkbox + .mdl-mega-footer__heading:after,
    .mdl-mega-footer__heading-checkbox + .mdl-mega-footer--heading:after,
    .mdl-mega-footer__heading-checkbox + .mdl-mega-footer__heading:after {
      background-image: none; }
  .mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer--link-list,
  .mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer__link-list,
  .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list,
  .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list,
  .mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer--link-list,
  .mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer__link-list,
  .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list,
  .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list {
    display: block; }
  .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading:after,
  .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading:after,
  .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading:after,
  .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading:after {
    content: ''; } }

.mdl-mega-footer--bottom-section,
.mdl-mega-footer__bottom-section {
  padding-top: 16px;
  margin-bottom: 16px; }

.mdl-logo {
  margin-bottom: 16px;
  color: white; }

.mdl-mega-footer--bottom-section .mdl-mega-footer--link-list li,
.mdl-mega-footer__bottom-section .mdl-mega-footer__link-list li {
  float: left;
  margin-bottom: 0;
  margin-right: 16px; }

@media screen and (min-width: 760px) {
  .mdl-logo {
    float: left;
    margin-bottom: 0;
    margin-right: 16px; } }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
.mdl-mini-footer {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  padding: 32px 16px;
  color: rgb(158,158,158);
  background-color: rgb(66,66,66); }
  .mdl-mini-footer:after {
    content: '';
    display: block; }
  .mdl-mini-footer .mdl-logo {
    line-height: 36px; }

.mdl-mini-footer--link-list,
.mdl-mini-footer__link-list {
  display: flex;
  flex-flow: row nowrap;
  list-style: none;
  margin: 0;
  padding: 0; }
  .mdl-mini-footer--link-list li,
  .mdl-mini-footer__link-list li {
    margin-bottom: 0;
    margin-right: 16px; }
    @media screen and (min-width: 760px) {
      .mdl-mini-footer--link-list li,
      .mdl-mini-footer__link-list li {
        line-height: 36px; } }
  .mdl-mini-footer--link-list a,
  .mdl-mini-footer__link-list a {
    color: inherit;
    text-decoration: none;
    white-space: nowrap; }

.mdl-mini-footer--left-section,
.mdl-mini-footer__left-section {
  display: inline-block;
  order: 0; }

.mdl-mini-footer--right-section,
.mdl-mini-footer__right-section {
  display: inline-block;
  order: 1; }

.mdl-mini-footer--social-btn,
.mdl-mini-footer__social-btn {
  width: 36px;
  height: 36px;
  padding: 0;
  margin: 0;
  background-color: rgb(158,158,158);
  border: none; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
.mdl-icon-toggle {
  position: relative;
  z-index: 1;
  vertical-align: middle;
  display: inline-block;
  height: 32px;
  margin: 0;
  padding: 0; }

.mdl-icon-toggle__input {
  line-height: 32px; }
  .mdl-icon-toggle.is-upgraded .mdl-icon-toggle__input {
    position: absolute;
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    opacity: 0;
    -moz-appearance: none;
    -webkit-appearance: none;
    appearance: none;
    border: none; }

.mdl-icon-toggle__label {
  display: inline-block;
  position: relative;
  cursor: pointer;
  height: 32px;
  width: 32px;
  min-width: 32px;
  color: rgb(97,97,97);
  border-radius: 50%;
  padding: 0;
  margin-left: 0;
  margin-right: 0;
  text-align: center;
  background-color: transparent;
  will-change: background-color;
  transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1); }
  .mdl-icon-toggle__label.material-icons {
    line-height: 32px;
    font-size: 24px; }
  .mdl-icon-toggle.is-checked .mdl-icon-toggle__label {
    color: rgb(63,81,181); }
  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__label {
    color: rgba(0,0,0, 0.26);
    cursor: auto;
    transition: none; }
  .mdl-icon-toggle.is-focused .mdl-icon-toggle__label {
    background-color: rgba(0,0,0, 0.12); }
  .mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label {
    background-color: rgba(63,81,181, 0.26); }

.mdl-icon-toggle__ripple-container {
  position: absolute;
  z-index: 2;
  top: -2px;
  left: -2px;
  box-sizing: border-box;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  cursor: pointer;
  overflow: hidden;
  -webkit-mask-image: -webkit-radial-gradient(circle, white, black); }
  .mdl-icon-toggle__ripple-container .mdl-ripple {
    background: rgb(97,97,97); }
  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container {
    cursor: auto; }
  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple {
    background: transparent; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
.mdl-menu__container {
  display: block;
  margin: 0;
  padding: 0;
  border: none;
  position: absolute;
  overflow: visible;
  height: 0;
  width: 0;
  visibility: hidden;
  z-index: -1; }
  .mdl-menu__container.is-visible, .mdl-menu__container.is-animating {
    z-index: 999;
    visibility: visible; }

.mdl-menu__outline {
  display: block;
  background: rgb(255,255,255);
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 2px;
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
  opacity: 0;
  transform: scale(0);
  transform-origin: 0 0;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
  will-change: transform;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: -1; }
  .mdl-menu__container.is-visible .mdl-menu__outline {
    opacity: 1;
    transform: scale(1);
    z-index: 999; }
  .mdl-menu__outline.mdl-menu--bottom-right {
    transform-origin: 100% 0; }
  .mdl-menu__outline.mdl-menu--top-left {
    transform-origin: 0 100%; }
  .mdl-menu__outline.mdl-menu--top-right {
    transform-origin: 100% 100%; }

.mdl-menu {
  position: absolute;
  list-style: none;
  top: 0;
  left: 0;
  height: auto;
  width: auto;
  min-width: 124px;
  padding: 8px 0;
  margin: 0;
  opacity: 0;
  clip: rect(0 0 0 0);
  z-index: -1; }
  .mdl-menu__container.is-visible .mdl-menu {
    opacity: 1;
    z-index: 999; }
  .mdl-menu.is-animating {
    transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), clip 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
  .mdl-menu.mdl-menu--bottom-right {
    left: auto;
    right: 0; }
  .mdl-menu.mdl-menu--top-left {
    top: auto;
    bottom: 0; }
  .mdl-menu.mdl-menu--top-right {
    top: auto;
    left: auto;
    bottom: 0;
    right: 0; }
  .mdl-menu.mdl-menu--unaligned {
    top: auto;
    left: auto; }

.mdl-menu__item {
  display: block;
  border: none;
  color: rgba(0,0,0, 0.87);
  background-color: transparent;
  text-align: left;
  margin: 0;
  padding: 0 16px;
  outline-color: rgb(189,189,189);
  position: relative;
  overflow: hidden;
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0;
  text-decoration: none;
  cursor: pointer;
  height: 48px;
  line-height: 48px;
  white-space: nowrap;
  opacity: 0;
  transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none; }
  .mdl-menu__container.is-visible .mdl-menu__item {
    opacity: 1; }
  .mdl-menu__item::-moz-focus-inner {
    border: 0; }
  .mdl-menu__item[disabled] {
    color: rgb(189,189,189);
    background-color: transparent;
    cursor: auto; }
    .mdl-menu__item[disabled]:hover {
      background-color: transparent; }
    .mdl-menu__item[disabled]:focus {
      background-color: transparent; }
    .mdl-menu__item[disabled] .mdl-ripple {
      background: transparent; }
  .mdl-menu__item:hover {
    background-color: rgb(238,238,238); }
  .mdl-menu__item:focus {
    outline: none;
    background-color: rgb(238,238,238); }
  .mdl-menu__item:active {
    background-color: rgb(224,224,224); }

.mdl-menu__item--ripple-container {
  display: block;
  height: 100%;
  left: 0px;
  position: absolute;
  top: 0px;
  width: 100%;
  z-index: 0;
  overflow: hidden; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
.mdl-progress {
  display: block;
  position: relative;
  height: 4px;
  width: 500px; }

.mdl-progress > .bar {
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  width: 0%;
  transition: width 0.2s cubic-bezier(0.4, 0, 0.2, 1); }

.mdl-progress > .progressbar {
  background-color: rgb(63,81,181);
  z-index: 1;
  left: 0; }

.mdl-progress > .bufferbar {
  background-image: linear-gradient(to right, rgba(255,255,255, 0.7), rgba(255,255,255, 0.7)), linear-gradient(to right, rgb(63,81,181), rgb(63,81,181));
  z-index: 0;
  left: 0; }

.mdl-progress > .auxbar {
  right: 0; }

@supports (-webkit-appearance: none) {
  .mdl-progress:not(.mdl-progress__indeterminate):not(.mdl-progress__indeterminate) > .auxbar {
    background-image: linear-gradient(to right, rgba(255,255,255, 0.7), rgba(255,255,255, 0.7)), linear-gradient(to right, rgb(63,81,181), rgb(63,81,181));
    -webkit-mask: url("/images/buffer.svg?embed");
            mask: url("/images/buffer.svg?embed"); } }

.mdl-progress:not(.mdl-progress__indeterminate) > .auxbar {
  background-image: linear-gradient(to right, rgba(255,255,255, 0.9), rgba(255,255,255, 0.9)), linear-gradient(to right, rgb(63,81,181), rgb(63,81,181)); }

.mdl-progress.mdl-progress__indeterminate > .bar1 {
  background-color: rgb(63,81,181);
  animation-name: indeterminate1;
  animation-duration: 2s;
  animation-iteration-count: infinite;
  animation-timing-function: linear; }

.mdl-progress.mdl-progress__indeterminate > .bar3 {
  background-image: none;
  background-color: rgb(63,81,181);
  animation-name: indeterminate2;
  animation-duration: 2s;
  animation-iteration-count: infinite;
  animation-timing-function: linear; }

@keyframes indeterminate1 {
  0% {
    left: 0%;
    width: 0%; }
  50% {
    left: 25%;
    width: 75%; }
  75% {
    left: 100%;
    width: 0%; } }

@keyframes indeterminate2 {
  0% {
    left: 0%;
    width: 0%; }
  50% {
    left: 0%;
    width: 0%; }
  75% {
    left: 0%;
    width: 25%; }
  100% {
    left: 100%;
    width: 0%; } }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
.mdl-navigation {
  display: flex;
  flex-wrap: nowrap;
  box-sizing: border-box; }

.mdl-navigation__link {
  color: rgb(66,66,66);
  text-decoration: none;
  font-weight: 500;
  font-size: 13px;
  margin: 0; }

.mdl-layout {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  overflow-x: hidden;
  position: relative;
  -webkit-overflow-scrolling: touch; }

.mdl-layout.is-small-screen .mdl-layout--large-screen-only {
  display: none; }

.mdl-layout:not(.is-small-screen) .mdl-layout--small-screen-only {
  display: none; }

.mdl-layout__container {
  position: absolute;
  width: 100%;
  height: 100%; }

.mdl-layout__title,
.mdl-layout-title {
  display: block;
  position: relative;
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 20px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.02em;
  font-weight: 400;
  box-sizing: border-box; }

.mdl-layout-spacer {
  flex-grow: 1; }

.mdl-layout__drawer {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  width: 240px;
  height: 100%;
  max-height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
  box-sizing: border-box;
  border-right: 1px solid rgb(224,224,224);
  background: rgb(250,250,250);
  transform: translateX(-250px);
  transform-style: preserve-3d;
  will-change: transform;
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-property: transform;
  color: rgb(66,66,66);
  overflow: visible;
  overflow-y: auto;
  z-index: 5; }
  .mdl-layout__drawer.is-visible {
    transform: translateX(0); }
    .mdl-layout__drawer.is-visible ~ .mdl-layout__content.mdl-layout__content {
      overflow: hidden; }
  .mdl-layout__drawer > * {
    flex-shrink: 0; }
  .mdl-layout__drawer > .mdl-layout__title,
  .mdl-layout__drawer > .mdl-layout-title {
    line-height: 64px;
    padding-left: 40px; }
    @media screen and (max-width: 1024px) {
      .mdl-layout__drawer > .mdl-layout__title,
      .mdl-layout__drawer > .mdl-layout-title {
        line-height: 56px;
        padding-left: 16px; } }
  .mdl-layout__drawer .mdl-navigation {
    flex-direction: column;
    align-items: stretch;
    padding-top: 16px; }
    .mdl-layout__drawer .mdl-navigation .mdl-navigation__link {
      display: block;
      flex-shrink: 0;
      padding: 16px 40px;
      margin: 0;
      color: #757575; }
      @media screen and (max-width: 1024px) {
        .mdl-layout__drawer .mdl-navigation .mdl-navigation__link {
          padding: 16px 16px; } }
      .mdl-layout__drawer .mdl-navigation .mdl-navigation__link:hover {
        background-color: rgb(224,224,224); }
      .mdl-layout__drawer .mdl-navigation .mdl-navigation__link--current {
        background-color: rgb(0,0,0);
        color: rgb(224,224,224); }
  @media screen and (min-width: 1025px) {
    .mdl-layout--fixed-drawer > .mdl-layout__drawer {
      transform: translateX(0); } }

.mdl-layout__drawer-button {
  display: block;
  position: absolute;
  height: 48px;
  width: 48px;
  border: 0;
  flex-shrink: 0;
  overflow: hidden;
  text-align: center;
  cursor: pointer;
  font-size: 26px;
  line-height: 50px;
  font-family: Helvetica, Arial, sans-serif;
  margin: 10px 12px;
  top: 0;
  left: 0;
  color: rgb(255,255,255);
  z-index: 4; }
  .mdl-layout__header .mdl-layout__drawer-button {
    position: absolute;
    color: rgb(255,255,255);
    background-color: inherit; }
    @media screen and (max-width: 1024px) {
      .mdl-layout__header .mdl-layout__drawer-button {
        margin: 4px; } }
  @media screen and (max-width: 1024px) {
    .mdl-layout__drawer-button {
      margin: 4px;
      color: rgba(0, 0, 0, 0.5); } }
  @media screen and (min-width: 1025px) {
    .mdl-layout--fixed-drawer > .mdl-layout__drawer-button {
      display: none; } }

.mdl-layout__header {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  justify-content: flex-start;
  box-sizing: border-box;
  flex-shrink: 0;
  width: 100%;
  margin: 0;
  padding: 0;
  border: none;
  min-height: 64px;
  max-height: 1000px;
  z-index: 3;
  background-color: rgb(63,81,181);
  color: rgb(255,255,255);
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-property: max-height, box-shadow; }
  @media screen and (max-width: 1024px) {
    .mdl-layout__header {
      min-height: 56px; } }
  .mdl-layout--fixed-drawer.is-upgraded:not(.is-small-screen) > .mdl-layout__header {
    margin-left: 240px;
    width: calc(100% - 240px); }
  @media screen and (min-width: 1025px) {
    .mdl-layout--fixed-drawer > .mdl-layout__header .mdl-layout__header-row {
      padding-left: 40px; } }
  .mdl-layout__header > .mdl-layout-icon {
    position: absolute;
    left: 40px;
    top: 16px;
    height: 32px;
    width: 32px;
    overflow: hidden;
    z-index: 3;
    display: block; }
    @media screen and (max-width: 1024px) {
      .mdl-layout__header > .mdl-layout-icon {
        left: 16px;
        top: 12px; } }
  .mdl-layout.has-drawer .mdl-layout__header > .mdl-layout-icon {
    display: none; }
  .mdl-layout__header.is-compact {
    max-height: 64px; }
    @media screen and (max-width: 1024px) {
      .mdl-layout__header.is-compact {
        max-height: 56px; } }
  .mdl-layout__header.is-compact.has-tabs {
    height: 112px; }
    @media screen and (max-width: 1024px) {
      .mdl-layout__header.is-compact.has-tabs {
        min-height: 104px; } }
  @media screen and (max-width: 1024px) {
    .mdl-layout__header {
      display: none; }
    .mdl-layout--fixed-header > .mdl-layout__header {
      display: flex; } }

.mdl-layout__header--transparent.mdl-layout__header--transparent {
  background-color: transparent;
  box-shadow: none; }

.mdl-layout__header--seamed {
  box-shadow: none; }

.mdl-layout__header--scroll {
  box-shadow: none; }

.mdl-layout__header--waterfall {
  box-shadow: none;
  overflow: hidden; }
  .mdl-layout__header--waterfall.is-casting-shadow {
    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }

.mdl-layout__header-row {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  flex-shrink: 0;
  box-sizing: border-box;
  align-self: stretch;
  align-items: center;
  height: 64px;
  margin: 0;
  padding: 0 40px 0 80px; }
  @media screen and (max-width: 1024px) {
    .mdl-layout__header-row {
      height: 56px;
      padding: 0 16px 0 72px; } }
  .mdl-layout__header-row > * {
    flex-shrink: 0; }
  .mdl-layout__header--scroll .mdl-layout__header-row {
    width: 100%; }
  .mdl-layout__header-row .mdl-navigation {
    margin: 0;
    padding: 0;
    height: 64px;
    flex-direction: row;
    align-items: center; }
    @media screen and (max-width: 1024px) {
      .mdl-layout__header-row .mdl-navigation {
        height: 56px; } }
  .mdl-layout__header-row .mdl-navigation__link {
    display: block;
    color: rgb(255,255,255);
    line-height: 64px;
    padding: 0 24px; }
    @media screen and (max-width: 1024px) {
      .mdl-layout__header-row .mdl-navigation__link {
        line-height: 56px;
        padding: 0 16px; } }

.mdl-layout__obfuscator {
  background-color: transparent;
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 4;
  visibility: hidden;
  transition-property: background-color;
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }
  .mdl-layout__obfuscator.is-visible {
    background-color: rgba(0, 0, 0, 0.5);
    visibility: visible; }

.mdl-layout__content {
  -ms-flex: 0 1 auto;
  display: inline-block;
  overflow-y: auto;
  overflow-x: hidden;
  flex-grow: 1;
  z-index: 1;
  -webkit-overflow-scrolling: touch; }
  .mdl-layout--fixed-drawer > .mdl-layout__content {
    margin-left: 240px; }
  .mdl-layout__container.has-scrolling-header .mdl-layout__content {
    overflow: visible; }
  @media screen and (max-width: 1024px) {
    .mdl-layout--fixed-drawer > .mdl-layout__content {
      margin-left: 0; }
    .mdl-layout__container.has-scrolling-header .mdl-layout__content {
      overflow-y: auto;
      overflow-x: hidden; } }

.mdl-layout__tab-bar {
  height: 96px;
  margin: 0;
  width: calc(100% - 112px);
  padding: 0 0 0 56px;
  display: flex;
  background-color: rgb(63,81,181);
  overflow-y: hidden;
  overflow-x: scroll; }
  .mdl-layout__tab-bar::-webkit-scrollbar {
    display: none; }
  @media screen and (max-width: 1024px) {
    .mdl-layout__tab-bar {
      width: calc(100% - 60px);
      padding: 0 0 0 60px; } }
  .mdl-layout--fixed-tabs .mdl-layout__tab-bar {
    padding: 0;
    overflow: hidden;
    width: 100%; }

.mdl-layout__tab-bar-container {
  position: relative;
  height: 48px;
  width: 100%;
  border: none;
  margin: 0;
  z-index: 2;
  flex-grow: 0;
  flex-shrink: 0;
  overflow: hidden; }
  .mdl-layout__container > .mdl-layout__tab-bar-container {
    position: absolute;
    top: 0;
    left: 0; }

.mdl-layout__tab-bar-button {
  display: inline-block;
  position: absolute;
  top: 0;
  height: 48px;
  width: 56px;
  z-index: 4;
  text-align: center;
  background-color: rgb(63,81,181);
  color: transparent;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none; }
  @media screen and (max-width: 1024px) {
    .mdl-layout__tab-bar-button {
      display: none;
      width: 60px; } }
  .mdl-layout--fixed-tabs .mdl-layout__tab-bar-button {
    display: none; }
  .mdl-layout__tab-bar-button .material-icons {
    line-height: 48px; }
  .mdl-layout__tab-bar-button.is-active {
    color: rgb(255,255,255); }

.mdl-layout__tab-bar-left-button {
  left: 0; }

.mdl-layout__tab-bar-right-button {
  right: 0; }

.mdl-layout__tab {
  margin: 0;
  border: none;
  padding: 0 24px 0 24px;
  float: left;
  position: relative;
  display: block;
  flex-grow: 0;
  flex-shrink: 0;
  text-decoration: none;
  height: 48px;
  line-height: 48px;
  text-align: center;
  font-weight: 500;
  font-size: 14px;
  text-transform: uppercase;
  color: rgba(255,255,255, 0.6);
  overflow: hidden; }
  @media screen and (max-width: 1024px) {
    .mdl-layout__tab {
      padding: 0 12px 0 12px; } }
  .mdl-layout--fixed-tabs .mdl-layout__tab {
    float: none;
    flex-grow: 1;
    padding: 0; }
  .mdl-layout.is-upgraded .mdl-layout__tab.is-active {
    color: rgb(255,255,255); }
  .mdl-layout.is-upgraded .mdl-layout__tab.is-active::after {
    height: 2px;
    width: 100%;
    display: block;
    content: " ";
    bottom: 0;
    left: 0;
    position: absolute;
    background: rgb(255,64,129);
    animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;
    transition: all 1s cubic-bezier(0.4, 0, 1, 1); }
  .mdl-layout__tab .mdl-layout__tab-ripple-container {
    display: block;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 0;
    z-index: 1;
    overflow: hidden; }
    .mdl-layout__tab .mdl-layout__tab-ripple-container .mdl-ripple {
      background-color: rgb(255,255,255); }

.mdl-layout__tab-panel {
  display: block; }
  .mdl-layout.is-upgraded .mdl-layout__tab-panel {
    display: none; }
  .mdl-layout.is-upgraded .mdl-layout__tab-panel.is-active {
    display: block; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
.mdl-radio {
  position: relative;
  font-size: 16px;
  line-height: 24px;
  display: inline-block;
  box-sizing: border-box;
  margin: 0;
  padding-left: 0; }
  .mdl-radio.is-upgraded {
    padding-left: 24px; }

.mdl-radio__button {
  line-height: 24px; }
  .mdl-radio.is-upgraded .mdl-radio__button {
    position: absolute;
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    opacity: 0;
    -moz-appearance: none;
    -webkit-appearance: none;
    appearance: none;
    border: none; }

.mdl-radio__outer-circle {
  position: absolute;
  top: 4px;
  left: 0;
  display: inline-block;
  box-sizing: border-box;
  width: 16px;
  height: 16px;
  margin: 0;
  cursor: pointer;
  border: 2px solid rgba(0,0,0, 0.54);
  border-radius: 50%;
  z-index: 2; }
  .mdl-radio.is-checked .mdl-radio__outer-circle {
    border: 2px solid rgb(63,81,181); }
  .mdl-radio.is-disabled .mdl-radio__outer-circle {
    border: 2px solid rgba(0,0,0, 0.26);
    cursor: auto; }

.mdl-radio__inner-circle {
  position: absolute;
  z-index: 1;
  margin: 0;
  top: 8px;
  left: 4px;
  box-sizing: border-box;
  width: 8px;
  height: 8px;
  cursor: pointer;
  transition-duration: 0.28s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-property: transform;
  transform: scale3d(0, 0, 0);
  border-radius: 50%;
  background: rgb(63,81,181); }
  .mdl-radio.is-checked .mdl-radio__inner-circle {
    transform: scale3d(1, 1, 1); }
  .mdl-radio.is-disabled .mdl-radio__inner-circle {
    background: rgba(0,0,0, 0.26);
    cursor: auto; }
  .mdl-radio.is-focused .mdl-radio__inner-circle {
    box-shadow: 0 0 0px 10px rgba(0, 0, 0, 0.1); }

.mdl-radio__label {
  cursor: pointer; }
  .mdl-radio.is-disabled .mdl-radio__label {
    color: rgba(0,0,0, 0.26);
    cursor: auto; }

.mdl-radio__ripple-container {
  position: absolute;
  z-index: 2;
  top: -9px;
  left: -13px;
  box-sizing: border-box;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  cursor: pointer;
  overflow: hidden;
  -webkit-mask-image: -webkit-radial-gradient(circle, white, black); }
  .mdl-radio__ripple-container .mdl-ripple {
    background: rgb(63,81,181); }
  .mdl-radio.is-disabled .mdl-radio__ripple-container {
    cursor: auto; }
  .mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple {
    background: transparent; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
_:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded {
  -ms-appearance: none;
  height: 32px;
  margin: 0; }

.mdl-slider {
  width: calc(100% - 40px);
  margin: 0 20px; }
  .mdl-slider.is-upgraded {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    height: 2px;
    background: transparent;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    outline: 0;
    padding: 0;
    color: rgb(63,81,181);
    align-self: center;
    z-index: 1;
    cursor: pointer;
    /**************************** Tracks ****************************/
    /**************************** Thumbs ****************************/
    /**************************** 0-value ****************************/
    /**************************** Disabled ****************************/ }
    .mdl-slider.is-upgraded::-moz-focus-outer {
      border: 0; }
    .mdl-slider.is-upgraded::-ms-tooltip {
      display: none; }
    .mdl-slider.is-upgraded::-webkit-slider-runnable-track {
      background: transparent; }
    .mdl-slider.is-upgraded::-moz-range-track {
      background: transparent;
      border: none; }
    .mdl-slider.is-upgraded::-ms-track {
      background: none;
      color: transparent;
      height: 2px;
      width: 100%;
      border: none; }
    .mdl-slider.is-upgraded::-ms-fill-lower {
      padding: 0;
      background: linear-gradient(to right, transparent, transparent 16px, rgb(63,81,181) 16px, rgb(63,81,181) 0); }
    .mdl-slider.is-upgraded::-ms-fill-upper {
      padding: 0;
      background: linear-gradient(to left, transparent, transparent 16px, rgba(0,0,0, 0.26) 16px, rgba(0,0,0, 0.26) 0); }
    .mdl-slider.is-upgraded::-webkit-slider-thumb {
      -webkit-appearance: none;
      width: 12px;
      height: 12px;
      box-sizing: border-box;
      border-radius: 50%;
      background: rgb(63,81,181);
      border: none;
      -webkit-transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), border 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1);
      transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), border 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1); }
    .mdl-slider.is-upgraded::-moz-range-thumb {
      -moz-appearance: none;
      width: 12px;
      height: 12px;
      box-sizing: border-box;
      border-radius: 50%;
      background-image: none;
      background: rgb(63,81,181);
      border: none; }
    .mdl-slider.is-upgraded:focus:not(:active)::-webkit-slider-thumb {
      box-shadow: 0 0 0 10px rgba(63,81,181, 0.26); }
    .mdl-slider.is-upgraded:focus:not(:active)::-moz-range-thumb {
      box-shadow: 0 0 0 10px rgba(63,81,181, 0.26); }
    .mdl-slider.is-upgraded:active::-webkit-slider-thumb {
      background-image: none;
      background: rgb(63,81,181);
      transform: scale(1.5); }
    .mdl-slider.is-upgraded:active::-moz-range-thumb {
      background-image: none;
      background: rgb(63,81,181);
      transform: scale(1.5); }
    .mdl-slider.is-upgraded::-ms-thumb {
      width: 32px;
      height: 32px;
      border: none;
      border-radius: 50%;
      background: rgb(63,81,181);
      transform: scale(0.375);
      -ms-transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1);
      transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1); }
    .mdl-slider.is-upgraded:focus:not(:active)::-ms-thumb {
      background: radial-gradient(circle closest-side, rgb(63,81,181) 0%, rgb(63,81,181) 37.5%, rgba(63,81,181, 0.26) 37.5%, rgba(63,81,181, 0.26) 100%);
      transform: scale(1); }
    .mdl-slider.is-upgraded:active::-ms-thumb {
      background: rgb(63,81,181);
      transform: scale(0.5625); }
    .mdl-slider.is-upgraded.is-lowest-value::-webkit-slider-thumb {
      border: 2px solid rgba(0,0,0, 0.26);
      background: transparent; }
    .mdl-slider.is-upgraded.is-lowest-value::-moz-range-thumb {
      border: 2px solid rgba(0,0,0, 0.26);
      background: transparent; }
    .mdl-slider.is-upgraded.is-lowest-value +
.mdl-slider__background-flex > .mdl-slider__background-upper {
      left: 6px; }
    .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-webkit-slider-thumb {
      box-shadow: 0 0 0 10px rgba(0,0,0, 0.12);
      background: rgba(0,0,0, 0.12); }
    .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-moz-range-thumb {
      box-shadow: 0 0 0 10px rgba(0,0,0, 0.12);
      background: rgba(0,0,0, 0.12); }
    .mdl-slider.is-upgraded.is-lowest-value:active::-webkit-slider-thumb {
      border: 1.6px solid rgba(0,0,0, 0.26);
      transform: scale(1.5); }
    .mdl-slider.is-upgraded.is-lowest-value:active +
.mdl-slider__background-flex > .mdl-slider__background-upper {
      left: 9px; }
    .mdl-slider.is-upgraded.is-lowest-value:active::-moz-range-thumb {
      border: 1.5px solid rgba(0,0,0, 0.26);
      transform: scale(1.5); }
    .mdl-slider.is-upgraded.is-lowest-value::-ms-thumb {
      background: radial-gradient(circle closest-side, transparent 0%, transparent 66.67%, rgba(0,0,0, 0.26) 66.67%, rgba(0,0,0, 0.26) 100%); }
    .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-ms-thumb {
      background: radial-gradient(circle closest-side, rgba(0,0,0, 0.12) 0%, rgba(0,0,0, 0.12) 25%, rgba(0,0,0, 0.26) 25%, rgba(0,0,0, 0.26) 37.5%, rgba(0,0,0, 0.12) 37.5%, rgba(0,0,0, 0.12) 100%);
      transform: scale(1); }
    .mdl-slider.is-upgraded.is-lowest-value:active::-ms-thumb {
      transform: scale(0.5625);
      background: radial-gradient(circle closest-side, transparent 0%, transparent 77.78%, rgba(0,0,0, 0.26) 77.78%, rgba(0,0,0, 0.26) 100%); }
    .mdl-slider.is-upgraded.is-lowest-value::-ms-fill-lower {
      background: transparent; }
    .mdl-slider.is-upgraded.is-lowest-value::-ms-fill-upper {
      margin-left: 6px; }
    .mdl-slider.is-upgraded.is-lowest-value:active::-ms-fill-upper {
      margin-left: 9px; }
    .mdl-slider.is-upgraded:disabled:focus::-webkit-slider-thumb, .mdl-slider.is-upgraded:disabled:active::-webkit-slider-thumb, .mdl-slider.is-upgraded:disabled::-webkit-slider-thumb {
      transform: scale(0.667);
      background: rgba(0,0,0, 0.26); }
    .mdl-slider.is-upgraded:disabled:focus::-moz-range-thumb, .mdl-slider.is-upgraded:disabled:active::-moz-range-thumb, .mdl-slider.is-upgraded:disabled::-moz-range-thumb {
      transform: scale(0.667);
      background: rgba(0,0,0, 0.26); }
    .mdl-slider.is-upgraded:disabled +
.mdl-slider__background-flex > .mdl-slider__background-lower {
      background-color: rgba(0,0,0, 0.26);
      left: -6px; }
    .mdl-slider.is-upgraded:disabled +
.mdl-slider__background-flex > .mdl-slider__background-upper {
      left: 6px; }
    .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-webkit-slider-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-webkit-slider-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled::-webkit-slider-thumb {
      border: 3px solid rgba(0,0,0, 0.26);
      background: transparent;
      transform: scale(0.667); }
    .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-moz-range-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-moz-range-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled::-moz-range-thumb {
      border: 3px solid rgba(0,0,0, 0.26);
      background: transparent;
      transform: scale(0.667); }
    .mdl-slider.is-upgraded.is-lowest-value:disabled:active +
.mdl-slider__background-flex > .mdl-slider__background-upper {
      left: 6px; }
    .mdl-slider.is-upgraded:disabled:focus::-ms-thumb, .mdl-slider.is-upgraded:disabled:active::-ms-thumb, .mdl-slider.is-upgraded:disabled::-ms-thumb {
      transform: scale(0.25);
      background: rgba(0,0,0, 0.26); }
    .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-ms-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled::-ms-thumb {
      transform: scale(0.25);
      background: radial-gradient(circle closest-side, transparent 0%, transparent 50%, rgba(0,0,0, 0.26) 50%, rgba(0,0,0, 0.26) 100%); }
    .mdl-slider.is-upgraded:disabled::-ms-fill-lower {
      margin-right: 6px;
      background: linear-gradient(to right, transparent, transparent 25px, rgba(0,0,0, 0.26) 25px, rgba(0,0,0, 0.26) 0); }
    .mdl-slider.is-upgraded:disabled::-ms-fill-upper {
      margin-left: 6px; }
    .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-fill-upper {
      margin-left: 6px; }

.mdl-slider__ie-container {
  height: 18px;
  overflow: visible;
  border: none;
  margin: none;
  padding: none; }

.mdl-slider__container {
  height: 18px;
  position: relative;
  background: none;
  display: flex;
  flex-direction: row; }

.mdl-slider__background-flex {
  background: transparent;
  position: absolute;
  height: 2px;
  width: calc(100% - 52px);
  top: 50%;
  left: 0;
  margin: 0 26px;
  display: flex;
  overflow: hidden;
  border: 0;
  padding: 0;
  transform: translate(0, -1px); }

.mdl-slider__background-lower {
  background: rgb(63,81,181);
  flex: 0;
  position: relative;
  border: 0;
  padding: 0; }

.mdl-slider__background-upper {
  background: rgba(0,0,0, 0.26);
  flex: 0;
  position: relative;
  border: 0;
  padding: 0;
  transition: left 0.18s cubic-bezier(0.4, 0, 0.2, 1); }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
.mdl-spinner {
  display: inline-block;
  position: relative;
  width: 28px;
  height: 28px; }
  .mdl-spinner:not(.is-upgraded).is-active:after {
    content: "Loading..."; }
  .mdl-spinner.is-upgraded.is-active {
    animation: mdl-spinner__container-rotate 1568.23529ms linear infinite; }

@keyframes mdl-spinner__container-rotate {
  to {
    transform: rotate(360deg); } }

.mdl-spinner__layer {
  position: absolute;
  width: 100%;
  height: 100%;
  opacity: 0; }

.mdl-spinner__layer-1 {
  border-color: rgb(66,165,245); }
  .mdl-spinner--single-color .mdl-spinner__layer-1 {
    border-color: rgb(63,81,181); }
  .mdl-spinner.is-active .mdl-spinner__layer-1 {
    animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }

.mdl-spinner__layer-2 {
  border-color: rgb(244,67,54); }
  .mdl-spinner--single-color .mdl-spinner__layer-2 {
    border-color: rgb(63,81,181); }
  .mdl-spinner.is-active .mdl-spinner__layer-2 {
    animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }

.mdl-spinner__layer-3 {
  border-color: rgb(253,216,53); }
  .mdl-spinner--single-color .mdl-spinner__layer-3 {
    border-color: rgb(63,81,181); }
  .mdl-spinner.is-active .mdl-spinner__layer-3 {
    animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }

.mdl-spinner__layer-4 {
  border-color: rgb(76,175,80); }
  .mdl-spinner--single-color .mdl-spinner__layer-4 {
    border-color: rgb(63,81,181); }
  .mdl-spinner.is-active .mdl-spinner__layer-4 {
    animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }

@keyframes mdl-spinner__fill-unfill-rotate {
  12.5% {
    transform: rotate(135deg); }
  25% {
    transform: rotate(270deg); }
  37.5% {
    transform: rotate(405deg); }
  50% {
    transform: rotate(540deg); }
  62.5% {
    transform: rotate(675deg); }
  75% {
    transform: rotate(810deg); }
  87.5% {
    transform: rotate(945deg); }
  to {
    transform: rotate(1080deg); } }

/**
* HACK: Even though the intention is to have the current .mdl-spinner__layer-N
* at `opacity: 1`, we set it to `opacity: 0.99` instead since this forces Chrome
* to do proper subpixel rendering for the elements being animated. This is
* especially visible in Chrome 39 on Ubuntu 14.04. See:
*
* - https://github.com/Polymer/paper-spinner/issues/9
* - https://code.google.com/p/chromium/issues/detail?id=436255
*/
@keyframes mdl-spinner__layer-1-fade-in-out {
  from {
    opacity: 0.99; }
  25% {
    opacity: 0.99; }
  26% {
    opacity: 0; }
  89% {
    opacity: 0; }
  90% {
    opacity: 0.99; }
  100% {
    opacity: 0.99; } }

@keyframes mdl-spinner__layer-2-fade-in-out {
  from {
    opacity: 0; }
  15% {
    opacity: 0; }
  25% {
    opacity: 0.99; }
  50% {
    opacity: 0.99; }
  51% {
    opacity: 0; } }

@keyframes mdl-spinner__layer-3-fade-in-out {
  from {
    opacity: 0; }
  40% {
    opacity: 0; }
  50% {
    opacity: 0.99; }
  75% {
    opacity: 0.99; }
  76% {
    opacity: 0; } }

@keyframes mdl-spinner__layer-4-fade-in-out {
  from {
    opacity: 0; }
  65% {
    opacity: 0; }
  75% {
    opacity: 0.99; }
  90% {
    opacity: 0.99; }
  100% {
    opacity: 0; } }

/**
* Patch the gap that appear between the two adjacent
* div.mdl-spinner__circle-clipper while the spinner is rotating
* (appears on Chrome 38, Safari 7.1, and IE 11).
*
* Update: the gap no longer appears on Chrome when .mdl-spinner__layer-N's
* opacity is 0.99, but still does on Safari and IE.
*/
.mdl-spinner__gap-patch {
  position: absolute;
  box-sizing: border-box;
  top: 0;
  left: 45%;
  width: 10%;
  height: 100%;
  overflow: hidden;
  border-color: inherit; }
  .mdl-spinner__gap-patch .mdl-spinner__circle {
    width: 1000%;
    left: -450%; }

.mdl-spinner__circle-clipper {
  display: inline-block;
  position: relative;
  width: 50%;
  height: 100%;
  overflow: hidden;
  border-color: inherit; }
  .mdl-spinner__circle-clipper .mdl-spinner__circle {
    width: 200%; }

.mdl-spinner__circle {
  box-sizing: border-box;
  height: 100%;
  border-width: 3px;
  border-style: solid;
  border-color: inherit;
  border-bottom-color: transparent !important;
  border-radius: 50%;
  animation: none;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0; }
  .mdl-spinner__left .mdl-spinner__circle {
    border-right-color: transparent !important;
    transform: rotate(129deg); }
    .mdl-spinner.is-active .mdl-spinner__left .mdl-spinner__circle {
      animation: mdl-spinner__left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }
  .mdl-spinner__right .mdl-spinner__circle {
    left: -100%;
    border-left-color: transparent !important;
    transform: rotate(-129deg); }
    .mdl-spinner.is-active .mdl-spinner__right .mdl-spinner__circle {
      animation: mdl-spinner__right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }

@keyframes mdl-spinner__left-spin {
  from {
    transform: rotate(130deg); }
  50% {
    transform: rotate(-5deg); }
  to {
    transform: rotate(130deg); } }

@keyframes mdl-spinner__right-spin {
  from {
    transform: rotate(-130deg); }
  50% {
    transform: rotate(5deg); }
  to {
    transform: rotate(-130deg); } }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
.mdl-switch {
  position: relative;
  z-index: 1;
  vertical-align: middle;
  display: inline-block;
  box-sizing: border-box;
  width: 100%;
  height: 24px;
  margin: 0;
  padding: 0;
  overflow: visible;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none; }
  .mdl-switch.is-upgraded {
    padding-left: 28px; }

.mdl-switch__input {
  line-height: 24px; }
  .mdl-switch.is-upgraded .mdl-switch__input {
    position: absolute;
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    opacity: 0;
    -moz-appearance: none;
    -webkit-appearance: none;
    appearance: none;
    border: none; }

.mdl-switch__track {
  background: rgba(0,0,0, 0.26);
  position: absolute;
  left: 0;
  top: 5px;
  height: 14px;
  width: 36px;
  border-radius: 14px;
  cursor: pointer; }
  .mdl-switch.is-checked .mdl-switch__track {
    background: rgba(63,81,181, 0.5); }
  .mdl-switch.is-disabled .mdl-switch__track {
    background: rgba(0,0,0, 0.12);
    cursor: auto; }

.mdl-switch__thumb {
  background: rgb(250,250,250);
  position: absolute;
  left: 0;
  top: 2px;
  height: 20px;
  width: 20px;
  border-radius: 50%;
  cursor: pointer;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
  transition-duration: 0.28s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-property: left; }
  .mdl-switch.is-checked .mdl-switch__thumb {
    background: rgb(63,81,181);
    left: 16px;
    box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 1px 8px 0 rgba(0, 0, 0, 0.12); }
  .mdl-switch.is-disabled .mdl-switch__thumb {
    background: rgb(189,189,189);
    cursor: auto; }

.mdl-switch__focus-helper {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-4px, -4px);
  display: inline-block;
  box-sizing: border-box;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: transparent; }
  .mdl-switch.is-focused .mdl-switch__focus-helper {
    box-shadow: 0 0 0px 20px rgba(0, 0, 0, 0.1);
    background-color: rgba(0, 0, 0, 0.1); }
  .mdl-switch.is-focused.is-checked .mdl-switch__focus-helper {
    box-shadow: 0 0 0px 20px rgba(63,81,181, 0.26);
    background-color: rgba(63,81,181, 0.26); }

.mdl-switch__label {
  position: relative;
  cursor: pointer;
  font-size: 16px;
  line-height: 24px;
  margin: 0;
  left: 24px; }
  .mdl-switch.is-disabled .mdl-switch__label {
    color: rgb(189,189,189);
    cursor: auto; }

.mdl-switch__ripple-container {
  position: absolute;
  z-index: 2;
  top: -12px;
  left: -14px;
  box-sizing: border-box;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  cursor: pointer;
  overflow: hidden;
  -webkit-mask-image: -webkit-radial-gradient(circle, white, black);
  transition-duration: 0.40s;
  transition-timing-function: step-end;
  transition-property: left; }
  .mdl-switch__ripple-container .mdl-ripple {
    background: rgb(63,81,181); }
  .mdl-switch.is-disabled .mdl-switch__ripple-container {
    cursor: auto; }
  .mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple {
    background: transparent; }
  .mdl-switch.is-checked .mdl-switch__ripple-container {
    cursor: auto;
    left: 2px; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
.mdl-tabs {
  display: block;
  width: 100%; }

.mdl-tabs__tab-bar {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-content: space-between;
  align-items: flex-start;
  height: 48px;
  padding: 0 0 0 0;
  margin: 0;
  border-bottom: 1px solid rgb(224,224,224); }

.mdl-tabs__tab {
  margin: 0;
  border: none;
  padding: 0 24px 0 24px;
  float: left;
  position: relative;
  display: block;
  color: red;
  text-decoration: none;
  height: 48px;
  line-height: 48px;
  text-align: center;
  font-weight: 500;
  font-size: 14px;
  text-transform: uppercase;
  color: rgba(0,0,0, 0.54);
  overflow: hidden; }
  .mdl-tabs.is-upgraded .mdl-tabs__tab.is-active {
    color: rgba(0,0,0, 0.87); }
  .mdl-tabs.is-upgraded .mdl-tabs__tab.is-active:after {
    height: 2px;
    width: 100%;
    display: block;
    content: " ";
    bottom: 0px;
    left: 0px;
    position: absolute;
    background: rgb(63,81,181);
    animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;
    transition: all 1s cubic-bezier(0.4, 0, 1, 1); }
  .mdl-tabs__tab .mdl-tabs__ripple-container {
    display: block;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0px;
    top: 0px;
    z-index: 1;
    overflow: hidden; }
    .mdl-tabs__tab .mdl-tabs__ripple-container .mdl-ripple {
      background: rgb(63,81,181); }

.mdl-tabs__panel {
  display: block; }
  .mdl-tabs.is-upgraded .mdl-tabs__panel {
    display: none; }
  .mdl-tabs.is-upgraded .mdl-tabs__panel.is-active {
    display: block; }

@keyframes border-expand {
  0% {
    opacity: 0;
    width: 0; }
  100% {
    opacity: 1;
    width: 100%; } }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
.mdl-textfield {
  position: relative;
  font-size: 16px;
  display: inline-block;
  box-sizing: border-box;
  width: 300px;
  max-width: 100%;
  margin: 0;
  padding: 20px 0; }
  .mdl-textfield .mdl-button {
    position: absolute;
    bottom: 20px; }

.mdl-textfield--align-right {
  text-align: right; }

.mdl-textfield--full-width {
  width: 100%; }

.mdl-textfield--expandable {
  min-width: 32px;
  width: auto;
  min-height: 32px; }

.mdl-textfield__input {
  border: none;
  border-bottom: 1px solid rgba(0,0,0, 0.12);
  display: block;
  font-size: 16px;
  margin: 0;
  padding: 4px 0;
  width: 100%;
  background: none;
  text-align: left;
  color: inherit; }
  .mdl-textfield.is-focused .mdl-textfield__input {
    outline: none; }
  .mdl-textfield.is-invalid .mdl-textfield__input {
    border-color: rgb(222, 50, 38);
    box-shadow: none; }
  .mdl-textfield.is-disabled .mdl-textfield__input {
    background-color: transparent;
    border-bottom: 1px dotted rgba(0,0,0, 0.12);
    color: rgba(0,0,0, 0.26); }

.mdl-textfield textarea.mdl-textfield__input {
  display: block; }

.mdl-textfield__label {
  bottom: 0;
  color: rgba(0,0,0, 0.26);
  font-size: 16px;
  left: 0;
  right: 0;
  pointer-events: none;
  position: absolute;
  display: block;
  top: 24px;
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
  text-align: left; }
  .mdl-textfield.is-dirty .mdl-textfield__label {
    visibility: hidden; }
  .mdl-textfield--floating-label .mdl-textfield__label {
    transition-duration: 0.2s;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }
  .mdl-textfield.is-disabled.is-disabled .mdl-textfield__label {
    color: rgba(0,0,0, 0.26); }
  .mdl-textfield--floating-label.is-focused .mdl-textfield__label,
  .mdl-textfield--floating-label.is-dirty .mdl-textfield__label {
    color: rgb(63,81,181);
    font-size: 12px;
    top: 4px;
    visibility: visible; }
  .mdl-textfield--floating-label.is-focused .mdl-textfield__expandable-holder .mdl-textfield__label,
  .mdl-textfield--floating-label.is-dirty .mdl-textfield__expandable-holder .mdl-textfield__label {
    top: -16px; }
  .mdl-textfield--floating-label.is-invalid .mdl-textfield__label {
    color: rgb(222, 50, 38);
    font-size: 12px; }
  .mdl-textfield__label:after {
    background-color: rgb(63,81,181);
    bottom: 20px;
    content: '';
    height: 2px;
    left: 45%;
    position: absolute;
    transition-duration: 0.2s;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    visibility: hidden;
    width: 10px; }
  .mdl-textfield.is-focused .mdl-textfield__label:after {
    left: 0;
    visibility: visible;
    width: 100%; }
  .mdl-textfield.is-invalid .mdl-textfield__label:after {
    background-color: rgb(222, 50, 38); }

.mdl-textfield__error {
  color: rgb(222, 50, 38);
  position: absolute;
  font-size: 12px;
  margin-top: 3px;
  visibility: hidden;
  display: block; }
  .mdl-textfield.is-invalid .mdl-textfield__error {
    visibility: visible; }

.mdl-textfield__expandable-holder {
  display: inline-block;
  position: relative;
  margin-left: 32px;
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  display: inline-block;
  max-width: 0.1px; }
  .mdl-textfield.is-focused .mdl-textfield__expandable-holder, .mdl-textfield.is-dirty .mdl-textfield__expandable-holder {
    max-width: 600px; }
  .mdl-textfield__expandable-holder .mdl-textfield__label:after {
    bottom: 0; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
.mdl-tooltip {
  transform: scale(0);
  transform-origin: top center;
  will-change: transform;
  z-index: 999;
  background: rgba(97,97,97, 0.9);
  border-radius: 2px;
  color: rgb(255,255,255);
  display: inline-block;
  font-size: 10px;
  font-weight: 500;
  line-height: 14px;
  max-width: 170px;
  position: fixed;
  top: -500px;
  left: -500px;
  padding: 8px;
  text-align: center; }

.mdl-tooltip.is-active {
  animation: pulse 200ms cubic-bezier(0, 0, 0.2, 1) forwards; }

.mdl-tooltip--large {
  line-height: 14px;
  font-size: 14px;
  padding: 16px; }

@keyframes pulse {
  0% {
    transform: scale(0);
    opacity: 0; }
  50% {
    transform: scale(0.99); }
  100% {
    transform: scale(1);
    opacity: 1;
    visibility: visible; } }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
.mdl-shadow--2dp {
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }

.mdl-shadow--3dp {
  box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 1px 8px 0 rgba(0, 0, 0, 0.12); }

.mdl-shadow--4dp {
  box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2); }

.mdl-shadow--6dp {
  box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12), 0 3px 5px -1px rgba(0, 0, 0, 0.2); }

.mdl-shadow--8dp {
  box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2); }

.mdl-shadow--16dp {
  box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2); }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*
* NOTE: Some rules here are applied using duplicate selectors.
* This is on purpose to increase their specificity when applied.
* For example: `.mdl-cell--1-col-phone.mdl-cell--1-col-phone`
*/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
.mdl-grid {
  display: flex;
  flex-flow: row wrap;
  margin: 0 auto 0 auto;
  align-items: stretch; }
  .mdl-grid.mdl-grid--no-spacing {
    padding: 0; }

.mdl-cell {
  box-sizing: border-box; }

.mdl-cell--top {
  align-self: flex-start; }

.mdl-cell--middle {
  align-self: center; }

.mdl-cell--bottom {
  align-self: flex-end; }

.mdl-cell--stretch {
  align-self: stretch; }

.mdl-grid.mdl-grid--no-spacing > .mdl-cell {
  margin: 0; }

@media (max-width: 479px) {
  .mdl-grid {
    padding: 8px; }
  .mdl-cell {
    margin: 8px;
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell {
      width: 100%; }
  .mdl-cell--hide-phone {
    display: none !important; }
  .mdl-cell--1-col,
  .mdl-cell--1-col-phone.mdl-cell--1-col-phone {
    width: calc(25% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--1-col, .mdl-grid--no-spacing >
    .mdl-cell--1-col-phone.mdl-cell--1-col-phone {
      width: 25%; }
  .mdl-cell--2-col,
  .mdl-cell--2-col-phone.mdl-cell--2-col-phone {
    width: calc(50% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--2-col, .mdl-grid--no-spacing >
    .mdl-cell--2-col-phone.mdl-cell--2-col-phone {
      width: 50%; }
  .mdl-cell--3-col,
  .mdl-cell--3-col-phone.mdl-cell--3-col-phone {
    width: calc(75% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--3-col, .mdl-grid--no-spacing >
    .mdl-cell--3-col-phone.mdl-cell--3-col-phone {
      width: 75%; }
  .mdl-cell--4-col,
  .mdl-cell--4-col-phone.mdl-cell--4-col-phone {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--4-col, .mdl-grid--no-spacing >
    .mdl-cell--4-col-phone.mdl-cell--4-col-phone {
      width: 100%; }
  .mdl-cell--5-col,
  .mdl-cell--5-col-phone.mdl-cell--5-col-phone {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--5-col, .mdl-grid--no-spacing >
    .mdl-cell--5-col-phone.mdl-cell--5-col-phone {
      width: 100%; }
  .mdl-cell--6-col,
  .mdl-cell--6-col-phone.mdl-cell--6-col-phone {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--6-col, .mdl-grid--no-spacing >
    .mdl-cell--6-col-phone.mdl-cell--6-col-phone {
      width: 100%; }
  .mdl-cell--7-col,
  .mdl-cell--7-col-phone.mdl-cell--7-col-phone {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--7-col, .mdl-grid--no-spacing >
    .mdl-cell--7-col-phone.mdl-cell--7-col-phone {
      width: 100%; }
  .mdl-cell--8-col,
  .mdl-cell--8-col-phone.mdl-cell--8-col-phone {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--8-col, .mdl-grid--no-spacing >
    .mdl-cell--8-col-phone.mdl-cell--8-col-phone {
      width: 100%; }
  .mdl-cell--9-col,
  .mdl-cell--9-col-phone.mdl-cell--9-col-phone {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--9-col, .mdl-grid--no-spacing >
    .mdl-cell--9-col-phone.mdl-cell--9-col-phone {
      width: 100%; }
  .mdl-cell--10-col,
  .mdl-cell--10-col-phone.mdl-cell--10-col-phone {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--10-col, .mdl-grid--no-spacing >
    .mdl-cell--10-col-phone.mdl-cell--10-col-phone {
      width: 100%; }
  .mdl-cell--11-col,
  .mdl-cell--11-col-phone.mdl-cell--11-col-phone {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--11-col, .mdl-grid--no-spacing >
    .mdl-cell--11-col-phone.mdl-cell--11-col-phone {
      width: 100%; }
  .mdl-cell--12-col,
  .mdl-cell--12-col-phone.mdl-cell--12-col-phone {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--12-col, .mdl-grid--no-spacing >
    .mdl-cell--12-col-phone.mdl-cell--12-col-phone {
      width: 100%; } }

@media (min-width: 480px) and (max-width: 839px) {
  .mdl-grid {
    padding: 8px; }
  .mdl-cell {
    margin: 8px;
    width: calc(50% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell {
      width: 50%; }
  .mdl-cell--hide-tablet {
    display: none !important; }
  .mdl-cell--1-col,
  .mdl-cell--1-col-tablet.mdl-cell--1-col-tablet {
    width: calc(12.5% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--1-col, .mdl-grid--no-spacing >
    .mdl-cell--1-col-tablet.mdl-cell--1-col-tablet {
      width: 12.5%; }
  .mdl-cell--2-col,
  .mdl-cell--2-col-tablet.mdl-cell--2-col-tablet {
    width: calc(25% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--2-col, .mdl-grid--no-spacing >
    .mdl-cell--2-col-tablet.mdl-cell--2-col-tablet {
      width: 25%; }
  .mdl-cell--3-col,
  .mdl-cell--3-col-tablet.mdl-cell--3-col-tablet {
    width: calc(37.5% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--3-col, .mdl-grid--no-spacing >
    .mdl-cell--3-col-tablet.mdl-cell--3-col-tablet {
      width: 37.5%; }
  .mdl-cell--4-col,
  .mdl-cell--4-col-tablet.mdl-cell--4-col-tablet {
    width: calc(50% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--4-col, .mdl-grid--no-spacing >
    .mdl-cell--4-col-tablet.mdl-cell--4-col-tablet {
      width: 50%; }
  .mdl-cell--5-col,
  .mdl-cell--5-col-tablet.mdl-cell--5-col-tablet {
    width: calc(62.5% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--5-col, .mdl-grid--no-spacing >
    .mdl-cell--5-col-tablet.mdl-cell--5-col-tablet {
      width: 62.5%; }
  .mdl-cell--6-col,
  .mdl-cell--6-col-tablet.mdl-cell--6-col-tablet {
    width: calc(75% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--6-col, .mdl-grid--no-spacing >
    .mdl-cell--6-col-tablet.mdl-cell--6-col-tablet {
      width: 75%; }
  .mdl-cell--7-col,
  .mdl-cell--7-col-tablet.mdl-cell--7-col-tablet {
    width: calc(87.5% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--7-col, .mdl-grid--no-spacing >
    .mdl-cell--7-col-tablet.mdl-cell--7-col-tablet {
      width: 87.5%; }
  .mdl-cell--8-col,
  .mdl-cell--8-col-tablet.mdl-cell--8-col-tablet {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--8-col, .mdl-grid--no-spacing >
    .mdl-cell--8-col-tablet.mdl-cell--8-col-tablet {
      width: 100%; }
  .mdl-cell--9-col,
  .mdl-cell--9-col-tablet.mdl-cell--9-col-tablet {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--9-col, .mdl-grid--no-spacing >
    .mdl-cell--9-col-tablet.mdl-cell--9-col-tablet {
      width: 100%; }
  .mdl-cell--10-col,
  .mdl-cell--10-col-tablet.mdl-cell--10-col-tablet {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--10-col, .mdl-grid--no-spacing >
    .mdl-cell--10-col-tablet.mdl-cell--10-col-tablet {
      width: 100%; }
  .mdl-cell--11-col,
  .mdl-cell--11-col-tablet.mdl-cell--11-col-tablet {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--11-col, .mdl-grid--no-spacing >
    .mdl-cell--11-col-tablet.mdl-cell--11-col-tablet {
      width: 100%; }
  .mdl-cell--12-col,
  .mdl-cell--12-col-tablet.mdl-cell--12-col-tablet {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--12-col, .mdl-grid--no-spacing >
    .mdl-cell--12-col-tablet.mdl-cell--12-col-tablet {
      width: 100%; } }

@media (min-width: 840px) {
  .mdl-grid {
    padding: 8px; }
  .mdl-cell {
    margin: 8px;
    width: calc(33.33333% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell {
      width: 33.33333%; }
  .mdl-cell--hide-desktop {
    display: none !important; }
  .mdl-cell--1-col,
  .mdl-cell--1-col-desktop.mdl-cell--1-col-desktop {
    width: calc(8.33333% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--1-col, .mdl-grid--no-spacing >
    .mdl-cell--1-col-desktop.mdl-cell--1-col-desktop {
      width: 8.33333%; }
  .mdl-cell--2-col,
  .mdl-cell--2-col-desktop.mdl-cell--2-col-desktop {
    width: calc(16.66667% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--2-col, .mdl-grid--no-spacing >
    .mdl-cell--2-col-desktop.mdl-cell--2-col-desktop {
      width: 16.66667%; }
  .mdl-cell--3-col,
  .mdl-cell--3-col-desktop.mdl-cell--3-col-desktop {
    width: calc(25% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--3-col, .mdl-grid--no-spacing >
    .mdl-cell--3-col-desktop.mdl-cell--3-col-desktop {
      width: 25%; }
  .mdl-cell--4-col,
  .mdl-cell--4-col-desktop.mdl-cell--4-col-desktop {
    width: calc(33.33333% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--4-col, .mdl-grid--no-spacing >
    .mdl-cell--4-col-desktop.mdl-cell--4-col-desktop {
      width: 33.33333%; }
  .mdl-cell--5-col,
  .mdl-cell--5-col-desktop.mdl-cell--5-col-desktop {
    width: calc(41.66667% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--5-col, .mdl-grid--no-spacing >
    .mdl-cell--5-col-desktop.mdl-cell--5-col-desktop {
      width: 41.66667%; }
  .mdl-cell--6-col,
  .mdl-cell--6-col-desktop.mdl-cell--6-col-desktop {
    width: calc(50% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--6-col, .mdl-grid--no-spacing >
    .mdl-cell--6-col-desktop.mdl-cell--6-col-desktop {
      width: 50%; }
  .mdl-cell--7-col,
  .mdl-cell--7-col-desktop.mdl-cell--7-col-desktop {
    width: calc(58.33333% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--7-col, .mdl-grid--no-spacing >
    .mdl-cell--7-col-desktop.mdl-cell--7-col-desktop {
      width: 58.33333%; }
  .mdl-cell--8-col,
  .mdl-cell--8-col-desktop.mdl-cell--8-col-desktop {
    width: calc(66.66667% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--8-col, .mdl-grid--no-spacing >
    .mdl-cell--8-col-desktop.mdl-cell--8-col-desktop {
      width: 66.66667%; }
  .mdl-cell--9-col,
  .mdl-cell--9-col-desktop.mdl-cell--9-col-desktop {
    width: calc(75% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--9-col, .mdl-grid--no-spacing >
    .mdl-cell--9-col-desktop.mdl-cell--9-col-desktop {
      width: 75%; }
  .mdl-cell--10-col,
  .mdl-cell--10-col-desktop.mdl-cell--10-col-desktop {
    width: calc(83.33333% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--10-col, .mdl-grid--no-spacing >
    .mdl-cell--10-col-desktop.mdl-cell--10-col-desktop {
      width: 83.33333%; }
  .mdl-cell--11-col,
  .mdl-cell--11-col-desktop.mdl-cell--11-col-desktop {
    width: calc(91.66667% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--11-col, .mdl-grid--no-spacing >
    .mdl-cell--11-col-desktop.mdl-cell--11-col-desktop {
      width: 91.66667%; }
  .mdl-cell--12-col,
  .mdl-cell--12-col-desktop.mdl-cell--12-col-desktop {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--12-col, .mdl-grid--no-spacing >
    .mdl-cell--12-col-desktop.mdl-cell--12-col-desktop {
      width: 100%; } }

.md-fab-bottom-right {
  position: absolute;
  bottom: 20px;
  right: 20px;
  z-index: 49; }

md-card h1, md-card h2, md-card h3, md-card h4, md-card h5, md-card h6 {
  margin-top: 0;
  margin-bottom: 0; }

md-card md-toolbar {
  min-height: 56px;
  background-color: #ffffff !important;
  z-index: 0; }
  md-card md-toolbar .md-toolbar-tools {
    height: 56px;
    max-height: 56px;
    border-bottom: 1px solid #ddd;
    font-weight: 500;
    font-size: 16px; }
  md-card md-toolbar .md-toolbar-tools, md-card md-toolbar md-icon {
    color: #3d4653 !important; }

.card {
  background-color: #ffffff !important; }
  .card-icon {
    max-width: 96px; }
    .card-icon md-icon {
      float: right;
      height: 36px;
      width: 36px;
      padding: 12px;
      background-color: #646b75;
      color: #ffffff;
      border: 8px double;
      border-radius: 50%; }
  .card-info__value {
    color: #273140 !important;
    font-weight: 700; }
  .card-info__name {
    color: #3d4653 !important;
    text-transform: uppercase;
    font-weight: 500;
    font-size: 14px; }

@media (max-width: 599px) {
  .card-info {
    text-align: center; } }

.dtp > .dtp-content > .dtp-date-view > header.dtp-header {
  background-color: #273140; }

.dtp div.dtp-date,
.dtp div.dtp-time,
.dtp .dtp-actual-meridien a.selected,
.dtp .dtp-picker-time > a.dtp-select-hour.selected {
  background-color: #3d4653; }

.dtp .p10 > a,
.dtp .dtp-hand.on,
.dtp table.dtp-picker-days tr > td > a.selected,
.dtp .dtp-picker-time > a.dtp-select-minute.selected {
  background-color: #3d4653; }

.dtp div.dtp-actual-year,
.dtp div.dtp-year-btn {
  color: #bdbdbd; }

.dtp .dtp-picker-month {
  margin-top: 8px;
  padding-top: 8px;
  padding-bottom: 8px;
  background-color: #ecedee;
  color: #3d4653; }

md-input-container.md-default-theme .md-input[disabled],
md-input-container .md-input[disabled],
md-input-container.md-default-theme .md-input [disabled],
md-input-container .md-input [disabled] {
  color: rgba(0, 0, 0, 0.6); }

header {
  z-index: 60; }

@media (max-width: 599px) {
  header md-toolbar .md-button.md-icon-button {
    margin: 0; } }

md-content {
  overflow-x: hidden;
  background-color: #ecedee; }

md-select-menu md-content {
  background-color: #ffffff; }
  md-select-menu md-content md-option:hover, md-select-menu md-content md-option:focus {
    color: #3d4653 !important;
    background-color: #dfe0e3 !important; }

md-toolbar {
  background-color: #273140 !important; }

.md-content-subheader {
  padding: 4px 8px;
  background-color: #f2f2f3;
  color: #424242;
  font-weight: 400;
  font-size: 14px; }

md-checkbox.md-checked .md-icon {
  background-color: #1080f2; }
  md-checkbox.md-checked .md-icon::after {
    border-color: #ffffff; }

md-tooltip {
  font-size: 14px; }

.fab-closed-icon, .fab-open-icon {
  position: absolute;
  top: 17px;
  left: 16px;
  transition: all .3s ease-in-out;
  opacity: 1;
  transform: scale(1); }

.fab-open-icon {
  opacity: 0;
  transform: scale(0); }

.md-is-open .fab-closed-icon {
  opacity: 0;
  transform: scale(0); }

.md-is-open .fab-open-icon {
  opacity: 1;
  transform: scale(1); }

md-menu-content .md-button {
  margin: 0;
  padding: 4px 0; }
  md-menu-content .md-button:hover, md-menu-content .md-button:focus {
    color: #3d4653 !important;
    background-color: #dfe0e3 !important; }
  md-menu-content .md-button:active {
    color: #3d4653 !important;
    background-color: #c4c6cb; }

md-tabs {
  padding-right: 8px;
  padding-left: 8px;
  background-color: #ffffff;
  border-bottom: 1px solid #bdbdbd;
  border-radius: 0; }
  md-tabs:not(.md-no-tab-content):not(.md-dynamic-height) {
    min-height: 0 !important; }
  md-tabs md-ink-bar {
    color: #1080f2 !important;
    background: #1080f2 !important; }
  md-tabs md-tab-content {
    background-color: #ecedee;
    border-top: 1px solid #bdbdbd; }
  md-tabs md-icon {
    color: #757575; }
  md-tabs .md-tab {
    color: #757575 !important; }
    md-tabs .md-tab.md-active {
      color: #1080f2 !important;
      font-weight: 700; }

@media (min-width: 600px) {
  md-tabs {
    padding-right: 24px;
    padding-left: 24px; } }

.md-tab-interval {
  background-color: #ecedee;
  border-bottom: 1px solid #bdbdbd; }
  .md-tab-interval div > * {
    margin-right: 32px; }
    .md-tab-interval div > *:last-of-type {
      margin-right: 8px; }
  .md-tab-interval #quickInterval {
    min-width: 120px; }
  .md-tab-interval #periodInterval {
    min-width: 160px; }
  .md-tab-interval .md-content-title {
    padding-bottom: 16px;
    text-transform: uppercase;
    font-weight: 700; }
  .md-tab-interval md-input-container {
    margin-bottom: 0; }
    .md-tab-interval md-input-container .md-errors-spacer {
      min-height: 8px; }
  .md-tab-interval ol, .md-tab-interval ul {
    margin-left: 0;
    padding-left: 0;
    list-style-type: none;
    text-transform: uppercase; }
    .md-tab-interval ol li, .md-tab-interval ul li {
      padding: 2px 8px;
      margin-bottom: 4px;
      color: #424242;
      font-weight: 500; }
      .md-tab-interval ol li:hover, .md-tab-interval ul li:hover {
        cursor: pointer; }
      .md-tab-interval ol li:hover, .md-tab-interval ol li:active, .md-tab-interval ol li:focus, .md-tab-interval ul li:hover, .md-tab-interval ul li:active, .md-tab-interval ul li:focus {
        color: #ffffff;
        background-color: #1080f2;
        border-radius: 2px; }

.subheader-period {
  background-color: #f2f2f3;
  border-bottom: 1px solid #bdbdbd; }
  .subheader-period .md-subheader-inner {
    padding: 0 32px 0 16px; }
  .subheader-period .subheader-title {
    color: #757575;
    font-weight: 500;
    font-size: 16px; }
  .subheader-period button:last-of-type {
    margin-right: 0; }
  .subheader-period md-input-container {
    margin-top: 4px;
    margin-bottom: 4px; }
    .subheader-period md-input-container .md-errors-spacer {
      min-height: 0; }

#seekerSummary md-pagination-wrapper {
  width: auto !important; }

#seekerComparative md-pagination-wrapper {
  width: auto !important; }

md-sidenav md-content, md-sidenav md-content .md-subheader {
  background-color: transparent; }

md-sidenav md-divider {
  margin-top: 4px;
  margin-bottom: 4px; }

md-sidenav md-list-item md-icon {
  margin: 0 8px 0 0; }

md-sidenav md-list-item .md-list-item-inner {
  margin-top: 0 !important;
  margin-bottom: 0 !important; }
  md-sidenav md-list-item .md-list-item-inner md-icon {
    margin-top: 0 !important;
    margin-bottom: 0 !important; }

md-sidenav md-list-item:active, md-sidenav md-list-item:focus, md-sidenav md-list-item:hover {
  background-color: #dfe0e3;
  color: #3d4653; }
  md-sidenav md-list-item:active md-icon, md-sidenav md-list-item:focus md-icon, md-sidenav md-list-item:hover md-icon {
    color: #3d4653 !important; }

md-sidenav .md-avatar {
  height: 64px;
  width: 64px; }
  md-sidenav .md-avatar img {
    height: 64px;
    width: 64px;
    border-radius: 50%; }

md-sidenav .toolbar-header {
  background-image: url("../../assets/images/bg-header.png");
  background-blend-mode: multiply;
  background-repeat: no-repeat; }

#sidenavMenu {
  width: 240px;
  max-width: 240px;
  height: inherit; }
  #sidenavMenu md-toolbar {
    padding: 16px;
    height: 160px;
    min-height: 160px;
    max-height: 160px; }
  #sidenavMenu md-content {
    height: inherit; }

@media (min-width: 1280px) {
  #sidenavMenu {
    z-index: 58;
    border-left: 1px solid #bdbdbd; } }

#sidenavFilter {
  width: 320px;
  max-width: 320px;
  position: fixed;
  top: 0; }
  #sidenavFilter md-tabs md-tab-content {
    background-color: #ffffff; }
  #sidenavFilter md-list-item {
    border-bottom: 1px solid #f1f2f2; }
    #sidenavFilter md-list-item:last-of-type {
      border-bottom: none; }

thead {
  text-transform: uppercase; }

.td-colored {
  max-width: 100px; }

h1,
h2,
h3,
h4,
h5,
h6 {
  color: #3d4653;
  margin: 0;
  padding: 0; }

small {
  opacity: .6; }

a {
  color: #3d4653; }
  a:focus, a:hover, a:active {
    color: #273140; }

.fsense-reset-container {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100%;
  padding: 24px;
  background-color: #F3F4F6; }
  .fsense-reset-container .fsense-card {
    background-color: #FFFFFF;
    border-radius: 24px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    padding: 64px;
    text-align: center; }
    .fsense-reset-container .fsense-card .fsense-logo-container {
      margin-bottom: 25px;
      position: relative;
      z-index: 99;
      flex-shrink: 0;
      width: 100%; }
      .fsense-reset-container .fsense-card .fsense-logo-container .fsense-logo {
        width: 150px; }
    .fsense-reset-container .fsense-card h1 {
      margin: 0 0 8px 0;
      font-size: 28px;
      font-weight: 700;
      color: #111827; }
    .fsense-reset-container .fsense-card p {
      margin: 0;
      font-size: 15px;
      color: #6B7280; }
    .fsense-reset-container .fsense-card .md-outlined-input-container {
      width: 100%; }
      .fsense-reset-container .fsense-card .md-outlined-input-container .md-errors-spacer {
        min-height: auto; }
      .fsense-reset-container .fsense-card .md-outlined-input-container .md-input[disabled] {
        border: 1px solid rgba(118, 118, 118, 0.3);
        background-image: none;
        background-color: light-dark(rgba(239, 239, 239, 0.3), rgba(59, 59, 59, 0.3)); }
      .fsense-reset-container .fsense-card .md-outlined-input-container .md-input {
        border: 1px solid #673ab7;
        border-radius: 12px;
        min-height: 56px;
        background-color: transparent;
        padding: 0 16px 0 16px;
        align-items: center;
        justify-content: center; }
        .fsense-reset-container .fsense-card .md-outlined-input-container .md-input::-moz-placeholder {
          color: #9CA3AF;
          opacity: 1; }
        .fsense-reset-container .fsense-card .md-outlined-input-container .md-input::placeholder {
          color: #9CA3AF;
          opacity: 1; }
      .fsense-reset-container .fsense-card .md-outlined-input-container.md-input-invalid .md-input {
        border: 2px solid #dd2c00 !important; }
      .fsense-reset-container .fsense-card .md-outlined-input-container.md-input-invalid label {
        color: #dd2c00 !important; }
      .fsense-reset-container .fsense-card .md-outlined-input-container.md-input-valid label {
        color: #673ab7; }
      .fsense-reset-container .fsense-card .md-outlined-input-container.md-input-focused .md-input {
        border: 2px solid #673ab7 !important;
        padding: 0 16px 0 16px; }
      .fsense-reset-container .fsense-card .md-outlined-input-container.md-input-focused label {
        color: #673ab7 !important;
        padding: 0 4px 0 4px; }
      .fsense-reset-container .fsense-card .md-outlined-input-container .label-desativada {
        color: #aaaaaa !important; }
      .fsense-reset-container .fsense-card .md-outlined-input-container:not(.md-input-invalid).md-input-has-value label {
        color: #673ab7; }
      .fsense-reset-container .fsense-card .md-outlined-input-container label {
        overflow: visible !important;
        top: -13px;
        left: 12px !important;
        padding: 0 4px 0 4px !important;
        color: #673ab7;
        font-weight: 400;
        font-size: 16px;
        transform-origin: unset !important;
        background-color: #FFFFFF;
        width: auto !important;
        height: auto; }
    .fsense-reset-container .fsense-card .fsense-btn {
      margin-top: 24px;
      border-radius: 24px;
      font-weight: 600; }
    .fsense-reset-container .fsense-card .fsense-link {
      margin-top: 32px; }
      .fsense-reset-container .fsense-card .fsense-link a {
        color: #673ab7;
        font-weight: 600;
        font-size: 14px;
        text-decoration: none; }
    .fsense-reset-container .fsense-card .fsense-success-icon {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 64px;
      height: 64px;
      background-color: #10B981;
      border-radius: 50%;
      margin: 0 auto 24px auto;
      box-shadow: 0 10px 15px -3px rgba(16, 185, 129, 0.3); }
      .fsense-reset-container .fsense-card .fsense-success-icon i {
        font-size: 32px;
        color: white; }
    .fsense-reset-container .fsense-card md-progress-circular.custom-progress {
      margin: 0 16px 16px 16px; }
      .fsense-reset-container .fsense-card md-progress-circular.custom-progress path {
        stroke: #673ab7; }

.fsense-reset-password-container {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100%;
  padding: 24px;
  background-color: #F3F4F6; }
  .fsense-reset-password-container .fsense-card {
    background-color: #FFFFFF;
    border-radius: 24px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    padding: 64px;
    text-align: center;
    width: 100%;
    max-width: 480px; }
    .fsense-reset-password-container .fsense-card .fsense-logo-container {
      margin-bottom: 25px;
      position: relative;
      z-index: 99;
      flex-shrink: 0;
      width: 100%; }
      .fsense-reset-password-container .fsense-card .fsense-logo-container .fsense-logo {
        width: 150px; }
    .fsense-reset-password-container .fsense-card h1 {
      margin: 0 0 8px 0;
      font-size: 28px;
      font-weight: 700;
      color: #111827; }
    .fsense-reset-password-container .fsense-card p {
      margin: 0 0 10px 0;
      font-size: 15px;
      color: #6B7280;
      line-height: 1.5; }
    .fsense-reset-password-container .fsense-card .md-outlined-input-container {
      width: 100%; }
      .fsense-reset-password-container .fsense-card .md-outlined-input-container .md-errors-spacer {
        min-height: auto; }
      .fsense-reset-password-container .fsense-card .md-outlined-input-container .md-input[disabled] {
        border: 1px solid rgba(118, 118, 118, 0.3);
        background-image: none;
        background-color: light-dark(rgba(239, 239, 239, 0.3), rgba(59, 59, 59, 0.3)); }
      .fsense-reset-password-container .fsense-card .md-outlined-input-container .md-input {
        border: 1px solid #673ab7;
        border-radius: 12px;
        min-height: 56px;
        background-color: transparent;
        padding: 0 16px 0 16px;
        align-items: center;
        justify-content: center; }
        .fsense-reset-password-container .fsense-card .md-outlined-input-container .md-input::-moz-placeholder {
          color: #9CA3AF;
          opacity: 1; }
        .fsense-reset-password-container .fsense-card .md-outlined-input-container .md-input::placeholder {
          color: #9CA3AF;
          opacity: 1; }
      .fsense-reset-password-container .fsense-card .md-outlined-input-container.md-input-invalid .md-input {
        border: 2px solid #dd2c00 !important; }
      .fsense-reset-password-container .fsense-card .md-outlined-input-container.md-input-invalid label {
        color: #dd2c00 !important; }
      .fsense-reset-password-container .fsense-card .md-outlined-input-container.md-input-valid label {
        color: #673ab7; }
      .fsense-reset-password-container .fsense-card .md-outlined-input-container.md-input-focused .md-input {
        border: 2px solid #673ab7 !important;
        padding: 0 16px 0 16px; }
      .fsense-reset-password-container .fsense-card .md-outlined-input-container.md-input-focused label {
        color: #673ab7 !important;
        padding: 0 4px 0 4px; }
      .fsense-reset-password-container .fsense-card .md-outlined-input-container .label-desativada {
        color: #aaaaaa !important; }
      .fsense-reset-password-container .fsense-card .md-outlined-input-container:not(.md-input-invalid).md-input-has-value label {
        color: #673ab7; }
      .fsense-reset-password-container .fsense-card .md-outlined-input-container label {
        overflow: visible !important;
        top: -13px;
        left: 12px !important;
        padding: 0 4px 0 4px !important;
        color: #673ab7;
        font-weight: 400;
        font-size: 16px;
        transform-origin: unset !important;
        background-color: #FFFFFF;
        width: auto !important;
        height: auto; }
    .fsense-reset-password-container .fsense-card .reset-errors {
      color: #dd2c00;
      font-size: 14px;
      text-align: left;
      margin: 8px 0 16px 0;
      background-color: #FEE2E2;
      padding: 12px 16px;
      border-radius: 8px;
      border: 1px solid #FCA5A5; }
      .fsense-reset-password-container .fsense-card .reset-errors .error-message-reset {
        margin: 0;
        padding-left: 16px; }
        .fsense-reset-password-container .fsense-card .reset-errors .error-message-reset p {
          line-height: 1.4;
          margin-bottom: 4px; }
          .fsense-reset-password-container .fsense-card .reset-errors .error-message-reset p:last-child {
            margin-bottom: 0; }
    .fsense-reset-password-container .fsense-card .fsense-btn {
      margin-top: 24px;
      border-radius: 24px;
      font-weight: 600; }
    .fsense-reset-password-container .fsense-card md-progress-circular.custom-progress {
      margin: 0 16px 16px 16px; }
      .fsense-reset-password-container .fsense-card md-progress-circular.custom-progress path {
        stroke: #673ab7; }

.fsense-set-password-container {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  padding: 24px;
  background-color: #F3F4F6; }
  .fsense-set-password-container .fsense-card {
    background-color: #FFFFFF;
    border-radius: 24px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    padding: 64px;
    text-align: center;
    width: 100%;
    max-width: 480px; }
    .fsense-set-password-container .fsense-card .fsense-logo-container {
      margin-bottom: 25px;
      position: relative;
      z-index: 99;
      flex-shrink: 0;
      width: 100%; }
      .fsense-set-password-container .fsense-card .fsense-logo-container .fsense-logo {
        width: 150px; }
    .fsense-set-password-container .fsense-card h1 {
      margin: 0 0 8px 0;
      font-size: 28px;
      font-weight: 700;
      color: #111827; }
    .fsense-set-password-container .fsense-card p {
      margin: 0 0 32px 0;
      font-size: 15px;
      color: #6B7280;
      line-height: 1.5; }
    .fsense-set-password-container .fsense-card.invalid-token-card {
      max-width: 400px;
      padding: 48px 32px; }
      .fsense-set-password-container .fsense-card.invalid-token-card .error-icon-wrapper {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 64px;
        height: 64px;
        background-color: #FEE2E2;
        border-radius: 50%;
        margin: 0 auto 24px auto; }
        .fsense-set-password-container .fsense-card.invalid-token-card .error-icon-wrapper i {
          font-size: 32px;
          color: #DC2626; }
      .fsense-set-password-container .fsense-card.invalid-token-card p {
        margin: 0;
        font-size: 15px;
        color: #111827; }
    .fsense-set-password-container .fsense-card .password-input-wrapper {
      position: relative;
      width: 100%;
      margin-bottom: 8px; }
      .fsense-set-password-container .fsense-card .password-input-wrapper .toggle-password {
        position: absolute;
        right: 16px;
        top: 50%;
        transform: translateY(-50%);
        color: #9CA3AF;
        cursor: pointer;
        z-index: 10;
        transition: color 0.2s ease;
        -webkit-user-select: none;
           -moz-user-select: none;
                user-select: none; }
        .fsense-set-password-container .fsense-card .password-input-wrapper .toggle-password:hover {
          color: #673ab7; }
    .fsense-set-password-container .fsense-card .md-outlined-input-container {
      width: 100%; }
      .fsense-set-password-container .fsense-card .md-outlined-input-container .md-errors-spacer {
        min-height: auto; }
      .fsense-set-password-container .fsense-card .md-outlined-input-container .md-input[disabled] {
        border: 1px solid rgba(118, 118, 118, 0.3);
        background-image: none;
        background-color: light-dark(rgba(239, 239, 239, 0.3), rgba(59, 59, 59, 0.3)); }
      .fsense-set-password-container .fsense-card .md-outlined-input-container .md-input {
        border: 1px solid #673ab7;
        border-radius: 12px;
        min-height: 56px;
        background-color: transparent;
        padding: 0 48px 0 16px;
        align-items: center;
        justify-content: center; }
        .fsense-set-password-container .fsense-card .md-outlined-input-container .md-input::-moz-placeholder {
          color: #9CA3AF;
          opacity: 1; }
        .fsense-set-password-container .fsense-card .md-outlined-input-container .md-input::placeholder {
          color: #9CA3AF;
          opacity: 1; }
      .fsense-set-password-container .fsense-card .md-outlined-input-container.md-input-invalid .md-input {
        border: 2px solid #dd2c00 !important; }
      .fsense-set-password-container .fsense-card .md-outlined-input-container.md-input-invalid label {
        color: #dd2c00 !important; }
      .fsense-set-password-container .fsense-card .md-outlined-input-container.md-input-valid label {
        color: #673ab7; }
      .fsense-set-password-container .fsense-card .md-outlined-input-container.md-input-focused .md-input {
        border: 2px solid #673ab7 !important;
        padding: 0 48px 0 16px; }
      .fsense-set-password-container .fsense-card .md-outlined-input-container.md-input-focused label {
        color: #673ab7 !important;
        padding: 0 4px 0 4px; }
      .fsense-set-password-container .fsense-card .md-outlined-input-container .label-desativada {
        color: #aaaaaa !important; }
      .fsense-set-password-container .fsense-card .md-outlined-input-container:not(.md-input-invalid).md-input-has-value label {
        color: #673ab7; }
      .fsense-set-password-container .fsense-card .md-outlined-input-container label {
        overflow: visible !important;
        top: -13px;
        left: 12px !important;
        padding: 0 4px 0 4px !important;
        color: #673ab7;
        font-weight: 400;
        font-size: 16px;
        transform-origin: unset !important;
        background-color: #FFFFFF;
        width: auto !important;
        height: auto; }
    .fsense-set-password-container .fsense-card .reset-errors {
      color: #dd2c00;
      font-size: 14px;
      text-align: left;
      margin: 16px 0 8px 0;
      background-color: #FEE2E2;
      padding: 12px 16px;
      border-radius: 8px;
      border: 1px solid #FCA5A5; }
    .fsense-set-password-container .fsense-card .fsense-btn {
      margin-top: 24px;
      border-radius: 24px;
      font-weight: 600; }
    .fsense-set-password-container .fsense-card .fsense-loader {
      display: flex;
      justify-content: center;
      margin-top: 16px; }

html, body {
  height: 100%;
  width: 100%;
  font-family: "Roboto", "Helvetica", sans-serif;
  background-color: #ecedee;
  text-rendering: optimizeLegibility;
  overflow: hidden; }

.display-flex {
  display: flex; }

.no-padding {
  padding: 0; }

.no-margin {
  margin: 0; }

.padding-sm {
  padding: 8px; }
  .padding-sm__tb {
    padding-top: 8px;
    padding-bottom: 8px; }
  .padding-sm__rl {
    padding-right: 8px;
    padding-left: 8px; }

.padding-md {
  padding: 16px; }
  .padding-md__tb {
    padding-top: 16px;
    padding-bottom: 16px; }
  .padding-md__rl {
    padding-right: 16px;
    padding-left: 16px; }

.padding-lg {
  padding: 32px; }
  .padding-lg__tb {
    padding-top: 32px;
    padding-bottom: 32px; }
  .padding-lg__rl {
    padding-right: 32px;
    padding-left: 32px; }

.margin-sm {
  margin: 8px; }
  .margin-sm__tb {
    margin-top: 8px;
    margin-bottom: 8px; }
  .margin-sm__rl {
    margin-right: 8px;
    margin-left: 8px; }

.margin-md {
  margin: 16px; }
  .margin-md__tb {
    margin-top: 16px;
    margin-bottom: 16px; }
  .margin-md__rl {
    margin-right: 16px;
    margin-left: 16px; }

.margin-lg {
  margin: 32px; }
  .margin-lg__tb {
    margin-top: 32px;
    margin-bottom: 32px; }
  .margin-lg__rl {
    margin-right: 32px;
    margin-left: 32px; }

.margin-auto {
  margin-right: auto;
  margin-left: auto; }

.float__left {
  float: left; }

.float__right {
  float: right; }

.text__left {
  text-align: left; }

.text__center {
  text-align: center; }

.text__right {
  text-align: right; }

.text__lowercase {
  text-transform: lowercase; }

.text__uppercase {
  text-transform: uppercase; }

.text__capitalize {
  text-transform: capitalize; }

.text__thin {
  font-weight: 100; }

.text__light {
  font-weight: 300; }

.text__regular {
  font-weight: 400; }

.text__medium {
  font-weight: 500; }

.text__bold {
  font-weight: 700; }

.text__black {
  font-weight: 900; }

.bg__light-primary {
  background-color: #ecedee; }

.bg__light-secondary {
  background-color: #ecedee; }

.bg__dark-primary {
  background-color: #273140; }

.bg__dark-secondary {
  background-color: #ffffff; }

.ribbon {
  flex-shrink: 0;
  -ms-flex-negative: 0;
  height: 50vh;
  width: 100%;
  background-color: #cfd8dc; }

.main {
  flex-shrink: 0;
  -ms-flex-negative: 0;
  margin-top: -50vh; }

.logo {
  max-height: 36px;
  margin-right: 8px; }

.login {
  width: 400px; }

.my-chart {
  height: auto;
  display: inline-block;
  width: calc(50% - 4px);
  border-sizing: border-box; }

.container-chart {
  display: block; }

@media screen and (max-width: 960px) {
  .my-chart {
    width: 100%;
    display: block; } }

.fs-input {
  margin: 4px 0 20px 0;
  padding: 12px;
  color: #444;
  border-radius: 6px;
  border: solid 1px #ccc;
  background: white; }

.fs-label {
  color: #6751a2;
  font-size: 12px;
  font-family: Roboto; }

/**
 *  Do not remove the comment below. It's the markers used by gulp-inject to inject
 *  all your sass files automatically
 */
.f-box {
  width: 317px;
  height: 431px;
  background-color: #FFFFFF;
  border: 1px solid #D9D9D9;
  border-radius: 5px;
  background-color: white; }

.f-button {
  height: 48px;
  padding: 0 32px;
  font-size: 1em;
  text-align: center;
  color: #fafafa;
  background-color: #673ab7;
  border: 3px solid #673ab7;
  border-radius: 24px;
  text-transform: uppercase;
  outline: none;
  transition: all 0.2s ease; }
  .f-button:hover, .f-button:focus {
    background-color: #7E5DAF; }
  .f-button:active {
    background-color: #8f67ca; }

f-button.f-block button {
  width: 100%; }

.f-button[disabled] {
  color: rgba(230, 230, 230, 0.79);
  background-color: rgba(151, 140, 166, 0.67);
  border: 3px solid transparent; }

.f-button-light {
  color: #999;
  border: 3px solid #D9D9D9;
  background-color: transparent; }
  .f-button-light:hover, .f-button-light:focus {
    background-color: #f0f0f0; }

.f-html-carousel {
  position: relative; }

.f-html-carousel__item {
  opacity: 1;
  transition: opacity 400ms ease-in-out; }
  .f-html-carousel__item *:last-child {
    margin-bottom: 0; }

.f-html-carousel__item--hidden {
  opacity: 0; }

.md-outlined-input-container {
  width: 100%; }
  .md-outlined-input-container .md-errors-spacer {
    min-height: auto; }
  .md-outlined-input-container .md-input[disabled] {
    border: 1px solid rgba(118, 118, 118, 0.3);
    background-image: none;
    background-color: light-dark(rgba(239, 239, 239, 0.3), rgba(59, 59, 59, 0.3)); }
  .md-outlined-input-container .md-input {
    border: 1px solid #673ab7;
    border-radius: 12px;
    min-height: 56px;
    background-color: transparent;
    padding: 0 16px 0 16px;
    align-items: center;
    justify-content: center; }
    .md-outlined-input-container .md-input::-moz-placeholder {
      color: #9CA3AF;
      opacity: 1; }
    .md-outlined-input-container .md-input::placeholder {
      color: #9CA3AF;
      opacity: 1; }
  .md-outlined-input-container.md-input-invalid .md-input {
    border: 2px solid #dd2c00 !important; }
  .md-outlined-input-container.md-input-invalid label {
    color: #dd2c00 !important; }
  .md-outlined-input-container.md-input-valid label {
    color: #673ab7; }
  .md-outlined-input-container.md-input-focused .md-input {
    border: 2px solid #673ab7 !important;
    padding: 0 16px 0 16px; }
  .md-outlined-input-container.md-input-focused label {
    color: #673ab7 !important;
    padding: 0 4px 0 4px; }
  .md-outlined-input-container .label-desativada {
    color: #aaaaaa !important; }
  .md-outlined-input-container:not(.md-input-invalid).md-input-has-value label {
    color: #673ab7; }
  .md-outlined-input-container label {
    overflow: visible !important;
    top: -13px;
    left: 12px !important;
    padding: 0 4px 0 4px !important;
    color: #673ab7;
    font-weight: 400;
    font-size: 16px;
    transform-origin: unset !important;
    background-color: #FFFFFF;
    width: auto !important;
    height: auto; }

.f-separator {
  display: inline-block;
  position: relative;
  overflow: hidden;
  width: 275px;
  height: 4px; }
  .f-separator .f-separator-blue-1 {
    display: inline-block;
    position: absolute;
    left: 0;
    width: 164px;
    height: 0px;
    border-top: 4px solid #59C5D5; }
  .f-separator .f-separator-blue-2 {
    display: inline-block;
    position: absolute;
    left: 100px;
    width: 128px;
    height: 0px;
    border-top: 4px solid #398BC2; }
  .f-separator .f-separator-purple {
    display: inline-block;
    position: absolute;
    left: 200px;
    width: 122px;
    height: 0px;
    border-top: 4px solid #6A489B; }

.login-container {
  background-color: #F3F4F6;
  padding: 24px; }
  @media (max-width: 768px) {
    .login-container {
      padding: 16px; } }
  .login-container .login-container-panels {
    background-color: #FFFFFF;
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    max-width: 1100px;
    width: 100%;
    max-height: 750px;
    height: 100%; }
  .login-container .login-left-container {
    background-color: #673ab7;
    padding: 64px;
    color: #FFFFFF; }
    .login-container .login-left-container .logo-container {
      margin-bottom: auto;
      position: relative;
      z-index: 99;
      flex-shrink: 0;
      width: 100%; }
      .login-container .login-left-container .logo-container .login-logo {
        width: 150px; }
    .login-container .login-left-container .dynamic-text-container {
      margin-top: 42px;
      overflow-y: auto;
      box-sizing: border-box; }
      .login-container .login-left-container .dynamic-text-container * {
        box-sizing: border-box; }
      .login-container .login-left-container .dynamic-text-container img {
        height: 100%;
        max-height: 230px;
        width: 100%;
        margin: 0 0 25px 0;
        border-radius: 24px;
        border: 1px solid #FFFFFF;
        box-sizing: border-box;
        -o-object-fit: cover;
           object-fit: cover;
        -o-object-position: top;
           object-position: top; }
      .login-container .login-left-container .dynamic-text-container h1 {
        margin: 0;
        font-size: 40px;
        font-weight: 700;
        line-height: 1.2;
        color: white;
        margin-bottom: 4px; }
      .login-container .login-left-container .dynamic-text-container h2 {
        margin: 0;
        font-size: 32px;
        font-weight: 600;
        line-height: 1.4;
        color: white;
        margin-bottom: 4px; }
      .login-container .login-left-container .dynamic-text-container p {
        font-size: 16px;
        color: #E5E7EB;
        line-height: 1.6;
        max-width: 360px; }
  .login-container .login-right-container {
    padding: 64px; }
    @media (max-width: 768px) {
      .login-container .login-right-container {
        padding: 32px; } }
    .login-container .login-right-container .logo-container {
      margin-bottom: 25px;
      padding: 0;
      position: relative;
      z-index: 99;
      flex-shrink: 0;
      width: 100%; }
      .login-container .login-right-container .logo-container .login-logo {
        width: 150px; }
    .login-container .login-right-container .login-form-container {
      width: 100%;
      max-width: 380px; }
      .login-container .login-right-container .login-form-container h2 {
        margin: 0 0 8px 0;
        font-size: 28px;
        font-weight: 700;
        color: #111827; }
      .login-container .login-right-container .login-form-container p {
        margin: 0 0 20px 0;
        font-size: 15px;
        color: #111827; }
      .login-container .login-right-container .login-form-container .login-failed-email {
        color: #b3261e;
        text-align: center;
        padding: 8px;
        font-size: 14px; }
        .login-container .login-right-container .login-form-container .login-failed-email md-icon {
          color: #b3261e;
          font-size: 21px; }
      .login-container .login-right-container .login-form-container .login-server-error {
        color: #b3261e;
        padding: 8px;
        font-size: 14px; }
        .login-container .login-right-container .login-form-container .login-server-error md-icon {
          color: #b3261e;
          font-size: 21px; }
      .login-container .login-right-container .login-form-container .login-inputs-container {
        position: relative; }
        .login-container .login-right-container .login-form-container .login-inputs-container md-input-container label:not(.md-container-ignore).md-required::after {
          content: none; }
      .login-container .login-right-container .login-form-container md-progress-circular.custom-progress {
        margin: 0 16px 16px 16px; }
        .login-container .login-right-container .login-form-container md-progress-circular.custom-progress path {
          stroke: #673ab7; }
      .login-container .login-right-container .login-form-container .login-empty-email-message {
        position: absolute;
        top: calc(100% + 4px);
        left: 12px;
        background-color: #FEE2E2;
        color: #DC2626;
        padding: 6px 12px;
        border-radius: 6px;
        font-size: 13px;
        font-weight: 500;
        display: flex;
        align-items: center;
        border: 1px solid #FCA5A5;
        z-index: 10;
        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05); }
        .login-container .login-right-container .login-form-container .login-empty-email-message md-icon {
          font-size: 16px;
          min-width: 16px;
          height: 16px;
          color: #DC2626;
          margin-right: 6px; }
      .login-container .login-right-container .login-form-container .login-continue-button {
        margin-top: 24px;
        border-radius: 24px;
        font-weight: 600; }
      .login-container .login-right-container .login-form-container .login-email-wrapper-container {
        position: relative;
        width: 100%; }
        .login-container .login-right-container .login-form-container .login-email-wrapper-container md-input-container {
          margin: 10px 0; }
      .login-container .login-right-container .login-form-container .login-arrow-button {
        margin: 0;
        position: absolute;
        left: -44px;
        top: 50%;
        transform: translateY(-50%);
        z-index: 10; }
      .login-container .login-right-container .login-form-container .login-email-input-readonly {
        border-radius: 8px;
        width: 100%; }
        .login-container .login-right-container .login-form-container .login-email-input-readonly md-input-container label:not(.md-container-ignore).md-required::after {
          content: none; }
      .login-container .login-right-container .login-form-container [disabled] md-input-container .md-input {
        border: 1px solid rgba(118, 118, 118, 0.3);
        background-image: none;
        background-color: light-dark(rgba(239, 239, 239, 0.3), rgba(59, 59, 59, 0.3)); }
      .login-container .login-right-container .login-form-container md-input-container .md-input[disabled] {
        color: #aaaaaa; }
      .login-container .login-right-container .login-form-container f-input label {
        color: #aaaaaa; }
      .login-container .login-right-container .login-form-container .login-password-input {
        position: relative;
        width: 100%; }
        .login-container .login-right-container .login-form-container .login-password-input f-input {
          width: 100%; }
        .login-container .login-right-container .login-form-container .login-password-input md-input-container label:not(.md-container-ignore).md-required::after {
          content: none; }
      .login-container .login-right-container .login-form-container .login-enter-button {
        margin-top: 24px;
        border-radius: 24px;
        font-weight: 600;
        color: #673ab7; }
    .login-container .login-right-container .login-forgot-password {
      margin-top: 32px; }
      .login-container .login-right-container .login-forgot-password a {
        color: #673ab7;
        font-weight: 600;
        font-size: 14px;
        text-decoration: none; }

a.md-button.md-default-theme.md-primary.md-raised, a.md-button.md-primary.md-raised, a.md-button.md-default-theme.md-primary.md-fab, a.md-button.md-primary.md-fab, .md-button.md-default-theme.md-primary.md-raised, .md-button.md-primary.md-raised, .md-button.md-default-theme.md-primary.md-fab, .md-button.md-primary.md-fab {
  color: rgba(255, 255, 255, 0.87);
  background-color: #273140 !important; }

.reset-errors ul li {
  color: #f97575; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmNzcyIsImluZGV4LnNjc3MiLCIuLi9zdHlsZS9zdHlsZXMuc2NzcyIsIi4uL3N0eWxlL2xvZ2luLXBhZ2Utc3R5bGUvbG9naW4tcGFnZS1zdHlsZS5zY3NzIiwiLi4vc3R5bGUvbW9kdWxlcy9faWNvbnMuc2NzcyIsIi4uL3N0eWxlL21vZHVsZXMvX2ZvbnQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbWF0ZXJpYWwtZGVzaWduLWxpdGUvc3JjL21hdGVyaWFsLWRlc2lnbi1saXRlLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21hdGVyaWFsLWRlc2lnbi1saXRlL3NyYy9fdmFyaWFibGVzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21hdGVyaWFsLWRlc2lnbi1saXRlL3NyYy9fY29sb3ItZGVmaW5pdGlvbnMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbWF0ZXJpYWwtZGVzaWduLWxpdGUvc3JjL19mdW5jdGlvbnMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbWF0ZXJpYWwtZGVzaWduLWxpdGUvc3JjL19taXhpbnMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbWF0ZXJpYWwtZGVzaWduLWxpdGUvc3JjL3Jlc2V0cy9fcmVzZXRzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21hdGVyaWFsLWRlc2lnbi1saXRlL3NyYy9yZXNldHMvX2g1YnAuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbWF0ZXJpYWwtZGVzaWduLWxpdGUvc3JjL3Jlc2V0cy9fbW9iaWxlLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21hdGVyaWFsLWRlc2lnbi1saXRlL3NyYy90eXBvZ3JhcGh5L190eXBvZ3JhcGh5LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21hdGVyaWFsLWRlc2lnbi1saXRlL3NyYy9wYWxldHRlL19wYWxldHRlLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21hdGVyaWFsLWRlc2lnbi1saXRlL3NyYy9yaXBwbGUvX3JpcHBsZS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tYXRlcmlhbC1kZXNpZ24tbGl0ZS9zcmMvYW5pbWF0aW9uL19hbmltYXRpb24uc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbWF0ZXJpYWwtZGVzaWduLWxpdGUvc3JjL2JhZGdlL19iYWRnZS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tYXRlcmlhbC1kZXNpZ24tbGl0ZS9zcmMvYnV0dG9uL19idXR0b24uc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbWF0ZXJpYWwtZGVzaWduLWxpdGUvc3JjL2NhcmQvX2NhcmQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbWF0ZXJpYWwtZGVzaWduLWxpdGUvc3JjL2NoZWNrYm94L19jaGVja2JveC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tYXRlcmlhbC1kZXNpZ24tbGl0ZS9zcmMvZGF0YS10YWJsZS9fZGF0YS10YWJsZS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tYXRlcmlhbC1kZXNpZ24tbGl0ZS9zcmMvZm9vdGVyL19tZWdhX2Zvb3Rlci5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tYXRlcmlhbC1kZXNpZ24tbGl0ZS9zcmMvZm9vdGVyL19taW5pX2Zvb3Rlci5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tYXRlcmlhbC1kZXNpZ24tbGl0ZS9zcmMvaWNvbi10b2dnbGUvX2ljb24tdG9nZ2xlLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21hdGVyaWFsLWRlc2lnbi1saXRlL3NyYy9tZW51L19tZW51LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21hdGVyaWFsLWRlc2lnbi1saXRlL3NyYy9wcm9ncmVzcy9fcHJvZ3Jlc3Muc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbWF0ZXJpYWwtZGVzaWduLWxpdGUvc3JjL2xheW91dC9fbGF5b3V0LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21hdGVyaWFsLWRlc2lnbi1saXRlL3NyYy9yYWRpby9fcmFkaW8uc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbWF0ZXJpYWwtZGVzaWduLWxpdGUvc3JjL3NsaWRlci9fc2xpZGVyLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21hdGVyaWFsLWRlc2lnbi1saXRlL3NyYy9zcGlubmVyL19zcGlubmVyLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21hdGVyaWFsLWRlc2lnbi1saXRlL3NyYy9zd2l0Y2gvX3N3aXRjaC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tYXRlcmlhbC1kZXNpZ24tbGl0ZS9zcmMvdGFicy9fdGFicy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tYXRlcmlhbC1kZXNpZ24tbGl0ZS9zcmMvdGV4dGZpZWxkL190ZXh0ZmllbGQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbWF0ZXJpYWwtZGVzaWduLWxpdGUvc3JjL3Rvb2x0aXAvX3Rvb2x0aXAuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbWF0ZXJpYWwtZGVzaWduLWxpdGUvc3JjL3NoYWRvdy9fc2hhZG93LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21hdGVyaWFsLWRlc2lnbi1saXRlL3NyYy9ncmlkL19ncmlkLnNjc3MiLCIuLi9zdHlsZS9wYXJ0aWFscy9fYnV0dG9ucy5zY3NzIiwiLi4vc3R5bGUvcGFydGlhbHMvX2NhcmQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2RpcmVjdGlvbmFsLXZhbHVlcy5zY3NzIiwiLi4vc3R5bGUvbW9kdWxlcy9fdmFyaWFibGVzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3NpemUuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdGludC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tYXRlcmlhbC1jb2xvcnMvZGlzdC9jb2xvcnMuc2NzcyIsIi4uL3N0eWxlL3BhcnRpYWxzL19kYXRldGltZXBpY2tlci5zY3NzIiwiLi4vc3R5bGUvcGFydGlhbHMvX2hlYWRlci5zY3NzIiwiLi4vc3R5bGUvcGFydGlhbHMvX2xheW91dC5zY3NzIiwiLi4vc3R5bGUvcGFydGlhbHMvX21lbnUuc2NzcyIsIi4uL3N0eWxlL3BhcnRpYWxzL19zZWVrZXIuc2NzcyIsIi4uL3N0eWxlL3BhcnRpYWxzL19zaWRlbmF2LnNjc3MiLCIuLi9zdHlsZS9wYXJ0aWFscy9fdGFibGUuc2NzcyIsIi4uL3N0eWxlL3BhcnRpYWxzL190eXBvZ3JhcGh5LnNjc3MiLCIuLi9zdHlsZS9wYXJ0aWFscy9fcmVxdWVzdF9yZXNldC5zY3NzIiwiLi4vc3R5bGUvcGFydGlhbHMvX3Jlc2V0LnNjc3MiLCIuLi9zdHlsZS9wYXJ0aWFscy9fc2V0cGFzc3dvcmQuc2NzcyIsIi4uL3N0eWxlL2xheW91dC9fYmFzZS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19wcmVmaXhlci5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZmxleC1ib3guc2NzcyIsIi4uL3N0eWxlL2xheW91dC9faGlnaGNoYXJ0X2ZpbGxfcGFyZW50X2lzc3VlX2hhY2suc2NzcyIsImNvbXBvbmVudHMvRkJveC9GYm94LnNjc3MiLCJjb21wb25lbnRzL0ZCdXR0b24vRkJ1dHRvbi5zY3NzIiwiY29tcG9uZW50cy9GSHRtbENhcm91c2VsL0ZIdG1sQ2Fyb3VzZWwuc2NzcyIsImNvbXBvbmVudHMvRklucHV0L0ZJbnB1dC5zY3NzIiwiY29tcG9uZW50cy9GU2VwYXJhdG9yL0ZTZXBhcmF0b3Iuc2NzcyIsImNvbXBvbmVudHMvRkxvZ2luL0ZMb2dpbi5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdCQUFnQjtBQ0FoQjs7O0VESUU7QUVGRjtFQUNNLG9DQUFvQyxFQUFBOztBQUUxQztFQUNNLHFEQUFxRCxFQUFBOztBQUczRDtFQUNNLFdBQVc7RUFDWCxrQkFBa0IsRUFBQTs7QUFFeEI7RUFDTSxXQUFXO0VBQ1gsa0JBQWtCLEVBQUE7O0FDZnhCO0VBQ00sZUFBZTtFQUNmLFlBQVk7RUFDWixpQkFBaUI7RUFDakIsc0JBQXNCO0VBQ3RCLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIsU0FBUztFQUNULGlCQUFpQjtFQUNqQixlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLDBCQUEwQjtFQUMxQixNQUFNO0VBQ04sd0JBQXdCO0VBRXhCLGtDQUFrQztFQUNsQyxtQ0FBbUM7RUFDbkMsd0JBQXdCO0VBQ3hCLDRCQUE0QixFQUFBOztBQUVsQztFQUNNLFVBQVU7RUFDVixrQ0FBa0M7RUFDbEMsbUNBQW1DO0VBQ25DLHdCQUF3QjtFQUN4Qiw0QkFBNEIsRUFBQTs7QUFFbEM7RUFBd0Isc0JBQXNCLEVBQUE7O0FBQzlDO0VBQXdCLHNCQUFzQixFQUFBOztBQUM5QztFQUNNLHlCQUF5QjtFQUN6QixZQUFZLEVBQUE7O0FBRWxCO0VBQXdCLHNCQUFzQixFQUFBOztBQUM5QztFQUNNLFlBQVk7RUFDWix5QkFBeUIsRUFBQTs7QUFHL0I7RUFDTTtJQUFPLFVBQVUsRUFBQTtFQUNqQjtJQUFLLE1BQU0sRUFBQSxFQUFBOztBQUVqQjtFQUNNO0lBQU8sUUFBUSxFQUFBO0VBQ2Y7SUFBSyxVQUFVLEVBQUEsRUFBQTs7QUMzQ3JCLGFBQUE7QUFDQTtFQUNFLDZCQUE2QjtFQUM3QixrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLHVEQUF1RCxFQUFBOztBQUd6RDtFQUNFLDZCQUE2QjtFQUM3QixtQkFBbUI7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O0FBR2xFO0VBQ0UsZ0NBQXFELEVBQUE7O0FBR3ZEO0VBQ0UsMkNBQWdFLEVBQUE7O0FBR2xFO0VBQ0Usa0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNkNBQWlFLEVBQUE7O0FBR25FO0VBQ0UsZ0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsMkNBQWlFLEVBQUE7O0FBR25FO0VBQ0UsZ0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsMkNBQWlFLEVBQUE7O0FBR25FO0VBQ0UsOEJBQXNELEVBQUE7O0FBR3hEO0VBQ0UseUNBQWlFLEVBQUE7O0FBS25FO0VBQ0UsZ0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsMkNBQWlFLEVBQUE7O0FBR25FO0VBQ0Usa0NBQXFELEVBQUE7O0FBR3ZEO0VBQ0UsNkNBQWdFLEVBQUE7O0FBR2xFO0VBQ0Usa0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNkNBQWlFLEVBQUE7O0FBR25FO0VBQ0Usa0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNkNBQWlFLEVBQUE7O0FBR25FO0VBQ0UsaUNBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNENBQWlFLEVBQUE7O0FBR25FO0VBQ0UsaUNBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNENBQWlFLEVBQUE7O0FBR25FO0VBQ0UsZ0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsMkNBQWlFLEVBQUE7O0FBR25FO0VBQ0UsZ0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsMkNBQWlFLEVBQUE7O0FBR25FO0VBQ0UsZ0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsMkNBQWlFLEVBQUE7O0FBR25FO0VBQ0UsZ0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsMkNBQWlFLEVBQUE7O0FBR25FO0VBQ0UsZ0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsMkNBQWlFLEVBQUE7O0FBR25FO0VBQ0Usa0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsaUNBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNENBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsK0JBQXVELEVBQUE7O0FBR3pEO0VBQ0UsMENBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsZ0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsMkNBQWtFLEVBQUE7O0FBS3BFO0VBQ0UsaUNBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNENBQW1FLEVBQUE7O0FBR3JFO0VBQ0Usa0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0Usa0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0Usa0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0Usa0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsaUNBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNENBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsaUNBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNENBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsaUNBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNENBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsaUNBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNENBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsaUNBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNENBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsZ0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsMkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0Usa0NBQXlELEVBQUE7O0FBRzNEO0VBQ0UsNkNBQW9FLEVBQUE7O0FBR3RFO0VBQ0UsaUNBQXlELEVBQUE7O0FBRzNEO0VBQ0UsNENBQW9FLEVBQUE7O0FBR3RFO0VBQ0UsZ0NBQXlELEVBQUE7O0FBRzNEO0VBQ0UsMkNBQW9FLEVBQUE7O0FBR3RFO0VBQ0UsZ0NBQXlELEVBQUE7O0FBRzNEO0VBQ0UsMkNBQW9FLEVBQUE7O0FBS3RFO0VBQ0UsaUNBQTZELEVBQUE7O0FBRy9EO0VBQ0UsNENBQXdFLEVBQUE7O0FBRzFFO0VBQ0Usa0NBQTRELEVBQUE7O0FBRzlEO0VBQ0UsNkNBQXVFLEVBQUE7O0FBR3pFO0VBQ0Usa0NBQTZELEVBQUE7O0FBRy9EO0VBQ0UsNkNBQXdFLEVBQUE7O0FBRzFFO0VBQ0Usa0NBQTZELEVBQUE7O0FBRy9EO0VBQ0UsNkNBQXdFLEVBQUE7O0FBRzFFO0VBQ0Usa0NBQTZELEVBQUE7O0FBRy9EO0VBQ0UsNkNBQXdFLEVBQUE7O0FBRzFFO0VBQ0UsaUNBQTZELEVBQUE7O0FBRy9EO0VBQ0UsNENBQXdFLEVBQUE7O0FBRzFFO0VBQ0UsaUNBQTZELEVBQUE7O0FBRy9EO0VBQ0UsNENBQXdFLEVBQUE7O0FBRzFFO0VBQ0UsZ0NBQTZELEVBQUE7O0FBRy9EO0VBQ0UsMkNBQXdFLEVBQUE7O0FBRzFFO0VBQ0UsZ0NBQTZELEVBQUE7O0FBRy9EO0VBQ0UsMkNBQXdFLEVBQUE7O0FBRzFFO0VBQ0UsZ0NBQTZELEVBQUE7O0FBRy9EO0VBQ0UsMkNBQXdFLEVBQUE7O0FBRzFFO0VBQ0UsZ0NBQTZELEVBQUE7O0FBRy9EO0VBQ0UsMkNBQXdFLEVBQUE7O0FBRzFFO0VBQ0Usa0NBQThELEVBQUE7O0FBR2hFO0VBQ0UsNkNBQXlFLEVBQUE7O0FBRzNFO0VBQ0UsaUNBQThELEVBQUE7O0FBR2hFO0VBQ0UsNENBQXlFLEVBQUE7O0FBRzNFO0VBQ0UsaUNBQThELEVBQUE7O0FBR2hFO0VBQ0UsNENBQXlFLEVBQUE7O0FBRzNFO0VBQ0UsK0JBQThELEVBQUE7O0FBR2hFO0VBQ0UsMENBQXlFLEVBQUE7O0FBSzNFO0VBQ0UsZ0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsMkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0Usa0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0Usa0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0Usa0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0Usa0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsaUNBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNENBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsZ0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsMkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsZ0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsMkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsZ0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsMkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsZ0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsMkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsZ0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsMkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0Usa0NBQXlELEVBQUE7O0FBRzNEO0VBQ0UsNkNBQW9FLEVBQUE7O0FBR3RFO0VBQ0UsaUNBQXlELEVBQUE7O0FBRzNEO0VBQ0UsNENBQW9FLEVBQUE7O0FBR3RFO0VBQ0UsZ0NBQXlELEVBQUE7O0FBRzNEO0VBQ0UsMkNBQW9FLEVBQUE7O0FBR3RFO0VBQ0UsZ0NBQXlELEVBQUE7O0FBRzNEO0VBQ0UsMkNBQW9FLEVBQUE7O0FBS3RFO0VBQ0UsaUNBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNENBQWlFLEVBQUE7O0FBR25FO0VBQ0Usa0NBQXFELEVBQUE7O0FBR3ZEO0VBQ0UsNkNBQWdFLEVBQUE7O0FBR2xFO0VBQ0Usa0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNkNBQWlFLEVBQUE7O0FBR25FO0VBQ0Usa0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNkNBQWlFLEVBQUE7O0FBR25FO0VBQ0Usa0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNkNBQWlFLEVBQUE7O0FBR25FO0VBQ0UsaUNBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNENBQWlFLEVBQUE7O0FBR25FO0VBQ0UsaUNBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNENBQWlFLEVBQUE7O0FBR25FO0VBQ0UsaUNBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNENBQWlFLEVBQUE7O0FBR25FO0VBQ0UsaUNBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNENBQWlFLEVBQUE7O0FBR25FO0VBQ0UsaUNBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNENBQWlFLEVBQUE7O0FBR25FO0VBQ0UsZ0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsMkNBQWlFLEVBQUE7O0FBR25FO0VBQ0Usa0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsaUNBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNENBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsaUNBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNENBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsZ0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsMkNBQWtFLEVBQUE7O0FBS3BFO0VBQ0UsZ0NBQTRELEVBQUE7O0FBRzlEO0VBQ0UsMkNBQXVFLEVBQUE7O0FBR3pFO0VBQ0Usa0NBQTJELEVBQUE7O0FBRzdEO0VBQ0UsNkNBQXNFLEVBQUE7O0FBR3hFO0VBQ0Usa0NBQTRELEVBQUE7O0FBRzlEO0VBQ0UsNkNBQXVFLEVBQUE7O0FBR3pFO0VBQ0Usa0NBQTRELEVBQUE7O0FBRzlEO0VBQ0UsNkNBQXVFLEVBQUE7O0FBR3pFO0VBQ0UsaUNBQTRELEVBQUE7O0FBRzlEO0VBQ0UsNENBQXVFLEVBQUE7O0FBR3pFO0VBQ0UsaUNBQTRELEVBQUE7O0FBRzlEO0VBQ0UsNENBQXVFLEVBQUE7O0FBR3pFO0VBQ0UsZ0NBQTRELEVBQUE7O0FBRzlEO0VBQ0UsMkNBQXVFLEVBQUE7O0FBR3pFO0VBQ0UsZ0NBQTRELEVBQUE7O0FBRzlEO0VBQ0UsMkNBQXVFLEVBQUE7O0FBR3pFO0VBQ0UsZ0NBQTRELEVBQUE7O0FBRzlEO0VBQ0UsMkNBQXVFLEVBQUE7O0FBR3pFO0VBQ0UsZ0NBQTRELEVBQUE7O0FBRzlEO0VBQ0UsMkNBQXVFLEVBQUE7O0FBR3pFO0VBQ0UsK0JBQTRELEVBQUE7O0FBRzlEO0VBQ0UsMENBQXVFLEVBQUE7O0FBR3pFO0VBQ0Usa0NBQTZELEVBQUE7O0FBRy9EO0VBQ0UsNkNBQXdFLEVBQUE7O0FBRzFFO0VBQ0UsaUNBQTZELEVBQUE7O0FBRy9EO0VBQ0UsNENBQXdFLEVBQUE7O0FBRzFFO0VBQ0UsZ0NBQTZELEVBQUE7O0FBRy9EO0VBQ0UsMkNBQXdFLEVBQUE7O0FBRzFFO0VBQ0UsZ0NBQTZELEVBQUE7O0FBRy9EO0VBQ0UsMkNBQXdFLEVBQUE7O0FBSzFFO0VBQ0UsZ0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsMkNBQWlFLEVBQUE7O0FBR25FO0VBQ0Usa0NBQXFELEVBQUE7O0FBR3ZEO0VBQ0UsNkNBQWdFLEVBQUE7O0FBR2xFO0VBQ0Usa0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNkNBQWlFLEVBQUE7O0FBR25FO0VBQ0Usa0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNkNBQWlFLEVBQUE7O0FBR25FO0VBQ0UsaUNBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNENBQWlFLEVBQUE7O0FBR25FO0VBQ0UsaUNBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNENBQWlFLEVBQUE7O0FBR25FO0VBQ0UsZ0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsMkNBQWlFLEVBQUE7O0FBR25FO0VBQ0UsZ0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsMkNBQWlFLEVBQUE7O0FBR25FO0VBQ0UsZ0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsMkNBQWlFLEVBQUE7O0FBR25FO0VBQ0UsZ0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsMkNBQWlFLEVBQUE7O0FBR25FO0VBQ0UsK0JBQXNELEVBQUE7O0FBR3hEO0VBQ0UsMENBQWlFLEVBQUE7O0FBR25FO0VBQ0Usa0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsaUNBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNENBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsZ0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsMkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsZ0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsMkNBQWtFLEVBQUE7O0FBS3BFO0VBQ0UsZ0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsMkNBQWlFLEVBQUE7O0FBR25FO0VBQ0Usa0NBQXFELEVBQUE7O0FBR3ZEO0VBQ0UsNkNBQWdFLEVBQUE7O0FBR2xFO0VBQ0Usa0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNkNBQWlFLEVBQUE7O0FBR25FO0VBQ0Usa0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNkNBQWlFLEVBQUE7O0FBR25FO0VBQ0UsaUNBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNENBQWlFLEVBQUE7O0FBR25FO0VBQ0UsaUNBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNENBQWlFLEVBQUE7O0FBR25FO0VBQ0UsZ0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsMkNBQWlFLEVBQUE7O0FBR25FO0VBQ0UsZ0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsMkNBQWlFLEVBQUE7O0FBR25FO0VBQ0UsZ0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsMkNBQWlFLEVBQUE7O0FBR25FO0VBQ0UsK0JBQXNELEVBQUE7O0FBR3hEO0VBQ0UsMENBQWlFLEVBQUE7O0FBR25FO0VBQ0UsOEJBQXNELEVBQUE7O0FBR3hEO0VBQ0UseUNBQWlFLEVBQUE7O0FBR25FO0VBQ0Usa0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0Usa0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsaUNBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNENBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsZ0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsMkNBQWtFLEVBQUE7O0FBS3BFO0VBQ0UsZ0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsMkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0Usa0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNkNBQWlFLEVBQUE7O0FBR25FO0VBQ0Usa0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0Usa0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0Usa0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0Usa0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsZ0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsMkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsZ0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsMkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsZ0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsMkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsZ0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsMkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsK0JBQXVELEVBQUE7O0FBR3pEO0VBQ0UsMENBQWtFLEVBQUE7O0FBR3BFO0VBQ0Usa0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0Usa0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsZ0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsMkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsK0JBQXdELEVBQUE7O0FBRzFEO0VBQ0UsMENBQW1FLEVBQUE7O0FBS3JFO0VBQ0UsaUNBQTZELEVBQUE7O0FBRy9EO0VBQ0UsNENBQXdFLEVBQUE7O0FBRzFFO0VBQ0Usa0NBQTRELEVBQUE7O0FBRzlEO0VBQ0UsNkNBQXVFLEVBQUE7O0FBR3pFO0VBQ0Usa0NBQTZELEVBQUE7O0FBRy9EO0VBQ0UsNkNBQXdFLEVBQUE7O0FBRzFFO0VBQ0Usa0NBQTZELEVBQUE7O0FBRy9EO0VBQ0UsNkNBQXdFLEVBQUE7O0FBRzFFO0VBQ0Usa0NBQTZELEVBQUE7O0FBRy9EO0VBQ0UsNkNBQXdFLEVBQUE7O0FBRzFFO0VBQ0Usa0NBQTZELEVBQUE7O0FBRy9EO0VBQ0UsNkNBQXdFLEVBQUE7O0FBRzFFO0VBQ0UsaUNBQTZELEVBQUE7O0FBRy9EO0VBQ0UsNENBQXdFLEVBQUE7O0FBRzFFO0VBQ0UsaUNBQTZELEVBQUE7O0FBRy9EO0VBQ0UsNENBQXdFLEVBQUE7O0FBRzFFO0VBQ0UsaUNBQTZELEVBQUE7O0FBRy9EO0VBQ0UsNENBQXdFLEVBQUE7O0FBRzFFO0VBQ0UsZ0NBQTZELEVBQUE7O0FBRy9EO0VBQ0UsMkNBQXdFLEVBQUE7O0FBRzFFO0VBQ0UsZ0NBQTZELEVBQUE7O0FBRy9EO0VBQ0UsMkNBQXdFLEVBQUE7O0FBRzFFO0VBQ0Usa0NBQThELEVBQUE7O0FBR2hFO0VBQ0UsNkNBQXlFLEVBQUE7O0FBRzNFO0VBQ0UsaUNBQThELEVBQUE7O0FBR2hFO0VBQ0UsNENBQXlFLEVBQUE7O0FBRzNFO0VBQ0UsZ0NBQThELEVBQUE7O0FBR2hFO0VBQ0UsMkNBQXlFLEVBQUE7O0FBRzNFO0VBQ0UsaUNBQThELEVBQUE7O0FBR2hFO0VBQ0UsNENBQXlFLEVBQUE7O0FBSzNFO0VBQ0UsaUNBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNENBQWlFLEVBQUE7O0FBR25FO0VBQ0Usa0NBQXFELEVBQUE7O0FBR3ZEO0VBQ0UsNkNBQWdFLEVBQUE7O0FBR2xFO0VBQ0Usa0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNkNBQWlFLEVBQUE7O0FBR25FO0VBQ0Usa0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNkNBQWlFLEVBQUE7O0FBR25FO0VBQ0Usa0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNkNBQWlFLEVBQUE7O0FBR25FO0VBQ0UsaUNBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNENBQWlFLEVBQUE7O0FBR25FO0VBQ0UsaUNBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNENBQWlFLEVBQUE7O0FBR25FO0VBQ0UsaUNBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNENBQWlFLEVBQUE7O0FBR25FO0VBQ0UsaUNBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNENBQWlFLEVBQUE7O0FBR25FO0VBQ0UsaUNBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNENBQWlFLEVBQUE7O0FBR25FO0VBQ0UsaUNBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNENBQWlFLEVBQUE7O0FBR25FO0VBQ0Usa0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsaUNBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNENBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsZ0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsMkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsZ0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsMkNBQWtFLEVBQUE7O0FBS3BFO0VBQ0UsaUNBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNENBQW1FLEVBQUE7O0FBR3JFO0VBQ0Usa0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0Usa0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0Usa0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0Usa0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsaUNBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNENBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsaUNBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNENBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsaUNBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNENBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsaUNBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNENBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsaUNBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNENBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsaUNBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNENBQW1FLEVBQUE7O0FBR3JFO0VBQ0Usa0NBQXlELEVBQUE7O0FBRzNEO0VBQ0UsNkNBQW9FLEVBQUE7O0FBR3RFO0VBQ0UsZ0NBQXlELEVBQUE7O0FBRzNEO0VBQ0UsMkNBQW9FLEVBQUE7O0FBR3RFO0VBQ0UsZ0NBQXlELEVBQUE7O0FBRzNEO0VBQ0UsMkNBQW9FLEVBQUE7O0FBR3RFO0VBQ0UsZ0NBQXlELEVBQUE7O0FBRzNEO0VBQ0UsMkNBQW9FLEVBQUE7O0FBS3RFO0VBQ0UsZ0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsMkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0Usa0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNkNBQWlFLEVBQUE7O0FBR25FO0VBQ0Usa0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0Usa0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsaUNBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNENBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsaUNBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNENBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsZ0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsMkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsZ0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsMkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsZ0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsMkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsZ0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsMkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsZ0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsMkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0Usa0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsaUNBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNENBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsZ0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsMkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsZ0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsMkNBQW1FLEVBQUE7O0FBS3JFO0VBQ0UsZ0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsMkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0Usa0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0Usa0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0Usa0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsaUNBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNENBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsaUNBQXdELEVBQUE7O0FBRzFEO0VBQ0UsNENBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsZ0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsMkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsZ0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsMkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsZ0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsMkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsZ0NBQXdELEVBQUE7O0FBRzFEO0VBQ0UsMkNBQW1FLEVBQUE7O0FBR3JFO0VBQ0UsK0JBQXdELEVBQUE7O0FBRzFEO0VBQ0UsMENBQW1FLEVBQUE7O0FBR3JFO0VBQ0Usa0NBQXlELEVBQUE7O0FBRzNEO0VBQ0UsNkNBQW9FLEVBQUE7O0FBR3RFO0VBQ0UsaUNBQXlELEVBQUE7O0FBRzNEO0VBQ0UsNENBQW9FLEVBQUE7O0FBR3RFO0VBQ0UsZ0NBQXlELEVBQUE7O0FBRzNEO0VBQ0UsMkNBQW9FLEVBQUE7O0FBR3RFO0VBQ0UsZ0NBQXlELEVBQUE7O0FBRzNEO0VBQ0UsMkNBQW9FLEVBQUE7O0FBS3RFO0VBQ0UsZ0NBQTZELEVBQUE7O0FBRy9EO0VBQ0UsMkNBQXdFLEVBQUE7O0FBRzFFO0VBQ0Usa0NBQTRELEVBQUE7O0FBRzlEO0VBQ0UsNkNBQXVFLEVBQUE7O0FBR3pFO0VBQ0Usa0NBQTZELEVBQUE7O0FBRy9EO0VBQ0UsNkNBQXdFLEVBQUE7O0FBRzFFO0VBQ0Usa0NBQTZELEVBQUE7O0FBRy9EO0VBQ0UsNkNBQXdFLEVBQUE7O0FBRzFFO0VBQ0Usa0NBQTZELEVBQUE7O0FBRy9EO0VBQ0UsNkNBQXdFLEVBQUE7O0FBRzFFO0VBQ0UsaUNBQTZELEVBQUE7O0FBRy9EO0VBQ0UsNENBQXdFLEVBQUE7O0FBRzFFO0VBQ0UsZ0NBQTZELEVBQUE7O0FBRy9EO0VBQ0UsMkNBQXdFLEVBQUE7O0FBRzFFO0VBQ0UsZ0NBQTZELEVBQUE7O0FBRy9EO0VBQ0UsMkNBQXdFLEVBQUE7O0FBRzFFO0VBQ0UsZ0NBQTZELEVBQUE7O0FBRy9EO0VBQ0UsMkNBQXdFLEVBQUE7O0FBRzFFO0VBQ0UsZ0NBQTZELEVBQUE7O0FBRy9EO0VBQ0UsMkNBQXdFLEVBQUE7O0FBRzFFO0VBQ0UsZ0NBQTZELEVBQUE7O0FBRy9EO0VBQ0UsMkNBQXdFLEVBQUE7O0FBRzFFO0VBQ0Usa0NBQThELEVBQUE7O0FBR2hFO0VBQ0UsNkNBQXlFLEVBQUE7O0FBRzNFO0VBQ0UsaUNBQThELEVBQUE7O0FBR2hFO0VBQ0UsNENBQXlFLEVBQUE7O0FBRzNFO0VBQ0UsK0JBQThELEVBQUE7O0FBR2hFO0VBQ0UsMENBQXlFLEVBQUE7O0FBRzNFO0VBQ0UsK0JBQThELEVBQUE7O0FBR2hFO0VBQ0UsMENBQXlFLEVBQUE7O0FBSzNFO0VBQ0UsZ0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsMkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0Usa0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNkNBQWlFLEVBQUE7O0FBR25FO0VBQ0Usa0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0Usa0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0Usa0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsaUNBQXVELEVBQUE7O0FBR3pEO0VBQ0UsNENBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsZ0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsMkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsZ0NBQXVELEVBQUE7O0FBR3pEO0VBQ0UsMkNBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsK0JBQXVELEVBQUE7O0FBR3pEO0VBQ0UsMENBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsK0JBQXVELEVBQUE7O0FBR3pEO0VBQ0UsMENBQWtFLEVBQUE7O0FBR3BFO0VBQ0UsK0JBQXVELEVBQUE7O0FBR3pEO0VBQ0UsMENBQWtFLEVBQUE7O0FBS3BFO0VBQ0Usa0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNkNBQWlFLEVBQUE7O0FBR25FO0VBQ0Usa0NBQXFELEVBQUE7O0FBR3ZEO0VBQ0UsNkNBQWdFLEVBQUE7O0FBR2xFO0VBQ0Usa0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNkNBQWlFLEVBQUE7O0FBR25FO0VBQ0Usa0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNkNBQWlFLEVBQUE7O0FBR25FO0VBQ0Usa0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNkNBQWlFLEVBQUE7O0FBR25FO0VBQ0Usa0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNkNBQWlFLEVBQUE7O0FBR25FO0VBQ0Usa0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNkNBQWlFLEVBQUE7O0FBR25FO0VBQ0Usa0NBQXNELEVBQUE7O0FBR3hEO0VBQ0UsNkNBQWlFLEVBQUE7O0FBR25FO0VBQ0UsK0JBQXNELEVBQUE7O0FBR3hEO0VBQ0UsMENBQWlFLEVBQUE7O0FBR25FO0VBQ0UsK0JBQXNELEVBQUE7O0FBR3hEO0VBQ0UsMENBQWlFLEVBQUE7O0FBR25FO0VBQ0UsK0JBQXNELEVBQUE7O0FBR3hEO0VBQ0UsMENBQWlFLEVBQUE7O0FBS25FO0VBQ0UsaUNBQTJELEVBQUE7O0FBRzdEO0VBQ0UsNENBQXNFLEVBQUE7O0FBR3hFO0VBQ0Usa0NBQTBELEVBQUE7O0FBRzVEO0VBQ0UsNkNBQXFFLEVBQUE7O0FBR3ZFO0VBQ0Usa0NBQTJELEVBQUE7O0FBRzdEO0VBQ0UsNkNBQXNFLEVBQUE7O0FBR3hFO0VBQ0Usa0NBQTJELEVBQUE7O0FBRzdEO0VBQ0UsNkNBQXNFLEVBQUE7O0FBR3hFO0VBQ0Usa0NBQTJELEVBQUE7O0FBRzdEO0VBQ0UsNkNBQXNFLEVBQUE7O0FBR3hFO0VBQ0Usa0NBQTJELEVBQUE7O0FBRzdEO0VBQ0UsNkNBQXNFLEVBQUE7O0FBR3hFO0VBQ0UsaUNBQTJELEVBQUE7O0FBRzdEO0VBQ0UsNENBQXNFLEVBQUE7O0FBR3hFO0VBQ0UsaUNBQTJELEVBQUE7O0FBRzdEO0VBQ0UsNENBQXNFLEVBQUE7O0FBR3hFO0VBQ0UsZ0NBQTJELEVBQUE7O0FBRzdEO0VBQ0UsMkNBQXNFLEVBQUE7O0FBR3hFO0VBQ0UsK0JBQTJELEVBQUE7O0FBRzdEO0VBQ0UsMENBQXNFLEVBQUE7O0FBR3hFO0VBQ0UsK0JBQTJELEVBQUE7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LGFBQWEsRUFBQTs7QUFFN0I7RWhCbUZJLFVBekRpQixFQUFBOztBZ0J6QnJCO0VoQmtGSSxTQXpEaUIsRUFBQTs7QWdCdEJuQjtFaEIrRUUsWWdCOUVvQixFQUFBO0VBQ3BCO0loQjBEb0IsZ0JnQjFEUTtJaEJtRU4sbUJnQm5FTSxFQUFBO0VBQzVCO0loQjhEc0Isa0JnQjlEVztJaEJtRVgsaUJnQm5FVyxFQUFBOztBQUVuQztFaEIwRUUsYWdCekVxQixFQUFBO0VBQ3JCO0loQnFEb0IsaUJnQnJEUztJaEI4RFAsb0JnQjlETyxFQUFBO0VBQzdCO0loQnlEc0IsbUJnQnpEWTtJaEI4RFosa0JnQjlEWSxFQUFBOztBQUVwQztFaEJxRUUsYWdCcEVxQixFQUFBO0VBQ3JCO0loQmdEb0IsaUJnQmhEUztJaEJ5RFAsb0JnQnpETyxFQUFBO0VBQzdCO0loQm9Ec0IsbUJnQnBEWTtJaEJ5RFosa0JnQnpEWSxFQUFBOztBQUtwQztFaEI2REUsV2dCNURtQixFQUFBO0VBQ25CO0loQndDb0IsZWdCeENPO0loQmlETCxrQmdCakRLLEVBQUE7RUFDM0I7SWhCNENzQixpQmdCNUNVO0loQmlEVixnQmdCakRVLEVBQUE7O0FBRWxDO0VoQndERSxZZ0J2RG9CLEVBQUE7RUFDcEI7SWhCbUNvQixnQmdCbkNRO0loQjRDTixtQmdCNUNNLEVBQUE7RUFDNUI7SWhCdUNzQixrQmdCdkNXO0loQjRDWCxpQmdCNUNXLEVBQUE7O0FBRW5DO0VoQm1ERSxZZ0JsRG9CLEVBQUE7RUFDcEI7SWhCOEJvQixnQmdCOUJRO0loQnVDTixtQmdCdkNNLEVBQUE7RUFDNUI7SWhCa0NzQixrQmdCbENXO0loQnVDWCxpQmdCdkNXLEVBQUE7O0FBRW5DO0VoQmdDd0Isa0JnQi9CRztFaEJvQ0gsaUJnQnBDRyxFQUFBOztBQUszQjtFQUFZLFdBQVcsRUFBQTs7QUFDdkI7RUFBWSxZQUFZLEVBQUE7O0FBSXhCO0VBQVksZ0JBQWdCLEVBQUE7O0FBQzVCO0VBQVksa0JBQWtCLEVBQUE7O0FBQzlCO0VBQVksaUJBQWlCLEVBQUE7O0FBRTdCO0VBQWdCLHlCQUF5QixFQUFBOztBQUN6QztFQUFnQix5QkFBeUIsRUFBQTs7QUFDekM7RUFBZ0IsMEJBQTBCLEVBQUE7O0FBRTFDO0VBQWEsZ0JmakVBLEVBQUE7O0Fla0ViO0VBQWEsZ0JmakVBLEVBQUE7O0Fla0ViO0VBQWEsZ0JmakVBLEVBQUE7O0Fla0ViO0VBQWEsZ0JmakVBLEVBQUE7O0Fla0ViO0VBQWEsZ0JmakVBLEVBQUE7O0Fla0ViO0VBQWEsZ0JmakVBLEVBQUE7O0FlcUViO0VBQXNCLHlCYnJEYSxFQUFBOztBYXNEbkM7RUFBc0IseUJidERhLEVBQUE7O0Fhd0RuQztFQUFzQix5QmY1REssRUFBQTs7QWU2RDNCO0VBQXNCLHlCWmtNTixFQUFBOztBWTlMbEI7RUNoQ1EsY0RpQ2dCO0VFeUd0QixvQkZ6R3NCO0VkNUNwQixZRFZzQjtFQ2dCdEIsV2N1Q2dCO0VBQ2xCLHlCWmlMd0IsRUFBQTs7QVk5SzFCO0VDdENRLGNEdUNnQjtFRW1HdEIsb0JGbkdzQjtFaEJoQkEsaUJDNUNFLEVBQUE7O0FlZ0UxQjtFQUNFLGdCQUFnQjtFaEJoQlEsaUJnQmlCQSxFQUFBOztBQUcxQjtFQUNFLFlBQVksRUFBQTs7QUdwR2I7RUFDSyxZQUFZO0VBQ1oscUJBQXFCO0VBQ3JCLHNCQUFzQjtFQUN0Qix5QkFBeUIsRUFBQTs7QUFHOUI7RUFDSyxjQUFjLEVBQUE7O0FBR25CO0VBQ0s7SUFDUSxXQUFXO0lBQ1gsY0FBYyxFQUFBLEVBQ3JCOztBekRrQ1A7RUFDTSxvQkFBb0I7RUFDcEIsYUFBYTtFQUNiLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsc0JBQXNCO0VBQ3RCLGlCQUFpQixFQUFBOztBQUV2QjtFQUNNLGNBQWM7RUFDZCxlQUFlO0VBQ2YsbUJBQW1CLEVBQUE7O0FEbkR6Qjs7O0VEOHdVRTtBNER2eFVGO0VBQ00sWUFBWTtFQUNaLGFBQWE7RUFDYix5QkFBeUI7RUFDekIseUJBQXlCO0VBQ3pCLGtCQUFrQjtFQUVsQix1QkFBdUIsRUFBQTs7QUNQN0I7RUFDTSxZQUFZO0VBQ1osZUFBZTtFQUNmLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsY0FBYztFQUNkLHlCTk55QjtFTU96Qix5Qk5QeUI7RU1RekIsbUJBQW1CO0VBQ25CLHlCQUF5QjtFQUN6QixhQUFhO0VBQ2IseUJBQXlCLEVBQUE7RUFYL0I7SUFjWSx5QkFBeUIsRUFBQTtFQWRyQztJQWlCWSx5QkFBeUIsRUFBQTs7QUFHckM7RUFDTSxXQUFXLEVBQUE7O0FBR2pCO0VBQ00sZ0NBQWdDO0VBQ2hDLDJDQUEyQztFQUMzQyw2QkFBNkIsRUFBQTs7QUFHbkM7RUFDTSxXQUFXO0VBQ1gseUJBQXlCO0VBQ3pCLDZCQUE2QixFQUFBO0VBSG5DO0lBTVkseUJBQXlCLEVBQUE7O0FDcENyQztFQUNFLGtCQUFrQixFQUFBOztBQUdwQjtFQUNFLFVBQVU7RUFDVixxQ0FBcUMsRUFBQTtFQUZ2QztJQU1JLGdCQUFnQixFQUFBOztBQUlwQjtFQUNFLFVBQVUsRUFBQTs7QUNiWjtFQUVFLFdBQVcsRUFBQTtFQUZiO0lBS0ksZ0JBQWdCLEVBQUE7RUFMcEI7SUFTSSwwQ0FBMEM7SUFDMUMsc0JBQXNCO0lBQ3RCLDZFQUE2RSxFQUFBO0VBWGpGO0lBZUkseUJBakIyQjtJQWtCM0IsbUJBQW1CO0lBQ25CLGdCQUFnQjtJQUNoQiw2QkFBNkI7SUFDN0Isc0JBQXNCO0lBQ3RCLG1CQUFtQjtJQUNuQix1QkFBdUIsRUFBQTtJQXJCM0I7TUF3Qk0sY0FBYztNQUNkLFVBQVUsRUFBQTtJQXpCaEI7TUF3Qk0sY0FBYztNQUNkLFVBQVUsRUFBQTtFQXpCaEI7SUErQk0sb0NBQTRDLEVBQUE7RUEvQmxEO0lBbUNNLHlCQUFpQyxFQUFBO0VBbkN2QztJQXlDTSxjQTNDeUIsRUFBQTtFQUUvQjtJQStDTSxvQ0FBMkM7SUFDM0Msc0JBQXNCLEVBQUE7RUFoRDVCO0lBb0RNLHlCQUFnQztJQUNoQyxvQkFBb0IsRUFBQTtFQXJEMUI7SUEwREkseUJBQW9DLEVBQUE7RUExRHhDO0lBOERJLGNBaEUyQixFQUFBO0VBRS9CO0lBa0VJLDRCQUE0QjtJQUM1QixVQUFVO0lBQ1YscUJBQXFCO0lBQ3JCLCtCQUErQjtJQUMvQixjQXhFMkI7SUF5RTNCLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2Ysa0NBQWtDO0lBQ2xDLHlCQUF5QjtJQUN6QixzQkFBc0I7SUFDdEIsWUFBWSxFQUFBOztBQzlFaEI7RUFDTSxxQkFBcUI7RUFDckIsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixZQUFZO0VBQ1osV0FBVyxFQUFBO0VBTGpCO0lBUVkscUJBQXFCO0lBQ3JCLGtCQUFrQjtJQUNsQixPQUFPO0lBQ1AsWUFBWTtJQUNaLFdBQVc7SUFDWCw2QkFBNkIsRUFBQTtFQWJ6QztJQWlCWSxxQkFBcUI7SUFDckIsa0JBQWtCO0lBQ2xCLFdBQVc7SUFDWCxZQUFZO0lBQ1osV0FBVztJQUNYLDZCQUE2QixFQUFBO0VBdEJ6QztJQTBCWSxxQkFBcUI7SUFDckIsa0JBQWtCO0lBQ2xCLFdBQVc7SUFDWCxZQUFZO0lBQ1osV0FBVztJQUNYLDZCQUE2QixFQUFBOztBQy9CekM7RUFDRSx5QkFBeUI7RUFDekIsYUFBYSxFQUFBO0VBR2I7SUFMRjtNQU1JLGFBQWEsRUFBQSxFQWlSaEI7RUF2UkQ7SUFVSSx5QkFBeUI7SUFDekIsbUJBQW1CO0lBQ25CLGdCQUFnQjtJQUNoQiwyQ0FBd0M7SUFDeEMsaUJBQWlCO0lBRWpCLFdBQVc7SUFJWCxpQkFBaUI7SUFDakIsWUFBWSxFQUFBO0VBckJoQjtJQXlCSSx5QkZ6QjJCO0lFMEIzQixhQUFhO0lBQ2IsY0FBYyxFQUFBO0lBM0JsQjtNQThCTSxtQkFBbUI7TUFDbkIsa0JBQWtCO01BQ2xCLFdBQVc7TUFDWCxjQUFjO01BQ2QsV0FBVyxFQUFBO01BbENqQjtRQXFDUSxZQUFZLEVBQUE7SUFyQ3BCO01BMENNLGdCQUFnQjtNQUNoQixnQkFBZ0I7TUFHaEIsc0JBQXNCLEVBQUE7TUE5QzVCO1FBaURRLHNCQUFzQixFQUFBO01BakQ5QjtRQXNEUSxZQUFZO1FBQ1osaUJBQWlCO1FBQ2pCLFdBQVc7UUFDWCxrQkFBa0I7UUFDbEIsbUJBQW1CO1FBQ25CLHlCQUF5QjtRQUV6QixzQkFBc0I7UUFJdEIsb0JBQWlCO1dBQWpCLGlCQUFpQjtRQUNqQix1QkFBb0I7V0FBcEIsb0JBQW9CLEVBQUE7TUFsRTVCO1FBc0VRLFNBQVM7UUFDVCxlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixZQUFZO1FBQ1osa0JBQWtCLEVBQUE7TUEzRTFCO1FBK0VRLFNBQVM7UUFDVCxlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixZQUFZO1FBQ1osa0JBQWtCLEVBQUE7TUFwRjFCO1FBd0ZRLGVBQWU7UUFDZixjQUFjO1FBQ2QsZ0JBQWdCO1FBQ2hCLGdCQUFnQixFQUFBO0VBM0Z4QjtJQWlHSSxhQUFhLEVBQUE7SUFHYjtNQXBHSjtRQXFHTSxhQUFhLEVBQUEsRUFnTGhCO0lBclJIO01BeUdNLG1CQUFtQjtNQUNuQixVQUFVO01BQ1Ysa0JBQWtCO01BQ2xCLFdBQVc7TUFDWCxjQUFjO01BQ2QsV0FBVyxFQUFBO01BOUdqQjtRQWlIUSxZQUFZLEVBQUE7SUFqSHBCO01Bc0hNLFdBQVc7TUFDWCxnQkFBZ0IsRUFBQTtNQXZIdEI7UUEwSFEsaUJBQWlCO1FBQ2pCLGVBQWU7UUFDZixnQkFBZ0I7UUFDaEIsY0FBYyxFQUFBO01BN0h0QjtRQWlJUSxrQkFBa0I7UUFDbEIsZUFBZTtRQUNmLGNBQWMsRUFBQTtNQW5JdEI7UUF3SVEsY0FBYztRQUNkLGtCQUFrQjtRQUNsQixZQUFZO1FBQ1osZUFBZSxFQUFBO1FBM0l2QjtVQThJVSxjQUFjO1VBQ2QsZUFBZSxFQUFBO01BL0l6QjtRQW9KUSxjQUFjO1FBQ2QsWUFBWTtRQUNaLGVBQWUsRUFBQTtRQXRKdkI7VUF5SlUsY0FBYztVQUNkLGVBQWUsRUFBQTtNQTFKekI7UUErSlEsa0JBQWtCLEVBQUE7UUEvSjFCO1VBa0tVLGFBQWEsRUFBQTtNQWxLdkI7UUF1S1Esd0JBQXdCLEVBQUE7UUF2S2hDO1VBMEtVLGVGMUtxQixFQUFBO01FQS9CO1FBK0tRLGtCQUFrQjtRQUFFLHFCQUFxQjtRQUN6QyxVQUFVO1FBQ1YseUJBQXlCO1FBQ3pCLGNBQWM7UUFDZCxpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLGVBQWU7UUFDZixnQkFBZ0I7UUFDaEIsYUFBYTtRQUNiLG1CQUFtQjtRQUNuQix5QkFBeUI7UUFDekIsV0FBVztRQUNYLHlDQUFzQyxFQUFBO1FBM0w5QztVQThMVSxlQUFlO1VBQ2YsZUFBZTtVQUNmLFlBQVk7VUFDWixjQUFjO1VBQ2QsaUJBQWlCLEVBQUE7TUFsTTNCO1FBdU1RLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCLEVBQUE7TUF6TXhCO1FBNk1RLGtCQUFrQjtRQUNsQixXQUFXLEVBQUE7UUE5TW5CO1VBaU5VLGNBQWMsRUFBQTtNQWpOeEI7UUFzTlEsU0FBUztRQUNULGtCQUFrQjtRQUNsQixXQUFXO1FBQ1gsUUFBUTtRQUNSLDJCQUEyQjtRQUMzQixXQUFXLEVBQUE7TUEzTm5CO1FBK05RLGtCQUFrQjtRQUNsQixXQUFXLEVBQUE7UUFoT25CO1VBbU9VLGFBQWEsRUFBQTtNQW5PdkI7UUF3T1EsMENBQTBDO1FBQzFDLHNCQUFzQjtRQUN0Qiw2RUFBNkUsRUFBQTtNQTFPckY7UUE4T1EsY0FBeUIsRUFBQTtNQTlPakM7UUFrUFEsY0FBeUIsRUFBQTtNQWxQakM7UUFzUFEsa0JBQWtCO1FBQ2xCLFdBQVcsRUFBQTtRQXZQbkI7VUEwUFUsV0FBVyxFQUFBO1FBMVByQjtVQThQVSxhQUFhLEVBQUE7TUE5UHZCO1FBbVFRLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO1FBQ2hCLGNGdFF1QixFQUFBO0lFQS9CO01BMlFNLGdCQUFnQixFQUFBO01BM1F0QjtRQThRUSxjRjlRdUI7UUUrUXZCLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2YscUJBQXFCLEVBQUE7O0FoRTFQN0I7RUFDSSxnQ0FBNkI7RUFDN0Isb0NBQTZDLEVBQUE7O0FBR2pEO0VBRVksY0FBYyxFQUFBIiwiZmlsZSI6ImluZGV4LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qKlxuICogIERvIG5vdCByZW1vdmUgdGhlIGNvbW1lbnRzIGJlbG93LiBJdCdzIHRoZSBtYXJrZXJzIHVzZWQgYnkgd2lyZWRlcCB0byBpbmplY3RcbiAqICBzYXNzIGRlcGVuZGVuY2llcyB3aGVuIGRlZmluZWQgaW4gdGhlIGJvd2VyLmpzb24gb2YgeW91ciBkZXBlbmRlbmNpZXNcbiAqL1xuYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmEgIWltcG9ydGFudDsgfVxuXG5odG1sIGJvZHksIGlucHV0LCBidXR0b24sIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgSGVsdmV0aWNhLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7IH1cblxuLnN1Y2Nlc3MtbWVzc2FnZS1zZW50IHAge1xuICBjb2xvcjogIzk5OTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5zdWNjZXNzLW1lc3NhZ2Utc2VudCBoMyB7XG4gIGNvbG9yOiAjNzc3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLm5vdGlmaWNhdGlvbi1mc2Vuc2Uge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGhlaWdodDogYXV0bztcbiAgcGFkZGluZzogNHB4IDE2cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi13aWR0aDogNDUwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGVmdDogNTAlO1xuICBsaW5lLWhlaWdodDogMzBweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBib3JkZXItcmFkaXVzOiAwIDAgNHB4IDRweDtcbiAgdG9wOiAwO1xuICBib3gtc2hhZG93OiAwIDAgM3B4IGdyZXk7XG4gIGFuaW1hdGlvbi1uYW1lOiBub3RpZmljYXRpb24tZW50ZXI7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuM3M7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7IH1cblxuLm5vdGlmaWNhdGlvbi1sZWF2ZSB7XG4gIHRvcDogLTQwcHg7XG4gIGFuaW1hdGlvbi1uYW1lOiBub3RpZmljYXRpb24tbGVhdmU7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuM3M7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7IH1cblxuLm5vdGlmaWNhdGlvbi1kZWZhdWx0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogZ3JleTsgfVxuXG4ubm90aWZpY2F0aW9uLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBncmV5OyB9XG5cbi5ub3RpZmljYXRpb24tc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1OGNlNTg7XG4gIGNvbG9yOiB3aGl0ZTsgfVxuXG4ubm90aWZpY2F0aW9uLXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBncmV5OyB9XG5cbi5ub3RpZmljYXRpb24tZXJyb3Ige1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkYzY0NjQ7IH1cblxuQGtleWZyYW1lcyBub3RpZmljYXRpb24tZW50ZXIge1xuICBmcm9tIHtcbiAgICB0b3A6IC0zMHB4OyB9XG4gIHRvIHtcbiAgICB0b3A6IDA7IH0gfVxuXG5Aa2V5ZnJhbWVzIG5vdGlmaWNhdGlvbi1sZWF2ZSB7XG4gIGZyb20ge1xuICAgIHRvcDogMHB4OyB9XG4gIHRvIHtcbiAgICB0b3A6IC00MHB4OyB9IH1cblxuLyogZmFsbGJhY2sgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ01hdGVyaWFsIEljb25zJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguLi9mb250cy9NYXRlcmlhbC1JY29ucy53b2ZmMikgZm9ybWF0KFwid29mZjJcIik7IH1cblxuLm1hdGVyaWFsLWljb25zIHtcbiAgZm9udC1mYW1pbHk6ICdNYXRlcmlhbCBJY29ucyc7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG4gIGRpcmVjdGlvbjogbHRyO1xuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6ICdsaWdhJztcbiAgLW1vei1mb250LWZlYXR1cmUtc2V0dGluZ3M6ICdsaWdhJztcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxuXG4vKiBSdWxlcyBmb3Igc2l6aW5nIHRoZSBpY29uLiAqL1xuLm1hdGVyaWFsLWljb25zLm1kLTE4IHtcbiAgZm9udC1zaXplOiAxOHB4OyB9XG5cbi5tYXRlcmlhbC1pY29ucy5tZC0yNCB7XG4gIGZvbnQtc2l6ZTogMjRweDsgfVxuXG4ubWF0ZXJpYWwtaWNvbnMubWQtMzYge1xuICBmb250LXNpemU6IDM2cHg7IH1cblxuLm1hdGVyaWFsLWljb25zLm1kLTQ4IHtcbiAgZm9udC1zaXplOiA0OHB4OyB9XG5cbi8qIFJ1bGVzIGZvciB1c2luZyBpY29ucyBhcyBibGFjayBvbiBhIGxpZ2h0IGJhY2tncm91bmQuICovXG4ubWF0ZXJpYWwtaWNvbnMubWQtZGFyayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpOyB9XG5cbi5tYXRlcmlhbC1pY29ucy5tZC1kYXJrLm1kLWluYWN0aXZlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7IH1cblxuLyogUnVsZXMgZm9yIHVzaW5nIGljb25zIGFzIHdoaXRlIG9uIGEgZGFyayBiYWNrZ3JvdW5kLiAqL1xuLm1hdGVyaWFsLWljb25zLm1kLWxpZ2h0IHtcbiAgY29sb3I6IHdoaXRlOyB9XG5cbi5tYXRlcmlhbC1pY29ucy5tZC1saWdodC5tZC1pbmFjdGl2ZSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7IH1cblxuLyogY3lyaWxsaWMtZXh0ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1MaWdodC50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUY7IH1cblxuLyogY3lyaWxsaWMgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUxpZ2h0LnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsgfVxuXG4vKiBncmVlay1leHQgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUxpZ2h0LnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMUYwMC0xRkZGOyB9XG5cbi8qIGdyZWVrICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1MaWdodC50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDNGRjsgfVxuXG4vKiB2aWV0bmFtZXNlICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1MaWdodC50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjsgfVxuXG4vKiBsYXRpbi1leHQgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUxpZ2h0LnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7IH1cblxuLyogbGF0aW4gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUxpZ2h0LnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1OyB9XG5cbi8qIGN5cmlsbGljLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tUmVndWxhci50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUY7IH1cblxuLyogY3lyaWxsaWMgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLVJlZ3VsYXIudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbiAgdW5pY29kZS1yYW5nZTogVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2OyB9XG5cbi8qIGdyZWVrLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tUmVndWxhci50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzFGMDAtMUZGRjsgfVxuXG4vKiBncmVlayAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tUmVndWxhci50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDNGRjsgfVxuXG4vKiB2aWV0bmFtZXNlICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1SZWd1bGFyLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzFFQTAtMUVGOSwgVSsyMEFCOyB9XG5cbi8qIGxhdGluLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tUmVndWxhci50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDI0RiwgVSsxRTAwLTFFRkYsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOyB9XG5cbi8qIGxhdGluICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1SZWd1bGFyLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1OyB9XG5cbi8qIGN5cmlsbGljLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tTWVkaXVtLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzIwQjQsIFUrMkRFMC0yREZGLCBVK0E2NDAtQTY5RjsgfVxuXG4vKiBjeXJpbGxpYyAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tTWVkaXVtLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsgfVxuXG4vKiBncmVlay1leHQgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLU1lZGl1bS50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzFGMDAtMUZGRjsgfVxuXG4vKiBncmVlayAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tTWVkaXVtLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGOyB9XG5cbi8qIHZpZXRuYW1lc2UgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLU1lZGl1bS50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjsgfVxuXG4vKiBsYXRpbi1leHQgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLU1lZGl1bS50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDI0RiwgVSsxRTAwLTFFRkYsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOyB9XG5cbi8qIGxhdGluICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1NZWRpdW0udHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMjAwMC0yMDZGLCBVKzIwNzQsIFUrMjBBQywgVSsyMjEyLCBVKzIyMTU7IH1cblxuLyogY3lyaWxsaWMtZXh0ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1Cb2xkLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzIwQjQsIFUrMkRFMC0yREZGLCBVK0E2NDAtQTY5RjsgfVxuXG4vKiBjeXJpbGxpYyAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tQm9sZC50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzA0MDAtMDQ1RiwgVSswNDkwLTA0OTEsIFUrMDRCMC0wNEIxLCBVKzIxMTY7IH1cblxuLyogZ3JlZWstZXh0ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1Cb2xkLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMUYwMC0xRkZGOyB9XG5cbi8qIGdyZWVrICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1Cb2xkLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGOyB9XG5cbi8qIHZpZXRuYW1lc2UgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUJvbGQudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMTAyLTAxMDMsIFUrMUVBMC0xRUY5LCBVKzIwQUI7IH1cblxuLyogbGF0aW4tZXh0ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1Cb2xkLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7IH1cblxuLyogbGF0aW4gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUJvbGQudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMjAwMC0yMDZGLCBVKzIwNzQsIFUrMjBBQywgVSsyMjEyLCBVKzIyMTU7IH1cblxuLyogY3lyaWxsaWMtZXh0ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1JdGFsaWMudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGOyB9XG5cbi8qIGN5cmlsbGljICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1JdGFsaWMudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbiAgdW5pY29kZS1yYW5nZTogVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2OyB9XG5cbi8qIGdyZWVrLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tSXRhbGljLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMUYwMC0xRkZGOyB9XG5cbi8qIGdyZWVrICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1JdGFsaWMudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMzcwLTAzRkY7IH1cblxuLyogdmlldG5hbWVzZSAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tSXRhbGljLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzFFQTAtMUVGOSwgVSsyMEFCOyB9XG5cbi8qIGxhdGluLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tSXRhbGljLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7IH1cblxuLyogbGF0aW4gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUl0YWxpYy50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSsyMDAwLTIwNkYsIFUrMjA3NCwgVSsyMEFDLCBVKzIyMTIsIFUrMjIxNTsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogTWF0ZXJpYWwgRGVzaWduIExpdGUgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi8qXG4gKiBXaGF0IGZvbGxvd3MgaXMgdGhlIHJlc3VsdCBvZiBtdWNoIHJlc2VhcmNoIG9uIGNyb3NzLWJyb3dzZXIgc3R5bGluZy5cbiAqIENyZWRpdCBsZWZ0IGlubGluZSBhbmQgYmlnIHRoYW5rcyB0byBOaWNvbGFzIEdhbGxhZ2hlciwgSm9uYXRoYW4gTmVhbCxcbiAqIEtyb2MgQ2FtZW4sIGFuZCB0aGUgSDVCUCBkZXYgY29tbXVuaXR5IGFuZCB0ZWFtLlxuICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQmFzZSBzdHlsZXM6IG9waW5pb25hdGVkIGRlZmF1bHRzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuaHRtbCB7XG4gIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjg3KTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7IH1cblxuLypcbiAqIFJlbW92ZSB0ZXh0LXNoYWRvdyBpbiBzZWxlY3Rpb24gaGlnaGxpZ2h0OlxuICogaHR0cHM6Ly90d2l0dGVyLmNvbS9taWtldGF5bHIvc3RhdHVzLzEyMjI4ODA1MzAxXG4gKlxuICogVGhlc2Ugc2VsZWN0aW9uIHJ1bGUgc2V0cyBoYXZlIHRvIGJlIHNlcGFyYXRlLlxuICogQ3VzdG9taXplIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIHRvIG1hdGNoIHlvdXIgZGVzaWduLlxuICovXG46OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQ6ICNiM2Q0ZmM7XG4gIHRleHQtc2hhZG93OiBub25lOyB9XG5cbi8qXG4gKiBBIGJldHRlciBsb29raW5nIGRlZmF1bHQgaG9yaXpvbnRhbCBydWxlXG4gKi9cbmhyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMXB4O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xuICBtYXJnaW46IDFlbSAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qXG4gKiBSZW1vdmUgdGhlIGdhcCBiZXR3ZWVuIGF1ZGlvLCBjYW52YXMsIGlmcmFtZXMsXG4gKiBpbWFnZXMsIHZpZGVvcyBhbmQgdGhlIGJvdHRvbSBvZiB0aGVpciBjb250YWluZXJzOlxuICogaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvaXNzdWVzLzQ0MFxuICovXG5hdWRpbyxcbmNhbnZhcyxcbmlmcmFtZSxcbmltZyxcbnN2ZyxcbnZpZGVvIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG4vKlxuICogUmVtb3ZlIGRlZmF1bHQgZmllbGRzZXQgc3R5bGVzLlxuICovXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qXG4gKiBBbGxvdyBvbmx5IHZlcnRpY2FsIHJlc2l6aW5nIG9mIHRleHRhcmVhcy5cbiAqL1xudGV4dGFyZWEge1xuICByZXNpemU6IHZlcnRpY2FsOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCcm93c2VyIFVwZ3JhZGUgUHJvbXB0XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmJyb3dzZXJ1cGdyYWRlIHtcbiAgbWFyZ2luOiAwLjJlbSAwO1xuICBiYWNrZ3JvdW5kOiAjY2NjO1xuICBjb2xvcjogIzAwMDtcbiAgcGFkZGluZzogMC4yZW0gMDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQXV0aG9yJ3MgY3VzdG9tIHN0eWxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBIZWxwZXIgY2xhc3Nlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBIaWRlIHZpc3VhbGx5IGFuZCBmcm9tIHNjcmVlbiByZWFkZXJzOlxuICovXG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi8qXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKi9cbi52aXN1YWxseWhpZGRlbiB7XG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4OyB9XG5cbi8qXG4gKiBFeHRlbmRzIHRoZSAudmlzdWFsbHloaWRkZW4gY2xhc3MgdG8gYWxsb3cgdGhlIGVsZW1lbnRcbiAqIHRvIGJlIGZvY3VzYWJsZSB3aGVuIG5hdmlnYXRlZCB0byB2aWEgdGhlIGtleWJvYXJkOlxuICogaHR0cHM6Ly93d3cuZHJ1cGFsLm9yZy9ub2RlLzg5NzYzOFxuICovXG4udmlzdWFsbHloaWRkZW4uZm9jdXNhYmxlOmFjdGl2ZSxcbi52aXN1YWxseWhpZGRlbi5mb2N1c2FibGU6Zm9jdXMge1xuICBjbGlwOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIHdpZHRoOiBhdXRvOyB9XG5cbi8qXG4gKiBIaWRlIHZpc3VhbGx5IGFuZCBmcm9tIHNjcmVlbiByZWFkZXJzLCBidXQgbWFpbnRhaW4gbGF5b3V0XG4gKi9cbi5pbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLypcbiAqIENsZWFyZml4OiBjb250YWluIGZsb2F0c1xuICpcbiAqIEZvciBtb2Rlcm4gYnJvd3NlcnNcbiAqIDEuIFRoZSBzcGFjZSBjb250ZW50IGlzIG9uZSB3YXkgdG8gYXZvaWQgYW4gT3BlcmEgYnVnIHdoZW4gdGhlXG4gKiAgICBgY29udGVudGVkaXRhYmxlYCBhdHRyaWJ1dGUgaXMgaW5jbHVkZWQgYW55d2hlcmUgZWxzZSBpbiB0aGUgZG9jdW1lbnQuXG4gKiAgICBPdGhlcndpc2UgaXQgY2F1c2VzIHNwYWNlIHRvIGFwcGVhciBhdCB0aGUgdG9wIGFuZCBib3R0b20gb2YgZWxlbWVudHNcbiAqICAgIHRoYXQgcmVjZWl2ZSB0aGUgYGNsZWFyZml4YCBjbGFzcy5cbiAqIDIuIFRoZSB1c2Ugb2YgYHRhYmxlYCByYXRoZXIgdGhhbiBgYmxvY2tgIGlzIG9ubHkgbmVjZXNzYXJ5IGlmIHVzaW5nXG4gKiAgICBgOmJlZm9yZWAgdG8gY29udGFpbiB0aGUgdG9wLW1hcmdpbnMgb2YgY2hpbGQgZWxlbWVudHMuXG4gKi9cbi5jbGVhcmZpeDpiZWZvcmUsXG4uY2xlYXJmaXg6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgLyogMiAqLyB9XG5cbi5jbGVhcmZpeDphZnRlciB7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBFWEFNUExFIE1lZGlhIFF1ZXJpZXMgZm9yIFJlc3BvbnNpdmUgRGVzaWduLlxuICAgVGhlc2UgZXhhbXBsZXMgb3ZlcnJpZGUgdGhlIHByaW1hcnkgKCdtb2JpbGUgZmlyc3QnKSBzdHlsZXMuXG4gICBNb2RpZnkgYXMgY29udGVudCByZXF1aXJlcy5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDM1ZW0pIHtcbiAgLyogU3R5bGUgYWRqdXN0bWVudHMgZm9yIHZpZXdwb3J0cyB0aGF0IG1lZXQgdGhlIGNvbmRpdGlvbiAqLyB9XG5cbkBtZWRpYSBwcmludCwgKG1pbi1yZXNvbHV0aW9uOiAxLjI1ZHBweCksIChtaW4tcmVzb2x1dGlvbjogMTIwZHBpKSB7XG4gIC8qIFN0eWxlIGFkanVzdG1lbnRzIGZvciBoaWdoIHJlc29sdXRpb24gZGV2aWNlcyAqLyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQcmludCBzdHlsZXMuXG4gICBJbmxpbmVkIHRvIGF2b2lkIHRoZSBhZGRpdGlvbmFsIEhUVFAgcmVxdWVzdDpcbiAgIGh0dHA6Ly93d3cucGhwaWVkLmNvbS9kZWxheS1sb2FkaW5nLXlvdXItcHJpbnQtY3NzL1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbkBtZWRpYSBwcmludCB7XG4gICosXG4gICo6YmVmb3JlLFxuICAqOmFmdGVyLFxuICAqOmZpcnN0LWxldHRlcixcbiAgKjpmaXJzdC1saW5lIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7XG4gICAgLyogQmxhY2sgcHJpbnRzIGZhc3RlcjogaHR0cDovL3d3dy5zYW5iZWlqaS5jb20vYXJjaGl2ZXMvOTUzICovXG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgYSxcbiAgYTp2aXNpdGVkIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICBhW2hyZWZdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjsgfVxuICBhYmJyW3RpdGxlXTphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIodGl0bGUpIFwiKVwiOyB9XG4gIC8qXG4gICAgICogRG9uJ3Qgc2hvdyBsaW5rcyB0aGF0IGFyZSBmcmFnbWVudCBpZGVudGlmaWVycyxcbiAgICAgKiBvciB1c2UgdGhlIGBqYXZhc2NyaXB0OmAgcHNldWRvIHByb3RvY29sXG4gICAgICovXG4gIGFbaHJlZl49XCIjXCJdOmFmdGVyLFxuICBhW2hyZWZePVwiamF2YXNjcmlwdDpcIl06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgcHJlLFxuICBibG9ja3F1b3RlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuICAvKlxuICAgICAqIFByaW50aW5nIFRhYmxlczpcbiAgICAgKiBodHRwOi8vY3NzLWRpc2N1c3MuaW5jdXRpby5jb20vd2lraS9QcmludGluZ19UYWJsZXNcbiAgICAgKi9cbiAgdGhlYWQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxuICB0cixcbiAgaW1nIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICBwLFxuICBoMixcbiAgaDMge1xuICAgIG9ycGhhbnM6IDM7XG4gICAgd2lkb3dzOiAzOyB9XG4gIGgyLFxuICBoMyB7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH0gfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogUmVtb3ZlIHRoZSB1bndhbnRlZCBib3ggYXJvdW5kIEZBQiBidXR0b25zICovXG4vKiBNb3JlIGluZm86IGh0dHA6Ly9nb28uZ2wvSVB3S2kgKi9cbmEsIC5tZGwtYWNjb3JkaW9uLCAubWRsLWJ1dHRvbiwgLm1kbC1jYXJkLCAubWRsLWNoZWNrYm94LCAubWRsLWRyb3Bkb3duLW1lbnUsXG4ubWRsLWljb24tdG9nZ2xlLCAubWRsLWl0ZW0sIC5tZGwtcmFkaW8sIC5tZGwtc2xpZGVyLCAubWRsLXN3aXRjaCwgLm1kbC10YWJzX190YWIge1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7IH1cblxuLypcbiAqIE1ha2UgaHRtbCB0YWtlIHVwIHRoZSBlbnRpcmUgc2NyZWVuXG4gKiBUaGVuIHNldCB0b3VjaC1hY3Rpb24gdG8gYXZvaWQgdG91Y2ggZGVsYXkgb24gbW9iaWxlIElFXG4gKi9cbmh0bWwge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICAtbXMtdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOyB9XG5cbi8qXG4qIE1ha2UgYm9keSB0YWtlIHVwIHRoZSBlbnRpcmUgc2NyZWVuXG4qIFJlbW92ZSBib2R5IG1hcmdpbiBzbyBsYXlvdXQgY29udGFpbmVycyBkb24ndCBjYXVzZSBleHRyYSBvdmVyZmxvdy5cbiovXG5ib2R5IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMDsgfVxuXG4vKlxuICogTWFpbiBkaXNwbGF5IHJlc2V0IGZvciBJRSBzdXBwb3J0LlxuICogU291cmNlOiBodHRwOi8vd2VibG9nLndlc3Qtd2luZC5jb20vcG9zdHMvMjAxNS9KYW4vMTIvbWFpbi1IVE1MNS1UYWctbm90LXdvcmtpbmctaW4tSW50ZXJuZXQtRXhwbG9yZXItOTEwMTFcbiAqL1xubWFpbiB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qXG4qIEFwcGx5IG5vIGRpc3BsYXkgdG8gZWxlbWVudHMgd2l0aCB0aGUgaGlkZGVuIGF0dHJpYnV0ZS5cbiogSUUgOSBhbmQgMTAgc3VwcG9ydC5cbiovXG4qW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG5odG1sLCBib2R5IHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjBweDsgfVxuXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qKlxuICAqIFN0eWxlcyBmb3IgSFRNTCBlbGVtZW50c1xuICAqL1xuaDEgc21hbGwsIGgyIHNtYWxsLCBoMyBzbWFsbCwgaDQgc21hbGwsIGg1IHNtYWxsLCBoNiBzbWFsbCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogNTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICBvcGFjaXR5OiAwLjU0O1xuICBmb250LXNpemU6IDAuNmVtOyB9XG5cbmgxIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiA1NnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4zNTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gIG1hcmdpbi10b3A6IDI0cHg7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7IH1cblxuaDIge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDQ1cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xuICBtYXJnaW4tdG9wOiAyNHB4O1xuICBtYXJnaW4tYm90dG9tOiAyNHB4OyB9XG5cbmgzIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAzNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogNDBweDtcbiAgbWFyZ2luLXRvcDogMjRweDtcbiAgbWFyZ2luLWJvdHRvbTogMjRweDsgfVxuXG5oNCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDMycHg7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIG1hcmdpbi10b3A6IDI0cHg7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7IH1cblxuaDUge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICBtYXJnaW4tdG9wOiAyNHB4O1xuICBtYXJnaW4tYm90dG9tOiAxNnB4OyB9XG5cbmg2IHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgbWFyZ2luLXRvcDogMjRweDtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDsgfVxuXG5wIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7IH1cblxuYSB7XG4gIGNvbG9yOiByZ2IoMjU1LDY0LDEyOSk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7IH1cblxuYmxvY2txdW90ZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICBsZXR0ZXItc3BhY2luZzogMC4wOGVtOyB9XG4gIGJsb2NrcXVvdGU6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogLTAuNWVtO1xuICAgIGNvbnRlbnQ6ICfigJwnOyB9XG4gIGJsb2NrcXVvdGU6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICfigJ0nO1xuICAgIG1hcmdpbi1sZWZ0OiAtMC4wNWVtOyB9XG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmZjgxOyB9XG5cbmR0IHtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG5hZGRyZXNzIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG51bCwgb2wge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMDsgfVxuXG4vKipcbiAqIENsYXNzIE5hbWUgU3R5bGVzXG4gKi9cbi5tZGwtdHlwb2dyYXBoeS0tZGlzcGxheS00IHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMTJweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wNGVtOyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tZGlzcGxheS00LWNvbG9yLWNvbnRyYXN0IHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMTJweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wNGVtO1xuICBvcGFjaXR5OiAwLjU0OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tZGlzcGxheS0zIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiA1NnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4zNTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1kaXNwbGF5LTMtY29sb3ItY29udHJhc3Qge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDU2cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgb3BhY2l0eTogMC41NDsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWRpc3BsYXktMiB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogNDVweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDQ4cHg7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1kaXNwbGF5LTItY29sb3ItY29udHJhc3Qge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDQ1cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xuICBvcGFjaXR5OiAwLjU0OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tZGlzcGxheS0xIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAzNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogNDBweDsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWRpc3BsYXktMS1jb2xvci1jb250cmFzdCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMzRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gIG9wYWNpdHk6IDAuNTQ7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1oZWFkbGluZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDMycHg7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1oZWFkbGluZS1jb2xvci1jb250cmFzdCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDMycHg7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIG9wYWNpdHk6IDAuODc7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS10aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07IH1cblxuLm1kbC10eXBvZ3JhcGh5LS10aXRsZS1jb2xvci1jb250cmFzdCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gIG9wYWNpdHk6IDAuODc7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1zdWJoZWFkIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLXN1YmhlYWQtY29sb3ItY29udHJhc3Qge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICBvcGFjaXR5OiAwLjg3OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tYm9keS0yIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwOyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tYm9keS0yLWNvbG9yLWNvbnRyYXN0IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvcGFjaXR5OiAwLjg3OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tYm9keS0xIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1ib2R5LTEtY29sb3ItY29udHJhc3Qge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgb3BhY2l0eTogMC44NzsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWJvZHktMi1mb3JjZS1wcmVmZXJyZWQtZm9udCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwOyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tYm9keS0yLWZvcmNlLXByZWZlcnJlZC1mb250LWNvbG9yLWNvbnRyYXN0IHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIG9wYWNpdHk6IDAuODc7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1ib2R5LTEtZm9yY2UtcHJlZmVycmVkLWZvbnQge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMDsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWJvZHktMS1mb3JjZS1wcmVmZXJyZWQtZm9udC1jb2xvci1jb250cmFzdCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvcGFjaXR5OiAwLjg3OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tY2FwdGlvbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwOyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tY2FwdGlvbi1mb3JjZS1wcmVmZXJyZWQtZm9udCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwOyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tY2FwdGlvbi1jb2xvci1jb250cmFzdCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvcGFjaXR5OiAwLjU0OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tY2FwdGlvbi1mb3JjZS1wcmVmZXJyZWQtZm9udC1jb2xvci1jb250cmFzdCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvcGFjaXR5OiAwLjU0OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tbWVudSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwOyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tbWVudS1jb2xvci1jb250cmFzdCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvcGFjaXR5OiAwLjg3OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tYnV0dG9uIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1idXR0b24tY29sb3ItY29udHJhc3Qge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgb3BhY2l0eTogMC44NzsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLXRleHQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS10ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS10ZXh0LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLXRleHQtanVzdGlmeSB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS10ZXh0LW5vd3JhcCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS10ZXh0LWxvd2VyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS10ZXh0LXVwcGVyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS10ZXh0LWNhcGl0YWxpemUge1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWZvbnQtdGhpbiB7XG4gIGZvbnQtd2VpZ2h0OiAyMDAgIWltcG9ydGFudDsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWZvbnQtbGlnaHQge1xuICBmb250LXdlaWdodDogMzAwICFpbXBvcnRhbnQ7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1mb250LXJlZ3VsYXIge1xuICBmb250LXdlaWdodDogNDAwICFpbXBvcnRhbnQ7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1mb250LW1lZGl1bSB7XG4gIGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWZvbnQtYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWZvbnQtYmxhY2sge1xuICBmb250LXdlaWdodDogOTAwICFpbXBvcnRhbnQ7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi5tZGwtY29sb3ItdGV4dC0tcmVkIHtcbiAgY29sb3I6IHJnYigyNDQsNjcsNTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcmVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0NCw2Nyw1NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXJlZC01MCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIzNSwyMzgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcmVkLTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMzUsMjM4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcmVkLTEwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIwNSwyMTApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcmVkLTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjA1LDIxMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXJlZC0yMDAge1xuICBjb2xvcjogcmdiKDIzOSwxNTQsMTU0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXJlZC0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM5LDE1NCwxNTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1yZWQtMzAwIHtcbiAgY29sb3I6IHJnYigyMjksMTE1LDExNSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1yZWQtMzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyOSwxMTUsMTE1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcmVkLTQwMCB7XG4gIGNvbG9yOiByZ2IoMjM5LDgzLDgwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXJlZC00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM5LDgzLDgwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcmVkLTUwMCB7XG4gIGNvbG9yOiByZ2IoMjQ0LDY3LDU0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXJlZC01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ0LDY3LDU0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcmVkLTYwMCB7XG4gIGNvbG9yOiByZ2IoMjI5LDU3LDUzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXJlZC02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjI5LDU3LDUzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcmVkLTcwMCB7XG4gIGNvbG9yOiByZ2IoMjExLDQ3LDQ3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXJlZC03MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjExLDQ3LDQ3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcmVkLTgwMCB7XG4gIGNvbG9yOiByZ2IoMTk4LDQwLDQwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXJlZC04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTk4LDQwLDQwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcmVkLTkwMCB7XG4gIGNvbG9yOiByZ2IoMTgzLDI4LDI4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXJlZC05MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTgzLDI4LDI4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcmVkLUExMDAge1xuICBjb2xvcjogcmdiKDI1NSwxMzgsMTI4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXJlZC1BMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwxMzgsMTI4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcmVkLUEyMDAge1xuICBjb2xvcjogcmdiKDI1NSw4Miw4MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1yZWQtQTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsODIsODIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1yZWQtQTQwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIzLDY4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXJlZC1BNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMyw2OCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXJlZC1BNzAwIHtcbiAgY29sb3I6IHJnYigyMTMsMCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXJlZC1BNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIxMywwLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1waW5rIHtcbiAgY29sb3I6IHJnYigyMzMsMzAsOTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcGluayB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzMsMzAsOTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1waW5rLTUwIHtcbiAgY29sb3I6IHJnYigyNTIsMjI4LDIzNikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1waW5rLTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1MiwyMjgsMjM2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcGluay0xMDAge1xuICBjb2xvcjogcmdiKDI0OCwxODcsMjA4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXBpbmstMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0OCwxODcsMjA4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcGluay0yMDAge1xuICBjb2xvcjogcmdiKDI0NCwxNDMsMTc3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXBpbmstMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0NCwxNDMsMTc3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcGluay0zMDAge1xuICBjb2xvcjogcmdiKDI0MCw5OCwxNDYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcGluay0zMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQwLDk4LDE0NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXBpbmstNDAwIHtcbiAgY29sb3I6IHJnYigyMzYsNjQsMTIyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXBpbmstNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzNiw2NCwxMjIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1waW5rLTUwMCB7XG4gIGNvbG9yOiByZ2IoMjMzLDMwLDk5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXBpbmstNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzMywzMCw5OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXBpbmstNjAwIHtcbiAgY29sb3I6IHJnYigyMTYsMjcsOTYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcGluay02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjE2LDI3LDk2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcGluay03MDAge1xuICBjb2xvcjogcmdiKDE5NCwyNCw5MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1waW5rLTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxOTQsMjQsOTEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1waW5rLTgwMCB7XG4gIGNvbG9yOiByZ2IoMTczLDIwLDg3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXBpbmstODAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3MywyMCw4NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXBpbmstOTAwIHtcbiAgY29sb3I6IHJnYigxMzYsMTQsNzkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcGluay05MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTM2LDE0LDc5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcGluay1BMTAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTI4LDE3MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1waW5rLUExMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDEyOCwxNzEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1waW5rLUEyMDAge1xuICBjb2xvcjogcmdiKDI1NSw2NCwxMjkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcGluay1BMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSw2NCwxMjkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1waW5rLUE0MDAge1xuICBjb2xvcjogcmdiKDI0NSwwLDg3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXBpbmstQTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDUsMCw4NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXBpbmstQTcwMCB7XG4gIGNvbG9yOiByZ2IoMTk3LDE3LDk4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXBpbmstQTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxOTcsMTcsOTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUge1xuICBjb2xvcjogcmdiKDE1NiwzOSwxNzYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcHVycGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE1NiwzOSwxNzYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtNTAge1xuICBjb2xvcjogcmdiKDI0MywyMjksMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXB1cnBsZS01MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDMsMjI5LDI0NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXB1cnBsZS0xMDAge1xuICBjb2xvcjogcmdiKDIyNSwxOTAsMjMxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXB1cnBsZS0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjI1LDE5MCwyMzEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtMjAwIHtcbiAgY29sb3I6IHJnYigyMDYsMTQ3LDIxNikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1wdXJwbGUtMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwNiwxNDcsMjE2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcHVycGxlLTMwMCB7XG4gIGNvbG9yOiByZ2IoMTg2LDEwNCwyMDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcHVycGxlLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxODYsMTA0LDIwMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXB1cnBsZS00MDAge1xuICBjb2xvcjogcmdiKDE3MSw3MSwxODgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcHVycGxlLTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNzEsNzEsMTg4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcHVycGxlLTUwMCB7XG4gIGNvbG9yOiByZ2IoMTU2LDM5LDE3NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1wdXJwbGUtNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE1NiwzOSwxNzYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtNjAwIHtcbiAgY29sb3I6IHJnYigxNDIsMzYsMTcwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXB1cnBsZS02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTQyLDM2LDE3MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXB1cnBsZS03MDAge1xuICBjb2xvcjogcmdiKDEyMywzMSwxNjIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcHVycGxlLTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMjMsMzEsMTYyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcHVycGxlLTgwMCB7XG4gIGNvbG9yOiByZ2IoMTA2LDI3LDE1NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1wdXJwbGUtODAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwNiwyNywxNTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtOTAwIHtcbiAgY29sb3I6IHJnYig3NCwyMCwxNDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcHVycGxlLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig3NCwyMCwxNDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtQTEwMCB7XG4gIGNvbG9yOiByZ2IoMjM0LDEyOCwyNTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcHVycGxlLUExMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM0LDEyOCwyNTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtQTIwMCB7XG4gIGNvbG9yOiByZ2IoMjI0LDY0LDI1MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1wdXJwbGUtQTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMjQsNjQsMjUxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcHVycGxlLUE0MDAge1xuICBjb2xvcjogcmdiKDIxMywwLDI0OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1wdXJwbGUtQTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMTMsMCwyNDkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtQTcwMCB7XG4gIGNvbG9yOiByZ2IoMTcwLDAsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXB1cnBsZS1BNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3MCwwLDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlIHtcbiAgY29sb3I6IHJnYigxMDMsNTgsMTgzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtcHVycGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwMyw1OCwxODMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS01MCB7XG4gIGNvbG9yOiByZ2IoMjM3LDIzMSwyNDYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtNTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM3LDIzMSwyNDYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS0xMDAge1xuICBjb2xvcjogcmdiKDIwOSwxOTYsMjMzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtcHVycGxlLTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMDksMTk2LDIzMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLTIwMCB7XG4gIGNvbG9yOiByZ2IoMTc5LDE1NywyMTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3OSwxNTcsMjE5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtMzAwIHtcbiAgY29sb3I6IHJnYigxNDksMTE3LDIwNSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS0zMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTQ5LDExNywyMDUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS00MDAge1xuICBjb2xvcjogcmdiKDEyNiw4NywxOTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyNiw4NywxOTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS01MDAge1xuICBjb2xvcjogcmdiKDEwMyw1OCwxODMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwMyw1OCwxODMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS02MDAge1xuICBjb2xvcjogcmdiKDk0LDUzLDE3NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoOTQsNTMsMTc3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtNzAwIHtcbiAgY29sb3I6IHJnYig4MSw0NSwxNjgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDgxLDQ1LDE2OCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLTgwMCB7XG4gIGNvbG9yOiByZ2IoNjksMzksMTYwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtcHVycGxlLTgwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig2OSwzOSwxNjApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS05MDAge1xuICBjb2xvcjogcmdiKDQ5LDI3LDE0NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS05MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNDksMjcsMTQ2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtQTEwMCB7XG4gIGNvbG9yOiByZ2IoMTc5LDEzNiwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtQTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNzksMTM2LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLUEyMDAge1xuICBjb2xvcjogcmdiKDEyNCw3NywyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtQTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMjQsNzcsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtQTQwMCB7XG4gIGNvbG9yOiByZ2IoMTAxLDMxLDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS1BNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwMSwzMSwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS1BNzAwIHtcbiAgY29sb3I6IHJnYig5OCwwLDIzNCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS1BNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDk4LDAsMjM0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0taW5kaWdvIHtcbiAgY29sb3I6IHJnYig2Myw4MSwxODEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0taW5kaWdvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDYzLDgxLDE4MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWluZGlnby01MCB7XG4gIGNvbG9yOiByZ2IoMjMyLDIzNCwyNDYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0taW5kaWdvLTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzMiwyMzQsMjQ2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0taW5kaWdvLTEwMCB7XG4gIGNvbG9yOiByZ2IoMTk3LDIwMiwyMzMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0taW5kaWdvLTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxOTcsMjAyLDIzMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWluZGlnby0yMDAge1xuICBjb2xvcjogcmdiKDE1OSwxNjgsMjE4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWluZGlnby0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTU5LDE2OCwyMTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tMzAwIHtcbiAgY29sb3I6IHJnYigxMjEsMTM0LDIwMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1pbmRpZ28tMzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyMSwxMzQsMjAzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0taW5kaWdvLTQwMCB7XG4gIGNvbG9yOiByZ2IoOTIsMTA3LDE5MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1pbmRpZ28tNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDkyLDEwNywxOTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tNTAwIHtcbiAgY29sb3I6IHJnYig2Myw4MSwxODEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0taW5kaWdvLTUwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig2Myw4MSwxODEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tNjAwIHtcbiAgY29sb3I6IHJnYig1Nyw3MywxNzEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0taW5kaWdvLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig1Nyw3MywxNzEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tNzAwIHtcbiAgY29sb3I6IHJnYig0OCw2MywxNTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0taW5kaWdvLTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig0OCw2MywxNTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tODAwIHtcbiAgY29sb3I6IHJnYig0MCw1MywxNDcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0taW5kaWdvLTgwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig0MCw1MywxNDcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tOTAwIHtcbiAgY29sb3I6IHJnYigyNiwzNSwxMjYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0taW5kaWdvLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNiwzNSwxMjYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tQTEwMCB7XG4gIGNvbG9yOiByZ2IoMTQwLDE1OCwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0taW5kaWdvLUExMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTQwLDE1OCwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tQTIwMCB7XG4gIGNvbG9yOiByZ2IoODMsMTA5LDI1NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1pbmRpZ28tQTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig4MywxMDksMjU0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0taW5kaWdvLUE0MDAge1xuICBjb2xvcjogcmdiKDYxLDkwLDI1NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1pbmRpZ28tQTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig2MSw5MCwyNTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tQTcwMCB7XG4gIGNvbG9yOiByZ2IoNDgsNzksMjU0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWluZGlnby1BNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDQ4LDc5LDI1NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUge1xuICBjb2xvcjogcmdiKDMzLDE1MCwyNDMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigzMywxNTAsMjQzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS01MCB7XG4gIGNvbG9yOiByZ2IoMjI3LDI0MiwyNTMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYmx1ZS01MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMjcsMjQyLDI1MykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtMTAwIHtcbiAgY29sb3I6IHJnYigxODcsMjIyLDI1MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxODcsMjIyLDI1MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtMjAwIHtcbiAgY29sb3I6IHJnYigxNDQsMjAyLDI0OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNDQsMjAyLDI0OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtMzAwIHtcbiAgY29sb3I6IHJnYigxMDAsMTgxLDI0NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMDAsMTgxLDI0NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtNDAwIHtcbiAgY29sb3I6IHJnYig2NiwxNjUsMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDY2LDE2NSwyNDUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLTUwMCB7XG4gIGNvbG9yOiByZ2IoMzMsMTUwLDI0MykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLTUwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigzMywxNTAsMjQzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS02MDAge1xuICBjb2xvcjogcmdiKDMwLDEzNiwyMjkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYmx1ZS02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzAsMTM2LDIyOSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtNzAwIHtcbiAgY29sb3I6IHJnYigyNSwxMTgsMjEwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1LDExOCwyMTApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLTgwMCB7XG4gIGNvbG9yOiByZ2IoMjEsMTAxLDE5MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLTgwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMSwxMDEsMTkyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS05MDAge1xuICBjb2xvcjogcmdiKDEzLDcxLDE2MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMyw3MSwxNjEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLUExMDAge1xuICBjb2xvcjogcmdiKDEzMCwxNzcsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtQTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMzAsMTc3LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtQTIwMCB7XG4gIGNvbG9yOiByZ2IoNjgsMTM4LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLUEyMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjgsMTM4LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtQTQwMCB7XG4gIGNvbG9yOiByZ2IoNDEsMTIxLDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLUE0MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNDEsMTIxLDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtQTcwMCB7XG4gIGNvbG9yOiByZ2IoNDEsOTgsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtQTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig0MSw5OCwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlIHtcbiAgY29sb3I6IHJnYigzLDE2OSwyNDQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtYmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigzLDE2OSwyNDQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLTUwIHtcbiAgY29sb3I6IHJnYigyMjUsMjQ1LDI1NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ibHVlLTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyNSwyNDUsMjU0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS0xMDAge1xuICBjb2xvcjogcmdiKDE3OSwyMjksMjUyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3OSwyMjksMjUyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS0yMDAge1xuICBjb2xvcjogcmdiKDEyOSwyMTIsMjUwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyOSwyMTIsMjUwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS0zMDAge1xuICBjb2xvcjogcmdiKDc5LDE5NSwyNDcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS0zMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNzksMTk1LDI0NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUtNDAwIHtcbiAgY29sb3I6IHJnYig0MSwxODIsMjQ2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDQxLDE4MiwyNDYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLTUwMCB7XG4gIGNvbG9yOiByZ2IoMywxNjksMjQ0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDMsMTY5LDI0NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUtNjAwIHtcbiAgY29sb3I6IHJnYigzLDE1NSwyMjkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMywxNTUsMjI5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS03MDAge1xuICBjb2xvcjogcmdiKDIsMTM2LDIwOSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ibHVlLTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyLDEzNiwyMDkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLTgwMCB7XG4gIGNvbG9yOiByZ2IoMiwxMTksMTg5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtODAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIsMTE5LDE4OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUtOTAwIHtcbiAgY29sb3I6IHJnYigxLDg3LDE1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ibHVlLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxLDg3LDE1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUtQTEwMCB7XG4gIGNvbG9yOiByZ2IoMTI4LDIxNiwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS1BMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyOCwyMTYsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS1BMjAwIHtcbiAgY29sb3I6IHJnYig2NCwxOTYsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtQTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig2NCwxOTYsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS1BNDAwIHtcbiAgY29sb3I6IHJnYigwLDE3NiwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS1BNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMTc2LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUtQTcwMCB7XG4gIGNvbG9yOiByZ2IoMCwxNDUsMjM0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtQTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLDE0NSwyMzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1jeWFuIHtcbiAgY29sb3I6IHJnYigwLDE4OCwyMTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tY3lhbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLDE4OCwyMTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1jeWFuLTUwIHtcbiAgY29sb3I6IHJnYigyMjQsMjQ3LDI1MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1jeWFuLTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyNCwyNDcsMjUwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tY3lhbi0xMDAge1xuICBjb2xvcjogcmdiKDE3OCwyMzUsMjQyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWN5YW4tMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3OCwyMzUsMjQyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tY3lhbi0yMDAge1xuICBjb2xvcjogcmdiKDEyOCwyMjIsMjM0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWN5YW4tMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyOCwyMjIsMjM0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tY3lhbi0zMDAge1xuICBjb2xvcjogcmdiKDc3LDIwOCwyMjUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tY3lhbi0zMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNzcsMjA4LDIyNSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWN5YW4tNDAwIHtcbiAgY29sb3I6IHJnYigzOCwxOTgsMjE4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWN5YW4tNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDM4LDE5OCwyMTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1jeWFuLTUwMCB7XG4gIGNvbG9yOiByZ2IoMCwxODgsMjEyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWN5YW4tNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMTg4LDIxMikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWN5YW4tNjAwIHtcbiAgY29sb3I6IHJnYigwLDE3MiwxOTMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tY3lhbi02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwxNzIsMTkzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tY3lhbi03MDAge1xuICBjb2xvcjogcmdiKDAsMTUxLDE2NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1jeWFuLTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLDE1MSwxNjcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1jeWFuLTgwMCB7XG4gIGNvbG9yOiByZ2IoMCwxMzEsMTQzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWN5YW4tODAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMTMxLDE0MykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWN5YW4tOTAwIHtcbiAgY29sb3I6IHJnYigwLDk2LDEwMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1jeWFuLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLDk2LDEwMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWN5YW4tQTEwMCB7XG4gIGNvbG9yOiByZ2IoMTMyLDI1NSwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tY3lhbi1BMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEzMiwyNTUsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tY3lhbi1BMjAwIHtcbiAgY29sb3I6IHJnYigyNCwyNTUsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWN5YW4tQTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNCwyNTUsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tY3lhbi1BNDAwIHtcbiAgY29sb3I6IHJnYigwLDIyOSwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tY3lhbi1BNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMjI5LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWN5YW4tQTcwMCB7XG4gIGNvbG9yOiByZ2IoMCwxODQsMjEyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWN5YW4tQTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLDE4NCwyMTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS10ZWFsIHtcbiAgY29sb3I6IHJnYigwLDE1MCwxMzYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tdGVhbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLDE1MCwxMzYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS10ZWFsLTUwIHtcbiAgY29sb3I6IHJnYigyMjQsMjQyLDI0MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS10ZWFsLTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyNCwyNDIsMjQxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tdGVhbC0xMDAge1xuICBjb2xvcjogcmdiKDE3OCwyMjMsMjE5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXRlYWwtMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3OCwyMjMsMjE5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tdGVhbC0yMDAge1xuICBjb2xvcjogcmdiKDEyOCwyMDMsMTk2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXRlYWwtMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyOCwyMDMsMTk2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tdGVhbC0zMDAge1xuICBjb2xvcjogcmdiKDc3LDE4MiwxNzIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tdGVhbC0zMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNzcsMTgyLDE3MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXRlYWwtNDAwIHtcbiAgY29sb3I6IHJnYigzOCwxNjYsMTU0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXRlYWwtNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDM4LDE2NiwxNTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS10ZWFsLTUwMCB7XG4gIGNvbG9yOiByZ2IoMCwxNTAsMTM2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXRlYWwtNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMTUwLDEzNikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXRlYWwtNjAwIHtcbiAgY29sb3I6IHJnYigwLDEzNywxMjMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tdGVhbC02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwxMzcsMTIzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tdGVhbC03MDAge1xuICBjb2xvcjogcmdiKDAsMTIxLDEwNykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS10ZWFsLTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLDEyMSwxMDcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS10ZWFsLTgwMCB7XG4gIGNvbG9yOiByZ2IoMCwxMDUsOTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tdGVhbC04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwxMDUsOTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS10ZWFsLTkwMCB7XG4gIGNvbG9yOiByZ2IoMCw3Nyw2NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS10ZWFsLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLDc3LDY0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tdGVhbC1BMTAwIHtcbiAgY29sb3I6IHJnYigxNjcsMjU1LDIzNSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS10ZWFsLUExMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTY3LDI1NSwyMzUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS10ZWFsLUEyMDAge1xuICBjb2xvcjogcmdiKDEwMCwyNTUsMjE4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXRlYWwtQTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMDAsMjU1LDIxOCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXRlYWwtQTQwMCB7XG4gIGNvbG9yOiByZ2IoMjksMjMzLDE4MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS10ZWFsLUE0MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjksMjMzLDE4MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXRlYWwtQTcwMCB7XG4gIGNvbG9yOiByZ2IoMCwxOTEsMTY1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXRlYWwtQTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLDE5MSwxNjUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmVlbiB7XG4gIGNvbG9yOiByZ2IoNzYsMTc1LDgwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZWVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDc2LDE3NSw4MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWdyZWVuLTUwIHtcbiAgY29sb3I6IHJnYigyMzIsMjQ1LDIzMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ncmVlbi01MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzIsMjQ1LDIzMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWdyZWVuLTEwMCB7XG4gIGNvbG9yOiByZ2IoMjAwLDIzMCwyMDEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JlZW4tMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwMCwyMzAsMjAxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tMjAwIHtcbiAgY29sb3I6IHJnYigxNjUsMjE0LDE2NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ncmVlbi0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTY1LDIxNCwxNjcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmVlbi0zMDAge1xuICBjb2xvcjogcmdiKDEyOSwxOTksMTMyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZWVuLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMjksMTk5LDEzMikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWdyZWVuLTQwMCB7XG4gIGNvbG9yOiByZ2IoMTAyLDE4NywxMDYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JlZW4tNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwMiwxODcsMTA2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tNTAwIHtcbiAgY29sb3I6IHJnYig3NiwxNzUsODApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JlZW4tNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDc2LDE3NSw4MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWdyZWVuLTYwMCB7XG4gIGNvbG9yOiByZ2IoNjcsMTYwLDcxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZWVuLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig2NywxNjAsNzEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmVlbi03MDAge1xuICBjb2xvcjogcmdiKDU2LDE0Miw2MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ncmVlbi03MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNTYsMTQyLDYwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tODAwIHtcbiAgY29sb3I6IHJnYig0NiwxMjUsNTApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JlZW4tODAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDQ2LDEyNSw1MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWdyZWVuLTkwMCB7XG4gIGNvbG9yOiByZ2IoMjcsOTQsMzIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JlZW4tOTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI3LDk0LDMyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tQTEwMCB7XG4gIGNvbG9yOiByZ2IoMTg1LDI0NiwyMDIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JlZW4tQTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxODUsMjQ2LDIwMikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWdyZWVuLUEyMDAge1xuICBjb2xvcjogcmdiKDEwNSwyNDAsMTc0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZWVuLUEyMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTA1LDI0MCwxNzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmVlbi1BNDAwIHtcbiAgY29sb3I6IHJnYigwLDIzMCwxMTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JlZW4tQTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLDIzMCwxMTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmVlbi1BNzAwIHtcbiAgY29sb3I6IHJnYigwLDIwMCw4MykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ncmVlbi1BNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMjAwLDgzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4ge1xuICBjb2xvcjogcmdiKDEzOSwxOTUsNzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTM5LDE5NSw3NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLTUwIHtcbiAgY29sb3I6IHJnYigyNDEsMjQ4LDIzMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ncmVlbi01MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDEsMjQ4LDIzMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLTEwMCB7XG4gIGNvbG9yOiByZ2IoMjIwLDIzNywyMDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyMCwyMzcsMjAwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tMjAwIHtcbiAgY29sb3I6IHJnYigxOTcsMjI1LDE2NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ncmVlbi0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTk3LDIyNSwxNjUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi0zMDAge1xuICBjb2xvcjogcmdiKDE3NCwyMTMsMTI5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNzQsMjEzLDEyOSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLTQwMCB7XG4gIGNvbG9yOiByZ2IoMTU2LDIwNCwxMDEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE1NiwyMDQsMTAxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tNTAwIHtcbiAgY29sb3I6IHJnYigxMzksMTk1LDc0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLTUwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMzksMTk1LDc0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tNjAwIHtcbiAgY29sb3I6IHJnYigxMjQsMTc5LDY2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMjQsMTc5LDY2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tNzAwIHtcbiAgY29sb3I6IHJnYigxMDQsMTU5LDU2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMDQsMTU5LDU2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tODAwIHtcbiAgY29sb3I6IHJnYig4NSwxMzksNDcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tODAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDg1LDEzOSw0NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLTkwMCB7XG4gIGNvbG9yOiByZ2IoNTEsMTA1LDMwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig1MSwxMDUsMzApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi1BMTAwIHtcbiAgY29sb3I6IHJnYigyMDQsMjU1LDE0NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ncmVlbi1BMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwNCwyNTUsMTQ0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tQTIwMCB7XG4gIGNvbG9yOiByZ2IoMTc4LDI1NSw4OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ncmVlbi1BMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3OCwyNTUsODkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi1BNDAwIHtcbiAgY29sb3I6IHJnYigxMTgsMjU1LDMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tQTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMTgsMjU1LDMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi1BNzAwIHtcbiAgY29sb3I6IHJnYigxMDAsMjIxLDIzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLUE3MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTAwLDIyMSwyMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpbWUge1xuICBjb2xvcjogcmdiKDIwNSwyMjAsNTcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGltZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMDUsMjIwLDU3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGltZS01MCB7XG4gIGNvbG9yOiByZ2IoMjQ5LDI1MSwyMzEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGltZS01MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDksMjUxLDIzMSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpbWUtMTAwIHtcbiAgY29sb3I6IHJnYigyNDAsMjQ0LDE5NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saW1lLTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDAsMjQ0LDE5NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpbWUtMjAwIHtcbiAgY29sb3I6IHJnYigyMzAsMjM4LDE1NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saW1lLTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzAsMjM4LDE1NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpbWUtMzAwIHtcbiAgY29sb3I6IHJnYigyMjAsMjMxLDExNykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saW1lLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMjAsMjMxLDExNykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpbWUtNDAwIHtcbiAgY29sb3I6IHJnYigyMTIsMjI1LDg3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpbWUtNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIxMiwyMjUsODcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saW1lLTUwMCB7XG4gIGNvbG9yOiByZ2IoMjA1LDIyMCw1NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saW1lLTUwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMDUsMjIwLDU3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGltZS02MDAge1xuICBjb2xvcjogcmdiKDE5MiwyMDIsNTEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGltZS02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTkyLDIwMiw1MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpbWUtNzAwIHtcbiAgY29sb3I6IHJnYigxNzUsMTgwLDQzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpbWUtNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3NSwxODAsNDMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saW1lLTgwMCB7XG4gIGNvbG9yOiByZ2IoMTU4LDE1NywzNikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saW1lLTgwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNTgsMTU3LDM2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGltZS05MDAge1xuICBjb2xvcjogcmdiKDEzMCwxMTksMjMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGltZS05MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTMwLDExOSwyMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpbWUtQTEwMCB7XG4gIGNvbG9yOiByZ2IoMjQ0LDI1NSwxMjkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGltZS1BMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0NCwyNTUsMTI5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGltZS1BMjAwIHtcbiAgY29sb3I6IHJnYigyMzgsMjU1LDY1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpbWUtQTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzgsMjU1LDY1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGltZS1BNDAwIHtcbiAgY29sb3I6IHJnYigxOTgsMjU1LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGltZS1BNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE5OCwyNTUsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpbWUtQTcwMCB7XG4gIGNvbG9yOiByZ2IoMTc0LDIzNCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpbWUtQTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNzQsMjM0LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS15ZWxsb3cge1xuICBjb2xvcjogcmdiKDI1NSwyMzUsNTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0teWVsbG93IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMzUsNTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctNTAge1xuICBjb2xvcjogcmdiKDI1NSwyNTMsMjMxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXllbGxvdy01MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjUzLDIzMSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXllbGxvdy0xMDAge1xuICBjb2xvcjogcmdiKDI1NSwyNDksMTk2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXllbGxvdy0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDI0OSwxOTYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctMjAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjQ1LDE1NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS15ZWxsb3ctMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyNDUsMTU3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0teWVsbG93LTMwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDI0MSwxMTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0teWVsbG93LTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjQxLDExOCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXllbGxvdy00MDAge1xuICBjb2xvcjogcmdiKDI1NSwyMzgsODgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0teWVsbG93LTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjM4LDg4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0teWVsbG93LTUwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIzNSw1OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS15ZWxsb3ctNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMzUsNTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctNjAwIHtcbiAgY29sb3I6IHJnYigyNTMsMjE2LDUzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXllbGxvdy02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUzLDIxNiw1MykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXllbGxvdy03MDAge1xuICBjb2xvcjogcmdiKDI1MSwxOTIsNDUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0teWVsbG93LTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTEsMTkyLDQ1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0teWVsbG93LTgwMCB7XG4gIGNvbG9yOiByZ2IoMjQ5LDE2OCwzNykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS15ZWxsb3ctODAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0OSwxNjgsMzcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctOTAwIHtcbiAgY29sb3I6IHJnYigyNDUsMTI3LDIzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXllbGxvdy05MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ1LDEyNywyMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXllbGxvdy1BMTAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjU1LDE0MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS15ZWxsb3ctQTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjU1LDE0MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXllbGxvdy1BMjAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjU1LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0teWVsbG93LUEyMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDI1NSwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0teWVsbG93LUE0MDAge1xuICBjb2xvcjogcmdiKDI1NSwyMzQsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS15ZWxsb3ctQTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjM0LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctQTcwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIxNCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXllbGxvdy1BNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMTQsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWFtYmVyIHtcbiAgY29sb3I6IHJnYigyNTUsMTkzLDcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYW1iZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDE5Myw3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYW1iZXItNTAge1xuICBjb2xvcjogcmdiKDI1NSwyNDgsMjI1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWFtYmVyLTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyNDgsMjI1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYW1iZXItMTAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjM2LDE3OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1hbWJlci0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDIzNiwxNzkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1hbWJlci0yMDAge1xuICBjb2xvcjogcmdiKDI1NSwyMjQsMTMwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWFtYmVyLTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjI0LDEzMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWFtYmVyLTMwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIxMyw3OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1hbWJlci0zMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDIxMyw3OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWFtYmVyLTQwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIwMiw0MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1hbWJlci00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDIwMiw0MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWFtYmVyLTUwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDE5Myw3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWFtYmVyLTUwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTkzLDcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1hbWJlci02MDAge1xuICBjb2xvcjogcmdiKDI1NSwxNzksMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1hbWJlci02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDE3OSwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYW1iZXItNzAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTYwLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYW1iZXItNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwxNjAsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWFtYmVyLTgwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDE0MywwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWFtYmVyLTgwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTQzLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1hbWJlci05MDAge1xuICBjb2xvcjogcmdiKDI1NSwxMTEsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1hbWJlci05MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDExMSwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYW1iZXItQTEwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIyOSwxMjcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYW1iZXItQTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjI5LDEyNykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWFtYmVyLUEyMDAge1xuICBjb2xvcjogcmdiKDI1NSwyMTUsNjQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYW1iZXItQTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjE1LDY0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYW1iZXItQTQwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDE5NiwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWFtYmVyLUE0MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDE5NiwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYW1iZXItQTcwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDE3MSwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWFtYmVyLUE3MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDE3MSwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tb3JhbmdlIHtcbiAgY29sb3I6IHJnYigyNTUsMTUyLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwxNTIsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLW9yYW5nZS01MCB7XG4gIGNvbG9yOiByZ2IoMjU1LDI0MywyMjQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlLTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyNDMsMjI0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTEwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIyNCwxNzgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlLTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjI0LDE3OCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLW9yYW5nZS0yMDAge1xuICBjb2xvcjogcmdiKDI1NSwyMDQsMTI4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLW9yYW5nZS0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDIwNCwxMjgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1vcmFuZ2UtMzAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTgzLDc3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLW9yYW5nZS0zMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDE4Myw3NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLW9yYW5nZS00MDAge1xuICBjb2xvcjogcmdiKDI1NSwxNjcsMzgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlLTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTY3LDM4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTUwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDE1MiwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLW9yYW5nZS01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDE1MiwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTYwMCB7XG4gIGNvbG9yOiByZ2IoMjUxLDE0MCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLW9yYW5nZS02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUxLDE0MCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTcwMCB7XG4gIGNvbG9yOiByZ2IoMjQ1LDEyNCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLW9yYW5nZS03MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ1LDEyNCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTgwMCB7XG4gIGNvbG9yOiByZ2IoMjM5LDEwOCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLW9yYW5nZS04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM5LDEwOCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTkwMCB7XG4gIGNvbG9yOiByZ2IoMjMwLDgxLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzAsODEsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLW9yYW5nZS1BMTAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjA5LDEyOCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1vcmFuZ2UtQTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjA5LDEyOCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLW9yYW5nZS1BMjAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTcxLDY0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLW9yYW5nZS1BMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwxNzEsNjQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1vcmFuZ2UtQTQwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDE0NSwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLW9yYW5nZS1BNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwxNDUsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLW9yYW5nZS1BNzAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTA5LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlLUE3MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDEwOSwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2Uge1xuICBjb2xvcjogcmdiKDI1NSw4NywzNCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLW9yYW5nZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsODcsMzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS01MCB7XG4gIGNvbG9yOiByZ2IoMjUxLDIzMywyMzEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtNTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUxLDIzMywyMzEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS0xMDAge1xuICBjb2xvcjogcmdiKDI1NSwyMDQsMTg4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjA0LDE4OCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLTIwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDE3MSwxNDUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwxNzEsMTQ1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2UtMzAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTM4LDEwMSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS0zMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDEzOCwxMDEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS00MDAge1xuICBjb2xvcjogcmdiKDI1NSwxMTIsNjcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwxMTIsNjcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS01MDAge1xuICBjb2xvcjogcmdiKDI1NSw4NywzNCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDg3LDM0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2UtNjAwIHtcbiAgY29sb3I6IHJnYigyNDQsODEsMzApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtNjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0NCw4MSwzMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLTcwMCB7XG4gIGNvbG9yOiByZ2IoMjMwLDc0LDI1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzAsNzQsMjUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS04MDAge1xuICBjb2xvcjogcmdiKDIxNiw2NywyMSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjE2LDY3LDIxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2UtOTAwIHtcbiAgY29sb3I6IHJnYigxOTEsNTQsMTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtOTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE5MSw1NCwxMikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLUExMDAge1xuICBjb2xvcjogcmdiKDI1NSwxNTgsMTI4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLUExMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDE1OCwxMjgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS1BMjAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTEwLDY0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLUEyMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDExMCw2NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLUE0MDAge1xuICBjb2xvcjogcmdiKDI1NSw2MSwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLUE0MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDYxLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS1BNzAwIHtcbiAgY29sb3I6IHJnYigyMjEsNDQsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS1BNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyMSw0NCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYnJvd24ge1xuICBjb2xvcjogcmdiKDEyMSw4NSw3MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1icm93biB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMjEsODUsNzIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1icm93bi01MCB7XG4gIGNvbG9yOiByZ2IoMjM5LDIzNSwyMzMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYnJvd24tNTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM5LDIzNSwyMzMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1icm93bi0xMDAge1xuICBjb2xvcjogcmdiKDIxNSwyMDQsMjAwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJyb3duLTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMTUsMjA0LDIwMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJyb3duLTIwMCB7XG4gIGNvbG9yOiByZ2IoMTg4LDE3MCwxNjQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYnJvd24tMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE4OCwxNzAsMTY0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYnJvd24tMzAwIHtcbiAgY29sb3I6IHJnYigxNjEsMTM2LDEyNykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1icm93bi0zMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTYxLDEzNiwxMjcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1icm93bi00MDAge1xuICBjb2xvcjogcmdiKDE0MSwxMTAsOTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYnJvd24tNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE0MSwxMTAsOTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1icm93bi01MDAge1xuICBjb2xvcjogcmdiKDEyMSw4NSw3MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1icm93bi01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTIxLDg1LDcyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYnJvd24tNjAwIHtcbiAgY29sb3I6IHJnYigxMDksNzYsNjUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYnJvd24tNjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwOSw3Niw2NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJyb3duLTcwMCB7XG4gIGNvbG9yOiByZ2IoOTMsNjQsNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYnJvd24tNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDkzLDY0LDU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYnJvd24tODAwIHtcbiAgY29sb3I6IHJnYig3OCw1Miw0NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1icm93bi04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNzgsNTIsNDYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1icm93bi05MDAge1xuICBjb2xvcjogcmdiKDYyLDM5LDM1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJyb3duLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig2MiwzOSwzNSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWdyZXkge1xuICBjb2xvcjogcmdiKDE1OCwxNTgsMTU4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTU4LDE1OCwxNTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmV5LTUwIHtcbiAgY29sb3I6IHJnYigyNTAsMjUwLDI1MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ncmV5LTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1MCwyNTAsMjUwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JleS0xMDAge1xuICBjb2xvcjogcmdiKDI0NSwyNDUsMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZXktMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0NSwyNDUsMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JleS0yMDAge1xuICBjb2xvcjogcmdiKDIzOCwyMzgsMjM4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZXktMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzOCwyMzgsMjM4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JleS0zMDAge1xuICBjb2xvcjogcmdiKDIyNCwyMjQsMjI0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZXktMzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyNCwyMjQsMjI0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JleS00MDAge1xuICBjb2xvcjogcmdiKDE4OSwxODksMTg5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZXktNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE4OSwxODksMTg5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JleS01MDAge1xuICBjb2xvcjogcmdiKDE1OCwxNTgsMTU4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZXktNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE1OCwxNTgsMTU4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JleS02MDAge1xuICBjb2xvcjogcmdiKDExNywxMTcsMTE3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZXktNjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDExNywxMTcsMTE3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JleS03MDAge1xuICBjb2xvcjogcmdiKDk3LDk3LDk3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZXktNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDk3LDk3LDk3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JleS04MDAge1xuICBjb2xvcjogcmdiKDY2LDY2LDY2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZXktODAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDY2LDY2LDY2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JleS05MDAge1xuICBjb2xvcjogcmdiKDMzLDMzLDMzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZXktOTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDMzLDMzLDMzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS1ncmV5IHtcbiAgY29sb3I6IHJnYig5NiwxMjUsMTM5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtZ3JleSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig5NiwxMjUsMTM5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS1ncmV5LTUwIHtcbiAgY29sb3I6IHJnYigyMzYsMjM5LDI0MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLWdyZXktNTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM2LDIzOSwyNDEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXktMTAwIHtcbiAgY29sb3I6IHJnYigyMDcsMjE2LDIyMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLWdyZXktMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwNywyMTYsMjIwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS1ncmV5LTIwMCB7XG4gIGNvbG9yOiByZ2IoMTc2LDE5MCwxOTcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYmx1ZS1ncmV5LTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNzYsMTkwLDE5NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleS0zMDAge1xuICBjb2xvcjogcmdiKDE0NCwxNjQsMTc0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtZ3JleS0zMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTQ0LDE2NCwxNzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXktNDAwIHtcbiAgY29sb3I6IHJnYigxMjAsMTQ0LDE1NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLWdyZXktNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyMCwxNDQsMTU2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS1ncmV5LTUwMCB7XG4gIGNvbG9yOiByZ2IoOTYsMTI1LDEzOSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLWdyZXktNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDk2LDEyNSwxMzkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXktNjAwIHtcbiAgY29sb3I6IHJnYig4NCwxMTAsMTIyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtZ3JleS02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoODQsMTEwLDEyMikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleS03MDAge1xuICBjb2xvcjogcmdiKDY5LDkwLDEwMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLWdyZXktNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDY5LDkwLDEwMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleS04MDAge1xuICBjb2xvcjogcmdiKDU1LDcxLDc5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtZ3JleS04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNTUsNzEsNzkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXktOTAwIHtcbiAgY29sb3I6IHJnYigzOCw1MCw1NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLWdyZXktOTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDM4LDUwLDU2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsYWNrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmxhY2sge1xuICBjb2xvcjogcmdiKDAsMCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXdoaXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyNTUsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0td2hpdGUge1xuICBjb2xvcjogcmdiKDI1NSwyNTUsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjMsODEsMTgxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXByaW1hcnktY29udHJhc3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcHJpbWFyeS1kYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDQ4LDYzLDE1OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDY0LDEyOSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1hY2NlbnQtY29udHJhc3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wcmltYXJ5IHtcbiAgY29sb3I6IHJnYig2Myw4MSwxODEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wcmltYXJ5LWNvbnRyYXN0IHtcbiAgY29sb3I6IHJnYigyNTUsMjU1LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXByaW1hcnktZGFyayB7XG4gIGNvbG9yOiByZ2IoNDgsNjMsMTU5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYWNjZW50IHtcbiAgY29sb3I6IHJnYigyNTUsNjQsMTI5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYWNjZW50LWNvbnRyYXN0IHtcbiAgY29sb3I6IHJnYigyNTUsMjU1LDI1NSkgIWltcG9ydGFudDsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogVE9PTFRJUCAqL1xuLm1kbC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kOiByZ2IoMCwwLDApO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGhlaWdodDogNTBweDtcbiAgbGVmdDogMDtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgd2lkdGg6IDUwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLm1kbC1yaXBwbGUuaXMtYW5pbWF0aW5nIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSwgd2lkdGggMC4zcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSwgaGVpZ2h0IDAuM3MgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSksIG9wYWNpdHkgMC42cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTsgfVxuICAubWRsLXJpcHBsZS5pcy12aXNpYmxlIHtcbiAgICBvcGFjaXR5OiAwLjM7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi5tZGwtYW5pbWF0aW9uLS1kZWZhdWx0IHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7IH1cblxuLm1kbC1hbmltYXRpb24tLWZhc3Qtb3V0LXNsb3ctaW4ge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuXG4ubWRsLWFuaW1hdGlvbi0tbGluZWFyLW91dC1zbG93LWluIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpOyB9XG5cbi5tZGwtYW5pbWF0aW9uLS1mYXN0LW91dC1saW5lYXItaW4ge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi5tZGwtYmFkZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG1hcmdpbi1yaWdodDogMjRweDsgfVxuICAubWRsLWJhZGdlOm5vdChbZGF0YS1iYWRnZV0pIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbiAgLm1kbC1iYWRnZVtkYXRhLWJhZGdlXTphZnRlciB7XG4gICAgY29udGVudDogYXR0cihkYXRhLWJhZGdlKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xMXB4O1xuICAgIHJpZ2h0OiAtMjRweDtcbiAgICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMjJweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogcmdiKDI1NSw2NCwxMjkpO1xuICAgIGNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpOyB9XG4gICAgLm1kbC1idXR0b24gLm1kbC1iYWRnZVtkYXRhLWJhZGdlXTphZnRlciB7XG4gICAgICB0b3A6IC0xMHB4O1xuICAgICAgcmlnaHQ6IC01cHg7IH1cbiAgLm1kbC1iYWRnZS5tZGwtYmFkZ2UtLW5vLWJhY2tncm91bmRbZGF0YS1iYWRnZV06YWZ0ZXIge1xuICAgIGNvbG9yOiByZ2IoMjU1LDY0LDEyOSk7XG4gICAgYmFja2dyb3VuZDogcmdiKDI1NSwyNTUsMjU1KTtcbiAgICBib3gtc2hhZG93OiAwIDAgMXB4IGdyYXk7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG4ubWRsLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgY29sb3I6IHJnYigwLDAsMCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAzNnB4O1xuICBtaW4td2lkdGg6IDY0cHg7XG4gIHBhZGRpbmc6IDAgMTZweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lsbC1jaGFuZ2U6IGJveC1zaGFkb3csIHRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgY29sb3IgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICBvdXRsaW5lOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMzZweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAubWRsLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwOyB9XG4gIC5tZGwtYnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE1OCwxNTgsMTU4LCAwLjIwKTsgfVxuICAubWRsLWJ1dHRvbjpmb2N1czpub3QoOmFjdGl2ZSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsIDAuMTIpOyB9XG4gIC5tZGwtYnV0dG9uOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNTgsMTU4LDE1OCwgMC40MCk7IH1cbiAgLm1kbC1idXR0b24ubWRsLWJ1dHRvbi0tY29sb3JlZCB7XG4gICAgY29sb3I6IHJnYig2Myw4MSwxODEpOyB9XG4gICAgLm1kbC1idXR0b24ubWRsLWJ1dHRvbi0tY29sb3JlZDpmb2N1czpub3QoOmFjdGl2ZSkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwgMC4xMik7IH1cblxuaW5wdXQubWRsLWJ1dHRvblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi5tZGwtYnV0dG9uLS1yYWlzZWQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDE1OCwxNTgsMTU4LCAwLjIwKTtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG4gIC5tZGwtYnV0dG9uLS1yYWlzZWQ6YWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiAwIDRweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTU4LDE1OCwxNTgsIDAuNDApOyB9XG4gIC5tZGwtYnV0dG9uLS1yYWlzZWQ6Zm9jdXM6bm90KDphY3RpdmUpIHtcbiAgICBib3gtc2hhZG93OiAwIDAgOHB4IHJnYmEoMCwgMCwgMCwgMC4xOCksIDAgOHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjM2KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE1OCwxNTgsMTU4LCAwLjQwKTsgfVxuICAubWRsLWJ1dHRvbi0tcmFpc2VkLm1kbC1idXR0b24tLWNvbG9yZWQge1xuICAgIGJhY2tncm91bmQ6IHJnYig2Myw4MSwxODEpO1xuICAgIGNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpOyB9XG4gICAgLm1kbC1idXR0b24tLXJhaXNlZC5tZGwtYnV0dG9uLS1jb2xvcmVkOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYig2Myw4MSwxODEpOyB9XG4gICAgLm1kbC1idXR0b24tLXJhaXNlZC5tZGwtYnV0dG9uLS1jb2xvcmVkOmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjMsODEsMTgxKTsgfVxuICAgIC5tZGwtYnV0dG9uLS1yYWlzZWQubWRsLWJ1dHRvbi0tY29sb3JlZDpmb2N1czpub3QoOmFjdGl2ZSkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDYzLDgxLDE4MSk7IH1cbiAgICAubWRsLWJ1dHRvbi0tcmFpc2VkLm1kbC1idXR0b24tLWNvbG9yZWQgLm1kbC1yaXBwbGUge1xuICAgICAgYmFja2dyb3VuZDogcmdiKDI1NSwyNTUsMjU1KTsgfVxuXG4ubWRsLWJ1dHRvbi0tZmFiIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGhlaWdodDogNTZweDtcbiAgbWFyZ2luOiBhdXRvO1xuICBtaW4td2lkdGg6IDU2cHg7XG4gIHdpZHRoOiA1NnB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDE1OCwxNTgsMTU4LCAwLjIwKTtcbiAgYm94LXNoYWRvdzogMCAxcHggMS41cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDFweCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cbiAgLm1kbC1idXR0b24tLWZhYiAubWF0ZXJpYWwtaWNvbnMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTEycHgsIC0xMnB4KTtcbiAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICB3aWR0aDogMjRweDsgfVxuICAubWRsLWJ1dHRvbi0tZmFiLm1kbC1idXR0b24tLW1pbmktZmFiIHtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgbWluLXdpZHRoOiA0MHB4O1xuICAgIHdpZHRoOiA0MHB4OyB9XG4gIC5tZGwtYnV0dG9uLS1mYWIgLm1kbC1idXR0b25fX3JpcHBsZS1jb250YWluZXIge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAtd2Via2l0LW1hc2staW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgd2hpdGUsIGJsYWNrKTsgfVxuICAubWRsLWJ1dHRvbi0tZmFiOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogMCA0cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE1OCwxNTgsMTU4LCAwLjQwKTsgfVxuICAubWRsLWJ1dHRvbi0tZmFiOmZvY3VzOm5vdCg6YWN0aXZlKSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDhweCByZ2JhKDAsIDAsIDAsIDAuMTgpLCAwIDhweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4zNik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNTgsMTU4LDE1OCwgMC40MCk7IH1cbiAgLm1kbC1idXR0b24tLWZhYi5tZGwtYnV0dG9uLS1jb2xvcmVkIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2IoMjU1LDY0LDEyOSk7XG4gICAgY29sb3I6IHJnYigyNTUsMjU1LDI1NSk7IH1cbiAgICAubWRsLWJ1dHRvbi0tZmFiLm1kbC1idXR0b24tLWNvbG9yZWQ6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSw2NCwxMjkpOyB9XG4gICAgLm1kbC1idXR0b24tLWZhYi5tZGwtYnV0dG9uLS1jb2xvcmVkOmZvY3VzOm5vdCg6YWN0aXZlKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDY0LDEyOSk7IH1cbiAgICAubWRsLWJ1dHRvbi0tZmFiLm1kbC1idXR0b24tLWNvbG9yZWQ6YWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsNjQsMTI5KTsgfVxuICAgIC5tZGwtYnV0dG9uLS1mYWIubWRsLWJ1dHRvbi0tY29sb3JlZCAubWRsLXJpcHBsZSB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2IoMjU1LDI1NSwyNTUpOyB9XG5cbi5tZGwtYnV0dG9uLS1pY29uIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGhlaWdodDogMzJweDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWluLXdpZHRoOiAzMnB4O1xuICB3aWR0aDogMzJweDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cbiAgLm1kbC1idXR0b24tLWljb24gLm1hdGVyaWFsLWljb25zIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMnB4LCAtMTJweCk7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgd2lkdGg6IDI0cHg7IH1cbiAgLm1kbC1idXR0b24tLWljb24ubWRsLWJ1dHRvbi0tbWluaS1pY29uIHtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgbWluLXdpZHRoOiAyNHB4O1xuICAgIHdpZHRoOiAyNHB4OyB9XG4gICAgLm1kbC1idXR0b24tLWljb24ubWRsLWJ1dHRvbi0tbWluaS1pY29uIC5tYXRlcmlhbC1pY29ucyB7XG4gICAgICB0b3A6IDBweDtcbiAgICAgIGxlZnQ6IDBweDsgfVxuICAubWRsLWJ1dHRvbi0taWNvbiAubWRsLWJ1dHRvbl9fcmlwcGxlLWNvbnRhaW5lciB7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIC13ZWJraXQtbWFzay1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB3aGl0ZSwgYmxhY2spOyB9XG5cbi5tZGwtYnV0dG9uX19yaXBwbGUtY29udGFpbmVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAubWRsLWJ1dHRvbltkaXNhYmxlZF0gLm1kbC1idXR0b25fX3JpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGUsXG4gIC5tZGwtYnV0dG9uLm1kbC1idXR0b24tLWRpc2FibGVkIC5tZGwtYnV0dG9uX19yaXBwbGUtY29udGFpbmVyIC5tZGwtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4ubWRsLWJ1dHRvbi0tcHJpbWFyeS5tZGwtYnV0dG9uLS1wcmltYXJ5IHtcbiAgY29sb3I6IHJnYig2Myw4MSwxODEpOyB9XG4gIC5tZGwtYnV0dG9uLS1wcmltYXJ5Lm1kbC1idXR0b24tLXByaW1hcnkgLm1kbC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQ6IHJnYigyNTUsMjU1LDI1NSk7IH1cbiAgLm1kbC1idXR0b24tLXByaW1hcnkubWRsLWJ1dHRvbi0tcHJpbWFyeS5tZGwtYnV0dG9uLS1yYWlzZWQsIC5tZGwtYnV0dG9uLS1wcmltYXJ5Lm1kbC1idXR0b24tLXByaW1hcnkubWRsLWJ1dHRvbi0tZmFiIHtcbiAgICBjb2xvcjogcmdiKDI1NSwyNTUsMjU1KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjMsODEsMTgxKTsgfVxuXG4ubWRsLWJ1dHRvbi0tYWNjZW50Lm1kbC1idXR0b24tLWFjY2VudCB7XG4gIGNvbG9yOiByZ2IoMjU1LDY0LDEyOSk7IH1cbiAgLm1kbC1idXR0b24tLWFjY2VudC5tZGwtYnV0dG9uLS1hY2NlbnQgLm1kbC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQ6IHJnYigyNTUsMjU1LDI1NSk7IH1cbiAgLm1kbC1idXR0b24tLWFjY2VudC5tZGwtYnV0dG9uLS1hY2NlbnQubWRsLWJ1dHRvbi0tcmFpc2VkLCAubWRsLWJ1dHRvbi0tYWNjZW50Lm1kbC1idXR0b24tLWFjY2VudC5tZGwtYnV0dG9uLS1mYWIge1xuICAgIGNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsNjQsMTI5KTsgfVxuXG4ubWRsLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAubWRsLWJ1dHRvbi5tZGwtYnV0dG9uLS1kaXNhYmxlZC5tZGwtYnV0dG9uLS1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjI2KTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4ubWRsLWJ1dHRvbi0tZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5tZGwtYnV0dG9uLS1mYWIubWRsLWJ1dHRvbi0tZGlzYWJsZWQubWRsLWJ1dHRvbi0tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjEyKTtcbiAgY29sb3I6IHJnYmEoMCwwLDAsIDAuMjYpO1xuICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kbC1idXR0b24tLXJhaXNlZFtkaXNhYmxlZF1bZGlzYWJsZWRdLCAubWRsLWJ1dHRvbi0tcmFpc2VkLm1kbC1idXR0b24tLWRpc2FibGVkLm1kbC1idXR0b24tLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwgMC4xMik7XG4gIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjI2KTtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGwtYnV0dG9uLS1jb2xvcmVkW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5tZGwtYnV0dG9uLS1jb2xvcmVkLm1kbC1idXR0b24tLWRpc2FibGVkLm1kbC1idXR0b24tLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwwLDAsIDAuMjYpOyB9XG5cbi5tZGwtYnV0dG9uIC5tYXRlcmlhbC1pY29ucyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi5tZGwtY2FyZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbWluLWhlaWdodDogMjAwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiAzMzBweDtcbiAgei1pbmRleDogMTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiByZ2IoMjU1LDI1NSwyNTUpO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLm1kbC1jYXJkX19tZWRpYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsNjQsMTI5KTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1vcmlnaW46IHBhZGRpbmctYm94O1xuICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IHNjcm9sbDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4ubWRsLWNhcmRfX3RpdGxlIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY29sb3I6IHJnYigwLDAsMCk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHN0cmV0Y2g7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDE2cHggMTZweDtcbiAgcGVyc3BlY3RpdmUtb3JpZ2luOiAxNjVweCA1NnB4O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAxNjVweCA1NnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIC5tZGwtY2FyZF9fdGl0bGUubWRsLWNhcmQtLWJvcmRlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuXG4ubWRsLWNhcmRfX3RpdGxlLXRleHQge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zZm9ybS1vcmlnaW46IDE0OXB4IDQ4cHg7XG4gIG1hcmdpbjogMDsgfVxuXG4ubWRsLWNhcmRfX3N1YnRpdGxlLXRleHQge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjU0KTtcbiAgbWFyZ2luOiAwOyB9XG5cbi5tZGwtY2FyZF9fc3VwcG9ydGluZy10ZXh0IHtcbiAgY29sb3I6IHJnYmEoMCwwLDAsIDAuNTQpO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAxNnB4IDE2cHg7XG4gIHdpZHRoOiA5MCU7IH1cblxuLm1kbC1jYXJkX19hY3Rpb25zIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgcGFkZGluZzogOHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIC5tZGwtY2FyZF9fYWN0aW9ucy5tZGwtY2FyZC0tYm9yZGVyIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG5cbi5tZGwtY2FyZC0tZXhwYW5kIHtcbiAgZmxleC1ncm93OiAxOyB9XG5cbi5tZGwtY2FyZF9fbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDE2cHg7XG4gIHRvcDogMTZweDsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogVE9PTFRJUCAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qIFR5cG9ncmFwaHkgKi9cbi8qIFNoYWRvd3MgKi9cbi8qIEFuaW1hdGlvbnMgKi9cbi5tZGwtY2hlY2tib3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMjRweDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG4gIC5tZGwtY2hlY2tib3guaXMtdXBncmFkZWQge1xuICAgIHBhZGRpbmctbGVmdDogMjRweDsgfVxuXG4ubWRsLWNoZWNrYm94X19pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4OyB9XG4gIC5tZGwtY2hlY2tib3guaXMtdXBncmFkZWQgLm1kbC1jaGVja2JveF9faW5wdXQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtbXMtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lOyB9XG5cbi5tZGwtY2hlY2tib3hfX2JveC1vdXRsaW5lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDNweDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBtYXJnaW46IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyOiAycHggc29saWQgcmdiYSgwLDAsMCwgMC41NCk7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgei1pbmRleDogMjsgfVxuICAubWRsLWNoZWNrYm94LmlzLWNoZWNrZWQgLm1kbC1jaGVja2JveF9fYm94LW91dGxpbmUge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYig2Myw4MSwxODEpOyB9XG4gIC5tZGwtY2hlY2tib3guaXMtZGlzYWJsZWQgLm1kbC1jaGVja2JveF9fYm94LW91dGxpbmUge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMCwwLDAsIDAuMjYpO1xuICAgIGN1cnNvcjogYXV0bzsgfVxuXG4ubWRsLWNoZWNrYm94X19mb2N1cy1oZWxwZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogM3B4O1xuICBsZWZ0OiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLm1kbC1jaGVja2JveC5pcy1mb2N1c2VkIC5tZGwtY2hlY2tib3hfX2ZvY3VzLWhlbHBlciB7XG4gICAgYm94LXNoYWRvdzogMCAwIDBweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuICAubWRsLWNoZWNrYm94LmlzLWZvY3VzZWQuaXMtY2hlY2tlZCAubWRsLWNoZWNrYm94X19mb2N1cy1oZWxwZXIge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwcHggOHB4IHJnYmEoNjMsODEsMTgxLCAwLjI2KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDYzLDgxLDE4MSwgMC4yNik7IH1cblxuLm1kbC1jaGVja2JveF9fdGljay1vdXRsaW5lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hc2s6IHVybChcIi9pbWFnZXMvdGljay1tYXNrLnN2Zz9lbWJlZFwiKTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMjhzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZDsgfVxuICAubWRsLWNoZWNrYm94LmlzLWNoZWNrZWQgLm1kbC1jaGVja2JveF9fdGljay1vdXRsaW5lIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2IoNjMsODEsMTgxKSB1cmwoXCIvaW1hZ2VzL3RpY2suc3ZnP2VtYmVkXCIpOyB9XG4gIC5tZGwtY2hlY2tib3guaXMtY2hlY2tlZC5pcy1kaXNhYmxlZCAubWRsLWNoZWNrYm94X190aWNrLW91dGxpbmUge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsIDAuMjYpIHVybChcIi9pbWFnZXMvdGljay5zdmc/ZW1iZWRcIik7IH1cblxuLm1kbC1jaGVja2JveF9fbGFiZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbWFyZ2luOiAwOyB9XG4gIC5tZGwtY2hlY2tib3guaXMtZGlzYWJsZWQgLm1kbC1jaGVja2JveF9fbGFiZWwge1xuICAgIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjI2KTtcbiAgICBjdXJzb3I6IGF1dG87IH1cblxuLm1kbC1jaGVja2JveF9fcmlwcGxlLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMjtcbiAgdG9wOiAtNnB4O1xuICBsZWZ0OiAtMTBweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDM2cHg7XG4gIGhlaWdodDogMzZweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC13ZWJraXQtbWFzay1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB3aGl0ZSwgYmxhY2spOyB9XG4gIC5tZGwtY2hlY2tib3hfX3JpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQ6IHJnYig2Myw4MSwxODEpOyB9XG4gIC5tZGwtY2hlY2tib3guaXMtZGlzYWJsZWQgLm1kbC1jaGVja2JveF9fcmlwcGxlLWNvbnRhaW5lciB7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG4gIC5tZGwtY2hlY2tib3guaXMtZGlzYWJsZWQgLm1kbC1jaGVja2JveF9fcmlwcGxlLWNvbnRhaW5lciAubWRsLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG4ubWRsLWRhdGEtdGFibGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyNTUsMjU1KTsgfVxuICAubWRsLWRhdGEtdGFibGUgdGhlYWQge1xuICAgIHBhZGRpbmctYm90dG9tOiAzcHg7IH1cbiAgICAubWRsLWRhdGEtdGFibGUgdGhlYWQgLm1kbC1kYXRhLXRhYmxlX19zZWxlY3Qge1xuICAgICAgbWFyZ2luLXRvcDogMDsgfVxuICAubWRsLWRhdGEtdGFibGUgdGJvZHkgdHIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yOHM7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvcjsgfVxuICAgIC5tZGwtZGF0YS10YWJsZSB0Ym9keSB0ci5pcy1zZWxlY3RlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLm1kbC1kYXRhLXRhYmxlIHRib2R5IHRyOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7IH1cbiAgLm1kbC1kYXRhLXRhYmxlIHRkLCAubWRsLWRhdGEtdGFibGUgdGgge1xuICAgIHBhZGRpbmc6IDAgMThweCAwIDE4cHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICAubWRsLWRhdGEtdGFibGUgdGQ6Zmlyc3Qtb2YtdHlwZSwgLm1kbC1kYXRhLXRhYmxlIHRoOmZpcnN0LW9mLXR5cGUge1xuICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4OyB9XG4gICAgLm1kbC1kYXRhLXRhYmxlIHRkOmxhc3Qtb2YtdHlwZSwgLm1kbC1kYXRhLXRhYmxlIHRoOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4OyB9XG4gIC5tZGwtZGF0YS10YWJsZSB0ZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgICAubWRsLWRhdGEtdGFibGUgdGQgLm1kbC1kYXRhLXRhYmxlX19zZWxlY3Qge1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDI0cHg7IH1cbiAgLm1kbC1kYXRhLXRhYmxlIHRoIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgICAubWRsLWRhdGEtdGFibGUgdGggLm1kbC1kYXRhLXRhYmxlX19zZWxlY3Qge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiA4cHg7XG4gICAgICBsZWZ0OiAyNHB4OyB9XG5cbi5tZGwtZGF0YS10YWJsZV9fc2VsZWN0IHtcbiAgd2lkdGg6IDE2cHg7IH1cblxuLm1kbC1kYXRhLXRhYmxlX19jZWxsLS1ub24tbnVtZXJpYy5tZGwtZGF0YS10YWJsZV9fY2VsbC0tbm9uLW51bWVyaWMge1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBUT09MVElQICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogVHlwb2dyYXBoeSAqL1xuLyogU2hhZG93cyAqL1xuLyogQW5pbWF0aW9ucyAqL1xuLm1kbC1tZWdhLWZvb3RlciB7XG4gIHBhZGRpbmc6IDE2cHggNDBweDtcbiAgY29sb3I6IHJnYigxNTgsMTU4LDE1OCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig2Niw2Niw2Nik7IH1cblxuLm1kbC1tZWdhLWZvb3Rlci0tdG9wLXNlY3Rpb246YWZ0ZXIsXG4ubWRsLW1lZ2EtZm9vdGVyLS1taWRkbGUtc2VjdGlvbjphZnRlcixcbi5tZGwtbWVnYS1mb290ZXItLWJvdHRvbS1zZWN0aW9uOmFmdGVyLFxuLm1kbC1tZWdhLWZvb3Rlcl9fdG9wLXNlY3Rpb246YWZ0ZXIsXG4ubWRsLW1lZ2EtZm9vdGVyX19taWRkbGUtc2VjdGlvbjphZnRlcixcbi5tZGwtbWVnYS1mb290ZXJfX2JvdHRvbS1zZWN0aW9uOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjbGVhcjogYm90aDsgfVxuXG4ubWRsLW1lZ2EtZm9vdGVyLS1sZWZ0LXNlY3Rpb24sXG4ubWRsLW1lZ2EtZm9vdGVyX19sZWZ0LXNlY3Rpb24ge1xuICBtYXJnaW4tYm90dG9tOiAxNnB4OyB9XG5cbi5tZGwtbWVnYS1mb290ZXItLXJpZ2h0LXNlY3Rpb24sXG4ubWRsLW1lZ2EtZm9vdGVyX19yaWdodC1zZWN0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDsgfVxuXG4ubWRsLW1lZ2EtZm9vdGVyLS1yaWdodC1zZWN0aW9uIGEsXG4ubWRsLW1lZ2EtZm9vdGVyX19yaWdodC1zZWN0aW9uIGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjBweCkge1xuICAubWRsLW1lZ2EtZm9vdGVyLS1sZWZ0LXNlY3Rpb24sXG4gIC5tZGwtbWVnYS1mb290ZXJfX2xlZnQtc2VjdGlvbiB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1kbC1tZWdhLWZvb3Rlci0tcmlnaHQtc2VjdGlvbixcbiAgLm1kbC1tZWdhLWZvb3Rlcl9fcmlnaHQtc2VjdGlvbiB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG4gIC5tZGwtbWVnYS1mb290ZXItLXJpZ2h0LXNlY3Rpb24gYSxcbiAgLm1kbC1tZWdhLWZvb3Rlcl9fcmlnaHQtc2VjdGlvbiBhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfSB9XG5cbi5tZGwtbWVnYS1mb290ZXItLXNvY2lhbC1idG4sXG4ubWRsLW1lZ2EtZm9vdGVyX19zb2NpYWwtYnRuIHtcbiAgd2lkdGg6IDM2cHg7XG4gIGhlaWdodDogMzZweDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTU4LDE1OCwxNTgpO1xuICBib3JkZXI6IG5vbmU7IH1cblxuLm1kbC1tZWdhLWZvb3Rlci0tZHJvcC1kb3duLXNlY3Rpb24sXG4ubWRsLW1lZ2EtZm9vdGVyX19kcm9wLWRvd24tc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzYwcHgpIHtcbiAgLm1kbC1tZWdhLWZvb3Rlci0tZHJvcC1kb3duLXNlY3Rpb24sXG4gIC5tZGwtbWVnYS1mb290ZXJfX2Ryb3AtZG93bi1zZWN0aW9uIHtcbiAgICB3aWR0aDogMzMlOyB9XG4gIC5tZGwtbWVnYS1mb290ZXItLWRyb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCgxKSxcbiAgLm1kbC1tZWdhLWZvb3Rlci0tZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDIpLFxuICAubWRsLW1lZ2EtZm9vdGVyX19kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoMSksXG4gIC5tZGwtbWVnYS1mb290ZXJfX2Ryb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCgyKSB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1kbC1tZWdhLWZvb3Rlci0tZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDMpLFxuICAubWRsLW1lZ2EtZm9vdGVyX19kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoMykge1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAgIC5tZGwtbWVnYS1mb290ZXItLWRyb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCgzKTphZnRlcixcbiAgICAubWRsLW1lZ2EtZm9vdGVyX19kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoMyk6YWZ0ZXIge1xuICAgICAgY2xlYXI6IHJpZ2h0OyB9XG4gIC5tZGwtbWVnYS1mb290ZXItLWRyb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCg0KSxcbiAgLm1kbC1tZWdhLWZvb3Rlcl9fZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDQpIHtcbiAgICBjbGVhcjogcmlnaHQ7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG4gIC5tZGwtbWVnYS1mb290ZXItLW1pZGRsZS1zZWN0aW9uOmFmdGVyLFxuICAubWRsLW1lZ2EtZm9vdGVyX19taWRkbGUtc2VjdGlvbjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLm1kbC1tZWdhLWZvb3Rlci0tYm90dG9tLXNlY3Rpb24sXG4gIC5tZGwtbWVnYS1mb290ZXJfX2JvdHRvbS1zZWN0aW9uIHtcbiAgICBwYWRkaW5nLXRvcDogMDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAubWRsLW1lZ2EtZm9vdGVyLS1kcm9wLWRvd24tc2VjdGlvbixcbiAgLm1kbC1tZWdhLWZvb3Rlci0tZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDMpLFxuICAubWRsLW1lZ2EtZm9vdGVyLS1kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoNCksXG4gIC5tZGwtbWVnYS1mb290ZXJfX2Ryb3AtZG93bi1zZWN0aW9uLFxuICAubWRsLW1lZ2EtZm9vdGVyX19kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoMyksXG4gIC5tZGwtbWVnYS1mb290ZXJfX2Ryb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCg0KSB7XG4gICAgd2lkdGg6IDI0JTtcbiAgICBmbG9hdDogbGVmdDsgfSB9XG5cbi5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3gsXG4ubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA1NS44cHg7XG4gIHBhZGRpbmc6IDMycHg7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLXRvcDogLTE2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogMTtcbiAgb3BhY2l0eTogMDsgfVxuICAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLWNoZWNrYm94ICsgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZzphZnRlcixcbiAgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveCArIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmc6YWZ0ZXIsXG4gIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3ggKyAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nOmFmdGVyLFxuICAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94ICsgLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZzphZnRlciB7XG4gICAgZm9udC1mYW1pbHk6ICdNYXRlcmlhbCBJY29ucyc7XG4gICAgY29udGVudDogJ1xcRTVDRSc7IH1cblxuLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveDpjaGVja2VkIH4gLm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0LFxuLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveDpjaGVja2VkIH4gLm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0LFxuLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveDpjaGVja2VkICsgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZyArIC5tZGwtbWVnYS1mb290ZXItLWxpbmstbGlzdCxcbi5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmcgKyAubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3QsXG4ubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgfiAubWRsLW1lZ2EtZm9vdGVyLS1saW5rLWxpc3QsXG4ubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgfiAubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3QsXG4ubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgKyAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nICsgLm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0LFxuLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveDpjaGVja2VkICsgLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZyArIC5tZGwtbWVnYS1mb290ZXJfX2xpbmstbGlzdCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveDpjaGVja2VkICsgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZzphZnRlcixcbi5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmc6YWZ0ZXIsXG4ubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgKyAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nOmFmdGVyLFxuLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveDpjaGVja2VkICsgLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZzphZnRlciB7XG4gIGZvbnQtZmFtaWx5OiAnTWF0ZXJpYWwgSWNvbnMnO1xuICBjb250ZW50OiAnXFxFNUNGJzsgfVxuXG4ubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLFxuLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctcmlnaHQ6IDM5LjhweDtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjMuOHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6IHJnYigyMjQsMjI0LDIyNCk7IH1cblxuLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZzphZnRlcixcbi5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmc6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDIzLjhweDtcbiAgaGVpZ2h0OiAyMy44cHg7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7IH1cblxuLm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0LFxuLm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tYm90dG9tOiAzMnB4OyB9XG4gIC5tZGwtbWVnYS1mb290ZXItLWxpbmstbGlzdDphZnRlcixcbiAgLm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb250ZW50OiAnJzsgfVxuXG4ubWRsLW1lZ2EtZm9vdGVyLS1saW5rLWxpc3QgbGksXG4ubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3QgbGkge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7IH1cblxuLm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0IGEsXG4ubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3QgYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzYwcHgpIHtcbiAgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveCxcbiAgLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3ggKyAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nOmFmdGVyLFxuICAgIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3ggKyAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nOmFmdGVyLFxuICAgIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3ggKyAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nOmFmdGVyLFxuICAgIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3ggKyAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IH1cbiAgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveDpjaGVja2VkIH4gLm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0LFxuICAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgfiAubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3QsXG4gIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmcgKyAubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3QsXG4gIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmcgKyAubWRsLW1lZ2EtZm9vdGVyLS1saW5rLWxpc3QsXG4gIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCB+IC5tZGwtbWVnYS1mb290ZXItLWxpbmstbGlzdCxcbiAgLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveDpjaGVja2VkIH4gLm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0LFxuICAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgKyAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nICsgLm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0LFxuICAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgKyAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nICsgLm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0IHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgKyAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nOmFmdGVyLFxuICAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgKyAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nOmFmdGVyLFxuICAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgKyAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nOmFmdGVyLFxuICAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgKyAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJzsgfSB9XG5cbi5tZGwtbWVnYS1mb290ZXItLWJvdHRvbS1zZWN0aW9uLFxuLm1kbC1tZWdhLWZvb3Rlcl9fYm90dG9tLXNlY3Rpb24ge1xuICBwYWRkaW5nLXRvcDogMTZweDtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDsgfVxuXG4ubWRsLWxvZ28ge1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICBjb2xvcjogd2hpdGU7IH1cblxuLm1kbC1tZWdhLWZvb3Rlci0tYm90dG9tLXNlY3Rpb24gLm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0IGxpLFxuLm1kbC1tZWdhLWZvb3Rlcl9fYm90dG9tLXNlY3Rpb24gLm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0IGxpIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjBweCkge1xuICAubWRsLWxvZ28ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNnB4OyB9IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi5tZGwtbWluaS1mb290ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDMycHggMTZweDtcbiAgY29sb3I6IHJnYigxNTgsMTU4LDE1OCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig2Niw2Niw2Nik7IH1cbiAgLm1kbC1taW5pLWZvb3RlcjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLm1kbC1taW5pLWZvb3RlciAubWRsLWxvZ28ge1xuICAgIGxpbmUtaGVpZ2h0OiAzNnB4OyB9XG5cbi5tZGwtbWluaS1mb290ZXItLWxpbmstbGlzdCxcbi5tZGwtbWluaS1mb290ZXJfX2xpbmstbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG4gIC5tZGwtbWluaS1mb290ZXItLWxpbmstbGlzdCBsaSxcbiAgLm1kbC1taW5pLWZvb3Rlcl9fbGluay1saXN0IGxpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1hcmdpbi1yaWdodDogMTZweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2MHB4KSB7XG4gICAgICAubWRsLW1pbmktZm9vdGVyLS1saW5rLWxpc3QgbGksXG4gICAgICAubWRsLW1pbmktZm9vdGVyX19saW5rLWxpc3QgbGkge1xuICAgICAgICBsaW5lLWhlaWdodDogMzZweDsgfSB9XG4gIC5tZGwtbWluaS1mb290ZXItLWxpbmstbGlzdCBhLFxuICAubWRsLW1pbmktZm9vdGVyX19saW5rLWxpc3QgYSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLm1kbC1taW5pLWZvb3Rlci0tbGVmdC1zZWN0aW9uLFxuLm1kbC1taW5pLWZvb3Rlcl9fbGVmdC1zZWN0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvcmRlcjogMDsgfVxuXG4ubWRsLW1pbmktZm9vdGVyLS1yaWdodC1zZWN0aW9uLFxuLm1kbC1taW5pLWZvb3Rlcl9fcmlnaHQtc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3JkZXI6IDE7IH1cblxuLm1kbC1taW5pLWZvb3Rlci0tc29jaWFsLWJ0bixcbi5tZGwtbWluaS1mb290ZXJfX3NvY2lhbC1idG4ge1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNTgsMTU4LDE1OCk7XG4gIGJvcmRlcjogbm9uZTsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogVE9PTFRJUCAqL1xuLm1kbC1pY29uLXRvZ2dsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBoZWlnaHQ6IDMycHg7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4ubWRsLWljb24tdG9nZ2xlX19pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiAzMnB4OyB9XG4gIC5tZGwtaWNvbi10b2dnbGUuaXMtdXBncmFkZWQgLm1kbC1pY29uLXRvZ2dsZV9faW5wdXQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtbXMtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lOyB9XG5cbi5tZGwtaWNvbi10b2dnbGVfX2xhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgaGVpZ2h0OiAzMnB4O1xuICB3aWR0aDogMzJweDtcbiAgbWluLXdpZHRoOiAzMnB4O1xuICBjb2xvcjogcmdiKDk3LDk3LDk3KTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWxsLWNoYW5nZTogYmFja2dyb3VuZC1jb2xvcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIGNvbG9yIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuICAubWRsLWljb24tdG9nZ2xlX19sYWJlbC5tYXRlcmlhbC1pY29ucyB7XG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gICAgZm9udC1zaXplOiAyNHB4OyB9XG4gIC5tZGwtaWNvbi10b2dnbGUuaXMtY2hlY2tlZCAubWRsLWljb24tdG9nZ2xlX19sYWJlbCB7XG4gICAgY29sb3I6IHJnYig2Myw4MSwxODEpOyB9XG4gIC5tZGwtaWNvbi10b2dnbGUuaXMtZGlzYWJsZWQgLm1kbC1pY29uLXRvZ2dsZV9fbGFiZWwge1xuICAgIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjI2KTtcbiAgICBjdXJzb3I6IGF1dG87XG4gICAgdHJhbnNpdGlvbjogbm9uZTsgfVxuICAubWRsLWljb24tdG9nZ2xlLmlzLWZvY3VzZWQgLm1kbC1pY29uLXRvZ2dsZV9fbGFiZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsIDAuMTIpOyB9XG4gIC5tZGwtaWNvbi10b2dnbGUuaXMtZm9jdXNlZC5pcy1jaGVja2VkIC5tZGwtaWNvbi10b2dnbGVfX2xhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDYzLDgxLDE4MSwgMC4yNik7IH1cblxuLm1kbC1pY29uLXRvZ2dsZV9fcmlwcGxlLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMjtcbiAgdG9wOiAtMnB4O1xuICBsZWZ0OiAtMnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLXdlYmtpdC1tYXNrLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHdoaXRlLCBibGFjayk7IH1cbiAgLm1kbC1pY29uLXRvZ2dsZV9fcmlwcGxlLWNvbnRhaW5lciAubWRsLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZDogcmdiKDk3LDk3LDk3KTsgfVxuICAubWRsLWljb24tdG9nZ2xlLmlzLWRpc2FibGVkIC5tZGwtaWNvbi10b2dnbGVfX3JpcHBsZS1jb250YWluZXIge1xuICAgIGN1cnNvcjogYXV0bzsgfVxuICAubWRsLWljb24tdG9nZ2xlLmlzLWRpc2FibGVkIC5tZGwtaWNvbi10b2dnbGVfX3JpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBUT09MVElQICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogVHlwb2dyYXBoeSAqL1xuLyogU2hhZG93cyAqL1xuLyogQW5pbWF0aW9ucyAqL1xuLm1kbC1tZW51X19jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGhlaWdodDogMDtcbiAgd2lkdGg6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgei1pbmRleDogLTE7IH1cbiAgLm1kbC1tZW51X19jb250YWluZXIuaXMtdmlzaWJsZSwgLm1kbC1tZW51X19jb250YWluZXIuaXMtYW5pbWF0aW5nIHtcbiAgICB6LWluZGV4OiA5OTk7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuXG4ubWRsLW1lbnVfX291dGxpbmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZDogcmdiKDI1NSwyNTUsMjU1KTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBvcGFjaXR5IDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgei1pbmRleDogLTE7IH1cbiAgLm1kbC1tZW51X19jb250YWluZXIuaXMtdmlzaWJsZSAubWRsLW1lbnVfX291dGxpbmUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB6LWluZGV4OiA5OTk7IH1cbiAgLm1kbC1tZW51X19vdXRsaW5lLm1kbC1tZW51LS1ib3R0b20tcmlnaHQge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMDsgfVxuICAubWRsLW1lbnVfX291dGxpbmUubWRsLW1lbnUtLXRvcC1sZWZ0IHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDEwMCU7IH1cbiAgLm1kbC1tZW51X19vdXRsaW5lLm1kbC1tZW51LS10b3AtcmlnaHQge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTsgfVxuXG4ubWRsLW1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogYXV0bztcbiAgbWluLXdpZHRoOiAxMjRweDtcbiAgcGFkZGluZzogOHB4IDA7XG4gIG1hcmdpbjogMDtcbiAgb3BhY2l0eTogMDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgei1pbmRleDogLTE7IH1cbiAgLm1kbC1tZW51X19jb250YWluZXIuaXMtdmlzaWJsZSAubWRsLW1lbnUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgei1pbmRleDogOTk5OyB9XG4gIC5tZGwtbWVudS5pcy1hbmltYXRpbmcge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBjbGlwIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuICAubWRsLW1lbnUubWRsLW1lbnUtLWJvdHRvbS1yaWdodCB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMDsgfVxuICAubWRsLW1lbnUubWRsLW1lbnUtLXRvcC1sZWZ0IHtcbiAgICB0b3A6IGF1dG87XG4gICAgYm90dG9tOiAwOyB9XG4gIC5tZGwtbWVudS5tZGwtbWVudS0tdG9wLXJpZ2h0IHtcbiAgICB0b3A6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDA7IH1cbiAgLm1kbC1tZW51Lm1kbC1tZW51LS11bmFsaWduZWQge1xuICAgIHRvcDogYXV0bztcbiAgICBsZWZ0OiBhdXRvOyB9XG5cbi5tZGwtbWVudV9faXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjg3KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCAxNnB4O1xuICBvdXRsaW5lLWNvbG9yOiByZ2IoMTg5LDE4OSwxODkpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgaGVpZ2h0OiA0OHB4O1xuICBsaW5lLWhlaWdodDogNDhweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC5tZGwtbWVudV9fY29udGFpbmVyLmlzLXZpc2libGUgLm1kbC1tZW51X19pdGVtIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIC5tZGwtbWVudV9faXRlbTo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwOyB9XG4gIC5tZGwtbWVudV9faXRlbVtkaXNhYmxlZF0ge1xuICAgIGNvbG9yOiByZ2IoMTg5LDE4OSwxODkpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGN1cnNvcjogYXV0bzsgfVxuICAgIC5tZGwtbWVudV9faXRlbVtkaXNhYmxlZF06aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAubWRsLW1lbnVfX2l0ZW1bZGlzYWJsZWRdOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLm1kbC1tZW51X19pdGVtW2Rpc2FibGVkXSAubWRsLXJpcHBsZSB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAubWRsLW1lbnVfX2l0ZW06aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzgsMjM4LDIzOCk7IH1cbiAgLm1kbC1tZW51X19pdGVtOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzgsMjM4LDIzOCk7IH1cbiAgLm1kbC1tZW51X19pdGVtOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyNCwyMjQsMjI0KTsgfVxuXG4ubWRsLW1lbnVfX2l0ZW0tLXJpcHBsZS1jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBUT09MVElQICovXG4ubWRsLXByb2dyZXNzIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiA0cHg7XG4gIHdpZHRoOiA1MDBweDsgfVxuXG4ubWRsLXByb2dyZXNzID4gLmJhciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMCU7XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuXG4ubWRsLXByb2dyZXNzID4gLnByb2dyZXNzYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDYzLDgxLDE4MSk7XG4gIHotaW5kZXg6IDE7XG4gIGxlZnQ6IDA7IH1cblxuLm1kbC1wcm9ncmVzcyA+IC5idWZmZXJiYXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LDI1NSwyNTUsIDAuNyksIHJnYmEoMjU1LDI1NSwyNTUsIDAuNykpLCBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYig2Myw4MSwxODEpLCByZ2IoNjMsODEsMTgxKSk7XG4gIHotaW5kZXg6IDA7XG4gIGxlZnQ6IDA7IH1cblxuLm1kbC1wcm9ncmVzcyA+IC5hdXhiYXIge1xuICByaWdodDogMDsgfVxuXG5Ac3VwcG9ydHMgKC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZSkge1xuICAubWRsLXByb2dyZXNzOm5vdCgubWRsLXByb2dyZXNzX19pbmRldGVybWluYXRlKTpub3QoLm1kbC1wcm9ncmVzc19faW5kZXRlcm1pbmF0ZSkgPiAuYXV4YmFyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LDI1NSwyNTUsIDAuNyksIHJnYmEoMjU1LDI1NSwyNTUsIDAuNykpLCBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYig2Myw4MSwxODEpLCByZ2IoNjMsODEsMTgxKSk7XG4gICAgbWFzazogdXJsKFwiL2ltYWdlcy9idWZmZXIuc3ZnP2VtYmVkXCIpOyB9IH1cblxuLm1kbC1wcm9ncmVzczpub3QoLm1kbC1wcm9ncmVzc19faW5kZXRlcm1pbmF0ZSkgPiAuYXV4YmFyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI1NSwyNTUsMjU1LCAwLjkpLCByZ2JhKDI1NSwyNTUsMjU1LCAwLjkpKSwgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2IoNjMsODEsMTgxKSwgcmdiKDYzLDgxLDE4MSkpOyB9XG5cbi5tZGwtcHJvZ3Jlc3MubWRsLXByb2dyZXNzX19pbmRldGVybWluYXRlID4gLmJhcjEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjMsODEsMTgxKTtcbiAgYW5pbWF0aW9uLW5hbWU6IGluZGV0ZXJtaW5hdGUxO1xuICBhbmltYXRpb24tZHVyYXRpb246IDJzO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOyB9XG5cbi5tZGwtcHJvZ3Jlc3MubWRsLXByb2dyZXNzX19pbmRldGVybWluYXRlID4gLmJhcjMge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjMsODEsMTgxKTtcbiAgYW5pbWF0aW9uLW5hbWU6IGluZGV0ZXJtaW5hdGUyO1xuICBhbmltYXRpb24tZHVyYXRpb246IDJzO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOyB9XG5cbkBrZXlmcmFtZXMgaW5kZXRlcm1pbmF0ZTEge1xuICAwJSB7XG4gICAgbGVmdDogMCU7XG4gICAgd2lkdGg6IDAlOyB9XG4gIDUwJSB7XG4gICAgbGVmdDogMjUlO1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgNzUlIHtcbiAgICBsZWZ0OiAxMDAlO1xuICAgIHdpZHRoOiAwJTsgfSB9XG5cbkBrZXlmcmFtZXMgaW5kZXRlcm1pbmF0ZTIge1xuICAwJSB7XG4gICAgbGVmdDogMCU7XG4gICAgd2lkdGg6IDAlOyB9XG4gIDUwJSB7XG4gICAgbGVmdDogMCU7XG4gICAgd2lkdGg6IDAlOyB9XG4gIDc1JSB7XG4gICAgbGVmdDogMCU7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAxMDAlIHtcbiAgICBsZWZ0OiAxMDAlO1xuICAgIHdpZHRoOiAwJTsgfSB9XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBUT09MVElQICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogVHlwb2dyYXBoeSAqL1xuLyogU2hhZG93cyAqL1xuLyogQW5pbWF0aW9ucyAqL1xuLm1kbC1uYXZpZ2F0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLm1kbC1uYXZpZ2F0aW9uX19saW5rIHtcbiAgY29sb3I6IHJnYig2Niw2Niw2Nik7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBtYXJnaW46IDA7IH1cblxuLm1kbC1sYXlvdXQge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOyB9XG5cbi5tZGwtbGF5b3V0LmlzLXNtYWxsLXNjcmVlbiAubWRsLWxheW91dC0tbGFyZ2Utc2NyZWVuLW9ubHkge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5tZGwtbGF5b3V0Om5vdCguaXMtc21hbGwtc2NyZWVuKSAubWRsLWxheW91dC0tc21hbGwtc2NyZWVuLW9ubHkge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5tZGwtbGF5b3V0X19jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7IH1cblxuLm1kbC1sYXlvdXRfX3RpdGxlLFxuLm1kbC1sYXlvdXQtdGl0bGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi5tZGwtbGF5b3V0LXNwYWNlciB7XG4gIGZsZXgtZ3JvdzogMTsgfVxuXG4ubWRsLWxheW91dF9fZHJhd2VyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIHdpZHRoOiAyNDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2IoMjI0LDIyNCwyMjQpO1xuICBiYWNrZ3JvdW5kOiByZ2IoMjUwLDI1MCwyNTApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1MHB4KTtcbiAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4ycztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgY29sb3I6IHJnYig2Niw2Niw2Nik7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICB6LWluZGV4OiA1OyB9XG4gIC5tZGwtbGF5b3V0X19kcmF3ZXIuaXMtdmlzaWJsZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gICAgLm1kbC1sYXlvdXRfX2RyYXdlci5pcy12aXNpYmxlIH4gLm1kbC1sYXlvdXRfX2NvbnRlbnQubWRsLWxheW91dF9fY29udGVudCB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5tZGwtbGF5b3V0X19kcmF3ZXIgPiAqIHtcbiAgICBmbGV4LXNocmluazogMDsgfVxuICAubWRsLWxheW91dF9fZHJhd2VyID4gLm1kbC1sYXlvdXRfX3RpdGxlLFxuICAubWRsLWxheW91dF9fZHJhd2VyID4gLm1kbC1sYXlvdXQtdGl0bGUge1xuICAgIGxpbmUtaGVpZ2h0OiA2NHB4O1xuICAgIHBhZGRpbmctbGVmdDogNDBweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgLm1kbC1sYXlvdXRfX2RyYXdlciA+IC5tZGwtbGF5b3V0X190aXRsZSxcbiAgICAgIC5tZGwtbGF5b3V0X19kcmF3ZXIgPiAubWRsLWxheW91dC10aXRsZSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA1NnB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7IH0gfVxuICAubWRsLWxheW91dF9fZHJhd2VyIC5tZGwtbmF2aWdhdGlvbiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBwYWRkaW5nLXRvcDogMTZweDsgfVxuICAgIC5tZGwtbGF5b3V0X19kcmF3ZXIgLm1kbC1uYXZpZ2F0aW9uIC5tZGwtbmF2aWdhdGlvbl9fbGluayB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgcGFkZGluZzogMTZweCA0MHB4O1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgY29sb3I6ICM3NTc1NzU7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgICAubWRsLWxheW91dF9fZHJhd2VyIC5tZGwtbmF2aWdhdGlvbiAubWRsLW5hdmlnYXRpb25fX2xpbmsge1xuICAgICAgICAgIHBhZGRpbmc6IDE2cHggMTZweDsgfSB9XG4gICAgICAubWRsLWxheW91dF9fZHJhd2VyIC5tZGwtbmF2aWdhdGlvbiAubWRsLW5hdmlnYXRpb25fX2xpbms6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjI0LDIyNCwyMjQpOyB9XG4gICAgICAubWRsLWxheW91dF9fZHJhd2VyIC5tZGwtbmF2aWdhdGlvbiAubWRsLW5hdmlnYXRpb25fX2xpbmstLWN1cnJlbnQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwwLDApO1xuICAgICAgICBjb2xvcjogcmdiKDIyNCwyMjQsMjI0KTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI1cHgpIHtcbiAgICAubWRsLWxheW91dC0tZml4ZWQtZHJhd2VyID4gLm1kbC1sYXlvdXRfX2RyYXdlciB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH0gfVxuXG4ubWRsLWxheW91dF9fZHJhd2VyLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogNDhweDtcbiAgd2lkdGg6IDQ4cHg7XG4gIGJvcmRlcjogMDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDI2cHg7XG4gIGxpbmUtaGVpZ2h0OiA1MHB4O1xuICBmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAxMHB4IDEycHg7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgY29sb3I6IHJnYigyNTUsMjU1LDI1NSk7XG4gIHotaW5kZXg6IDQ7IH1cbiAgLm1kbC1sYXlvdXRfX2hlYWRlciAubWRsLWxheW91dF9fZHJhd2VyLWJ1dHRvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgIC5tZGwtbGF5b3V0X19oZWFkZXIgLm1kbC1sYXlvdXRfX2RyYXdlci1idXR0b24ge1xuICAgICAgICBtYXJnaW46IDRweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC5tZGwtbGF5b3V0X19kcmF3ZXItYnV0dG9uIHtcbiAgICAgIG1hcmdpbjogNHB4O1xuICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAgIC5tZGwtbGF5b3V0LS1maXhlZC1kcmF3ZXIgPiAubWRsLWxheW91dF9fZHJhd2VyLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLm1kbC1sYXlvdXRfX2hlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDY0cHg7XG4gIG1heC1oZWlnaHQ6IDEwMDBweDtcbiAgei1pbmRleDogMztcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDYzLDgxLDE4MSk7XG4gIGNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpO1xuICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBtYXgtaGVpZ2h0LCBib3gtc2hhZG93OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC5tZGwtbGF5b3V0X19oZWFkZXIge1xuICAgICAgbWluLWhlaWdodDogNTZweDsgfSB9XG4gIC5tZGwtbGF5b3V0LS1maXhlZC1kcmF3ZXIuaXMtdXBncmFkZWQ6bm90KC5pcy1zbWFsbC1zY3JlZW4pID4gLm1kbC1sYXlvdXRfX2hlYWRlciB7XG4gICAgbWFyZ2luLWxlZnQ6IDI0MHB4O1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyNDBweCk7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNXB4KSB7XG4gICAgLm1kbC1sYXlvdXQtLWZpeGVkLWRyYXdlciA+IC5tZGwtbGF5b3V0X19oZWFkZXIgLm1kbC1sYXlvdXRfX2hlYWRlci1yb3cge1xuICAgICAgcGFkZGluZy1sZWZ0OiA0MHB4OyB9IH1cbiAgLm1kbC1sYXlvdXRfX2hlYWRlciA+IC5tZGwtbGF5b3V0LWljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA0MHB4O1xuICAgIHRvcDogMTZweDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgd2lkdGg6IDMycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB6LWluZGV4OiAzO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICAubWRsLWxheW91dF9faGVhZGVyID4gLm1kbC1sYXlvdXQtaWNvbiB7XG4gICAgICAgIGxlZnQ6IDE2cHg7XG4gICAgICAgIHRvcDogMTJweDsgfSB9XG4gIC5tZGwtbGF5b3V0Lmhhcy1kcmF3ZXIgLm1kbC1sYXlvdXRfX2hlYWRlciA+IC5tZGwtbGF5b3V0LWljb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLm1kbC1sYXlvdXRfX2hlYWRlci5pcy1jb21wYWN0IHtcbiAgICBtYXgtaGVpZ2h0OiA2NHB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICAubWRsLWxheW91dF9faGVhZGVyLmlzLWNvbXBhY3Qge1xuICAgICAgICBtYXgtaGVpZ2h0OiA1NnB4OyB9IH1cbiAgLm1kbC1sYXlvdXRfX2hlYWRlci5pcy1jb21wYWN0Lmhhcy10YWJzIHtcbiAgICBoZWlnaHQ6IDExMnB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICAubWRsLWxheW91dF9faGVhZGVyLmlzLWNvbXBhY3QuaGFzLXRhYnMge1xuICAgICAgICBtaW4taGVpZ2h0OiAxMDRweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC5tZGwtbGF5b3V0X19oZWFkZXIge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5tZGwtbGF5b3V0LS1maXhlZC1oZWFkZXIgPiAubWRsLWxheW91dF9faGVhZGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH0gfVxuXG4ubWRsLWxheW91dF9faGVhZGVyLS10cmFuc3BhcmVudC5tZGwtbGF5b3V0X19oZWFkZXItLXRyYW5zcGFyZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmU7IH1cblxuLm1kbC1sYXlvdXRfX2hlYWRlci0tc2VhbWVkIHtcbiAgYm94LXNoYWRvdzogbm9uZTsgfVxuXG4ubWRsLWxheW91dF9faGVhZGVyLS1zY3JvbGwge1xuICBib3gtc2hhZG93OiBub25lOyB9XG5cbi5tZGwtbGF5b3V0X19oZWFkZXItLXdhdGVyZmFsbCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLm1kbC1sYXlvdXRfX2hlYWRlci0td2F0ZXJmYWxsLmlzLWNhc3Rpbmctc2hhZG93IHtcbiAgICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kbC1sYXlvdXRfX2hlYWRlci1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGhlaWdodDogNjRweDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIDQwcHggMCA4MHB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC5tZGwtbGF5b3V0X19oZWFkZXItcm93IHtcbiAgICAgIGhlaWdodDogNTZweDtcbiAgICAgIHBhZGRpbmc6IDAgMTZweCAwIDcycHg7IH0gfVxuICAubWRsLWxheW91dF9faGVhZGVyLXJvdyA+ICoge1xuICAgIGZsZXgtc2hyaW5rOiAwOyB9XG4gIC5tZGwtbGF5b3V0X19oZWFkZXItLXNjcm9sbCAubWRsLWxheW91dF9faGVhZGVyLXJvdyB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kbC1sYXlvdXRfX2hlYWRlci1yb3cgLm1kbC1uYXZpZ2F0aW9uIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICAubWRsLWxheW91dF9faGVhZGVyLXJvdyAubWRsLW5hdmlnYXRpb24ge1xuICAgICAgICBoZWlnaHQ6IDU2cHg7IH0gfVxuICAubWRsLWxheW91dF9faGVhZGVyLXJvdyAubWRsLW5hdmlnYXRpb25fX2xpbmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpO1xuICAgIGxpbmUtaGVpZ2h0OiA2NHB4O1xuICAgIHBhZGRpbmc6IDAgMjRweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgLm1kbC1sYXlvdXRfX2hlYWRlci1yb3cgLm1kbC1uYXZpZ2F0aW9uX19saW5rIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDU2cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMTZweDsgfSB9XG5cbi5tZGwtbGF5b3V0X19vYmZ1c2NhdG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiA0O1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3I7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG4gIC5tZGwtbGF5b3V0X19vYmZ1c2NhdG9yLmlzLXZpc2libGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG5cbi5tZGwtbGF5b3V0X19jb250ZW50IHtcbiAgLW1zLWZsZXg6IDAgMSBhdXRvO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgZmxleC1ncm93OiAxO1xuICB6LWluZGV4OiAxO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7IH1cbiAgLm1kbC1sYXlvdXQtLWZpeGVkLWRyYXdlciA+IC5tZGwtbGF5b3V0X19jb250ZW50IHtcbiAgICBtYXJnaW4tbGVmdDogMjQwcHg7IH1cbiAgLm1kbC1sYXlvdXRfX2NvbnRhaW5lci5oYXMtc2Nyb2xsaW5nLWhlYWRlciAubWRsLWxheW91dF9fY29udGVudCB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgLm1kbC1sYXlvdXQtLWZpeGVkLWRyYXdlciA+IC5tZGwtbGF5b3V0X19jb250ZW50IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgLm1kbC1sYXlvdXRfX2NvbnRhaW5lci5oYXMtc2Nyb2xsaW5nLWhlYWRlciAubWRsLWxheW91dF9fY29udGVudCB7XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOyB9IH1cblxuLm1kbC1sYXlvdXRfX3RhYi1iYXIge1xuICBoZWlnaHQ6IDk2cHg7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDExMnB4KTtcbiAgcGFkZGluZzogMCAwIDAgNTZweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDYzLDgxLDE4MSk7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogc2Nyb2xsOyB9XG4gIC5tZGwtbGF5b3V0X190YWItYmFyOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAubWRsLWxheW91dF9fdGFiLWJhciB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gNjBweCk7XG4gICAgICBwYWRkaW5nOiAwIDAgMCA2MHB4OyB9IH1cbiAgLm1kbC1sYXlvdXQtLWZpeGVkLXRhYnMgLm1kbC1sYXlvdXRfX3RhYi1iYXIge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aWR0aDogMTAwJTsgfVxuXG4ubWRsLWxheW91dF9fdGFiLWJhci1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogNDhweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICB6LWluZGV4OiAyO1xuICBmbGV4LWdyb3c6IDA7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5tZGwtbGF5b3V0X19jb250YWluZXIgPiAubWRsLWxheW91dF9fdGFiLWJhci1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDsgfVxuXG4ubWRsLWxheW91dF9fdGFiLWJhci1idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBoZWlnaHQ6IDQ4cHg7XG4gIHdpZHRoOiA1NnB4O1xuICB6LWluZGV4OiA0O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig2Myw4MSwxODEpO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgLm1kbC1sYXlvdXRfX3RhYi1iYXItYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB3aWR0aDogNjBweDsgfSB9XG4gIC5tZGwtbGF5b3V0LS1maXhlZC10YWJzIC5tZGwtbGF5b3V0X190YWItYmFyLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAubWRsLWxheW91dF9fdGFiLWJhci1idXR0b24gLm1hdGVyaWFsLWljb25zIHtcbiAgICBsaW5lLWhlaWdodDogNDhweDsgfVxuICAubWRsLWxheW91dF9fdGFiLWJhci1idXR0b24uaXMtYWN0aXZlIHtcbiAgICBjb2xvcjogcmdiKDI1NSwyNTUsMjU1KTsgfVxuXG4ubWRsLWxheW91dF9fdGFiLWJhci1sZWZ0LWJ1dHRvbiB7XG4gIGxlZnQ6IDA7IH1cblxuLm1kbC1sYXlvdXRfX3RhYi1iYXItcmlnaHQtYnV0dG9uIHtcbiAgcmlnaHQ6IDA7IH1cblxuLm1kbC1sYXlvdXRfX3RhYiB7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwIDI0cHggMCAyNHB4O1xuICBmbG9hdDogbGVmdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleC1ncm93OiAwO1xuICBmbGV4LXNocmluazogMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsIDAuNik7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgLm1kbC1sYXlvdXRfX3RhYiB7XG4gICAgICBwYWRkaW5nOiAwIDEycHggMCAxMnB4OyB9IH1cbiAgLm1kbC1sYXlvdXQtLWZpeGVkLXRhYnMgLm1kbC1sYXlvdXRfX3RhYiB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLm1kbC1sYXlvdXQuaXMtdXBncmFkZWQgLm1kbC1sYXlvdXRfX3RhYi5pcy1hY3RpdmUge1xuICAgIGNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpOyB9XG4gIC5tZGwtbGF5b3V0LmlzLXVwZ3JhZGVkIC5tZGwtbGF5b3V0X190YWIuaXMtYWN0aXZlOjphZnRlciB7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6IHJnYigyNTUsNjQsMTI5KTtcbiAgICBhbmltYXRpb246IGJvcmRlci1leHBhbmQgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjQsIDEpIDAuMDFzIGFsdGVybmF0ZSBmb3J3YXJkcztcbiAgICB0cmFuc2l0aW9uOiBhbGwgMXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7IH1cbiAgLm1kbC1sYXlvdXRfX3RhYiAubWRsLWxheW91dF9fdGFiLXJpcHBsZS1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgei1pbmRleDogMTtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgLm1kbC1sYXlvdXRfX3RhYiAubWRsLWxheW91dF9fdGFiLXJpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyNTUsMjU1KTsgfVxuXG4ubWRsLWxheW91dF9fdGFiLXBhbmVsIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgLm1kbC1sYXlvdXQuaXMtdXBncmFkZWQgLm1kbC1sYXlvdXRfX3RhYi1wYW5lbCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAubWRsLWxheW91dC5pcy11cGdyYWRlZCAubWRsLWxheW91dF9fdGFiLXBhbmVsLmlzLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG4ubWRsLXJhZGlvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5tZGwtcmFkaW8uaXMtdXBncmFkZWQge1xuICAgIHBhZGRpbmctbGVmdDogMjRweDsgfVxuXG4ubWRsLXJhZGlvX19idXR0b24ge1xuICBsaW5lLWhlaWdodDogMjRweDsgfVxuICAubWRsLXJhZGlvLmlzLXVwZ3JhZGVkIC5tZGwtcmFkaW9fX2J1dHRvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC1tcy1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7IH1cblxuLm1kbC1yYWRpb19fb3V0ZXItY2lyY2xlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDRweDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBtYXJnaW46IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiAycHggc29saWQgcmdiYSgwLDAsMCwgMC41NCk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgei1pbmRleDogMjsgfVxuICAubWRsLXJhZGlvLmlzLWNoZWNrZWQgLm1kbC1yYWRpb19fb3V0ZXItY2lyY2xlIHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2IoNjMsODEsMTgxKTsgfVxuICAubWRsLXJhZGlvLmlzLWRpc2FibGVkIC5tZGwtcmFkaW9fX291dGVyLWNpcmNsZSB7XG4gICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgwLDAsMCwgMC4yNik7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG5cbi5tZGwtcmFkaW9fX2lubmVyLWNpcmNsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgbWFyZ2luOiAwO1xuICB0b3A6IDhweDtcbiAgbGVmdDogNHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjI4cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgdHJhbnNmb3JtOiBzY2FsZTNkKDAsIDAsIDApO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHJnYig2Myw4MSwxODEpOyB9XG4gIC5tZGwtcmFkaW8uaXMtY2hlY2tlZCAubWRsLXJhZGlvX19pbm5lci1jaXJjbGUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTsgfVxuICAubWRsLXJhZGlvLmlzLWRpc2FibGVkIC5tZGwtcmFkaW9fX2lubmVyLWNpcmNsZSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwgMC4yNik7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG4gIC5tZGwtcmFkaW8uaXMtZm9jdXNlZCAubWRsLXJhZGlvX19pbm5lci1jaXJjbGUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwcHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cblxuLm1kbC1yYWRpb19fbGFiZWwge1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLm1kbC1yYWRpby5pcy1kaXNhYmxlZCAubWRsLXJhZGlvX19sYWJlbCB7XG4gICAgY29sb3I6IHJnYmEoMCwwLDAsIDAuMjYpO1xuICAgIGN1cnNvcjogYXV0bzsgfVxuXG4ubWRsLXJhZGlvX19yaXBwbGUtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAyO1xuICB0b3A6IC05cHg7XG4gIGxlZnQ6IC0xM3B4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogNDJweDtcbiAgaGVpZ2h0OiA0MnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLXdlYmtpdC1tYXNrLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHdoaXRlLCBibGFjayk7IH1cbiAgLm1kbC1yYWRpb19fcmlwcGxlLWNvbnRhaW5lciAubWRsLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZDogcmdiKDYzLDgxLDE4MSk7IH1cbiAgLm1kbC1yYWRpby5pcy1kaXNhYmxlZCAubWRsLXJhZGlvX19yaXBwbGUtY29udGFpbmVyIHtcbiAgICBjdXJzb3I6IGF1dG87IH1cbiAgLm1kbC1yYWRpby5pcy1kaXNhYmxlZCAubWRsLXJhZGlvX19yaXBwbGUtY29udGFpbmVyIC5tZGwtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogVE9PTFRJUCAqL1xuXzotbXMtaW5wdXQtcGxhY2Vob2xkZXIsIDpyb290IC5tZGwtc2xpZGVyLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQge1xuICAtbXMtYXBwZWFyYW5jZTogbm9uZTtcbiAgaGVpZ2h0OiAzMnB4O1xuICBtYXJnaW46IDA7IH1cblxuLm1kbC1zbGlkZXIge1xuICB3aWR0aDogY2FsYygxMDAlIC0gNDBweCk7XG4gIG1hcmdpbjogMCAyMHB4OyB9XG4gIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIG91dGxpbmU6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBjb2xvcjogcmdiKDYzLDgxLDE4MSk7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIHotaW5kZXg6IDE7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqIFRyYWNrcyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqIFRodW1icyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqIDAtdmFsdWUgKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBEaXNhYmxlZCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqLyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6Oi1tb3otZm9jdXMtb3V0ZXIge1xuICAgICAgYm9yZGVyOiAwOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6Oi1tcy10b29sdGlwIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDo6LW1vei1yYW5nZS10cmFjayB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogbm9uZTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOjotbXMtdHJhY2sge1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGhlaWdodDogMnB4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBib3JkZXI6IG5vbmU7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDo6LW1zLWZpbGwtbG93ZXIge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdHJhbnNwYXJlbnQsIHRyYW5zcGFyZW50IDE2cHgsIHJnYig2Myw4MSwxODEpIDE2cHgsIHJnYig2Myw4MSwxODEpIDApOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6Oi1tcy1maWxsLXVwcGVyIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgdHJhbnNwYXJlbnQsIHRyYW5zcGFyZW50IDE2cHgsIHJnYmEoMCwwLDAsIDAuMjYpIDE2cHgsIHJnYmEoMCwwLDAsIDAuMjYpIDApOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYig2Myw4MSwxODEpO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMThzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIGJvcmRlciAwLjE4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBib3gtc2hhZG93IDAuMThzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIGJhY2tncm91bmQgMC4yOHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2IoNjMsODEsMTgxKTtcbiAgICAgIGJvcmRlcjogbm9uZTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmZvY3VzOm5vdCg6YWN0aXZlKTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDYzLDgxLDE4MSwgMC4yNik7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDpmb2N1czpub3QoOmFjdGl2ZSk6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDYzLDgxLDE4MSwgMC4yNik7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDphY3RpdmU6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2IoNjMsODEsMTgxKTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmFjdGl2ZTo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgYmFja2dyb3VuZDogcmdiKDYzLDgxLDE4MSk7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDo6LW1zLXRodW1iIHtcbiAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgYmFja2dyb3VuZDogcmdiKDYzLDgxLDE4MSk7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMzc1KTtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBiYWNrZ3JvdW5kIDAuMjhzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDpmb2N1czpub3QoOmFjdGl2ZSk6Oi1tcy10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGNsb3Nlc3Qtc2lkZSwgcmdiKDYzLDgxLDE4MSkgMCUsIHJnYig2Myw4MSwxODEpIDM3LjUlLCByZ2JhKDYzLDgxLDE4MSwgMC4yNikgMzcuNSUsIHJnYmEoNjMsODEsMTgxLCAwLjI2KSAxMDAlKTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDphY3RpdmU6Oi1tcy10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2IoNjMsODEsMTgxKTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC41NjI1KTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgwLDAsMCwgMC4yNik7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDAsMCwwLCAwLjI2KTtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlICtcbi5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLWZsZXggPiAubWRsLXNsaWRlcl9fYmFja2dyb3VuZC11cHBlciB7XG4gICAgICBsZWZ0OiA2cHg7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6Zm9jdXM6bm90KDphY3RpdmUpOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAxMHB4IHJnYmEoMCwwLDAsIDAuMTIpO1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwgMC4xMik7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6Zm9jdXM6bm90KDphY3RpdmUpOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDEwcHggcmdiYSgwLDAsMCwgMC4xMik7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLCAwLjEyKTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTphY3RpdmU6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgIGJvcmRlcjogMS42cHggc29saWQgcmdiYSgwLDAsMCwgMC4yNik7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6YWN0aXZlICtcbi5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLWZsZXggPiAubWRsLXNsaWRlcl9fYmFja2dyb3VuZC11cHBlciB7XG4gICAgICBsZWZ0OiA5cHg7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6YWN0aXZlOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgIGJvcmRlcjogMS41cHggc29saWQgcmdiYSgwLDAsMCwgMC4yNik7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6Oi1tcy10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGNsb3Nlc3Qtc2lkZSwgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDY2LjY3JSwgcmdiYSgwLDAsMCwgMC4yNikgNjYuNjclLCByZ2JhKDAsMCwwLCAwLjI2KSAxMDAlKTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTpmb2N1czpub3QoOmFjdGl2ZSk6Oi1tcy10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGNsb3Nlc3Qtc2lkZSwgcmdiYSgwLDAsMCwgMC4xMikgMCUsIHJnYmEoMCwwLDAsIDAuMTIpIDI1JSwgcmdiYSgwLDAsMCwgMC4yNikgMjUlLCByZ2JhKDAsMCwwLCAwLjI2KSAzNy41JSwgcmdiYSgwLDAsMCwgMC4xMikgMzcuNSUsIHJnYmEoMCwwLDAsIDAuMTIpIDEwMCUpO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTphY3RpdmU6Oi1tcy10aHVtYiB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNTYyNSk7XG4gICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGNsb3Nlc3Qtc2lkZSwgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDc3Ljc4JSwgcmdiYSgwLDAsMCwgMC4yNikgNzcuNzglLCByZ2JhKDAsMCwwLCAwLjI2KSAxMDAlKTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTo6LW1zLWZpbGwtbG93ZXIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6Oi1tcy1maWxsLXVwcGVyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6YWN0aXZlOjotbXMtZmlsbC11cHBlciB7XG4gICAgICBtYXJnaW4tbGVmdDogOXB4OyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6ZGlzYWJsZWQ6Zm9jdXM6Oi13ZWJraXQtc2xpZGVyLXRodW1iLCAubWRsLXNsaWRlci5pcy11cGdyYWRlZDpkaXNhYmxlZDphY3RpdmU6Oi13ZWJraXQtc2xpZGVyLXRodW1iLCAubWRsLXNsaWRlci5pcy11cGdyYWRlZDpkaXNhYmxlZDo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjY2Nyk7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLCAwLjI2KTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmRpc2FibGVkOmZvY3VzOjotbW96LXJhbmdlLXRodW1iLCAubWRsLXNsaWRlci5pcy11cGdyYWRlZDpkaXNhYmxlZDphY3RpdmU6Oi1tb3otcmFuZ2UtdGh1bWIsIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmRpc2FibGVkOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC42NjcpO1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwgMC4yNik7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDpkaXNhYmxlZCArXG4ubWRsLXNsaWRlcl9fYmFja2dyb3VuZC1mbGV4ID4gLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtbG93ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwgMC4yNik7XG4gICAgICBsZWZ0OiAtNnB4OyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6ZGlzYWJsZWQgK1xuLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtZmxleCA+IC5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLXVwcGVyIHtcbiAgICAgIGxlZnQ6IDZweDsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTpkaXNhYmxlZDpmb2N1czo6LXdlYmtpdC1zbGlkZXItdGh1bWIsIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTpkaXNhYmxlZDphY3RpdmU6Oi13ZWJraXQtc2xpZGVyLXRodW1iLCAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6ZGlzYWJsZWQ6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgIGJvcmRlcjogM3B4IHNvbGlkIHJnYmEoMCwwLDAsIDAuMjYpO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNjY3KTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTpkaXNhYmxlZDpmb2N1czo6LW1vei1yYW5nZS10aHVtYiwgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmRpc2FibGVkOmFjdGl2ZTo6LW1vei1yYW5nZS10aHVtYiwgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmRpc2FibGVkOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgIGJvcmRlcjogM3B4IHNvbGlkIHJnYmEoMCwwLDAsIDAuMjYpO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNjY3KTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTpkaXNhYmxlZDphY3RpdmUgK1xuLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtZmxleCA+IC5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLXVwcGVyIHtcbiAgICAgIGxlZnQ6IDZweDsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmRpc2FibGVkOmZvY3VzOjotbXMtdGh1bWIsIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmRpc2FibGVkOmFjdGl2ZTo6LW1zLXRodW1iLCAubWRsLXNsaWRlci5pcy11cGdyYWRlZDpkaXNhYmxlZDo6LW1zLXRodW1iIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC4yNSk7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLCAwLjI2KTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTpkaXNhYmxlZDpmb2N1czo6LW1zLXRodW1iLCAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6ZGlzYWJsZWQ6YWN0aXZlOjotbXMtdGh1bWIsIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTpkaXNhYmxlZDo6LW1zLXRodW1iIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC4yNSk7XG4gICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGNsb3Nlc3Qtc2lkZSwgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgwLDAsMCwgMC4yNikgNTAlLCByZ2JhKDAsMCwwLCAwLjI2KSAxMDAlKTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmRpc2FibGVkOjotbXMtZmlsbC1sb3dlciB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdHJhbnNwYXJlbnQsIHRyYW5zcGFyZW50IDI1cHgsIHJnYmEoMCwwLDAsIDAuMjYpIDI1cHgsIHJnYmEoMCwwLDAsIDAuMjYpIDApOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6ZGlzYWJsZWQ6Oi1tcy1maWxsLXVwcGVyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6ZGlzYWJsZWQ6YWN0aXZlOjotbXMtZmlsbC11cHBlciB7XG4gICAgICBtYXJnaW4tbGVmdDogNnB4OyB9XG5cbi5tZGwtc2xpZGVyX19pZS1jb250YWluZXIge1xuICBoZWlnaHQ6IDE4cHg7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBib3JkZXI6IG5vbmU7XG4gIG1hcmdpbjogbm9uZTtcbiAgcGFkZGluZzogbm9uZTsgfVxuXG4ubWRsLXNsaWRlcl9fY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxOHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cblxuLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtZmxleCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogMnB4O1xuICB3aWR0aDogY2FsYygxMDAlIC0gNTJweCk7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAwO1xuICBtYXJnaW46IDAgMjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMXB4KTsgfVxuXG4ubWRsLXNsaWRlcl9fYmFja2dyb3VuZC1sb3dlciB7XG4gIGJhY2tncm91bmQ6IHJnYig2Myw4MSwxODEpO1xuICBmbGV4OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4ubWRsLXNsaWRlcl9fYmFja2dyb3VuZC11cHBlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsIDAuMjYpO1xuICBmbGV4OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbiAgdHJhbnNpdGlvbjogbGVmdCAwLjE4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBUT09MVElQICovXG4ubWRsLXNwaW5uZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDsgfVxuICAubWRsLXNwaW5uZXI6bm90KC5pcy11cGdyYWRlZCkuaXMtYWN0aXZlOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIkxvYWRpbmcuLi5cIjsgfVxuICAubWRsLXNwaW5uZXIuaXMtdXBncmFkZWQuaXMtYWN0aXZlIHtcbiAgICBhbmltYXRpb246IG1kbC1zcGlubmVyX19jb250YWluZXItcm90YXRlIDE1NjguMjM1MjltcyBsaW5lYXIgaW5maW5pdGU7IH1cblxuQGtleWZyYW1lcyBtZGwtc3Bpbm5lcl9fY29udGFpbmVyLXJvdGF0ZSB7XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH1cblxuLm1kbC1zcGlubmVyX19sYXllciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3BhY2l0eTogMDsgfVxuXG4ubWRsLXNwaW5uZXJfX2xheWVyLTEge1xuICBib3JkZXItY29sb3I6IHJnYig2NiwxNjUsMjQ1KTsgfVxuICAubWRsLXNwaW5uZXItLXNpbmdsZS1jb2xvciAubWRsLXNwaW5uZXJfX2xheWVyLTEge1xuICAgIGJvcmRlci1jb2xvcjogcmdiKDYzLDgxLDE4MSk7IH1cbiAgLm1kbC1zcGlubmVyLmlzLWFjdGl2ZSAubWRsLXNwaW5uZXJfX2xheWVyLTEge1xuICAgIGFuaW1hdGlvbjogbWRsLXNwaW5uZXJfX2ZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoLCBtZGwtc3Bpbm5lcl9fbGF5ZXItMS1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoOyB9XG5cbi5tZGwtc3Bpbm5lcl9fbGF5ZXItMiB7XG4gIGJvcmRlci1jb2xvcjogcmdiKDI0NCw2Nyw1NCk7IH1cbiAgLm1kbC1zcGlubmVyLS1zaW5nbGUtY29sb3IgLm1kbC1zcGlubmVyX19sYXllci0yIHtcbiAgICBib3JkZXItY29sb3I6IHJnYig2Myw4MSwxODEpOyB9XG4gIC5tZGwtc3Bpbm5lci5pcy1hY3RpdmUgLm1kbC1zcGlubmVyX19sYXllci0yIHtcbiAgICBhbmltYXRpb246IG1kbC1zcGlubmVyX19maWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aCwgbWRsLXNwaW5uZXJfX2xheWVyLTItZmFkZS1pbi1vdXQgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDsgfVxuXG4ubWRsLXNwaW5uZXJfX2xheWVyLTMge1xuICBib3JkZXItY29sb3I6IHJnYigyNTMsMjE2LDUzKTsgfVxuICAubWRsLXNwaW5uZXItLXNpbmdsZS1jb2xvciAubWRsLXNwaW5uZXJfX2xheWVyLTMge1xuICAgIGJvcmRlci1jb2xvcjogcmdiKDYzLDgxLDE4MSk7IH1cbiAgLm1kbC1zcGlubmVyLmlzLWFjdGl2ZSAubWRsLXNwaW5uZXJfX2xheWVyLTMge1xuICAgIGFuaW1hdGlvbjogbWRsLXNwaW5uZXJfX2ZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoLCBtZGwtc3Bpbm5lcl9fbGF5ZXItMy1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoOyB9XG5cbi5tZGwtc3Bpbm5lcl9fbGF5ZXItNCB7XG4gIGJvcmRlci1jb2xvcjogcmdiKDc2LDE3NSw4MCk7IH1cbiAgLm1kbC1zcGlubmVyLS1zaW5nbGUtY29sb3IgLm1kbC1zcGlubmVyX19sYXllci00IHtcbiAgICBib3JkZXItY29sb3I6IHJnYig2Myw4MSwxODEpOyB9XG4gIC5tZGwtc3Bpbm5lci5pcy1hY3RpdmUgLm1kbC1zcGlubmVyX19sYXllci00IHtcbiAgICBhbmltYXRpb246IG1kbC1zcGlubmVyX19maWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aCwgbWRsLXNwaW5uZXJfX2xheWVyLTQtZmFkZS1pbi1vdXQgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDsgfVxuXG5Aa2V5ZnJhbWVzIG1kbC1zcGlubmVyX19maWxsLXVuZmlsbC1yb3RhdGUge1xuICAxMi41JSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTsgfVxuICAyNSUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7IH1cbiAgMzcuNSUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQwNWRlZyk7IH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg1NDBkZWcpOyB9XG4gIDYyLjUlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2NzVkZWcpOyB9XG4gIDc1JSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoODEwZGVnKTsgfVxuICA4Ny41JSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTQ1ZGVnKTsgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTA4MGRlZyk7IH0gfVxuXG4vKipcbiogSEFDSzogRXZlbiB0aG91Z2ggdGhlIGludGVudGlvbiBpcyB0byBoYXZlIHRoZSBjdXJyZW50IC5tZGwtc3Bpbm5lcl9fbGF5ZXItTlxuKiBhdCBgb3BhY2l0eTogMWAsIHdlIHNldCBpdCB0byBgb3BhY2l0eTogMC45OWAgaW5zdGVhZCBzaW5jZSB0aGlzIGZvcmNlcyBDaHJvbWVcbiogdG8gZG8gcHJvcGVyIHN1YnBpeGVsIHJlbmRlcmluZyBmb3IgdGhlIGVsZW1lbnRzIGJlaW5nIGFuaW1hdGVkLiBUaGlzIGlzXG4qIGVzcGVjaWFsbHkgdmlzaWJsZSBpbiBDaHJvbWUgMzkgb24gVWJ1bnR1IDE0LjA0LiBTZWU6XG4qXG4qIC0gaHR0cHM6Ly9naXRodWIuY29tL1BvbHltZXIvcGFwZXItc3Bpbm5lci9pc3N1ZXMvOVxuKiAtIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD00MzYyNTVcbiovXG5Aa2V5ZnJhbWVzIG1kbC1zcGlubmVyX19sYXllci0xLWZhZGUtaW4tb3V0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMC45OTsgfVxuICAyNSUge1xuICAgIG9wYWNpdHk6IDAuOTk7IH1cbiAgMjYlIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDg5JSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICA5MCUge1xuICAgIG9wYWNpdHk6IDAuOTk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMC45OTsgfSB9XG5cbkBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xheWVyLTItZmFkZS1pbi1vdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDE1JSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAyNSUge1xuICAgIG9wYWNpdHk6IDAuOTk7IH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwLjk5OyB9XG4gIDUxJSB7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbkBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xheWVyLTMtZmFkZS1pbi1vdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDAuOTk7IH1cbiAgNzUlIHtcbiAgICBvcGFjaXR5OiAwLjk5OyB9XG4gIDc2JSB7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbkBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xheWVyLTQtZmFkZS1pbi1vdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDY1JSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICA3NSUge1xuICAgIG9wYWNpdHk6IDAuOTk7IH1cbiAgOTAlIHtcbiAgICBvcGFjaXR5OiAwLjk5OyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7IH0gfVxuXG4vKipcbiogUGF0Y2ggdGhlIGdhcCB0aGF0IGFwcGVhciBiZXR3ZWVuIHRoZSB0d28gYWRqYWNlbnRcbiogZGl2Lm1kbC1zcGlubmVyX19jaXJjbGUtY2xpcHBlciB3aGlsZSB0aGUgc3Bpbm5lciBpcyByb3RhdGluZ1xuKiAoYXBwZWFycyBvbiBDaHJvbWUgMzgsIFNhZmFyaSA3LjEsIGFuZCBJRSAxMSkuXG4qXG4qIFVwZGF0ZTogdGhlIGdhcCBubyBsb25nZXIgYXBwZWFycyBvbiBDaHJvbWUgd2hlbiAubWRsLXNwaW5uZXJfX2xheWVyLU4nc1xuKiBvcGFjaXR5IGlzIDAuOTksIGJ1dCBzdGlsbCBkb2VzIG9uIFNhZmFyaSBhbmQgSUUuXG4qL1xuLm1kbC1zcGlubmVyX19nYXAtcGF0Y2gge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRvcDogMDtcbiAgbGVmdDogNDUlO1xuICB3aWR0aDogMTAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci1jb2xvcjogaW5oZXJpdDsgfVxuICAubWRsLXNwaW5uZXJfX2dhcC1wYXRjaCAubWRsLXNwaW5uZXJfX2NpcmNsZSB7XG4gICAgd2lkdGg6IDEwMDAlO1xuICAgIGxlZnQ6IC00NTAlOyB9XG5cbi5tZGwtc3Bpbm5lcl9fY2lyY2xlLWNsaXBwZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDUwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXItY29sb3I6IGluaGVyaXQ7IH1cbiAgLm1kbC1zcGlubmVyX19jaXJjbGUtY2xpcHBlciAubWRsLXNwaW5uZXJfX2NpcmNsZSB7XG4gICAgd2lkdGg6IDIwMCU7IH1cblxuLm1kbC1zcGlubmVyX19jaXJjbGUge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci13aWR0aDogM3B4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYW5pbWF0aW9uOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDsgfVxuICAubWRsLXNwaW5uZXJfX2xlZnQgLm1kbC1zcGlubmVyX19jaXJjbGUge1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMjlkZWcpOyB9XG4gICAgLm1kbC1zcGlubmVyLmlzLWFjdGl2ZSAubWRsLXNwaW5uZXJfX2xlZnQgLm1kbC1zcGlubmVyX19jaXJjbGUge1xuICAgICAgYW5pbWF0aW9uOiBtZGwtc3Bpbm5lcl9fbGVmdC1zcGluIDEzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7IH1cbiAgLm1kbC1zcGlubmVyX19yaWdodCAubWRsLXNwaW5uZXJfX2NpcmNsZSB7XG4gICAgbGVmdDogLTEwMCU7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTEyOWRlZyk7IH1cbiAgICAubWRsLXNwaW5uZXIuaXMtYWN0aXZlIC5tZGwtc3Bpbm5lcl9fcmlnaHQgLm1kbC1zcGlubmVyX19jaXJjbGUge1xuICAgICAgYW5pbWF0aW9uOiBtZGwtc3Bpbm5lcl9fcmlnaHQtc3BpbiAxMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoOyB9XG5cbkBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xlZnQtc3BpbiB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDEzMGRlZyk7IH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNWRlZyk7IH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDEzMGRlZyk7IH0gfVxuXG5Aa2V5ZnJhbWVzIG1kbC1zcGlubmVyX19yaWdodC1zcGluIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzMGRlZyk7IH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg1ZGVnKTsgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzMGRlZyk7IH0gfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogVE9PTFRJUCAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qIFR5cG9ncmFwaHkgKi9cbi8qIFNoYWRvd3MgKi9cbi8qIEFuaW1hdGlvbnMgKi9cbi5tZGwtc3dpdGNoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDI0cHg7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAubWRsLXN3aXRjaC5pcy11cGdyYWRlZCB7XG4gICAgcGFkZGluZy1sZWZ0OiAyOHB4OyB9XG5cbi5tZGwtc3dpdGNoX19pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4OyB9XG4gIC5tZGwtc3dpdGNoLmlzLXVwZ3JhZGVkIC5tZGwtc3dpdGNoX19pbnB1dCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC1tcy1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7IH1cblxuLm1kbC1zd2l0Y2hfX3RyYWNrIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwgMC4yNik7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiA1cHg7XG4gIGhlaWdodDogMTRweDtcbiAgd2lkdGg6IDM2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICAubWRsLXN3aXRjaC5pcy1jaGVja2VkIC5tZGwtc3dpdGNoX190cmFjayB7XG4gICAgYmFja2dyb3VuZDogcmdiYSg2Myw4MSwxODEsIDAuNSk7IH1cbiAgLm1kbC1zd2l0Y2guaXMtZGlzYWJsZWQgLm1kbC1zd2l0Y2hfX3RyYWNrIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLCAwLjEyKTtcbiAgICBjdXJzb3I6IGF1dG87IH1cblxuLm1kbC1zd2l0Y2hfX3RodW1iIHtcbiAgYmFja2dyb3VuZDogcmdiKDI1MCwyNTAsMjUwKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDJweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICB3aWR0aDogMjBweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yOHM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBsZWZ0OyB9XG4gIC5tZGwtc3dpdGNoLmlzLWNoZWNrZWQgLm1kbC1zd2l0Y2hfX3RodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2IoNjMsODEsMTgxKTtcbiAgICBsZWZ0OiAxNnB4O1xuICAgIGJveC1zaGFkb3c6IDAgM3B4IDRweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAxcHggOHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuICAubWRsLXN3aXRjaC5pcy1kaXNhYmxlZCAubWRsLXN3aXRjaF9fdGh1bWIge1xuICAgIGJhY2tncm91bmQ6IHJnYigxODksMTg5LDE4OSk7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG5cbi5tZGwtc3dpdGNoX19mb2N1cy1oZWxwZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC00cHgsIC00cHgpO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogOHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5tZGwtc3dpdGNoLmlzLWZvY3VzZWQgLm1kbC1zd2l0Y2hfX2ZvY3VzLWhlbHBlciB7XG4gICAgYm94LXNoYWRvdzogMCAwIDBweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cbiAgLm1kbC1zd2l0Y2guaXMtZm9jdXNlZC5pcy1jaGVja2VkIC5tZGwtc3dpdGNoX19mb2N1cy1oZWxwZXIge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwcHggMjBweCByZ2JhKDYzLDgxLDE4MSwgMC4yNik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg2Myw4MSwxODEsIDAuMjYpOyB9XG5cbi5tZGwtc3dpdGNoX19sYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBtYXJnaW46IDA7XG4gIGxlZnQ6IDI0cHg7IH1cbiAgLm1kbC1zd2l0Y2guaXMtZGlzYWJsZWQgLm1kbC1zd2l0Y2hfX2xhYmVsIHtcbiAgICBjb2xvcjogcmdiKDE4OSwxODksMTg5KTtcbiAgICBjdXJzb3I6IGF1dG87IH1cblxuLm1kbC1zd2l0Y2hfX3JpcHBsZS1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDI7XG4gIHRvcDogLTEycHg7XG4gIGxlZnQ6IC0xNHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiA0OHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLXdlYmtpdC1tYXNrLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHdoaXRlLCBibGFjayk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNDBzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogc3RlcC1lbmQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGxlZnQ7IH1cbiAgLm1kbC1zd2l0Y2hfX3JpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQ6IHJnYig2Myw4MSwxODEpOyB9XG4gIC5tZGwtc3dpdGNoLmlzLWRpc2FibGVkIC5tZGwtc3dpdGNoX19yaXBwbGUtY29udGFpbmVyIHtcbiAgICBjdXJzb3I6IGF1dG87IH1cbiAgLm1kbC1zd2l0Y2guaXMtZGlzYWJsZWQgLm1kbC1zd2l0Y2hfX3JpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gIC5tZGwtc3dpdGNoLmlzLWNoZWNrZWQgLm1kbC1zd2l0Y2hfX3JpcHBsZS1jb250YWluZXIge1xuICAgIGN1cnNvcjogYXV0bztcbiAgICBsZWZ0OiAycHg7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi5tZGwtdGFicyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTsgfVxuXG4ubWRsLXRhYnNfX3RhYi1iYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGhlaWdodDogNDhweDtcbiAgcGFkZGluZzogMCAwIDAgMDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKDIyNCwyMjQsMjI0KTsgfVxuXG4ubWRsLXRhYnNfX3RhYiB7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwIDI0cHggMCAyNHB4O1xuICBmbG9hdDogbGVmdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6IHJlZDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHJnYmEoMCwwLDAsIDAuNTQpO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5tZGwtdGFicy5pcy11cGdyYWRlZCAubWRsLXRhYnNfX3RhYi5pcy1hY3RpdmUge1xuICAgIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjg3KTsgfVxuICAubWRsLXRhYnMuaXMtdXBncmFkZWQgLm1kbC10YWJzX190YWIuaXMtYWN0aXZlOmFmdGVyIHtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBib3R0b206IDBweDtcbiAgICBsZWZ0OiAwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6IHJnYig2Myw4MSwxODEpO1xuICAgIGFuaW1hdGlvbjogYm9yZGVyLWV4cGFuZCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuNCwgMSkgMC4wMXMgYWx0ZXJuYXRlIGZvcndhcmRzO1xuICAgIHRyYW5zaXRpb246IGFsbCAxcyBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKTsgfVxuICAubWRsLXRhYnNfX3RhYiAubWRsLXRhYnNfX3JpcHBsZS1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbGVmdDogMHB4O1xuICAgIHRvcDogMHB4O1xuICAgIHotaW5kZXg6IDE7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgIC5tZGwtdGFic19fdGFiIC5tZGwtdGFic19fcmlwcGxlLWNvbnRhaW5lciAubWRsLXJpcHBsZSB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2IoNjMsODEsMTgxKTsgfVxuXG4ubWRsLXRhYnNfX3BhbmVsIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgLm1kbC10YWJzLmlzLXVwZ3JhZGVkIC5tZGwtdGFic19fcGFuZWwge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLm1kbC10YWJzLmlzLXVwZ3JhZGVkIC5tZGwtdGFic19fcGFuZWwuaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG5Aa2V5ZnJhbWVzIGJvcmRlci1leHBhbmQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB3aWR0aDogMDsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG4ubWRsLXRleHRmaWVsZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAzMDBweDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDIwcHggMDsgfVxuICAubWRsLXRleHRmaWVsZCAubWRsLWJ1dHRvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMjBweDsgfVxuXG4ubWRsLXRleHRmaWVsZC0tYWxpZ24tcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4ubWRsLXRleHRmaWVsZC0tZnVsbC13aWR0aCB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5tZGwtdGV4dGZpZWxkLS1leHBhbmRhYmxlIHtcbiAgbWluLXdpZHRoOiAzMnB4O1xuICB3aWR0aDogYXV0bztcbiAgbWluLWhlaWdodDogMzJweDsgfVxuXG4ubWRsLXRleHRmaWVsZF9faW5wdXQge1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsMCwwLCAwLjEyKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiA0cHggMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiBpbmhlcml0OyB9XG4gIC5tZGwtdGV4dGZpZWxkLmlzLWZvY3VzZWQgLm1kbC10ZXh0ZmllbGRfX2lucHV0IHtcbiAgICBvdXRsaW5lOiBub25lOyB9XG4gIC5tZGwtdGV4dGZpZWxkLmlzLWludmFsaWQgLm1kbC10ZXh0ZmllbGRfX2lucHV0IHtcbiAgICBib3JkZXItY29sb3I6IHJnYigyMjIsIDUwLCAzOCk7XG4gICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAubWRsLXRleHRmaWVsZC5pcy1kaXNhYmxlZCAubWRsLXRleHRmaWVsZF9faW5wdXQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgcmdiYSgwLDAsMCwgMC4xMik7XG4gICAgY29sb3I6IHJnYmEoMCwwLDAsIDAuMjYpOyB9XG5cbi5tZGwtdGV4dGZpZWxkIHRleHRhcmVhLm1kbC10ZXh0ZmllbGRfX2lucHV0IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLm1kbC10ZXh0ZmllbGRfX2xhYmVsIHtcbiAgYm90dG9tOiAwO1xuICBjb2xvcjogcmdiYSgwLDAsMCwgMC4yNik7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0b3A6IDI0cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5tZGwtdGV4dGZpZWxkLmlzLWRpcnR5IC5tZGwtdGV4dGZpZWxkX19sYWJlbCB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5tZGwtdGV4dGZpZWxkLS1mbG9hdGluZy1sYWJlbCAubWRsLXRleHRmaWVsZF9fbGFiZWwge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7IH1cbiAgLm1kbC10ZXh0ZmllbGQuaXMtZGlzYWJsZWQuaXMtZGlzYWJsZWQgLm1kbC10ZXh0ZmllbGRfX2xhYmVsIHtcbiAgICBjb2xvcjogcmdiYSgwLDAsMCwgMC4yNik7IH1cbiAgLm1kbC10ZXh0ZmllbGQtLWZsb2F0aW5nLWxhYmVsLmlzLWZvY3VzZWQgLm1kbC10ZXh0ZmllbGRfX2xhYmVsLFxuICAubWRsLXRleHRmaWVsZC0tZmxvYXRpbmctbGFiZWwuaXMtZGlydHkgLm1kbC10ZXh0ZmllbGRfX2xhYmVsIHtcbiAgICBjb2xvcjogcmdiKDYzLDgxLDE4MSk7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHRvcDogNHB4O1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgLm1kbC10ZXh0ZmllbGQtLWZsb2F0aW5nLWxhYmVsLmlzLWZvY3VzZWQgLm1kbC10ZXh0ZmllbGRfX2V4cGFuZGFibGUtaG9sZGVyIC5tZGwtdGV4dGZpZWxkX19sYWJlbCxcbiAgLm1kbC10ZXh0ZmllbGQtLWZsb2F0aW5nLWxhYmVsLmlzLWRpcnR5IC5tZGwtdGV4dGZpZWxkX19leHBhbmRhYmxlLWhvbGRlciAubWRsLXRleHRmaWVsZF9fbGFiZWwge1xuICAgIHRvcDogLTE2cHg7IH1cbiAgLm1kbC10ZXh0ZmllbGQtLWZsb2F0aW5nLWxhYmVsLmlzLWludmFsaWQgLm1kbC10ZXh0ZmllbGRfX2xhYmVsIHtcbiAgICBjb2xvcjogcmdiKDIyMiwgNTAsIDM4KTtcbiAgICBmb250LXNpemU6IDEycHg7IH1cbiAgLm1kbC10ZXh0ZmllbGRfX2xhYmVsOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjMsODEsMTgxKTtcbiAgICBib3R0b206IDIwcHg7XG4gICAgY29udGVudDogJyc7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgbGVmdDogNDUlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB3aWR0aDogMTBweDsgfVxuICAubWRsLXRleHRmaWVsZC5pcy1mb2N1c2VkIC5tZGwtdGV4dGZpZWxkX19sYWJlbDphZnRlciB7XG4gICAgbGVmdDogMDtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5tZGwtdGV4dGZpZWxkLmlzLWludmFsaWQgLm1kbC10ZXh0ZmllbGRfX2xhYmVsOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjIyLCA1MCwgMzgpOyB9XG5cbi5tZGwtdGV4dGZpZWxkX19lcnJvciB7XG4gIGNvbG9yOiByZ2IoMjIyLCA1MCwgMzgpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbWFyZ2luLXRvcDogM3B4O1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5tZGwtdGV4dGZpZWxkLmlzLWludmFsaWQgLm1kbC10ZXh0ZmllbGRfX2Vycm9yIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG5cbi5tZGwtdGV4dGZpZWxkX19leHBhbmRhYmxlLWhvbGRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tbGVmdDogMzJweDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4ycztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAwLjFweDsgfVxuICAubWRsLXRleHRmaWVsZC5pcy1mb2N1c2VkIC5tZGwtdGV4dGZpZWxkX19leHBhbmRhYmxlLWhvbGRlciwgLm1kbC10ZXh0ZmllbGQuaXMtZGlydHkgLm1kbC10ZXh0ZmllbGRfX2V4cGFuZGFibGUtaG9sZGVyIHtcbiAgICBtYXgtd2lkdGg6IDYwMHB4OyB9XG4gIC5tZGwtdGV4dGZpZWxkX19leHBhbmRhYmxlLWhvbGRlciAubWRsLXRleHRmaWVsZF9fbGFiZWw6YWZ0ZXIge1xuICAgIGJvdHRvbTogMDsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogVE9PTFRJUCAqL1xuLm1kbC10b29sdGlwIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgei1pbmRleDogOTk5O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDk3LDk3LDk3LCAwLjkpO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gIG1heC13aWR0aDogMTcwcHg7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAtNTAwcHg7XG4gIGxlZnQ6IC01MDBweDtcbiAgcGFkZGluZzogOHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLm1kbC10b29sdGlwLmlzLWFjdGl2ZSB7XG4gIGFuaW1hdGlvbjogcHVsc2UgMjAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSkgZm9yd2FyZHM7IH1cblxuLm1kbC10b29sdGlwLS1sYXJnZSB7XG4gIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmc6IDE2cHg7IH1cblxuQGtleWZyYW1lcyBwdWxzZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTkpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG4ubWRsLXNoYWRvdy0tMmRwIHtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGwtc2hhZG93LS0zZHAge1xuICBib3gtc2hhZG93OiAwIDNweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDhweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kbC1zaGFkb3ctLTRkcCB7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMik7IH1cblxuLm1kbC1zaGFkb3ctLTZkcCB7XG4gIGJveC1zaGFkb3c6IDAgNnB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCAxOHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpOyB9XG5cbi5tZGwtc2hhZG93LS04ZHAge1xuICBib3gtc2hhZG93OiAwIDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMik7IH1cblxuLm1kbC1zaGFkb3ctLTE2ZHAge1xuICBib3gtc2hhZG93OiAwIDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKTsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLypcbiogTk9URTogU29tZSBydWxlcyBoZXJlIGFyZSBhcHBsaWVkIHVzaW5nIGR1cGxpY2F0ZSBzZWxlY3RvcnMuXG4qIFRoaXMgaXMgb24gcHVycG9zZSB0byBpbmNyZWFzZSB0aGVpciBzcGVjaWZpY2l0eSB3aGVuIGFwcGxpZWQuXG4qIEZvciBleGFtcGxlOiBgLm1kbC1jZWxsLS0xLWNvbC1waG9uZS5tZGwtY2VsbC0tMS1jb2wtcGhvbmVgXG4qL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogVE9PTFRJUCAqL1xuLm1kbC1ncmlkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgbWFyZ2luOiAwIGF1dG8gMCBhdXRvO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuICAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcge1xuICAgIHBhZGRpbmc6IDA7IH1cblxuLm1kbC1jZWxsIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4ubWRsLWNlbGwtLXRvcCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7IH1cblxuLm1kbC1jZWxsLS1taWRkbGUge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7IH1cblxuLm1kbC1jZWxsLS1ib3R0b20ge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDsgfVxuXG4ubWRsLWNlbGwtLXN0cmV0Y2gge1xuICBhbGlnbi1zZWxmOiBzdHJldGNoOyB9XG5cbi5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbCB7XG4gIG1hcmdpbjogMDsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgLm1kbC1ncmlkIHtcbiAgICBwYWRkaW5nOiA4cHg7IH1cbiAgLm1kbC1jZWxsIHtcbiAgICBtYXJnaW46IDhweDtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kbC1jZWxsLS1oaWRlLXBob25lIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLm1kbC1jZWxsLS0xLWNvbCxcbiAgLm1kbC1jZWxsLS0xLWNvbC1waG9uZS5tZGwtY2VsbC0tMS1jb2wtcGhvbmUge1xuICAgIHdpZHRoOiBjYWxjKDI1JSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS0xLWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTEtY29sLXBob25lLm1kbC1jZWxsLS0xLWNvbC1waG9uZSB7XG4gICAgICB3aWR0aDogMjUlOyB9XG4gIC5tZGwtY2VsbC0tMi1jb2wsXG4gIC5tZGwtY2VsbC0tMi1jb2wtcGhvbmUubWRsLWNlbGwtLTItY29sLXBob25lIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMi1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0yLWNvbC1waG9uZS5tZGwtY2VsbC0tMi1jb2wtcGhvbmUge1xuICAgICAgd2lkdGg6IDUwJTsgfVxuICAubWRsLWNlbGwtLTMtY29sLFxuICAubWRsLWNlbGwtLTMtY29sLXBob25lLm1kbC1jZWxsLS0zLWNvbC1waG9uZSB7XG4gICAgd2lkdGg6IGNhbGMoNzUlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTMtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMy1jb2wtcGhvbmUubWRsLWNlbGwtLTMtY29sLXBob25lIHtcbiAgICAgIHdpZHRoOiA3NSU7IH1cbiAgLm1kbC1jZWxsLS00LWNvbCxcbiAgLm1kbC1jZWxsLS00LWNvbC1waG9uZS5tZGwtY2VsbC0tNC1jb2wtcGhvbmUge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tNC1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS00LWNvbC1waG9uZS5tZGwtY2VsbC0tNC1jb2wtcGhvbmUge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kbC1jZWxsLS01LWNvbCxcbiAgLm1kbC1jZWxsLS01LWNvbC1waG9uZS5tZGwtY2VsbC0tNS1jb2wtcGhvbmUge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tNS1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS01LWNvbC1waG9uZS5tZGwtY2VsbC0tNS1jb2wtcGhvbmUge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kbC1jZWxsLS02LWNvbCxcbiAgLm1kbC1jZWxsLS02LWNvbC1waG9uZS5tZGwtY2VsbC0tNi1jb2wtcGhvbmUge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tNi1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS02LWNvbC1waG9uZS5tZGwtY2VsbC0tNi1jb2wtcGhvbmUge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kbC1jZWxsLS03LWNvbCxcbiAgLm1kbC1jZWxsLS03LWNvbC1waG9uZS5tZGwtY2VsbC0tNy1jb2wtcGhvbmUge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tNy1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS03LWNvbC1waG9uZS5tZGwtY2VsbC0tNy1jb2wtcGhvbmUge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kbC1jZWxsLS04LWNvbCxcbiAgLm1kbC1jZWxsLS04LWNvbC1waG9uZS5tZGwtY2VsbC0tOC1jb2wtcGhvbmUge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tOC1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS04LWNvbC1waG9uZS5tZGwtY2VsbC0tOC1jb2wtcGhvbmUge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kbC1jZWxsLS05LWNvbCxcbiAgLm1kbC1jZWxsLS05LWNvbC1waG9uZS5tZGwtY2VsbC0tOS1jb2wtcGhvbmUge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tOS1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS05LWNvbC1waG9uZS5tZGwtY2VsbC0tOS1jb2wtcGhvbmUge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kbC1jZWxsLS0xMC1jb2wsXG4gIC5tZGwtY2VsbC0tMTAtY29sLXBob25lLm1kbC1jZWxsLS0xMC1jb2wtcGhvbmUge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMTAtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMTAtY29sLXBob25lLm1kbC1jZWxsLS0xMC1jb2wtcGhvbmUge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kbC1jZWxsLS0xMS1jb2wsXG4gIC5tZGwtY2VsbC0tMTEtY29sLXBob25lLm1kbC1jZWxsLS0xMS1jb2wtcGhvbmUge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMTEtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMTEtY29sLXBob25lLm1kbC1jZWxsLS0xMS1jb2wtcGhvbmUge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kbC1jZWxsLS0xMi1jb2wsXG4gIC5tZGwtY2VsbC0tMTItY29sLXBob25lLm1kbC1jZWxsLS0xMi1jb2wtcGhvbmUge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMTItY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMTItY29sLXBob25lLm1kbC1jZWxsLS0xMi1jb2wtcGhvbmUge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIGFuZCAobWF4LXdpZHRoOiA4MzlweCkge1xuICAubWRsLWdyaWQge1xuICAgIHBhZGRpbmc6IDhweDsgfVxuICAubWRsLWNlbGwge1xuICAgIG1hcmdpbjogOHB4O1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsIHtcbiAgICAgIHdpZHRoOiA1MCU7IH1cbiAgLm1kbC1jZWxsLS1oaWRlLXRhYmxldCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5tZGwtY2VsbC0tMS1jb2wsXG4gIC5tZGwtY2VsbC0tMS1jb2wtdGFibGV0Lm1kbC1jZWxsLS0xLWNvbC10YWJsZXQge1xuICAgIHdpZHRoOiBjYWxjKDEyLjUlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTEtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMS1jb2wtdGFibGV0Lm1kbC1jZWxsLS0xLWNvbC10YWJsZXQge1xuICAgICAgd2lkdGg6IDEyLjUlOyB9XG4gIC5tZGwtY2VsbC0tMi1jb2wsXG4gIC5tZGwtY2VsbC0tMi1jb2wtdGFibGV0Lm1kbC1jZWxsLS0yLWNvbC10YWJsZXQge1xuICAgIHdpZHRoOiBjYWxjKDI1JSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS0yLWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTItY29sLXRhYmxldC5tZGwtY2VsbC0tMi1jb2wtdGFibGV0IHtcbiAgICAgIHdpZHRoOiAyNSU7IH1cbiAgLm1kbC1jZWxsLS0zLWNvbCxcbiAgLm1kbC1jZWxsLS0zLWNvbC10YWJsZXQubWRsLWNlbGwtLTMtY29sLXRhYmxldCB7XG4gICAgd2lkdGg6IGNhbGMoMzcuNSUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMy1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0zLWNvbC10YWJsZXQubWRsLWNlbGwtLTMtY29sLXRhYmxldCB7XG4gICAgICB3aWR0aDogMzcuNSU7IH1cbiAgLm1kbC1jZWxsLS00LWNvbCxcbiAgLm1kbC1jZWxsLS00LWNvbC10YWJsZXQubWRsLWNlbGwtLTQtY29sLXRhYmxldCB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTQtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNC1jb2wtdGFibGV0Lm1kbC1jZWxsLS00LWNvbC10YWJsZXQge1xuICAgICAgd2lkdGg6IDUwJTsgfVxuICAubWRsLWNlbGwtLTUtY29sLFxuICAubWRsLWNlbGwtLTUtY29sLXRhYmxldC5tZGwtY2VsbC0tNS1jb2wtdGFibGV0IHtcbiAgICB3aWR0aDogY2FsYyg2Mi41JSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS01LWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTUtY29sLXRhYmxldC5tZGwtY2VsbC0tNS1jb2wtdGFibGV0IHtcbiAgICAgIHdpZHRoOiA2Mi41JTsgfVxuICAubWRsLWNlbGwtLTYtY29sLFxuICAubWRsLWNlbGwtLTYtY29sLXRhYmxldC5tZGwtY2VsbC0tNi1jb2wtdGFibGV0IHtcbiAgICB3aWR0aDogY2FsYyg3NSUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tNi1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS02LWNvbC10YWJsZXQubWRsLWNlbGwtLTYtY29sLXRhYmxldCB7XG4gICAgICB3aWR0aDogNzUlOyB9XG4gIC5tZGwtY2VsbC0tNy1jb2wsXG4gIC5tZGwtY2VsbC0tNy1jb2wtdGFibGV0Lm1kbC1jZWxsLS03LWNvbC10YWJsZXQge1xuICAgIHdpZHRoOiBjYWxjKDg3LjUlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTctY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNy1jb2wtdGFibGV0Lm1kbC1jZWxsLS03LWNvbC10YWJsZXQge1xuICAgICAgd2lkdGg6IDg3LjUlOyB9XG4gIC5tZGwtY2VsbC0tOC1jb2wsXG4gIC5tZGwtY2VsbC0tOC1jb2wtdGFibGV0Lm1kbC1jZWxsLS04LWNvbC10YWJsZXQge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tOC1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS04LWNvbC10YWJsZXQubWRsLWNlbGwtLTgtY29sLXRhYmxldCB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLTktY29sLFxuICAubWRsLWNlbGwtLTktY29sLXRhYmxldC5tZGwtY2VsbC0tOS1jb2wtdGFibGV0IHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTktY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tOS1jb2wtdGFibGV0Lm1kbC1jZWxsLS05LWNvbC10YWJsZXQge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kbC1jZWxsLS0xMC1jb2wsXG4gIC5tZGwtY2VsbC0tMTAtY29sLXRhYmxldC5tZGwtY2VsbC0tMTAtY29sLXRhYmxldCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS0xMC1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0xMC1jb2wtdGFibGV0Lm1kbC1jZWxsLS0xMC1jb2wtdGFibGV0IHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5tZGwtY2VsbC0tMTEtY29sLFxuICAubWRsLWNlbGwtLTExLWNvbC10YWJsZXQubWRsLWNlbGwtLTExLWNvbC10YWJsZXQge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMTEtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMTEtY29sLXRhYmxldC5tZGwtY2VsbC0tMTEtY29sLXRhYmxldCB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLTEyLWNvbCxcbiAgLm1kbC1jZWxsLS0xMi1jb2wtdGFibGV0Lm1kbC1jZWxsLS0xMi1jb2wtdGFibGV0IHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTEyLWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTEyLWNvbC10YWJsZXQubWRsLWNlbGwtLTEyLWNvbC10YWJsZXQge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogODQwcHgpIHtcbiAgLm1kbC1ncmlkIHtcbiAgICBwYWRkaW5nOiA4cHg7IH1cbiAgLm1kbC1jZWxsIHtcbiAgICBtYXJnaW46IDhweDtcbiAgICB3aWR0aDogY2FsYygzMy4zMzMzMyUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbCB7XG4gICAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5tZGwtY2VsbC0taGlkZS1kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLm1kbC1jZWxsLS0xLWNvbCxcbiAgLm1kbC1jZWxsLS0xLWNvbC1kZXNrdG9wLm1kbC1jZWxsLS0xLWNvbC1kZXNrdG9wIHtcbiAgICB3aWR0aDogY2FsYyg4LjMzMzMzJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS0xLWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTEtY29sLWRlc2t0b3AubWRsLWNlbGwtLTEtY29sLWRlc2t0b3Age1xuICAgICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5tZGwtY2VsbC0tMi1jb2wsXG4gIC5tZGwtY2VsbC0tMi1jb2wtZGVza3RvcC5tZGwtY2VsbC0tMi1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoMTYuNjY2NjclIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTItY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMi1jb2wtZGVza3RvcC5tZGwtY2VsbC0tMi1jb2wtZGVza3RvcCB7XG4gICAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5tZGwtY2VsbC0tMy1jb2wsXG4gIC5tZGwtY2VsbC0tMy1jb2wtZGVza3RvcC5tZGwtY2VsbC0tMy1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoMjUlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTMtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMy1jb2wtZGVza3RvcC5tZGwtY2VsbC0tMy1jb2wtZGVza3RvcCB7XG4gICAgICB3aWR0aDogMjUlOyB9XG4gIC5tZGwtY2VsbC0tNC1jb2wsXG4gIC5tZGwtY2VsbC0tNC1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNC1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTQtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNC1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNC1jb2wtZGVza3RvcCB7XG4gICAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5tZGwtY2VsbC0tNS1jb2wsXG4gIC5tZGwtY2VsbC0tNS1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNS1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoNDEuNjY2NjclIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTUtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNS1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNS1jb2wtZGVza3RvcCB7XG4gICAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC5tZGwtY2VsbC0tNi1jb2wsXG4gIC5tZGwtY2VsbC0tNi1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNi1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTYtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNi1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNi1jb2wtZGVza3RvcCB7XG4gICAgICB3aWR0aDogNTAlOyB9XG4gIC5tZGwtY2VsbC0tNy1jb2wsXG4gIC5tZGwtY2VsbC0tNy1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNy1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoNTguMzMzMzMlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTctY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNy1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNy1jb2wtZGVza3RvcCB7XG4gICAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC5tZGwtY2VsbC0tOC1jb2wsXG4gIC5tZGwtY2VsbC0tOC1jb2wtZGVza3RvcC5tZGwtY2VsbC0tOC1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoNjYuNjY2NjclIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTgtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tOC1jb2wtZGVza3RvcC5tZGwtY2VsbC0tOC1jb2wtZGVza3RvcCB7XG4gICAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gIC5tZGwtY2VsbC0tOS1jb2wsXG4gIC5tZGwtY2VsbC0tOS1jb2wtZGVza3RvcC5tZGwtY2VsbC0tOS1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoNzUlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTktY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tOS1jb2wtZGVza3RvcC5tZGwtY2VsbC0tOS1jb2wtZGVza3RvcCB7XG4gICAgICB3aWR0aDogNzUlOyB9XG4gIC5tZGwtY2VsbC0tMTAtY29sLFxuICAubWRsLWNlbGwtLTEwLWNvbC1kZXNrdG9wLm1kbC1jZWxsLS0xMC1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoODMuMzMzMzMlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTEwLWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTEwLWNvbC1kZXNrdG9wLm1kbC1jZWxsLS0xMC1jb2wtZGVza3RvcCB7XG4gICAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gIC5tZGwtY2VsbC0tMTEtY29sLFxuICAubWRsLWNlbGwtLTExLWNvbC1kZXNrdG9wLm1kbC1jZWxsLS0xMS1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoOTEuNjY2NjclIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTExLWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTExLWNvbC1kZXNrdG9wLm1kbC1jZWxsLS0xMS1jb2wtZGVza3RvcCB7XG4gICAgICB3aWR0aDogOTEuNjY2NjclOyB9XG4gIC5tZGwtY2VsbC0tMTItY29sLFxuICAubWRsLWNlbGwtLTEyLWNvbC1kZXNrdG9wLm1kbC1jZWxsLS0xMi1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS0xMi1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0xMi1jb2wtZGVza3RvcC5tZGwtY2VsbC0tMTItY29sLWRlc2t0b3Age1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4ubWQtZmFiLWJvdHRvbS1yaWdodCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAyMHB4O1xuICByaWdodDogMjBweDtcbiAgei1pbmRleDogNDk7IH1cblxubWQtY2FyZCBoMSwgbWQtY2FyZCBoMiwgbWQtY2FyZCBoMywgbWQtY2FyZCBoNCwgbWQtY2FyZCBoNSwgbWQtY2FyZCBoNiB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxubWQtY2FyZCBtZC10b29sYmFyIHtcbiAgbWluLWhlaWdodDogNTZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAwOyB9XG4gIG1kLWNhcmQgbWQtdG9vbGJhciAubWQtdG9vbGJhci10b29scyB7XG4gICAgaGVpZ2h0OiA1NnB4O1xuICAgIG1heC1oZWlnaHQ6IDU2cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6IDE2cHg7IH1cbiAgbWQtY2FyZCBtZC10b29sYmFyIC5tZC10b29sYmFyLXRvb2xzLCBtZC1jYXJkIG1kLXRvb2xiYXIgbWQtaWNvbiB7XG4gICAgY29sb3I6ICMzZDQ2NTMgIWltcG9ydGFudDsgfVxuXG4uY2FyZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDsgfVxuICAuY2FyZC1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDk2cHg7IH1cbiAgICAuY2FyZC1pY29uIG1kLWljb24ge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzY0NmI3NTtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgYm9yZGVyOiA4cHggZG91YmxlO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlOyB9XG4gIC5jYXJkLWluZm9fX3ZhbHVlIHtcbiAgICBjb2xvcjogIzI3MzE0MCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgLmNhcmQtaW5mb19fbmFtZSB7XG4gICAgY29sb3I6ICMzZDQ2NTMgIWltcG9ydGFudDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zaXplOiAxNHB4OyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA1OTlweCkge1xuICAuY2FyZC1pbmZvIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH0gfVxuXG4uZHRwID4gLmR0cC1jb250ZW50ID4gLmR0cC1kYXRlLXZpZXcgPiBoZWFkZXIuZHRwLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNzMxNDA7IH1cblxuLmR0cCBkaXYuZHRwLWRhdGUsXG4uZHRwIGRpdi5kdHAtdGltZSxcbi5kdHAgLmR0cC1hY3R1YWwtbWVyaWRpZW4gYS5zZWxlY3RlZCxcbi5kdHAgLmR0cC1waWNrZXItdGltZSA+IGEuZHRwLXNlbGVjdC1ob3VyLnNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNkNDY1MzsgfVxuXG4uZHRwIC5wMTAgPiBhLFxuLmR0cCAuZHRwLWhhbmQub24sXG4uZHRwIHRhYmxlLmR0cC1waWNrZXItZGF5cyB0ciA+IHRkID4gYS5zZWxlY3RlZCxcbi5kdHAgLmR0cC1waWNrZXItdGltZSA+IGEuZHRwLXNlbGVjdC1taW51dGUuc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2Q0NjUzOyB9XG5cbi5kdHAgZGl2LmR0cC1hY3R1YWwteWVhcixcbi5kdHAgZGl2LmR0cC15ZWFyLWJ0biB7XG4gIGNvbG9yOiAjYmRiZGJkOyB9XG5cbi5kdHAgLmR0cC1waWNrZXItbW9udGgge1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIHBhZGRpbmctdG9wOiA4cHg7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2VkZWU7XG4gIGNvbG9yOiAjM2Q0NjUzOyB9XG5cbm1kLWlucHV0LWNvbnRhaW5lci5tZC1kZWZhdWx0LXRoZW1lIC5tZC1pbnB1dFtkaXNhYmxlZF0sXG5tZC1pbnB1dC1jb250YWluZXIgLm1kLWlucHV0W2Rpc2FibGVkXSxcbm1kLWlucHV0LWNvbnRhaW5lci5tZC1kZWZhdWx0LXRoZW1lIC5tZC1pbnB1dCBbZGlzYWJsZWRdLFxubWQtaW5wdXQtY29udGFpbmVyIC5tZC1pbnB1dCBbZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTsgfVxuXG5oZWFkZXIge1xuICB6LWluZGV4OiA2MDsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgaGVhZGVyIG1kLXRvb2xiYXIgLm1kLWJ1dHRvbi5tZC1pY29uLWJ1dHRvbiB7XG4gICAgbWFyZ2luOiAwOyB9IH1cblxubWQtY29udGVudCB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWRlZTsgfVxuXG5tZC1zZWxlY3QtbWVudSBtZC1jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuICBtZC1zZWxlY3QtbWVudSBtZC1jb250ZW50IG1kLW9wdGlvbjpob3ZlciwgbWQtc2VsZWN0LW1lbnUgbWQtY29udGVudCBtZC1vcHRpb246Zm9jdXMge1xuICAgIGNvbG9yOiAjM2Q0NjUzICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RmZTBlMyAhaW1wb3J0YW50OyB9XG5cbm1kLXRvb2xiYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjczMTQwICFpbXBvcnRhbnQ7IH1cblxuLm1kLWNvbnRlbnQtc3ViaGVhZGVyIHtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMztcbiAgY29sb3I6ICM0MjQyNDI7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMTRweDsgfVxuXG5tZC1jaGVja2JveC5tZC1jaGVja2VkIC5tZC1pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEwODBmMjsgfVxuICBtZC1jaGVja2JveC5tZC1jaGVja2VkIC5tZC1pY29uOjphZnRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAjZmZmZmZmOyB9XG5cbm1kLXRvb2x0aXAge1xuICBmb250LXNpemU6IDE0cHg7IH1cblxuLmZhYi1jbG9zZWQtaWNvbiwgLmZhYi1vcGVuLWljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTdweDtcbiAgbGVmdDogMTZweDtcbiAgdHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlLWluLW91dDtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuXG4uZmFiLW9wZW4taWNvbiB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7IH1cblxuLm1kLWlzLW9wZW4gLmZhYi1jbG9zZWQtaWNvbiB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7IH1cblxuLm1kLWlzLW9wZW4gLmZhYi1vcGVuLWljb24ge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG5cbm1kLW1lbnUtY29udGVudCAubWQtYnV0dG9uIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiA0cHggMDsgfVxuICBtZC1tZW51LWNvbnRlbnQgLm1kLWJ1dHRvbjpob3ZlciwgbWQtbWVudS1jb250ZW50IC5tZC1idXR0b246Zm9jdXMge1xuICAgIGNvbG9yOiAjM2Q0NjUzICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RmZTBlMyAhaW1wb3J0YW50OyB9XG4gIG1kLW1lbnUtY29udGVudCAubWQtYnV0dG9uOmFjdGl2ZSB7XG4gICAgY29sb3I6ICMzZDQ2NTMgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzRjNmNiOyB9XG5cbm1kLXRhYnMge1xuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2JkYmRiZDtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuICBtZC10YWJzOm5vdCgubWQtbm8tdGFiLWNvbnRlbnQpOm5vdCgubWQtZHluYW1pYy1oZWlnaHQpIHtcbiAgICBtaW4taGVpZ2h0OiAwICFpbXBvcnRhbnQ7IH1cbiAgbWQtdGFicyBtZC1pbmstYmFyIHtcbiAgICBjb2xvcjogIzEwODBmMiAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6ICMxMDgwZjIgIWltcG9ydGFudDsgfVxuICBtZC10YWJzIG1kLXRhYi1jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlZGVlO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjYmRiZGJkOyB9XG4gIG1kLXRhYnMgbWQtaWNvbiB7XG4gICAgY29sb3I6ICM3NTc1NzU7IH1cbiAgbWQtdGFicyAubWQtdGFiIHtcbiAgICBjb2xvcjogIzc1NzU3NSAhaW1wb3J0YW50OyB9XG4gICAgbWQtdGFicyAubWQtdGFiLm1kLWFjdGl2ZSB7XG4gICAgICBjb2xvcjogIzEwODBmMiAhaW1wb3J0YW50O1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgbWQtdGFicyB7XG4gICAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7IH0gfVxuXG4ubWQtdGFiLWludGVydmFsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWRlZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNiZGJkYmQ7IH1cbiAgLm1kLXRhYi1pbnRlcnZhbCBkaXYgPiAqIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDMycHg7IH1cbiAgICAubWQtdGFiLWludGVydmFsIGRpdiA+ICo6bGFzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4OyB9XG4gIC5tZC10YWItaW50ZXJ2YWwgI3F1aWNrSW50ZXJ2YWwge1xuICAgIG1pbi13aWR0aDogMTIwcHg7IH1cbiAgLm1kLXRhYi1pbnRlcnZhbCAjcGVyaW9kSW50ZXJ2YWwge1xuICAgIG1pbi13aWR0aDogMTYwcHg7IH1cbiAgLm1kLXRhYi1pbnRlcnZhbCAubWQtY29udGVudC10aXRsZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDE2cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogNzAwOyB9XG4gIC5tZC10YWItaW50ZXJ2YWwgbWQtaW5wdXQtY29udGFpbmVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgLm1kLXRhYi1pbnRlcnZhbCBtZC1pbnB1dC1jb250YWluZXIgLm1kLWVycm9ycy1zcGFjZXIge1xuICAgICAgbWluLWhlaWdodDogOHB4OyB9XG4gIC5tZC10YWItaW50ZXJ2YWwgb2wsIC5tZC10YWItaW50ZXJ2YWwgdWwge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgIC5tZC10YWItaW50ZXJ2YWwgb2wgbGksIC5tZC10YWItaW50ZXJ2YWwgdWwgbGkge1xuICAgICAgcGFkZGluZzogMnB4IDhweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICAgIGNvbG9yOiAjNDI0MjQyO1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDsgfVxuICAgICAgLm1kLXRhYi1pbnRlcnZhbCBvbCBsaTpob3ZlciwgLm1kLXRhYi1pbnRlcnZhbCB1bCBsaTpob3ZlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgLm1kLXRhYi1pbnRlcnZhbCBvbCBsaTpob3ZlciwgLm1kLXRhYi1pbnRlcnZhbCBvbCBsaTphY3RpdmUsIC5tZC10YWItaW50ZXJ2YWwgb2wgbGk6Zm9jdXMsIC5tZC10YWItaW50ZXJ2YWwgdWwgbGk6aG92ZXIsIC5tZC10YWItaW50ZXJ2YWwgdWwgbGk6YWN0aXZlLCAubWQtdGFiLWludGVydmFsIHVsIGxpOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxMDgwZjI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsgfVxuXG4uc3ViaGVhZGVyLXBlcmlvZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjM7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYmRiZGJkOyB9XG4gIC5zdWJoZWFkZXItcGVyaW9kIC5tZC1zdWJoZWFkZXItaW5uZXIge1xuICAgIHBhZGRpbmc6IDAgMzJweCAwIDE2cHg7IH1cbiAgLnN1YmhlYWRlci1wZXJpb2QgLnN1YmhlYWRlci10aXRsZSB7XG4gICAgY29sb3I6ICM3NTc1NzU7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6IDE2cHg7IH1cbiAgLnN1YmhlYWRlci1wZXJpb2QgYnV0dG9uOmxhc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC5zdWJoZWFkZXItcGVyaW9kIG1kLWlucHV0LWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDRweDsgfVxuICAgIC5zdWJoZWFkZXItcGVyaW9kIG1kLWlucHV0LWNvbnRhaW5lciAubWQtZXJyb3JzLXNwYWNlciB7XG4gICAgICBtaW4taGVpZ2h0OiAwOyB9XG5cbiNzZWVrZXJTdW1tYXJ5IG1kLXBhZ2luYXRpb24td3JhcHBlciB7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7IH1cblxuI3NlZWtlckNvbXBhcmF0aXZlIG1kLXBhZ2luYXRpb24td3JhcHBlciB7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7IH1cblxubWQtc2lkZW5hdiBtZC1jb250ZW50LCBtZC1zaWRlbmF2IG1kLWNvbnRlbnQgLm1kLXN1YmhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbm1kLXNpZGVuYXYgbWQtZGl2aWRlciB7XG4gIG1hcmdpbi10b3A6IDRweDtcbiAgbWFyZ2luLWJvdHRvbTogNHB4OyB9XG5cbm1kLXNpZGVuYXYgbWQtbGlzdC1pdGVtIG1kLWljb24ge1xuICBtYXJnaW46IDAgOHB4IDAgMDsgfVxuXG5tZC1zaWRlbmF2IG1kLWxpc3QtaXRlbSAubWQtbGlzdC1pdGVtLWlubmVyIHtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cbiAgbWQtc2lkZW5hdiBtZC1saXN0LWl0ZW0gLm1kLWxpc3QtaXRlbS1pbm5lciBtZC1pY29uIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG5cbm1kLXNpZGVuYXYgbWQtbGlzdC1pdGVtOmFjdGl2ZSwgbWQtc2lkZW5hdiBtZC1saXN0LWl0ZW06Zm9jdXMsIG1kLXNpZGVuYXYgbWQtbGlzdC1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmZTBlMztcbiAgY29sb3I6ICMzZDQ2NTM7IH1cbiAgbWQtc2lkZW5hdiBtZC1saXN0LWl0ZW06YWN0aXZlIG1kLWljb24sIG1kLXNpZGVuYXYgbWQtbGlzdC1pdGVtOmZvY3VzIG1kLWljb24sIG1kLXNpZGVuYXYgbWQtbGlzdC1pdGVtOmhvdmVyIG1kLWljb24ge1xuICAgIGNvbG9yOiAjM2Q0NjUzICFpbXBvcnRhbnQ7IH1cblxubWQtc2lkZW5hdiAubWQtYXZhdGFyIHtcbiAgaGVpZ2h0OiA2NHB4O1xuICB3aWR0aDogNjRweDsgfVxuICBtZC1zaWRlbmF2IC5tZC1hdmF0YXIgaW1nIHtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gICAgd2lkdGg6IDY0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlOyB9XG5cbm1kLXNpZGVuYXYgLnRvb2xiYXItaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vYXNzZXRzL2ltYWdlcy9iZy1oZWFkZXIucG5nXCIpO1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IG11bHRpcGx5O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9XG5cbiNzaWRlbmF2TWVudSB7XG4gIHdpZHRoOiAyNDBweDtcbiAgbWF4LXdpZHRoOiAyNDBweDtcbiAgaGVpZ2h0OiBpbmhlcml0OyB9XG4gICNzaWRlbmF2TWVudSBtZC10b29sYmFyIHtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIGhlaWdodDogMTYwcHg7XG4gICAgbWluLWhlaWdodDogMTYwcHg7XG4gICAgbWF4LWhlaWdodDogMTYwcHg7IH1cbiAgI3NpZGVuYXZNZW51IG1kLWNvbnRlbnQge1xuICAgIGhlaWdodDogaW5oZXJpdDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MHB4KSB7XG4gICNzaWRlbmF2TWVudSB7XG4gICAgei1pbmRleDogNTg7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjYmRiZGJkOyB9IH1cblxuI3NpZGVuYXZGaWx0ZXIge1xuICB3aWR0aDogMzIwcHg7XG4gIG1heC13aWR0aDogMzIwcHg7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwOyB9XG4gICNzaWRlbmF2RmlsdGVyIG1kLXRhYnMgbWQtdGFiLWNvbnRlbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cbiAgI3NpZGVuYXZGaWx0ZXIgbWQtbGlzdC1pdGVtIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YxZjJmMjsgfVxuICAgICNzaWRlbmF2RmlsdGVyIG1kLWxpc3QtaXRlbTpsYXN0LW9mLXR5cGUge1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuXG50aGVhZCB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLnRkLWNvbG9yZWQge1xuICBtYXgtd2lkdGg6IDEwMHB4OyB9XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIGNvbG9yOiAjM2Q0NjUzO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuc21hbGwge1xuICBvcGFjaXR5OiAuNjsgfVxuXG5hIHtcbiAgY29sb3I6ICMzZDQ2NTM7IH1cbiAgYTpmb2N1cywgYTpob3ZlciwgYTphY3RpdmUge1xuICAgIGNvbG9yOiAjMjczMTQwOyB9XG5cbi5mc2Vuc2UtcmVzZXQtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDI0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGM0Y0RjY7IH1cbiAgLmZzZW5zZS1yZXNldC1jb250YWluZXIgLmZzZW5zZS1jYXJkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgICBwYWRkaW5nOiA2NHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5mc2Vuc2UtcmVzZXQtY29udGFpbmVyIC5mc2Vuc2UtY2FyZCAuZnNlbnNlLWxvZ28tY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiA5OTtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgIC5mc2Vuc2UtcmVzZXQtY29udGFpbmVyIC5mc2Vuc2UtY2FyZCAuZnNlbnNlLWxvZ28tY29udGFpbmVyIC5mc2Vuc2UtbG9nbyB7XG4gICAgICAgIHdpZHRoOiAxNTBweDsgfVxuICAgIC5mc2Vuc2UtcmVzZXQtY29udGFpbmVyIC5mc2Vuc2UtY2FyZCBoMSB7XG4gICAgICBtYXJnaW46IDAgMCA4cHggMDtcbiAgICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBjb2xvcjogIzExMTgyNzsgfVxuICAgIC5mc2Vuc2UtcmVzZXQtY29udGFpbmVyIC5mc2Vuc2UtY2FyZCBwIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgIGNvbG9yOiAjNkI3MjgwOyB9XG4gICAgLmZzZW5zZS1yZXNldC1jb250YWluZXIgLmZzZW5zZS1jYXJkIC5tZC1vdXRsaW5lZC1pbnB1dC1jb250YWluZXIge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgIC5mc2Vuc2UtcmVzZXQtY29udGFpbmVyIC5mc2Vuc2UtY2FyZCAubWQtb3V0bGluZWQtaW5wdXQtY29udGFpbmVyIC5tZC1lcnJvcnMtc3BhY2VyIHtcbiAgICAgICAgbWluLWhlaWdodDogYXV0bzsgfVxuICAgICAgLmZzZW5zZS1yZXNldC1jb250YWluZXIgLmZzZW5zZS1jYXJkIC5tZC1vdXRsaW5lZC1pbnB1dC1jb250YWluZXIgLm1kLWlucHV0W2Rpc2FibGVkXSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTE4LCAxMTgsIDExOCwgMC4zKTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHQtZGFyayhyZ2JhKDIzOSwgMjM5LCAyMzksIDAuMyksIHJnYmEoNTksIDU5LCA1OSwgMC4zKSk7IH1cbiAgICAgIC5mc2Vuc2UtcmVzZXQtY29udGFpbmVyIC5mc2Vuc2UtY2FyZCAubWQtb3V0bGluZWQtaW5wdXQtY29udGFpbmVyIC5tZC1pbnB1dCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM2NzNhYjc7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDU2cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBwYWRkaW5nOiAwIDE2cHggMCAxNnB4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgICAgICAuZnNlbnNlLXJlc2V0LWNvbnRhaW5lciAuZnNlbnNlLWNhcmQgLm1kLW91dGxpbmVkLWlucHV0LWNvbnRhaW5lciAubWQtaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICBjb2xvcjogIzlDQTNBRjtcbiAgICAgICAgICBvcGFjaXR5OiAxOyB9XG4gICAgICAuZnNlbnNlLXJlc2V0LWNvbnRhaW5lciAuZnNlbnNlLWNhcmQgLm1kLW91dGxpbmVkLWlucHV0LWNvbnRhaW5lci5tZC1pbnB1dC1pbnZhbGlkIC5tZC1pbnB1dCB7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNkZDJjMDAgIWltcG9ydGFudDsgfVxuICAgICAgLmZzZW5zZS1yZXNldC1jb250YWluZXIgLmZzZW5zZS1jYXJkIC5tZC1vdXRsaW5lZC1pbnB1dC1jb250YWluZXIubWQtaW5wdXQtaW52YWxpZCBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiAjZGQyYzAwICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5mc2Vuc2UtcmVzZXQtY29udGFpbmVyIC5mc2Vuc2UtY2FyZCAubWQtb3V0bGluZWQtaW5wdXQtY29udGFpbmVyLm1kLWlucHV0LXZhbGlkIGxhYmVsIHtcbiAgICAgICAgY29sb3I6ICM2NzNhYjc7IH1cbiAgICAgIC5mc2Vuc2UtcmVzZXQtY29udGFpbmVyIC5mc2Vuc2UtY2FyZCAubWQtb3V0bGluZWQtaW5wdXQtY29udGFpbmVyLm1kLWlucHV0LWZvY3VzZWQgLm1kLWlucHV0IHtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgIzY3M2FiNyAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwIDE2cHggMCAxNnB4OyB9XG4gICAgICAuZnNlbnNlLXJlc2V0LWNvbnRhaW5lciAuZnNlbnNlLWNhcmQgLm1kLW91dGxpbmVkLWlucHV0LWNvbnRhaW5lci5tZC1pbnB1dC1mb2N1c2VkIGxhYmVsIHtcbiAgICAgICAgY29sb3I6ICM2NzNhYjcgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCA0cHggMCA0cHg7IH1cbiAgICAgIC5mc2Vuc2UtcmVzZXQtY29udGFpbmVyIC5mc2Vuc2UtY2FyZCAubWQtb3V0bGluZWQtaW5wdXQtY29udGFpbmVyIC5sYWJlbC1kZXNhdGl2YWRhIHtcbiAgICAgICAgY29sb3I6ICNhYWFhYWEgIWltcG9ydGFudDsgfVxuICAgICAgLmZzZW5zZS1yZXNldC1jb250YWluZXIgLmZzZW5zZS1jYXJkIC5tZC1vdXRsaW5lZC1pbnB1dC1jb250YWluZXI6bm90KC5tZC1pbnB1dC1pbnZhbGlkKS5tZC1pbnB1dC1oYXMtdmFsdWUgbGFiZWwge1xuICAgICAgICBjb2xvcjogIzY3M2FiNzsgfVxuICAgICAgLmZzZW5zZS1yZXNldC1jb250YWluZXIgLmZzZW5zZS1jYXJkIC5tZC1vdXRsaW5lZC1pbnB1dC1jb250YWluZXIgbGFiZWwge1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgICAgICB0b3A6IC0xM3B4O1xuICAgICAgICBsZWZ0OiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDAgNHB4IDAgNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAjNjczYWI3O1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHVuc2V0ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5mc2Vuc2UtcmVzZXQtY29udGFpbmVyIC5mc2Vuc2UtY2FyZCAuZnNlbnNlLWJ0biB7XG4gICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgICAuZnNlbnNlLXJlc2V0LWNvbnRhaW5lciAuZnNlbnNlLWNhcmQgLmZzZW5zZS1saW5rIHtcbiAgICAgIG1hcmdpbi10b3A6IDMycHg7IH1cbiAgICAgIC5mc2Vuc2UtcmVzZXQtY29udGFpbmVyIC5mc2Vuc2UtY2FyZCAuZnNlbnNlLWxpbmsgYSB7XG4gICAgICAgIGNvbG9yOiAjNjczYWI3O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC5mc2Vuc2UtcmVzZXQtY29udGFpbmVyIC5mc2Vuc2UtY2FyZCAuZnNlbnNlLXN1Y2Nlc3MtaWNvbiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgd2lkdGg6IDY0cHg7XG4gICAgICBoZWlnaHQ6IDY0cHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTBCOTgxO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgbWFyZ2luOiAwIGF1dG8gMjRweCBhdXRvO1xuICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDE1cHggLTNweCByZ2JhKDE2LCAxODUsIDEyOSwgMC4zKTsgfVxuICAgICAgLmZzZW5zZS1yZXNldC1jb250YWluZXIgLmZzZW5zZS1jYXJkIC5mc2Vuc2Utc3VjY2Vzcy1pY29uIGkge1xuICAgICAgICBmb250LXNpemU6IDMycHg7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAgIC5mc2Vuc2UtcmVzZXQtY29udGFpbmVyIC5mc2Vuc2UtY2FyZCBtZC1wcm9ncmVzcy1jaXJjdWxhci5jdXN0b20tcHJvZ3Jlc3Mge1xuICAgICAgbWFyZ2luOiAwIDE2cHggMTZweCAxNnB4OyB9XG4gICAgICAuZnNlbnNlLXJlc2V0LWNvbnRhaW5lciAuZnNlbnNlLWNhcmQgbWQtcHJvZ3Jlc3MtY2lyY3VsYXIuY3VzdG9tLXByb2dyZXNzIHBhdGgge1xuICAgICAgICBzdHJva2U6ICM2NzNhYjc7IH1cblxuLmZzZW5zZS1yZXNldC1wYXNzd29yZC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogMjRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YzRjRGNjsgfVxuICAuZnNlbnNlLXJlc2V0LXBhc3N3b3JkLWNvbnRhaW5lciAuZnNlbnNlLWNhcmQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICAgIHBhZGRpbmc6IDY0cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogNDgwcHg7IH1cbiAgICAuZnNlbnNlLXJlc2V0LXBhc3N3b3JkLWNvbnRhaW5lciAuZnNlbnNlLWNhcmQgLmZzZW5zZS1sb2dvLWNvbnRhaW5lciB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogOTk7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAuZnNlbnNlLXJlc2V0LXBhc3N3b3JkLWNvbnRhaW5lciAuZnNlbnNlLWNhcmQgLmZzZW5zZS1sb2dvLWNvbnRhaW5lciAuZnNlbnNlLWxvZ28ge1xuICAgICAgICB3aWR0aDogMTUwcHg7IH1cbiAgICAuZnNlbnNlLXJlc2V0LXBhc3N3b3JkLWNvbnRhaW5lciAuZnNlbnNlLWNhcmQgaDEge1xuICAgICAgbWFyZ2luOiAwIDAgOHB4IDA7XG4gICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgY29sb3I6ICMxMTE4Mjc7IH1cbiAgICAuZnNlbnNlLXJlc2V0LXBhc3N3b3JkLWNvbnRhaW5lciAuZnNlbnNlLWNhcmQgcCB7XG4gICAgICBtYXJnaW46IDAgMCAxMHB4IDA7XG4gICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICBjb2xvcjogIzZCNzI4MDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7IH1cbiAgICAuZnNlbnNlLXJlc2V0LXBhc3N3b3JkLWNvbnRhaW5lciAuZnNlbnNlLWNhcmQgLm1kLW91dGxpbmVkLWlucHV0LWNvbnRhaW5lciB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLmZzZW5zZS1yZXNldC1wYXNzd29yZC1jb250YWluZXIgLmZzZW5zZS1jYXJkIC5tZC1vdXRsaW5lZC1pbnB1dC1jb250YWluZXIgLm1kLWVycm9ycy1zcGFjZXIge1xuICAgICAgICBtaW4taGVpZ2h0OiBhdXRvOyB9XG4gICAgICAuZnNlbnNlLXJlc2V0LXBhc3N3b3JkLWNvbnRhaW5lciAuZnNlbnNlLWNhcmQgLm1kLW91dGxpbmVkLWlucHV0LWNvbnRhaW5lciAubWQtaW5wdXRbZGlzYWJsZWRdIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMTgsIDExOCwgMTE4LCAwLjMpO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodC1kYXJrKHJnYmEoMjM5LCAyMzksIDIzOSwgMC4zKSwgcmdiYSg1OSwgNTksIDU5LCAwLjMpKTsgfVxuICAgICAgLmZzZW5zZS1yZXNldC1wYXNzd29yZC1jb250YWluZXIgLmZzZW5zZS1jYXJkIC5tZC1vdXRsaW5lZC1pbnB1dC1jb250YWluZXIgLm1kLWlucHV0IHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzY3M2FiNztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgbWluLWhlaWdodDogNTZweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHBhZGRpbmc6IDAgMTZweCAwIDE2cHg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgICAgIC5mc2Vuc2UtcmVzZXQtcGFzc3dvcmQtY29udGFpbmVyIC5mc2Vuc2UtY2FyZCAubWQtb3V0bGluZWQtaW5wdXQtY29udGFpbmVyIC5tZC1pbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgIGNvbG9yOiAjOUNBM0FGO1xuICAgICAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAgIC5mc2Vuc2UtcmVzZXQtcGFzc3dvcmQtY29udGFpbmVyIC5mc2Vuc2UtY2FyZCAubWQtb3V0bGluZWQtaW5wdXQtY29udGFpbmVyLm1kLWlucHV0LWludmFsaWQgLm1kLWlucHV0IHtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgI2RkMmMwMCAhaW1wb3J0YW50OyB9XG4gICAgICAuZnNlbnNlLXJlc2V0LXBhc3N3b3JkLWNvbnRhaW5lciAuZnNlbnNlLWNhcmQgLm1kLW91dGxpbmVkLWlucHV0LWNvbnRhaW5lci5tZC1pbnB1dC1pbnZhbGlkIGxhYmVsIHtcbiAgICAgICAgY29sb3I6ICNkZDJjMDAgIWltcG9ydGFudDsgfVxuICAgICAgLmZzZW5zZS1yZXNldC1wYXNzd29yZC1jb250YWluZXIgLmZzZW5zZS1jYXJkIC5tZC1vdXRsaW5lZC1pbnB1dC1jb250YWluZXIubWQtaW5wdXQtdmFsaWQgbGFiZWwge1xuICAgICAgICBjb2xvcjogIzY3M2FiNzsgfVxuICAgICAgLmZzZW5zZS1yZXNldC1wYXNzd29yZC1jb250YWluZXIgLmZzZW5zZS1jYXJkIC5tZC1vdXRsaW5lZC1pbnB1dC1jb250YWluZXIubWQtaW5wdXQtZm9jdXNlZCAubWQtaW5wdXQge1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjNjczYWI3ICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDAgMTZweCAwIDE2cHg7IH1cbiAgICAgIC5mc2Vuc2UtcmVzZXQtcGFzc3dvcmQtY29udGFpbmVyIC5mc2Vuc2UtY2FyZCAubWQtb3V0bGluZWQtaW5wdXQtY29udGFpbmVyLm1kLWlucHV0LWZvY3VzZWQgbGFiZWwge1xuICAgICAgICBjb2xvcjogIzY3M2FiNyAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwIDRweCAwIDRweDsgfVxuICAgICAgLmZzZW5zZS1yZXNldC1wYXNzd29yZC1jb250YWluZXIgLmZzZW5zZS1jYXJkIC5tZC1vdXRsaW5lZC1pbnB1dC1jb250YWluZXIgLmxhYmVsLWRlc2F0aXZhZGEge1xuICAgICAgICBjb2xvcjogI2FhYWFhYSAhaW1wb3J0YW50OyB9XG4gICAgICAuZnNlbnNlLXJlc2V0LXBhc3N3b3JkLWNvbnRhaW5lciAuZnNlbnNlLWNhcmQgLm1kLW91dGxpbmVkLWlucHV0LWNvbnRhaW5lcjpub3QoLm1kLWlucHV0LWludmFsaWQpLm1kLWlucHV0LWhhcy12YWx1ZSBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiAjNjczYWI3OyB9XG4gICAgICAuZnNlbnNlLXJlc2V0LXBhc3N3b3JkLWNvbnRhaW5lciAuZnNlbnNlLWNhcmQgLm1kLW91dGxpbmVkLWlucHV0LWNvbnRhaW5lciBsYWJlbCB7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gICAgICAgIHRvcDogLTEzcHg7XG4gICAgICAgIGxlZnQ6IDEycHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCA0cHggMCA0cHggIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6ICM2NzNhYjc7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogdW5zZXQgIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvOyB9XG4gICAgLmZzZW5zZS1yZXNldC1wYXNzd29yZC1jb250YWluZXIgLmZzZW5zZS1jYXJkIC5yZXNldC1lcnJvcnMge1xuICAgICAgY29sb3I6ICNkZDJjMDA7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgbWFyZ2luOiA4cHggMCAxNnB4IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkVFMkUyO1xuICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI0ZDQTVBNTsgfVxuICAgICAgLmZzZW5zZS1yZXNldC1wYXNzd29yZC1jb250YWluZXIgLmZzZW5zZS1jYXJkIC5yZXNldC1lcnJvcnMgLmVycm9yLW1lc3NhZ2UtcmVzZXQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMTZweDsgfVxuICAgICAgICAuZnNlbnNlLXJlc2V0LXBhc3N3b3JkLWNvbnRhaW5lciAuZnNlbnNlLWNhcmQgLnJlc2V0LWVycm9ycyAuZXJyb3ItbWVzc2FnZS1yZXNldCBwIHtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsgfVxuICAgICAgICAgIC5mc2Vuc2UtcmVzZXQtcGFzc3dvcmQtY29udGFpbmVyIC5mc2Vuc2UtY2FyZCAucmVzZXQtZXJyb3JzIC5lcnJvci1tZXNzYWdlLXJlc2V0IHA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgLmZzZW5zZS1yZXNldC1wYXNzd29yZC1jb250YWluZXIgLmZzZW5zZS1jYXJkIC5mc2Vuc2UtYnRuIHtcbiAgICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAgIC5mc2Vuc2UtcmVzZXQtcGFzc3dvcmQtY29udGFpbmVyIC5mc2Vuc2UtY2FyZCBtZC1wcm9ncmVzcy1jaXJjdWxhci5jdXN0b20tcHJvZ3Jlc3Mge1xuICAgICAgbWFyZ2luOiAwIDE2cHggMTZweCAxNnB4OyB9XG4gICAgICAuZnNlbnNlLXJlc2V0LXBhc3N3b3JkLWNvbnRhaW5lciAuZnNlbnNlLWNhcmQgbWQtcHJvZ3Jlc3MtY2lyY3VsYXIuY3VzdG9tLXByb2dyZXNzIHBhdGgge1xuICAgICAgICBzdHJva2U6ICM2NzNhYjc7IH1cblxuLmZzZW5zZS1zZXQtcGFzc3dvcmQtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBwYWRkaW5nOiAyNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjNGNEY2OyB9XG4gIC5mc2Vuc2Utc2V0LXBhc3N3b3JkLWNvbnRhaW5lciAuZnNlbnNlLWNhcmQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICAgIHBhZGRpbmc6IDY0cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogNDgwcHg7IH1cbiAgICAuZnNlbnNlLXNldC1wYXNzd29yZC1jb250YWluZXIgLmZzZW5zZS1jYXJkIC5mc2Vuc2UtbG9nby1jb250YWluZXIge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDk5O1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLmZzZW5zZS1zZXQtcGFzc3dvcmQtY29udGFpbmVyIC5mc2Vuc2UtY2FyZCAuZnNlbnNlLWxvZ28tY29udGFpbmVyIC5mc2Vuc2UtbG9nbyB7XG4gICAgICAgIHdpZHRoOiAxNTBweDsgfVxuICAgIC5mc2Vuc2Utc2V0LXBhc3N3b3JkLWNvbnRhaW5lciAuZnNlbnNlLWNhcmQgaDEge1xuICAgICAgbWFyZ2luOiAwIDAgOHB4IDA7XG4gICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgY29sb3I6ICMxMTE4Mjc7IH1cbiAgICAuZnNlbnNlLXNldC1wYXNzd29yZC1jb250YWluZXIgLmZzZW5zZS1jYXJkIHAge1xuICAgICAgbWFyZ2luOiAwIDAgMzJweCAwO1xuICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgY29sb3I6ICM2QjcyODA7XG4gICAgICBsaW5lLWhlaWdodDogMS41OyB9XG4gICAgLmZzZW5zZS1zZXQtcGFzc3dvcmQtY29udGFpbmVyIC5mc2Vuc2UtY2FyZC5pbnZhbGlkLXRva2VuLWNhcmQge1xuICAgICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICAgIHBhZGRpbmc6IDQ4cHggMzJweDsgfVxuICAgICAgLmZzZW5zZS1zZXQtcGFzc3dvcmQtY29udGFpbmVyIC5mc2Vuc2UtY2FyZC5pbnZhbGlkLXRva2VuLWNhcmQgLmVycm9yLWljb24td3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB3aWR0aDogNjRweDtcbiAgICAgICAgaGVpZ2h0OiA2NHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkVFMkUyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvIDI0cHggYXV0bzsgfVxuICAgICAgICAuZnNlbnNlLXNldC1wYXNzd29yZC1jb250YWluZXIgLmZzZW5zZS1jYXJkLmludmFsaWQtdG9rZW4tY2FyZCAuZXJyb3ItaWNvbi13cmFwcGVyIGkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICAgICAgICBjb2xvcjogI0RDMjYyNjsgfVxuICAgICAgLmZzZW5zZS1zZXQtcGFzc3dvcmQtY29udGFpbmVyIC5mc2Vuc2UtY2FyZC5pbnZhbGlkLXRva2VuLWNhcmQgcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICBjb2xvcjogIzExMTgyNzsgfVxuICAgIC5mc2Vuc2Utc2V0LXBhc3N3b3JkLWNvbnRhaW5lciAuZnNlbnNlLWNhcmQgLnBhc3N3b3JkLWlucHV0LXdyYXBwZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tYm90dG9tOiA4cHg7IH1cbiAgICAgIC5mc2Vuc2Utc2V0LXBhc3N3b3JkLWNvbnRhaW5lciAuZnNlbnNlLWNhcmQgLnBhc3N3b3JkLWlucHV0LXdyYXBwZXIgLnRvZ2dsZS1wYXNzd29yZCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDE2cHg7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIGNvbG9yOiAjOUNBM0FGO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2U7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG4gICAgICAgIC5mc2Vuc2Utc2V0LXBhc3N3b3JkLWNvbnRhaW5lciAuZnNlbnNlLWNhcmQgLnBhc3N3b3JkLWlucHV0LXdyYXBwZXIgLnRvZ2dsZS1wYXNzd29yZDpob3ZlciB7XG4gICAgICAgICAgY29sb3I6ICM2NzNhYjc7IH1cbiAgICAuZnNlbnNlLXNldC1wYXNzd29yZC1jb250YWluZXIgLmZzZW5zZS1jYXJkIC5tZC1vdXRsaW5lZC1pbnB1dC1jb250YWluZXIge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgIC5mc2Vuc2Utc2V0LXBhc3N3b3JkLWNvbnRhaW5lciAuZnNlbnNlLWNhcmQgLm1kLW91dGxpbmVkLWlucHV0LWNvbnRhaW5lciAubWQtZXJyb3JzLXNwYWNlciB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IGF1dG87IH1cbiAgICAgIC5mc2Vuc2Utc2V0LXBhc3N3b3JkLWNvbnRhaW5lciAuZnNlbnNlLWNhcmQgLm1kLW91dGxpbmVkLWlucHV0LWNvbnRhaW5lciAubWQtaW5wdXRbZGlzYWJsZWRdIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMTgsIDExOCwgMTE4LCAwLjMpO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodC1kYXJrKHJnYmEoMjM5LCAyMzksIDIzOSwgMC4zKSwgcmdiYSg1OSwgNTksIDU5LCAwLjMpKTsgfVxuICAgICAgLmZzZW5zZS1zZXQtcGFzc3dvcmQtY29udGFpbmVyIC5mc2Vuc2UtY2FyZCAubWQtb3V0bGluZWQtaW5wdXQtY29udGFpbmVyIC5tZC1pbnB1dCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM2NzNhYjc7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDU2cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBwYWRkaW5nOiAwIDQ4cHggMCAxNnB4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgICAgICAuZnNlbnNlLXNldC1wYXNzd29yZC1jb250YWluZXIgLmZzZW5zZS1jYXJkIC5tZC1vdXRsaW5lZC1pbnB1dC1jb250YWluZXIgLm1kLWlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgY29sb3I6ICM5Q0EzQUY7XG4gICAgICAgICAgb3BhY2l0eTogMTsgfVxuICAgICAgLmZzZW5zZS1zZXQtcGFzc3dvcmQtY29udGFpbmVyIC5mc2Vuc2UtY2FyZCAubWQtb3V0bGluZWQtaW5wdXQtY29udGFpbmVyLm1kLWlucHV0LWludmFsaWQgLm1kLWlucHV0IHtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgI2RkMmMwMCAhaW1wb3J0YW50OyB9XG4gICAgICAuZnNlbnNlLXNldC1wYXNzd29yZC1jb250YWluZXIgLmZzZW5zZS1jYXJkIC5tZC1vdXRsaW5lZC1pbnB1dC1jb250YWluZXIubWQtaW5wdXQtaW52YWxpZCBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiAjZGQyYzAwICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5mc2Vuc2Utc2V0LXBhc3N3b3JkLWNvbnRhaW5lciAuZnNlbnNlLWNhcmQgLm1kLW91dGxpbmVkLWlucHV0LWNvbnRhaW5lci5tZC1pbnB1dC12YWxpZCBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiAjNjczYWI3OyB9XG4gICAgICAuZnNlbnNlLXNldC1wYXNzd29yZC1jb250YWluZXIgLmZzZW5zZS1jYXJkIC5tZC1vdXRsaW5lZC1pbnB1dC1jb250YWluZXIubWQtaW5wdXQtZm9jdXNlZCAubWQtaW5wdXQge1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjNjczYWI3ICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDAgNDhweCAwIDE2cHg7IH1cbiAgICAgIC5mc2Vuc2Utc2V0LXBhc3N3b3JkLWNvbnRhaW5lciAuZnNlbnNlLWNhcmQgLm1kLW91dGxpbmVkLWlucHV0LWNvbnRhaW5lci5tZC1pbnB1dC1mb2N1c2VkIGxhYmVsIHtcbiAgICAgICAgY29sb3I6ICM2NzNhYjcgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCA0cHggMCA0cHg7IH1cbiAgICAgIC5mc2Vuc2Utc2V0LXBhc3N3b3JkLWNvbnRhaW5lciAuZnNlbnNlLWNhcmQgLm1kLW91dGxpbmVkLWlucHV0LWNvbnRhaW5lciAubGFiZWwtZGVzYXRpdmFkYSB7XG4gICAgICAgIGNvbG9yOiAjYWFhYWFhICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5mc2Vuc2Utc2V0LXBhc3N3b3JkLWNvbnRhaW5lciAuZnNlbnNlLWNhcmQgLm1kLW91dGxpbmVkLWlucHV0LWNvbnRhaW5lcjpub3QoLm1kLWlucHV0LWludmFsaWQpLm1kLWlucHV0LWhhcy12YWx1ZSBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiAjNjczYWI3OyB9XG4gICAgICAuZnNlbnNlLXNldC1wYXNzd29yZC1jb250YWluZXIgLmZzZW5zZS1jYXJkIC5tZC1vdXRsaW5lZC1pbnB1dC1jb250YWluZXIgbGFiZWwge1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgICAgICB0b3A6IC0xM3B4O1xuICAgICAgICBsZWZ0OiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDAgNHB4IDAgNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAjNjczYWI3O1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHVuc2V0ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5mc2Vuc2Utc2V0LXBhc3N3b3JkLWNvbnRhaW5lciAuZnNlbnNlLWNhcmQgLnJlc2V0LWVycm9ycyB7XG4gICAgICBjb2xvcjogI2RkMmMwMDtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBtYXJnaW46IDE2cHggMCA4cHggMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRUUyRTI7XG4gICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjRkNBNUE1OyB9XG4gICAgLmZzZW5zZS1zZXQtcGFzc3dvcmQtY29udGFpbmVyIC5mc2Vuc2UtY2FyZCAuZnNlbnNlLWJ0biB7XG4gICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgICAuZnNlbnNlLXNldC1wYXNzd29yZC1jb250YWluZXIgLmZzZW5zZS1jYXJkIC5mc2Vuc2UtbG9hZGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIG1hcmdpbi10b3A6IDE2cHg7IH1cblxuaHRtbCwgYm9keSB7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBzYW5zLXNlcmlmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlZGVlO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5kaXNwbGF5LWZsZXgge1xuICBkaXNwbGF5OiBmbGV4OyB9XG5cbi5uby1wYWRkaW5nIHtcbiAgcGFkZGluZzogMDsgfVxuXG4ubm8tbWFyZ2luIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5wYWRkaW5nLXNtIHtcbiAgcGFkZGluZzogOHB4OyB9XG4gIC5wYWRkaW5nLXNtX190YiB7XG4gICAgcGFkZGluZy10b3A6IDhweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4OyB9XG4gIC5wYWRkaW5nLXNtX19ybCB7XG4gICAgcGFkZGluZy1yaWdodDogOHB4O1xuICAgIHBhZGRpbmctbGVmdDogOHB4OyB9XG5cbi5wYWRkaW5nLW1kIHtcbiAgcGFkZGluZzogMTZweDsgfVxuICAucGFkZGluZy1tZF9fdGIge1xuICAgIHBhZGRpbmctdG9wOiAxNnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxNnB4OyB9XG4gIC5wYWRkaW5nLW1kX19ybCB7XG4gICAgcGFkZGluZy1yaWdodDogMTZweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7IH1cblxuLnBhZGRpbmctbGcge1xuICBwYWRkaW5nOiAzMnB4OyB9XG4gIC5wYWRkaW5nLWxnX190YiB7XG4gICAgcGFkZGluZy10b3A6IDMycHg7XG4gICAgcGFkZGluZy1ib3R0b206IDMycHg7IH1cbiAgLnBhZGRpbmctbGdfX3JsIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMnB4O1xuICAgIHBhZGRpbmctbGVmdDogMzJweDsgfVxuXG4ubWFyZ2luLXNtIHtcbiAgbWFyZ2luOiA4cHg7IH1cbiAgLm1hcmdpbi1zbV9fdGIge1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7IH1cbiAgLm1hcmdpbi1zbV9fcmwge1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIG1hcmdpbi1sZWZ0OiA4cHg7IH1cblxuLm1hcmdpbi1tZCB7XG4gIG1hcmdpbjogMTZweDsgfVxuICAubWFyZ2luLW1kX190YiB7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4OyB9XG4gIC5tYXJnaW4tbWRfX3JsIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDE2cHg7IH1cblxuLm1hcmdpbi1sZyB7XG4gIG1hcmdpbjogMzJweDsgfVxuICAubWFyZ2luLWxnX190YiB7XG4gICAgbWFyZ2luLXRvcDogMzJweDtcbiAgICBtYXJnaW4tYm90dG9tOiAzMnB4OyB9XG4gIC5tYXJnaW4tbGdfX3JsIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDMycHg7XG4gICAgbWFyZ2luLWxlZnQ6IDMycHg7IH1cblxuLm1hcmdpbi1hdXRvIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuXG4uZmxvYXRfX2xlZnQge1xuICBmbG9hdDogbGVmdDsgfVxuXG4uZmxvYXRfX3JpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi50ZXh0X19sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4udGV4dF9fY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi50ZXh0X19yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbi50ZXh0X19sb3dlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOyB9XG5cbi50ZXh0X191cHBlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi50ZXh0X19jYXBpdGFsaXplIHtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7IH1cblxuLnRleHRfX3RoaW4ge1xuICBmb250LXdlaWdodDogMTAwOyB9XG5cbi50ZXh0X19saWdodCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7IH1cblxuLnRleHRfX3JlZ3VsYXIge1xuICBmb250LXdlaWdodDogNDAwOyB9XG5cbi50ZXh0X19tZWRpdW0ge1xuICBmb250LXdlaWdodDogNTAwOyB9XG5cbi50ZXh0X19ib2xkIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG4udGV4dF9fYmxhY2sge1xuICBmb250LXdlaWdodDogOTAwOyB9XG5cbi5iZ19fbGlnaHQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2VkZWU7IH1cblxuLmJnX19saWdodC1zZWNvbmRhcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlZGVlOyB9XG5cbi5iZ19fZGFyay1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI3MzE0MDsgfVxuXG4uYmdfX2Rhcmstc2Vjb25kYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuXG4ucmliYm9uIHtcbiAgLXdlYmtpdC1mbGV4LXNocmluazogMDtcbiAgLW1vei1mbGV4LXNocmluazogMDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIC1tcy1mbGV4LW5lZ2F0aXZlOiAwO1xuICBoZWlnaHQ6IDUwdmg7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2ZkOGRjOyB9XG5cbi5tYWluIHtcbiAgLXdlYmtpdC1mbGV4LXNocmluazogMDtcbiAgLW1vei1mbGV4LXNocmluazogMDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIC1tcy1mbGV4LW5lZ2F0aXZlOiAwO1xuICBtYXJnaW4tdG9wOiAtNTB2aDsgfVxuXG4ubG9nbyB7XG4gIG1heC1oZWlnaHQ6IDM2cHg7XG4gIG1hcmdpbi1yaWdodDogOHB4OyB9XG5cbi5sb2dpbiB7XG4gIHdpZHRoOiA0MDBweDsgfVxuXG4ubXktY2hhcnQge1xuICBoZWlnaHQ6IGF1dG87XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IGNhbGMoNTAlIC0gNHB4KTtcbiAgYm9yZGVyLXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4uY29udGFpbmVyLWNoYXJ0IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLm15LWNoYXJ0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbi5mcy1pbnB1dCB7XG4gIG1hcmdpbjogNHB4IDAgMjBweCAwO1xuICBwYWRkaW5nOiAxMnB4O1xuICBjb2xvcjogIzQ0NDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBib3JkZXI6IHNvbGlkIDFweCAjY2NjO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTsgfVxuXG4uZnMtbGFiZWwge1xuICBjb2xvcjogIzY3NTFhMjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LWZhbWlseTogUm9ib3RvOyB9XG5cbi8qKlxuICogIERvIG5vdCByZW1vdmUgdGhlIGNvbW1lbnQgYmVsb3cuIEl0J3MgdGhlIG1hcmtlcnMgdXNlZCBieSBndWxwLWluamVjdCB0byBpbmplY3RcbiAqICBhbGwgeW91ciBzYXNzIGZpbGVzIGF1dG9tYXRpY2FsbHlcbiAqL1xuLmYtYm94IHtcbiAgd2lkdGg6IDMxN3B4O1xuICBoZWlnaHQ6IDQzMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICBib3JkZXI6IDFweCBzb2xpZCAjRDlEOUQ5O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9XG5cbi5mLWJ1dHRvbiB7XG4gIGhlaWdodDogNDhweDtcbiAgcGFkZGluZzogMCAzMnB4O1xuICBmb250LXNpemU6IDFlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogI2ZhZmFmYTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY3M2FiNztcbiAgYm9yZGVyOiAzcHggc29saWQgIzY3M2FiNztcbiAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsgfVxuICAuZi1idXR0b246aG92ZXIsIC5mLWJ1dHRvbjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzdFNURBRjsgfVxuICAuZi1idXR0b246YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGY2N2NhOyB9XG5cbmYtYnV0dG9uLmYtYmxvY2sgYnV0dG9uIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmYtYnV0dG9uW2Rpc2FibGVkXSB7XG4gIGNvbG9yOiByZ2JhKDIzMCwgMjMwLCAyMzAsIDAuNzkpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE1MSwgMTQwLCAxNjYsIDAuNjcpO1xuICBib3JkZXI6IDNweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxuXG4uZi1idXR0b24tbGlnaHQge1xuICBjb2xvcjogIzk5OTtcbiAgYm9yZGVyOiAzcHggc29saWQgI0Q5RDlEOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLmYtYnV0dG9uLWxpZ2h0OmhvdmVyLCAuZi1idXR0b24tbGlnaHQ6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7IH1cblxuLmYtaHRtbC1jYXJvdXNlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uZi1odG1sLWNhcm91c2VsX19pdGVtIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcyBlYXNlLWluLW91dDsgfVxuICAuZi1odG1sLWNhcm91c2VsX19pdGVtICo6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uZi1odG1sLWNhcm91c2VsX19pdGVtLS1oaWRkZW4ge1xuICBvcGFjaXR5OiAwOyB9XG5cbi5tZC1vdXRsaW5lZC1pbnB1dC1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTsgfVxuICAubWQtb3V0bGluZWQtaW5wdXQtY29udGFpbmVyIC5tZC1lcnJvcnMtc3BhY2VyIHtcbiAgICBtaW4taGVpZ2h0OiBhdXRvOyB9XG4gIC5tZC1vdXRsaW5lZC1pbnB1dC1jb250YWluZXIgLm1kLWlucHV0W2Rpc2FibGVkXSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMTgsIDExOCwgMTE4LCAwLjMpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHQtZGFyayhyZ2JhKDIzOSwgMjM5LCAyMzksIDAuMyksIHJnYmEoNTksIDU5LCA1OSwgMC4zKSk7IH1cbiAgLm1kLW91dGxpbmVkLWlucHV0LWNvbnRhaW5lciAubWQtaW5wdXQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM2NzNhYjc7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBtaW4taGVpZ2h0OiA1NnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmc6IDAgMTZweCAwIDE2cHg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIC5tZC1vdXRsaW5lZC1pbnB1dC1jb250YWluZXIgLm1kLWlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogIzlDQTNBRjtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLm1kLW91dGxpbmVkLWlucHV0LWNvbnRhaW5lci5tZC1pbnB1dC1pbnZhbGlkIC5tZC1pbnB1dCB7XG4gICAgYm9yZGVyOiAycHggc29saWQgI2RkMmMwMCAhaW1wb3J0YW50OyB9XG4gIC5tZC1vdXRsaW5lZC1pbnB1dC1jb250YWluZXIubWQtaW5wdXQtaW52YWxpZCBsYWJlbCB7XG4gICAgY29sb3I6ICNkZDJjMDAgIWltcG9ydGFudDsgfVxuICAubWQtb3V0bGluZWQtaW5wdXQtY29udGFpbmVyLm1kLWlucHV0LXZhbGlkIGxhYmVsIHtcbiAgICBjb2xvcjogIzY3M2FiNzsgfVxuICAubWQtb3V0bGluZWQtaW5wdXQtY29udGFpbmVyLm1kLWlucHV0LWZvY3VzZWQgLm1kLWlucHV0IHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjNjczYWI3ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAxNnB4IDAgMTZweDsgfVxuICAubWQtb3V0bGluZWQtaW5wdXQtY29udGFpbmVyLm1kLWlucHV0LWZvY3VzZWQgbGFiZWwge1xuICAgIGNvbG9yOiAjNjczYWI3ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCA0cHggMCA0cHg7IH1cbiAgLm1kLW91dGxpbmVkLWlucHV0LWNvbnRhaW5lciAubGFiZWwtZGVzYXRpdmFkYSB7XG4gICAgY29sb3I6ICNhYWFhYWEgIWltcG9ydGFudDsgfVxuICAubWQtb3V0bGluZWQtaW5wdXQtY29udGFpbmVyOm5vdCgubWQtaW5wdXQtaW52YWxpZCkubWQtaW5wdXQtaGFzLXZhbHVlIGxhYmVsIHtcbiAgICBjb2xvcjogIzY3M2FiNzsgfVxuICAubWQtb3V0bGluZWQtaW5wdXQtY29udGFpbmVyIGxhYmVsIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgIHRvcDogLTEzcHg7XG4gICAgbGVmdDogMTJweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAgNHB4IDAgNHB4ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICM2NzNhYjc7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdW5zZXQgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG5cbi5mLXNlcGFyYXRvciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMjc1cHg7XG4gIGhlaWdodDogNHB4OyB9XG4gIC5mLXNlcGFyYXRvciAuZi1zZXBhcmF0b3ItYmx1ZS0xIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDE2NHB4O1xuICAgIGhlaWdodDogMHB4O1xuICAgIGJvcmRlci10b3A6IDRweCBzb2xpZCAjNTlDNUQ1OyB9XG4gIC5mLXNlcGFyYXRvciAuZi1zZXBhcmF0b3ItYmx1ZS0yIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDEwMHB4O1xuICAgIHdpZHRoOiAxMjhweDtcbiAgICBoZWlnaHQ6IDBweDtcbiAgICBib3JkZXItdG9wOiA0cHggc29saWQgIzM5OEJDMjsgfVxuICAuZi1zZXBhcmF0b3IgLmYtc2VwYXJhdG9yLXB1cnBsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAyMDBweDtcbiAgICB3aWR0aDogMTIycHg7XG4gICAgaGVpZ2h0OiAwcHg7XG4gICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkICM2QTQ4OUI7IH1cblxuLmxvZ2luLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGM0Y0RjY7XG4gIHBhZGRpbmc6IDI0cHg7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgLmxvZ2luLWNvbnRhaW5lciB7XG4gICAgICBwYWRkaW5nOiAxNnB4OyB9IH1cbiAgLmxvZ2luLWNvbnRhaW5lciAubG9naW4tY29udGFpbmVyLXBhbmVscyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgICBtYXgtd2lkdGg6IDExMDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiA3NTBweDtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLmxvZ2luLWNvbnRhaW5lciAubG9naW4tbGVmdC1jb250YWluZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM2NzNhYjc7XG4gICAgcGFkZGluZzogNjRweDtcbiAgICBjb2xvcjogI0ZGRkZGRjsgfVxuICAgIC5sb2dpbi1jb250YWluZXIgLmxvZ2luLWxlZnQtY29udGFpbmVyIC5sb2dvLWNvbnRhaW5lciB7XG4gICAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogOTk7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAubG9naW4tY29udGFpbmVyIC5sb2dpbi1sZWZ0LWNvbnRhaW5lciAubG9nby1jb250YWluZXIgLmxvZ2luLWxvZ28ge1xuICAgICAgICB3aWR0aDogMTUwcHg7IH1cbiAgICAubG9naW4tY29udGFpbmVyIC5sb2dpbi1sZWZ0LWNvbnRhaW5lciAuZHluYW1pYy10ZXh0LWNvbnRhaW5lciB7XG4gICAgICBtYXJnaW4tdG9wOiA0MnB4O1xuICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgICAgIC5sb2dpbi1jb250YWluZXIgLmxvZ2luLWxlZnQtY29udGFpbmVyIC5keW5hbWljLXRleHQtY29udGFpbmVyICoge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gICAgICAubG9naW4tY29udGFpbmVyIC5sb2dpbi1sZWZ0LWNvbnRhaW5lciAuZHluYW1pYy10ZXh0LWNvbnRhaW5lciBpbWcge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDIzMHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMjVweCAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjRkZGRkZGO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgb2JqZWN0LXBvc2l0aW9uOiB0b3A7IH1cbiAgICAgIC5sb2dpbi1jb250YWluZXIgLmxvZ2luLWxlZnQtY29udGFpbmVyIC5keW5hbWljLXRleHQtY29udGFpbmVyIGgxIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmb250LXNpemU6IDQwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OyB9XG4gICAgICAubG9naW4tY29udGFpbmVyIC5sb2dpbi1sZWZ0LWNvbnRhaW5lciAuZHluYW1pYy10ZXh0LWNvbnRhaW5lciBoMiB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsgfVxuICAgICAgLmxvZ2luLWNvbnRhaW5lciAubG9naW4tbGVmdC1jb250YWluZXIgLmR5bmFtaWMtdGV4dC1jb250YWluZXIgcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgY29sb3I6ICNFNUU3RUI7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgICAgIG1heC13aWR0aDogMzYwcHg7IH1cbiAgLmxvZ2luLWNvbnRhaW5lciAubG9naW4tcmlnaHQtY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiA2NHB4OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAubG9naW4tY29udGFpbmVyIC5sb2dpbi1yaWdodC1jb250YWluZXIge1xuICAgICAgICBwYWRkaW5nOiAzMnB4OyB9IH1cbiAgICAubG9naW4tY29udGFpbmVyIC5sb2dpbi1yaWdodC1jb250YWluZXIgLmxvZ28tY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogOTk7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAubG9naW4tY29udGFpbmVyIC5sb2dpbi1yaWdodC1jb250YWluZXIgLmxvZ28tY29udGFpbmVyIC5sb2dpbi1sb2dvIHtcbiAgICAgICAgd2lkdGg6IDE1MHB4OyB9XG4gICAgLmxvZ2luLWNvbnRhaW5lciAubG9naW4tcmlnaHQtY29udGFpbmVyIC5sb2dpbi1mb3JtLWNvbnRhaW5lciB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMzgwcHg7IH1cbiAgICAgIC5sb2dpbi1jb250YWluZXIgLmxvZ2luLXJpZ2h0LWNvbnRhaW5lciAubG9naW4tZm9ybS1jb250YWluZXIgaDIge1xuICAgICAgICBtYXJnaW46IDAgMCA4cHggMDtcbiAgICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBjb2xvcjogIzExMTgyNzsgfVxuICAgICAgLmxvZ2luLWNvbnRhaW5lciAubG9naW4tcmlnaHQtY29udGFpbmVyIC5sb2dpbi1mb3JtLWNvbnRhaW5lciBwIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMjBweCAwO1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGNvbG9yOiAjMTExODI3OyB9XG4gICAgICAubG9naW4tY29udGFpbmVyIC5sb2dpbi1yaWdodC1jb250YWluZXIgLmxvZ2luLWZvcm0tY29udGFpbmVyIC5sb2dpbi1mYWlsZWQtZW1haWwge1xuICAgICAgICBjb2xvcjogI2IzMjYxZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDsgfVxuICAgICAgICAubG9naW4tY29udGFpbmVyIC5sb2dpbi1yaWdodC1jb250YWluZXIgLmxvZ2luLWZvcm0tY29udGFpbmVyIC5sb2dpbi1mYWlsZWQtZW1haWwgbWQtaWNvbiB7XG4gICAgICAgICAgY29sb3I6ICNiMzI2MWU7XG4gICAgICAgICAgZm9udC1zaXplOiAyMXB4OyB9XG4gICAgICAubG9naW4tY29udGFpbmVyIC5sb2dpbi1yaWdodC1jb250YWluZXIgLmxvZ2luLWZvcm0tY29udGFpbmVyIC5sb2dpbi1zZXJ2ZXItZXJyb3Ige1xuICAgICAgICBjb2xvcjogI2IzMjYxZTtcbiAgICAgICAgcGFkZGluZzogOHB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7IH1cbiAgICAgICAgLmxvZ2luLWNvbnRhaW5lciAubG9naW4tcmlnaHQtY29udGFpbmVyIC5sb2dpbi1mb3JtLWNvbnRhaW5lciAubG9naW4tc2VydmVyLWVycm9yIG1kLWljb24ge1xuICAgICAgICAgIGNvbG9yOiAjYjMyNjFlO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjFweDsgfVxuICAgICAgLmxvZ2luLWNvbnRhaW5lciAubG9naW4tcmlnaHQtY29udGFpbmVyIC5sb2dpbi1mb3JtLWNvbnRhaW5lciAubG9naW4taW5wdXRzLWNvbnRhaW5lciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgICAubG9naW4tY29udGFpbmVyIC5sb2dpbi1yaWdodC1jb250YWluZXIgLmxvZ2luLWZvcm0tY29udGFpbmVyIC5sb2dpbi1pbnB1dHMtY29udGFpbmVyIG1kLWlucHV0LWNvbnRhaW5lciBsYWJlbDpub3QoLm1kLWNvbnRhaW5lci1pZ25vcmUpLm1kLXJlcXVpcmVkOjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogbm9uZTsgfVxuICAgICAgLmxvZ2luLWNvbnRhaW5lciAubG9naW4tcmlnaHQtY29udGFpbmVyIC5sb2dpbi1mb3JtLWNvbnRhaW5lciBtZC1wcm9ncmVzcy1jaXJjdWxhci5jdXN0b20tcHJvZ3Jlc3Mge1xuICAgICAgICBtYXJnaW46IDAgMTZweCAxNnB4IDE2cHg7IH1cbiAgICAgICAgLmxvZ2luLWNvbnRhaW5lciAubG9naW4tcmlnaHQtY29udGFpbmVyIC5sb2dpbi1mb3JtLWNvbnRhaW5lciBtZC1wcm9ncmVzcy1jaXJjdWxhci5jdXN0b20tcHJvZ3Jlc3MgcGF0aCB7XG4gICAgICAgICAgc3Ryb2tlOiAjNjczYWI3OyB9XG4gICAgICAubG9naW4tY29udGFpbmVyIC5sb2dpbi1yaWdodC1jb250YWluZXIgLmxvZ2luLWZvcm0tY29udGFpbmVyIC5sb2dpbi1lbXB0eS1lbWFpbC1tZXNzYWdlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgICAgIGxlZnQ6IDEycHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRUUyRTI7XG4gICAgICAgIGNvbG9yOiAjREMyNjI2O1xuICAgICAgICBwYWRkaW5nOiA2cHggMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNGQ0E1QTU7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjA1KTsgfVxuICAgICAgICAubG9naW4tY29udGFpbmVyIC5sb2dpbi1yaWdodC1jb250YWluZXIgLmxvZ2luLWZvcm0tY29udGFpbmVyIC5sb2dpbi1lbXB0eS1lbWFpbC1tZXNzYWdlIG1kLWljb24ge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICBtaW4td2lkdGg6IDE2cHg7XG4gICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgIGNvbG9yOiAjREMyNjI2O1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogNnB4OyB9XG4gICAgICAubG9naW4tY29udGFpbmVyIC5sb2dpbi1yaWdodC1jb250YWluZXIgLmxvZ2luLWZvcm0tY29udGFpbmVyIC5sb2dpbi1jb250aW51ZS1idXR0b24ge1xuICAgICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwOyB9XG4gICAgICAubG9naW4tY29udGFpbmVyIC5sb2dpbi1yaWdodC1jb250YWluZXIgLmxvZ2luLWZvcm0tY29udGFpbmVyIC5sb2dpbi1lbWFpbC13cmFwcGVyLWNvbnRhaW5lciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgICAgLmxvZ2luLWNvbnRhaW5lciAubG9naW4tcmlnaHQtY29udGFpbmVyIC5sb2dpbi1mb3JtLWNvbnRhaW5lciAubG9naW4tZW1haWwtd3JhcHBlci1jb250YWluZXIgbWQtaW5wdXQtY29udGFpbmVyIHtcbiAgICAgICAgICBtYXJnaW46IDEwcHggMDsgfVxuICAgICAgLmxvZ2luLWNvbnRhaW5lciAubG9naW4tcmlnaHQtY29udGFpbmVyIC5sb2dpbi1mb3JtLWNvbnRhaW5lciAubG9naW4tYXJyb3ctYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IC00NHB4O1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB6LWluZGV4OiAxMDsgfVxuICAgICAgLmxvZ2luLWNvbnRhaW5lciAubG9naW4tcmlnaHQtY29udGFpbmVyIC5sb2dpbi1mb3JtLWNvbnRhaW5lciAubG9naW4tZW1haWwtaW5wdXQtcmVhZG9ubHkge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAgIC5sb2dpbi1jb250YWluZXIgLmxvZ2luLXJpZ2h0LWNvbnRhaW5lciAubG9naW4tZm9ybS1jb250YWluZXIgLmxvZ2luLWVtYWlsLWlucHV0LXJlYWRvbmx5IG1kLWlucHV0LWNvbnRhaW5lciBsYWJlbDpub3QoLm1kLWNvbnRhaW5lci1pZ25vcmUpLm1kLXJlcXVpcmVkOjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogbm9uZTsgfVxuICAgICAgLmxvZ2luLWNvbnRhaW5lciAubG9naW4tcmlnaHQtY29udGFpbmVyIC5sb2dpbi1mb3JtLWNvbnRhaW5lciBbZGlzYWJsZWRdIG1kLWlucHV0LWNvbnRhaW5lciAubWQtaW5wdXQge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDExOCwgMTE4LCAxMTgsIDAuMyk7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0LWRhcmsocmdiYSgyMzksIDIzOSwgMjM5LCAwLjMpLCByZ2JhKDU5LCA1OSwgNTksIDAuMykpOyB9XG4gICAgICAubG9naW4tY29udGFpbmVyIC5sb2dpbi1yaWdodC1jb250YWluZXIgLmxvZ2luLWZvcm0tY29udGFpbmVyIG1kLWlucHV0LWNvbnRhaW5lciAubWQtaW5wdXRbZGlzYWJsZWRdIHtcbiAgICAgICAgY29sb3I6ICNhYWFhYWE7IH1cbiAgICAgIC5sb2dpbi1jb250YWluZXIgLmxvZ2luLXJpZ2h0LWNvbnRhaW5lciAubG9naW4tZm9ybS1jb250YWluZXIgZi1pbnB1dCBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiAjYWFhYWFhOyB9XG4gICAgICAubG9naW4tY29udGFpbmVyIC5sb2dpbi1yaWdodC1jb250YWluZXIgLmxvZ2luLWZvcm0tY29udGFpbmVyIC5sb2dpbi1wYXNzd29yZC1pbnB1dCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgICAgLmxvZ2luLWNvbnRhaW5lciAubG9naW4tcmlnaHQtY29udGFpbmVyIC5sb2dpbi1mb3JtLWNvbnRhaW5lciAubG9naW4tcGFzc3dvcmQtaW5wdXQgZi1pbnB1dCB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgICAgLmxvZ2luLWNvbnRhaW5lciAubG9naW4tcmlnaHQtY29udGFpbmVyIC5sb2dpbi1mb3JtLWNvbnRhaW5lciAubG9naW4tcGFzc3dvcmQtaW5wdXQgbWQtaW5wdXQtY29udGFpbmVyIGxhYmVsOm5vdCgubWQtY29udGFpbmVyLWlnbm9yZSkubWQtcmVxdWlyZWQ6OmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiBub25lOyB9XG4gICAgICAubG9naW4tY29udGFpbmVyIC5sb2dpbi1yaWdodC1jb250YWluZXIgLmxvZ2luLWZvcm0tY29udGFpbmVyIC5sb2dpbi1lbnRlci1idXR0b24ge1xuICAgICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogIzY3M2FiNzsgfVxuICAgIC5sb2dpbi1jb250YWluZXIgLmxvZ2luLXJpZ2h0LWNvbnRhaW5lciAubG9naW4tZm9yZ290LXBhc3N3b3JkIHtcbiAgICAgIG1hcmdpbi10b3A6IDMycHg7IH1cbiAgICAgIC5sb2dpbi1jb250YWluZXIgLmxvZ2luLXJpZ2h0LWNvbnRhaW5lciAubG9naW4tZm9yZ290LXBhc3N3b3JkIGEge1xuICAgICAgICBjb2xvcjogIzY3M2FiNztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuYS5tZC1idXR0b24ubWQtZGVmYXVsdC10aGVtZS5tZC1wcmltYXJ5Lm1kLXJhaXNlZCwgYS5tZC1idXR0b24ubWQtcHJpbWFyeS5tZC1yYWlzZWQsIGEubWQtYnV0dG9uLm1kLWRlZmF1bHQtdGhlbWUubWQtcHJpbWFyeS5tZC1mYWIsIGEubWQtYnV0dG9uLm1kLXByaW1hcnkubWQtZmFiLCAubWQtYnV0dG9uLm1kLWRlZmF1bHQtdGhlbWUubWQtcHJpbWFyeS5tZC1yYWlzZWQsIC5tZC1idXR0b24ubWQtcHJpbWFyeS5tZC1yYWlzZWQsIC5tZC1idXR0b24ubWQtZGVmYXVsdC10aGVtZS5tZC1wcmltYXJ5Lm1kLWZhYiwgLm1kLWJ1dHRvbi5tZC1wcmltYXJ5Lm1kLWZhYiB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODcpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjczMTQwICFpbXBvcnRhbnQ7IH1cblxuLnJlc2V0LWVycm9ycyB1bCBsaSB7XG4gIGNvbG9yOiAjZjk3NTc1OyB9XG4iLCIvKipcbiAqICBEbyBub3QgcmVtb3ZlIHRoZSBjb21tZW50cyBiZWxvdy4gSXQncyB0aGUgbWFya2VycyB1c2VkIGJ5IHdpcmVkZXAgdG8gaW5qZWN0XG4gKiAgc2FzcyBkZXBlbmRlbmNpZXMgd2hlbiBkZWZpbmVkIGluIHRoZSBib3dlci5qc29uIG9mIHlvdXIgZGVwZW5kZW5jaWVzXG4gKi9cbi8vIGJvd2VyOnNjc3Ncbi8vIGVuZGJvd2VyXG5cbkBpbXBvcnQgJy4uL3N0eWxlL3N0eWxlcy5zY3NzJztcblxuLyoqXG4gKiAgRG8gbm90IHJlbW92ZSB0aGUgY29tbWVudCBiZWxvdy4gSXQncyB0aGUgbWFya2VycyB1c2VkIGJ5IGd1bHAtaW5qZWN0IHRvIGluamVjdFxuICogIGFsbCB5b3VyIHNhc3MgZmlsZXMgYXV0b21hdGljYWxseVxuICovXG4vLyBpbmplY3RvclxuQGltcG9ydCBcImNvbXBvbmVudHMvRkJveC9GYm94LnNjc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL0ZCdXR0b24vRkJ1dHRvbi5zY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9GSHRtbENhcm91c2VsL0ZIdG1sQ2Fyb3VzZWwuc2Nzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvRklucHV0L0ZJbnB1dC5zY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9GU2VwYXJhdG9yL0ZTZXBhcmF0b3Iuc2Nzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvRkxvZ2luL0ZMb2dpbi5zY3NzXCI7XG4vLyBlbmRpbmplY3RvclxuXG5cbmEubWQtYnV0dG9uLm1kLWRlZmF1bHQtdGhlbWUubWQtcHJpbWFyeS5tZC1yYWlzZWQsIGEubWQtYnV0dG9uLm1kLXByaW1hcnkubWQtcmFpc2VkLCBhLm1kLWJ1dHRvbi5tZC1kZWZhdWx0LXRoZW1lLm1kLXByaW1hcnkubWQtZmFiLCBhLm1kLWJ1dHRvbi5tZC1wcmltYXJ5Lm1kLWZhYiwgLm1kLWJ1dHRvbi5tZC1kZWZhdWx0LXRoZW1lLm1kLXByaW1hcnkubWQtcmFpc2VkLCAubWQtYnV0dG9uLm1kLXByaW1hcnkubWQtcmFpc2VkLCAubWQtYnV0dG9uLm1kLWRlZmF1bHQtdGhlbWUubWQtcHJpbWFyeS5tZC1mYWIsIC5tZC1idXR0b24ubWQtcHJpbWFyeS5tZC1mYWIge1xuICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuODcpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItY29sb3ItYmcgIWltcG9ydGFudDtcbn1cblxuLnJlc2V0LWVycm9ycyB7XG4gICAgICB1bCBsaSB7XG4gICAgICAgICAgICBjb2xvcjogI2Y5NzU3NTtcbiAgICAgIH1cbn1cbiIsIiRwcmltYXJ5LWNvbG9yOiByZ2IoMTAzLDU4LDE4Myk7XG5cbmJvZHkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYSAhaW1wb3J0YW50O1xufVxuaHRtbCBib2R5LCBpbnB1dCwgYnV0dG9uLCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCB0ZXh0YXJlYSB7XG4gICAgICBmb250LWZhbWlseTogUm9ib3RvLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYgIWltcG9ydGFudDtcbn1cblxuLnN1Y2Nlc3MtbWVzc2FnZS1zZW50IHAge1xuICAgICAgY29sb3I6ICM5OTk7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uc3VjY2Vzcy1tZXNzYWdlLXNlbnQgaDMge1xuICAgICAgY29sb3I6ICM3Nzc7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8vIEltcG9ydCBjb21wb25lbnRzXG5AaW1wb3J0ICdsb2dpbi1wYWdlLXN0eWxlL2xvZ2luLXBhZ2Utc3R5bGUuc2Nzcyc7XG5AaW1wb3J0ICcuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib3VyYm9uLnNjc3MnO1xuQGltcG9ydCAnLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tYXRlcmlhbC1jb2xvcnMvZGlzdC9jb2xvcnMuc2Nzcyc7XG5cbi8vIEltcG9ydCBtb2R1bGVzXG5AaW1wb3J0ICdtb2R1bGVzL19hbGwuc2Nzcyc7XG5cbi8vIEltcG9ydCBNYXRlcmlhbCBEZXNpZ24gTGl0ZVxuQGltcG9ydCAnLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tYXRlcmlhbC1kZXNpZ24tbGl0ZS9zcmMvbWF0ZXJpYWwtZGVzaWduLWxpdGUuc2Nzcyc7XG5cbi8vIEltcG9ydCBwYXJ0aWFsc1xuQGltcG9ydCAncGFydGlhbHMvX2J1dHRvbnMuc2Nzcyc7XG5AaW1wb3J0ICdwYXJ0aWFscy9fY2FyZC5zY3NzJztcbkBpbXBvcnQgJ3BhcnRpYWxzL19kYXRldGltZXBpY2tlci5zY3NzJztcbkBpbXBvcnQgJ3BhcnRpYWxzL19oZWFkZXIuc2Nzcyc7XG5AaW1wb3J0ICdwYXJ0aWFscy9fbGF5b3V0LnNjc3MnO1xuQGltcG9ydCAncGFydGlhbHMvX21lbnUuc2Nzcyc7XG5AaW1wb3J0ICdwYXJ0aWFscy9fc2Vla2VyLnNjc3MnO1xuQGltcG9ydCAncGFydGlhbHMvX3NpZGVuYXYuc2Nzcyc7XG5AaW1wb3J0ICdwYXJ0aWFscy9fdGFibGUuc2Nzcyc7XG5AaW1wb3J0ICdwYXJ0aWFscy9fdHlwb2dyYXBoeS5zY3NzJztcbkBpbXBvcnQgJ3BhcnRpYWxzL19yZXF1ZXN0X3Jlc2V0LnNjc3MnO1xuQGltcG9ydCAncGFydGlhbHMvX3Jlc2V0LnNjc3MnO1xuQGltcG9ydCAncGFydGlhbHMvX3NldHBhc3N3b3JkLnNjc3MnO1xuXG4vLyBJbXBvcnQgbGF5b3V0IGZyYWdtZW50c1xuQGltcG9ydCAnbGF5b3V0L19iYXNlLnNjc3MnO1xuQGltcG9ydCAnbGF5b3V0L19oaWdoY2hhcnRfZmlsbF9wYXJlbnRfaXNzdWVfaGFjay5zY3NzJztcbi8vQGltcG9ydCAnbGF5b3V0L19pZV9tYXRlcmlhbF9oYWNrLnNjc3MnO1xuXG4uZnMtaW5wdXQge1xuICAgICAgbWFyZ2luOiA0cHggMCAyMHB4IDA7XG4gICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgY29sb3I6ICM0NDQ7XG4gICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICBib3JkZXI6IHNvbGlkIDFweCAjY2NjO1xuICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uZnMtbGFiZWwge1xuICAgICAgY29sb3I6ICM2NzUxYTI7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBmb250LWZhbWlseTogUm9ib3RvO1xufVxuIiwiLm5vdGlmaWNhdGlvbi1mc2Vuc2Uge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgcGFkZGluZzogNHB4IDE2cHg7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgbWluLXdpZHRoOiA0NTBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCA0cHggNHB4O1xuICAgICAgdG9wOiAwO1xuICAgICAgYm94LXNoYWRvdzogMCAwIDNweCBncmV5O1xuXG4gICAgICBhbmltYXRpb24tbmFtZTogbm90aWZpY2F0aW9uLWVudGVyO1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gICAgICBhbmltYXRpb24tZHVyYXRpb246IDAuM3M7XG4gICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxO1xufVxuLm5vdGlmaWNhdGlvbi1sZWF2ZSB7XG4gICAgICB0b3A6IC00MHB4O1xuICAgICAgYW5pbWF0aW9uLW5hbWU6IG5vdGlmaWNhdGlvbi1sZWF2ZTtcbiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjNzO1xuICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTtcbn1cbi5ub3RpZmljYXRpb24tZGVmYXVsdCB7IGJhY2tncm91bmQtY29sb3I6IGdyZXk7IH1cbi5ub3RpZmljYXRpb24tcHJpbWFyeSB7IGJhY2tncm91bmQtY29sb3I6IGdyZXk7IH1cbi5ub3RpZmljYXRpb24tc3VjY2VzcyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNThjZTU4O1xuICAgICAgY29sb3I6IHdoaXRlO1xufVxuLm5vdGlmaWNhdGlvbi13YXJuaW5nIHsgYmFja2dyb3VuZC1jb2xvcjogZ3JleTsgfVxuLm5vdGlmaWNhdGlvbi1lcnJvciB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGM2NDY0O1xufVxuXG5Aa2V5ZnJhbWVzIG5vdGlmaWNhdGlvbi1lbnRlciB7XG4gICAgICBmcm9tIHsgdG9wOiAtMzBweDsgfVxuICAgICAgdG8geyB0b3A6IDA7IH1cbn1cbkBrZXlmcmFtZXMgbm90aWZpY2F0aW9uLWxlYXZlIHtcbiAgICAgIGZyb20geyB0b3A6IDBweDsgfVxuICAgICAgdG8geyB0b3A6IC00MHB4OyB9XG59XG4iLCIvLyAgYWRkIG1hdGVyaWFsIGljb25zIGxvY2FsIGZvbnRcbi8vIGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vaWNvbj9mYW1pbHk9TWF0ZXJpYWwrSWNvbnNcbi8qIGZhbGxiYWNrICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdNYXRlcmlhbCBJY29ucyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvTWF0ZXJpYWwtSWNvbnMud29mZjIpIGZvcm1hdCgnd29mZjInKTtcbn1cblxuLm1hdGVyaWFsLWljb25zIHtcbiAgZm9udC1mYW1pbHk6ICdNYXRlcmlhbCBJY29ucyc7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG4gIGRpcmVjdGlvbjogbHRyO1xuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6ICdsaWdhJztcbiAgLW1vei1mb250LWZlYXR1cmUtc2V0dGluZ3M6ICdsaWdhJztcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuLyogUnVsZXMgZm9yIHNpemluZyB0aGUgaWNvbi4gKi9cbi5tYXRlcmlhbC1pY29ucy5tZC0xOCB7IGZvbnQtc2l6ZTogMThweDsgfVxuLm1hdGVyaWFsLWljb25zLm1kLTI0IHsgZm9udC1zaXplOiAyNHB4OyB9XG4ubWF0ZXJpYWwtaWNvbnMubWQtMzYgeyBmb250LXNpemU6IDM2cHg7IH1cbi5tYXRlcmlhbC1pY29ucy5tZC00OCB7IGZvbnQtc2l6ZTogNDhweDsgfVxuXG4vKiBSdWxlcyBmb3IgdXNpbmcgaWNvbnMgYXMgYmxhY2sgb24gYSBsaWdodCBiYWNrZ3JvdW5kLiAqL1xuLm1hdGVyaWFsLWljb25zLm1kLWRhcmsgeyBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTsgfVxuLm1hdGVyaWFsLWljb25zLm1kLWRhcmsubWQtaW5hY3RpdmUgeyBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTsgfVxuXG4vKiBSdWxlcyBmb3IgdXNpbmcgaWNvbnMgYXMgd2hpdGUgb24gYSBkYXJrIGJhY2tncm91bmQuICovXG4ubWF0ZXJpYWwtaWNvbnMubWQtbGlnaHQgeyBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsgfVxuLm1hdGVyaWFsLWljb25zLm1kLWxpZ2h0Lm1kLWluYWN0aXZlIHsgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTsgfVxuXG4iLCIvKiBjeXJpbGxpYy1leHQgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUxpZ2h0LnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUY7XG59XG4vKiBjeXJpbGxpYyAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogMzAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tTGlnaHQudHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjtcbn1cbi8qIGdyZWVrLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogMzAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tTGlnaHQudHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMUYwMC0xRkZGO1xufVxuLyogZ3JlZWsgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUxpZ2h0LnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDNGRjtcbn1cbi8qIHZpZXRuYW1lc2UgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUxpZ2h0LnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjtcbn1cbi8qIGxhdGluLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogMzAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tTGlnaHQudHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7XG59XG4vKiBsYXRpbiAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogMzAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tTGlnaHQudHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1O1xufVxuLyogY3lyaWxsaWMtZXh0ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1SZWd1bGFyLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUY7XG59XG4vKiBjeXJpbGxpYyAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tUmVndWxhci50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgdW5pY29kZS1yYW5nZTogVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2O1xufVxuLyogZ3JlZWstZXh0ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1SZWd1bGFyLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzFGMDAtMUZGRjtcbn1cbi8qIGdyZWVrICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1SZWd1bGFyLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDNGRjtcbn1cbi8qIHZpZXRuYW1lc2UgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLVJlZ3VsYXIudHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzFFQTAtMUVGOSwgVSsyMEFCO1xufVxuLyogbGF0aW4tZXh0ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1SZWd1bGFyLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDI0RiwgVSsxRTAwLTFFRkYsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGO1xufVxuLyogbGF0aW4gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLVJlZ3VsYXIudHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1O1xufVxuLyogY3lyaWxsaWMtZXh0ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1NZWRpdW0udHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzIwQjQsIFUrMkRFMC0yREZGLCBVK0E2NDAtQTY5Rjtcbn1cbi8qIGN5cmlsbGljICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1NZWRpdW0udHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjtcbn1cbi8qIGdyZWVrLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tTWVkaXVtLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzFGMDAtMUZGRjtcbn1cbi8qIGdyZWVrICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1NZWRpdW0udHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGO1xufVxuLyogdmlldG5hbWVzZSAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tTWVkaXVtLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjtcbn1cbi8qIGxhdGluLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tTWVkaXVtLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDI0RiwgVSsxRTAwLTFFRkYsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGO1xufVxuLyogbGF0aW4gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLU1lZGl1bS50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMjAwMC0yMDZGLCBVKzIwNzQsIFUrMjBBQywgVSsyMjEyLCBVKzIyMTU7XG59XG4vKiBjeXJpbGxpYy1leHQgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUJvbGQudHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzIwQjQsIFUrMkRFMC0yREZGLCBVK0E2NDAtQTY5Rjtcbn1cbi8qIGN5cmlsbGljICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1Cb2xkLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzA0MDAtMDQ1RiwgVSswNDkwLTA0OTEsIFUrMDRCMC0wNEIxLCBVKzIxMTY7XG59XG4vKiBncmVlay1leHQgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUJvbGQudHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMUYwMC0xRkZGO1xufVxuLyogZ3JlZWsgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUJvbGQudHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGO1xufVxuLyogdmlldG5hbWVzZSAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tQm9sZC50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMTAyLTAxMDMsIFUrMUVBMC0xRUY5LCBVKzIwQUI7XG59XG4vKiBsYXRpbi1leHQgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUJvbGQudHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7XG59XG4vKiBsYXRpbiAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tQm9sZC50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMjAwMC0yMDZGLCBVKzIwNzQsIFUrMjBBQywgVSsyMjEyLCBVKzIyMTU7XG59XG4vKiBjeXJpbGxpYy1leHQgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUl0YWxpYy50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGO1xufVxuLyogY3lyaWxsaWMgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUl0YWxpYy50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgdW5pY29kZS1yYW5nZTogVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2O1xufVxuLyogZ3JlZWstZXh0ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1JdGFsaWMudHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMUYwMC0xRkZGO1xufVxuLyogZ3JlZWsgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUl0YWxpYy50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMzcwLTAzRkY7XG59XG4vKiB2aWV0bmFtZXNlICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1JdGFsaWMudHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzFFQTAtMUVGOSwgVSsyMEFCO1xufVxuLyogbGF0aW4tZXh0ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1JdGFsaWMudHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7XG59XG4vKiBsYXRpbiAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tSXRhbGljLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSsyMDAwLTIwNkYsIFUrMjA3NCwgVSsyMEFDLCBVKzIyMTIsIFUrMjIxNTtcbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qIE1hdGVyaWFsIERlc2lnbiBMaXRlICovXG5cbi8vIFZhcmlhYmxlcyBhbmQgbWl4aW5zXG5AaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbi8vIFJlc2V0cyBhbmQgZGVwZW5kZW5jaWVzXG5AaW1wb3J0IFwicmVzZXRzL3Jlc2V0c1wiO1xuQGltcG9ydCBcInR5cG9ncmFwaHkvdHlwb2dyYXBoeVwiO1xuXG4vLyBDb21wb25lbnRzXG5AaW1wb3J0IFwicGFsZXR0ZS9wYWxldHRlXCI7XG5AaW1wb3J0IFwicmlwcGxlL3JpcHBsZVwiO1xuQGltcG9ydCBcImFuaW1hdGlvbi9hbmltYXRpb25cIjtcbkBpbXBvcnQgXCJiYWRnZS9iYWRnZVwiO1xuQGltcG9ydCBcImJ1dHRvbi9idXR0b25cIjtcbkBpbXBvcnQgXCJjYXJkL2NhcmRcIjtcbkBpbXBvcnQgXCJjaGVja2JveC9jaGVja2JveFwiO1xuQGltcG9ydCBcImRhdGEtdGFibGUvZGF0YS10YWJsZVwiO1xuQGltcG9ydCBcImZvb3Rlci9tZWdhX2Zvb3RlclwiO1xuQGltcG9ydCBcImZvb3Rlci9taW5pX2Zvb3RlclwiO1xuQGltcG9ydCBcImljb24tdG9nZ2xlL2ljb24tdG9nZ2xlXCI7XG5AaW1wb3J0IFwibWVudS9tZW51XCI7XG5AaW1wb3J0IFwicHJvZ3Jlc3MvcHJvZ3Jlc3NcIjtcbkBpbXBvcnQgXCJsYXlvdXQvbGF5b3V0XCI7XG5AaW1wb3J0IFwicmFkaW8vcmFkaW9cIjtcbkBpbXBvcnQgXCJzbGlkZXIvc2xpZGVyXCI7XG5AaW1wb3J0IFwic3Bpbm5lci9zcGlubmVyXCI7XG5AaW1wb3J0IFwic3dpdGNoL3N3aXRjaFwiO1xuQGltcG9ydCBcInRhYnMvdGFic1wiO1xuQGltcG9ydCBcInRleHRmaWVsZC90ZXh0ZmllbGRcIjtcbkBpbXBvcnQgXCJ0b29sdGlwL3Rvb2x0aXBcIjtcbkBpbXBvcnQgXCJzaGFkb3cvc2hhZG93XCI7XG5AaW1wb3J0IFwiZ3JpZC9ncmlkXCI7XG4iLCIvKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG5cblxuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4kcHJlZmVycmVkX2ZvbnQ6ICdSb2JvdG8nLCAnSGVsdmV0aWNhJywgJ0FyaWFsJywgc2Fucy1zZXJpZiAhZGVmYXVsdDtcbiRwZXJmb3JtYW5jZV9mb250OiAnSGVsdmV0aWNhJywgJ0FyaWFsJywgc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG5cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuXG5AaW1wb3J0IFwiY29sb3ItZGVmaW5pdGlvbnNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnNcIjtcblxuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4kaW1hZ2VfcGF0aDogJy9pbWFnZXMnICFkZWZhdWx0O1xuXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuXG4vLyBEZWZpbmUgd2hldGhlciBpbmRpdmlkdWFsIGNvbG9yIHBhbGxldCBpdGVtcyBzaG91bGQgaGF2ZSBjbGFzc2VzIGNyZWF0ZWQuXG4vLyBTZXR0aW5nIHRoaXMgdG8gdHJ1ZSB3aWxsIHJlbW92ZSBpbmRpdmlkdWFsIGNvbG9yIGNsYXNzZXMgZm9yIGVhY2ggY29sb3IgaW4gdGhlIHBhbGxldHMuXG4vLyBUbyBpbXByb3ZlIG92ZXJhbGwgcGVyZm9ybWFuY2UgKGFzc3VtaW5nIHRoZXkgYXJlbid0IHVzZWQpIGJ5OlxuLy8gKiBTYXZpbmcgc2VydmVyIGJhbmR3aWR0aCBzZW5kaW5nIHRoZSBleHRyYSBjbGFzc2VzXG4vLyAqIFNhdmUgY2xpZW50IGNvbXB1dGF0aW9uIGFnYWluc3QgdGhlIGNsYXNzZXNcbi8vIGl0IGlzIFJFQ09NTUVOREVEIHlvdSBzZXQgdGhpcyB0byB0cnVlLlxuJHRyaW0tY29sb3ItY2xhc3NlczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFVzZSBjb2xvciBwcmltYXJpbHkgZm9yIGVtcGhhc2lzLiBDaG9vc2UgY29sb3JzIHRoYXQgZml0IHdpdGhcbi8vIHlvdXIgYnJhbmQgYW5kIHByb3ZpZGUgZ29vZCBjb250cmFzdCBiZXR3ZWVuIHZpc3VhbCBjb21wb25lbnRzLlxuJGNvbG9yLXByaW1hcnk6ICRwYWxldHRlLWluZGlnby01MDAgIWRlZmF1bHQ7XG4kY29sb3ItcHJpbWFyeS1kYXJrOiAkcGFsZXR0ZS1pbmRpZ28tNzAwICFkZWZhdWx0O1xuJGNvbG9yLWFjY2VudDogJHBhbGV0dGUtcGluay1BMjAwICFkZWZhdWx0O1xuXG4vLyBPdXIgcHJpbWFyeSBpcyBkYXJrLCBzbyB1c2UgJGNvbG9yLWRhcmstY29udHJhc3QgZm9yIG92ZXJsYWlkIHRleHQuXG4kY29sb3ItcHJpbWFyeS1jb250cmFzdDogJGNvbG9yLWRhcmstY29udHJhc3QgIWRlZmF1bHQ7XG4vLyBPdXIgYWNjZW50IGlzIGRhcmssIHNvIHVzZSAkY29sb3ItZGFyay1jb250cmFzdCBmb3Igb3ZlcmxhaWQgdGV4dC5cbiRjb2xvci1hY2NlbnQtY29udHJhc3Q6ICRjb2xvci1kYXJrLWNvbnRyYXN0ICFkZWZhdWx0O1xuXG4vLyBSZXBsYWNlIGFsbCBjb2xvcnMgd2l0aCBwbGFjZWhvbGRlcnMgaWYgd2UncmUgZ2VuZXJhdGluZyBhIHRlbXBsYXRlLlxuQGlmICRzdHlsZWd1aWRlLWdlbmVyYXRlLXRlbXBsYXRlID09IHRydWUge1xuICAkY29sb3ItcHJpbWFyeTogJyRjb2xvci1wcmltYXJ5JztcbiAgJGNvbG9yLXByaW1hcnktZGFyazogJyRjb2xvci1wcmltYXJ5LWRhcmsnO1xuICAkY29sb3ItYWNjZW50OiAnJGNvbG9yLWFjY2VudCc7XG4gICRjb2xvci1wcmltYXJ5LWNvbnRyYXN0OiAnJGNvbG9yLXByaW1hcnktY29udHJhc3QnO1xuICAkY29sb3ItYWNjZW50LWNvbnRyYXN0OiAnJGNvbG9yLWFjY2VudC1jb250cmFzdCc7XG59XG5cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cblxuLy8gV2UgdXNlIHRoZSBmb2xsb3dpbmcgZGVmYXVsdCBjb2xvciBzdHlsZXM6IHRleHQtY29sb3ItcHJpbWFyeSBhbmRcbi8vIHRleHQtY29sb3Itc2Vjb25kYXJ5LiBGb3IgbGlnaHQgdGhlbWVzLCB1c2UgdGV4dC1jb2xvci1wcmltYXJ5LWludmVyc2Vcbi8vIGFuZCB0ZXh0LWNvbG9yLXNlY29uZGFyeS1pbnZlcnNlLlxuXG4kdGV4dC1jb2xvci1wcmltYXJ5OiB1bnF1b3RlKFwicmdiYSgjeyRjb2xvci1ibGFja30sIDAuODcpXCIpICFkZWZhdWx0O1xuJHRleHQtbGluay1jb2xvcjogdW5xdW90ZShcInJnYigjeyRjb2xvci1hY2NlbnR9KVwiKSAhZGVmYXVsdDtcblxuLy8gRGVmaW5lIHdoZXRoZXIgdG8gdGFyZ2V0IGVsZW1lbnRzIGRpcmVjdGx5IGZvciB0eXBvZ3JhcGhpYyBlbmhhbmNlbWVudHMuXG4vLyBUdXJuaW5nIHRoaXMgb2ZmIG1lYW5zIHlvdSBuZWVkIHRvIHVzZSBtZGwtKiBjbGFzc2VzIG1vcmUgb2Z0ZW4uXG4vLyBPdGhlciBjb21wb25lbnRzIG1heSBhbHNvIGZhaWwgdG8gYWRoZXJlIHRvIE1EIHdpdGhvdXQgdGhlc2UgcnVsZXMuXG4vLyBJdCBpcyBzdHJvbmdseSByZWNvbW1lbmRlZCB5b3UgbGVhdmUgdGhpcyBhcyB0cnVlLlxuXG4kdGFyZ2V0LWVsZW1lbnRzLWRpcmVjdGx5OiB0cnVlICFkZWZhdWx0O1xuXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG5cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cblxuLy8gRGVmYXVsdCBidXR0b24gY29sb3JzLlxuJGJ1dHRvbi1wcmltYXJ5LWNvbG9yOiB1bnF1b3RlKFwicmdiYSgjeyRwYWxldHRlLWdyZXktNTAwfSwgMC4yMClcIikgIWRlZmF1bHQ7XG4kYnV0dG9uLXNlY29uZGFyeS1jb2xvcjogdW5xdW90ZShcInJnYigjeyRjb2xvci1ibGFja30pXCIpICFkZWZhdWx0O1xuJGJ1dHRvbi1ob3Zlci1jb2xvcjogJGJ1dHRvbi1wcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJGJ1dHRvbi1hY3RpdmUtY29sb3I6IHVucXVvdGUoXCJyZ2JhKCN7JHBhbGV0dGUtZ3JleS01MDB9LCAwLjQwKVwiKSAhZGVmYXVsdDtcbiRidXR0b24tZm9jdXMtY29sb3I6IHVucXVvdGUoXCJyZ2JhKCN7JGNvbG9yLWJsYWNrfSwgMC4xMilcIikgIWRlZmF1bHQ7XG5cbi8vIENvbG9yZWQgYnV0dG9uIGNvbG9ycy5cbiRidXR0b24tcHJpbWFyeS1jb2xvci1hbHQ6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItcHJpbWFyeX0pXCIpICFkZWZhdWx0O1xuJGJ1dHRvbi1zZWNvbmRhcnktY29sb3ItYWx0OiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLXByaW1hcnktY29udHJhc3R9KVwiKSAhZGVmYXVsdDtcbiRidXR0b24taG92ZXItY29sb3ItYWx0OiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLXByaW1hcnl9KVwiKSAhZGVmYXVsdDtcbiRidXR0b24tYWN0aXZlLWNvbG9yLWFsdDogdW5xdW90ZShcInJnYigjeyRjb2xvci1wcmltYXJ5fSlcIikgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvY3VzLWNvbG9yLWFsdDogJGJ1dHRvbi1mb2N1cy1jb2xvciAhZGVmYXVsdDtcblxuLy8gUmlwcGxlIGNvbG9yIGZvciBjb2xvcmVkIHJhaXNlZCBidXR0b25zLlxuJGJ1dHRvbi1yaXBwbGUtY29sb3ItYWx0OiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLXByaW1hcnktY29udHJhc3R9KVwiKSAhZGVmYXVsdDtcblxuLy8gRGlzYWJsZWQgYnV0dG9uIGNvbG9ycy5cbiRidXR0b24tcHJpbWFyeS1jb2xvci1kaXNhYmxlZDogdW5xdW90ZShcInJnYmEoI3skY29sb3ItYmxhY2t9LCAwLjEyKVwiKSAhZGVmYXVsdDtcbiRidXR0b24tc2Vjb25kYXJ5LWNvbG9yLWRpc2FibGVkOiB1bnF1b3RlKFwicmdiYSgjeyRjb2xvci1ibGFja30sIDAuMjYpXCIpICFkZWZhdWx0O1xuXG4vLyBGQUIgY29sb3JzIGFuZCBzaXplcy5cbiRidXR0b24tZmFiLWNvbG9yLWFsdDogdW5xdW90ZShcInJnYigjeyRjb2xvci1hY2NlbnR9KVwiKSAhZGVmYXVsdDtcbiRidXR0b24tZmFiLWhvdmVyLWNvbG9yLWFsdDogdW5xdW90ZShcInJnYigjeyRjb2xvci1hY2NlbnR9KVwiKSAhZGVmYXVsdDtcbiRidXR0b24tZmFiLWFjdGl2ZS1jb2xvci1hbHQ6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItYWNjZW50fSlcIikgIWRlZmF1bHQ7XG4kYnV0dG9uLWZhYi10ZXh0LWNvbG9yLWFsdDogdW5xdW90ZShcInJnYigjeyRjb2xvci1hY2NlbnQtY29udHJhc3R9KVwiKSAhZGVmYXVsdDtcbiRidXR0b24tZmFiLXJpcHBsZS1jb2xvci1hbHQ6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItYWNjZW50LWNvbnRyYXN0fSlcIikgIWRlZmF1bHQ7XG5cbi8vIEljb24gYnV0dG9uIGNvbG9ycyBhbmQgc2l6ZXMuXG4kYnV0dG9uLWljb24tY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmV5LTcwMH0pXCIpICFkZWZhdWx0O1xuJGJ1dHRvbi1pY29uLWZvY3VzLWNvbG9yOiAkYnV0dG9uLWZvY3VzLWNvbG9yICFkZWZhdWx0O1xuXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cblxuJGljb24tdG9nZ2xlLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JleS03MDB9KVwiKSAhZGVmYXVsdDtcbiRpY29uLXRvZ2dsZS1mb2N1cy1jb2xvcjogJGJ1dHRvbi1mb2N1cy1jb2xvciAhZGVmYXVsdDtcbiRpY29uLXRvZ2dsZS1jaGVja2VkLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLXByaW1hcnl9KVwiKSAhZGVmYXVsdDtcbiRpY29uLXRvZ2dsZS1jaGVja2VkLWZvY3VzLWNvbG9yOiB1bnF1b3RlKFwicmdiYSgjeyRjb2xvci1wcmltYXJ5fSwgMC4yNilcIikgIWRlZmF1bHQ7XG4kaWNvbi10b2dnbGUtZGlzYWJsZWQtY29sb3I6IHVucXVvdGUoXCJyZ2JhKCN7JGNvbG9yLWJsYWNrfSwgMC4yNilcIikgIWRlZmF1bHQ7XG5cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cblxuJHJhZGlvLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLXByaW1hcnl9KVwiKSAhZGVmYXVsdDtcbiRyYWRpby1vZmYtY29sb3I6IHVucXVvdGUoXCJyZ2JhKCN7JGNvbG9yLWJsYWNrfSwgMC41NClcIikgIWRlZmF1bHQ7XG4kcmFkaW8tZGlzYWJsZWQtY29sb3I6IHVucXVvdGUoXCJyZ2JhKCN7JGNvbG9yLWJsYWNrfSwgMC4yNilcIikgIWRlZmF1bHQ7XG5cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cblxuJHJpcHBsZS1iZy1jb2xvcjogdW5xdW90ZShcInJnYigjeyRjb2xvci1saWdodC1jb250cmFzdH0pXCIpICFkZWZhdWx0O1xuXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cblxuJGxheW91dC1uYXYtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmV5LTMwMH0pXCIpICFkZWZhdWx0O1xuXG4vLyBEcmF3ZXJcbiRsYXlvdXQtZHJhd2VyLWJnLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JleS01MH0pXCIpICFkZWZhdWx0O1xuJGxheW91dC1kcmF3ZXItYm9yZGVyLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JleS0zMDB9KVwiKSAhZGVmYXVsdDtcbiRsYXlvdXQtdGV4dC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktODAwfSlcIikgIWRlZmF1bHQ7XG4kbGF5b3V0LWRyYXdlci1uYXZpZ2F0aW9uLWNvbG9yOiAjNzU3NTc1ICFkZWZhdWx0O1xuJGxheW91dC1kcmF3ZXItbmF2aWdhdGlvbi1saW5rLWFjdGl2ZS1iYWNrZ3JvdW5kOiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLWxpZ2h0LWNvbnRyYXN0fSlcIikgIWRlZmF1bHQ7XG4kbGF5b3V0LWRyYXdlci1uYXZpZ2F0aW9uLWxpbmstYWN0aXZlLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JleS0zMDB9KVwiKSAhZGVmYXVsdDtcblxuLy8gSGVhZGVyXG4kbGF5b3V0LWhlYWRlci1iZy1jb2xvcjogdW5xdW90ZShcInJnYigjeyRjb2xvci1wcmltYXJ5fSlcIikgIWRlZmF1bHQ7XG4kbGF5b3V0LWhlYWRlci10ZXh0LWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLXByaW1hcnktY29udHJhc3R9KVwiKSAhZGVmYXVsdDtcbiRsYXlvdXQtaGVhZGVyLW5hdi1ob3Zlci1jb2xvcjogdW5xdW90ZShcInJnYmEoI3skcGFsZXR0ZS1ncmV5LTcwMH0sIDAuNilcIikgIWRlZmF1bHQ7XG4kbGF5b3V0LWhlYWRlci10YWItdGV4dC1jb2xvcjogdW5xdW90ZShcInJnYmEoI3skY29sb3ItcHJpbWFyeS1jb250cmFzdH0sIDAuNilcIikgIWRlZmF1bHQ7XG5cbi8vIFRhYnNcbiRsYXlvdXQtaGVhZGVyLXRhYi1oaWdobGlnaHQ6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItYWNjZW50fSlcIikgIWRlZmF1bHQ7XG5cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuXG4kdGFiLWhpZ2hsaWdodC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRjb2xvci1wcmltYXJ5fSlcIikgIWRlZmF1bHQ7XG4kdGFiLXRleHQtY29sb3I6IHVucXVvdGUoXCJyZ2JhKCN7JGNvbG9yLWJsYWNrfSwgMC41NClcIikgIWRlZmF1bHQ7XG4kdGFiLWFjdGl2ZS10ZXh0LWNvbG9yOiB1bnF1b3RlKFwicmdiYSgjeyRjb2xvci1ibGFja30sIDAuODcpXCIpICFkZWZhdWx0O1xuJHRhYi1ib3JkZXItY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmV5LTMwMH0pXCIpICFkZWZhdWx0O1xuXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG5cbiRjaGVja2JveC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRjb2xvci1wcmltYXJ5fSlcIikgIWRlZmF1bHQ7XG4kY2hlY2tib3gtb2ZmLWNvbG9yOiB1bnF1b3RlKFwicmdiYSgjeyRjb2xvci1ibGFja30sIDAuNTQpXCIpICFkZWZhdWx0O1xuJGNoZWNrYm94LWRpc2FibGVkLWNvbG9yOiB1bnF1b3RlKFwicmdiYSgjeyRjb2xvci1ibGFja30sIDAuMjYpXCIpICFkZWZhdWx0O1xuJGNoZWNrYm94LWZvY3VzLWNvbG9yOiB1bnF1b3RlKFwicmdiYSgjeyRjb2xvci1wcmltYXJ5fSwgMC4yNilcIikgIWRlZmF1bHQ7XG4kY2hlY2tib3gtaW1hZ2UtcGF0aDogJGltYWdlX3BhdGg7XG5cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG5cbiRzd2l0Y2gtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItcHJpbWFyeX0pXCIpICFkZWZhdWx0O1xuJHN3aXRjaC1mYWRlZC1jb2xvcjogdW5xdW90ZShcInJnYmEoI3skY29sb3ItcHJpbWFyeX0sIDAuMjYpXCIpICFkZWZhdWx0O1xuJHN3aXRjaC10aHVtYi1jb2xvcjogJHN3aXRjaC1jb2xvciAhZGVmYXVsdDtcbiRzd2l0Y2gtdHJhY2stY29sb3I6IHVucXVvdGUoXCJyZ2JhKCN7JGNvbG9yLXByaW1hcnl9LCAwLjUpXCIpICFkZWZhdWx0O1xuXG4kc3dpdGNoLW9mZi10aHVtYi1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktNTB9KVwiKSAhZGVmYXVsdDtcbiRzd2l0Y2gtb2ZmLXRyYWNrLWNvbG9yOiB1bnF1b3RlKFwicmdiYSgjeyRjb2xvci1ibGFja30sIDAuMjYpXCIpICFkZWZhdWx0O1xuJHN3aXRjaC1kaXNhYmxlZC10aHVtYi1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktNDAwfSlcIikgIWRlZmF1bHQ7XG4kc3dpdGNoLWRpc2FibGVkLXRyYWNrLWNvbG9yOiB1bnF1b3RlKFwicmdiYSgjeyRjb2xvci1ibGFja30sIDAuMTIpXCIpICFkZWZhdWx0O1xuXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG5cbiRzcGlubmVyLWNvbG9yLTE6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ibHVlLTQwMH0pXCIpICFkZWZhdWx0O1xuJHNwaW5uZXItY29sb3ItMjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC01MDB9KVwiKSAhZGVmYXVsdDtcbiRzcGlubmVyLWNvbG9yLTM6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctNjAwfSlcIikgIWRlZmF1bHQ7XG4kc3Bpbm5lci1jb2xvci00OiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JlZW4tNTAwfSlcIikgIWRlZmF1bHQ7XG5cbiRzcGlubmVyLXNpbmdsZS1jb2xvcjogdW5xdW90ZShcInJnYigjeyRjb2xvci1wcmltYXJ5fSlcIikgIWRlZmF1bHQ7XG5cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG5cbiRpbnB1dC10ZXh0LWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGlucHV0LXRleHQtbGFiZWwtY29sb3I6IHVucXVvdGUoXCJyZ2JhKCN7JGNvbG9yLWJsYWNrfSwgMC4yNilcIikgIWRlZmF1bHQ7XG4kaW5wdXQtdGV4dC1ib3R0b20tYm9yZGVyLWNvbG9yOiB1bnF1b3RlKFwicmdiYSgjeyRjb2xvci1ibGFja30sIDAuMTIpXCIpICFkZWZhdWx0O1xuJGlucHV0LXRleHQtaGlnaGxpZ2h0LWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLXByaW1hcnl9KVwiKSAhZGVmYXVsdDtcbiRpbnB1dC10ZXh0LWRpc2FibGVkLWNvbG9yOiAkaW5wdXQtdGV4dC1ib3R0b20tYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJGlucHV0LXRleHQtZGlzYWJsZWQtdGV4dC1jb2xvcjogJGlucHV0LXRleHQtbGFiZWwtY29sb3IgIWRlZmF1bHQ7XG4kaW5wdXQtdGV4dC1lcnJvci1jb2xvcjogdW5xdW90ZShcInJnYigyMjIsIDUwLCAzOClcIikgIWRlZmF1bHQ7XG5cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cblxuJGNhcmQtYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRjb2xvci13aGl0ZX0pXCIpICFkZWZhdWx0O1xuJGNhcmQtdGV4dC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRjb2xvci1ibGFja30pXCIpICFkZWZhdWx0O1xuJGNhcmQtaW1hZ2UtcGxhY2Vob2xkZXItY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItYWNjZW50fSlcIikgIWRlZmF1bHQ7XG4kY2FyZC1zdXBwb3J0aW5nLXRleHQtdGV4dC1jb2xvcjogdW5xdW90ZShcInJnYmEoI3skY29sb3ItYmxhY2t9LCAwLjU0KVwiKSAhZGVmYXVsdDtcbiRjYXJkLWJvcmRlci1jb2xvcjogcmdiYSgwLDAsMCwwLjEpICFkZWZhdWx0O1xuJGNhcmQtc3VidGl0bGUtY29sb3I6IHVucXVvdGUoXCJyZ2JhKCN7JGNvbG9yLWJsYWNrfSwgMC41NClcIikgIWRlZmF1bHQ7XG5cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuXG4kcmFuZ2UtYmctY29sb3I6IHVucXVvdGUoXCJyZ2JhKCN7JGNvbG9yLWJsYWNrfSwgMC4yNilcIikgIWRlZmF1bHQ7XG4kcmFuZ2UtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItcHJpbWFyeX0pXCIpICFkZWZhdWx0O1xuJHJhbmdlLWZhZGVkLWNvbG9yOiB1bnF1b3RlKFwicmdiYSgjeyRjb2xvci1wcmltYXJ5fSwgMC4yNilcIikgIWRlZmF1bHQ7XG4kcmFuZ2UtYmctZm9jdXMtY29sb3I6IHVucXVvdGUoXCJyZ2JhKCN7JGNvbG9yLWJsYWNrfSwgMC4xMilcIikgIWRlZmF1bHQ7XG5cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuJHByb2dyZXNzLW1haW4tY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItcHJpbWFyeX0pXCIpICFkZWZhdWx0O1xuJHByb2dyZXNzLXNlY29uZGFyeS1jb2xvcjogdW5xdW90ZShcInJnYmEoI3skY29sb3ItcHJpbWFyeS1jb250cmFzdH0sIDAuNylcIikgIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtZmFsbGJhY2stYnVmZmVyLWNvbG9yOiB1bnF1b3RlKFwicmdiYSgjeyRjb2xvci1wcmltYXJ5LWNvbnRyYXN0fSwgMC45KVwiKSAhZGVmYXVsdDtcbiRwcm9ncmVzcy1pbWFnZS1wYXRoOiAkaW1hZ2VfcGF0aDtcblxuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG5cbiRsaXN0LWNvbnRhaW5lci1pdGVtLWJvcmRlci1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktMzAwfSlcIikgIWRlZmF1bHQ7XG4kbGlzdC1jb250YWluZXItdmlldy1iYWNrZ3JvdW5kOiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLXdoaXRlfSlcIikgIWRlZmF1bHQ7XG5cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuXG4vLyBEZWZhdWx0IEl0ZW0gQ29sb3JzXG4kZGVmYXVsdC1pdGVtLXRleHQtY29sb3I6IHVucXVvdGUoXCJyZ2JhKCN7JGNvbG9yLWJsYWNrfSwgMC44NylcIikgIWRlZmF1bHQ7XG4kZGVmYXVsdC1pdGVtLW91dGxpbmUtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmV5LTQwMH0pXCIpICFkZWZhdWx0O1xuJGRlZmF1bHQtaXRlbS1ob3Zlci1iZy1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktMjAwfSlcIikgIWRlZmF1bHQ7XG4kZGVmYXVsdC1pdGVtLWZvY3VzLWJnLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JleS0yMDB9KVwiKSAhZGVmYXVsdDtcbiRkZWZhdWx0LWl0ZW0tYWN0aXZlLWJnLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JleS0zMDB9KVwiKSAhZGVmYXVsdDtcblxuLy8gRGlzYWJsZWQgQnV0dG9uIENvbG9yc1xuJGRpc2FibGVkLWl0ZW0tdGV4dC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktNDAwfSlcIikgIWRlZmF1bHQ7XG5cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuXG4kZGVmYXVsdC1kcm9wZG93bi1iZy1jb2xvcjogdW5xdW90ZShcInJnYigjeyRjb2xvci13aGl0ZX0pXCIpICFkZWZhdWx0O1xuXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuXG4kdG9vbHRpcC10ZXh0LWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLXdoaXRlfSlcIikgIWRlZmF1bHQ7XG4kdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiYSgjeyRwYWxldHRlLWdyZXktNzAwfSwgMC45KVwiKSAhZGVmYXVsdDtcblxuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG5cbiRmb290ZXItYmctY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmV5LTgwMH0pXCIpICFkZWZhdWx0O1xuJGZvb3Rlci1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktNTAwfSlcIikgIWRlZmF1bHQ7XG4kZm9vdGVyLWhlYWRpbmctY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmV5LTMwMH0pXCIpICFkZWZhdWx0O1xuJGZvb3Rlci1idXR0b24tZmlsbC1jb2xvcjogJGZvb3Rlci1jb2xvciAhZGVmYXVsdDtcbiRmb290ZXItdW5kZXJsaW5lLWNvbG9yOiAkZm9vdGVyLWNvbG9yICFkZWZhdWx0O1xuXG5cbi8qIFRFWFRGSUVMRCAqL1xuXG4kaW5wdXQtdGV4dC1mb250LXNpemU6IDE2cHg7XG4kaW5wdXQtdGV4dC13aWR0aDogMTAwJTtcbiRpbnB1dC10ZXh0LXBhZGRpbmc6IDRweDtcbiRpbnB1dC10ZXh0LXJpcHBsZS1zaXplOiAzMnB4O1xuJGlucHV0LXRleHQtdmVydGljYWwtc3BhY2luZzogMjBweDtcblxuJGlucHV0LXRleHQtYnV0dG9uLXNpemU6IDMycHg7XG4kaW5wdXQtdGV4dC1mbG9hdGluZy1sYWJlbC1mb250c2l6ZTogMTJweDtcbiRpbnB1dC10ZXh0LWV4cGFuZGFibGUtaWNvbi10b3A6IDE2cHg7XG5cblxuLyogU1dJVENIICovXG5cbiRzd2l0Y2gtbGFiZWwtZm9udC1zaXplOiAxNnB4O1xuJHN3aXRjaC1sYWJlbC1oZWlnaHQ6IDI0cHg7XG4kc3dpdGNoLXRyYWNrLWhlaWdodDogMTRweDtcbiRzd2l0Y2gtdHJhY2stbGVuZ3RoOiAzNnB4O1xuJHN3aXRjaC10aHVtYi1zaXplOiAyMHB4O1xuJHN3aXRjaC10cmFjay10b3A6ICgkc3dpdGNoLWxhYmVsLWhlaWdodCAtICRzd2l0Y2gtdHJhY2staGVpZ2h0KSAvIDI7XG4kc3dpdGNoLXRodW1iLXRvcDogKCRzd2l0Y2gtbGFiZWwtaGVpZ2h0IC0gJHN3aXRjaC10aHVtYi1zaXplKSAvIDI7XG4kc3dpdGNoLXJpcHBsZS1zaXplOiAkc3dpdGNoLWxhYmVsLWhlaWdodCAqIDI7XG4kc3dpdGNoLWhlbHBlci1zaXplOiA4cHg7XG5cbi8qIFNQSU5ORVIgKi9cblxuJHNwaW5uZXItc2l6ZTogMjhweCAhZGVmYXVsdDtcbiRzcGlubmVyLXN0cm9rZS13aWR0aDogM3B4ICFkZWZhdWx0O1xuXG4vLyBBbW91bnQgb2YgY2lyY2xlIHRoZSBhcmMgdGFrZXMgdXAuXG4kc3Bpbm5lci1hcmMtc2l6ZTogMjcwZGVnO1xuLy8gVGltZSBpdCB0YWtlcyB0byBleHBhbmQgYW5kIGNvbnRyYWN0IGFyYy5cbiRzcGlubmVyLWFyYy10aW1lOiAxMzMzbXM7XG4vLyBIb3cgbXVjaCB0aGUgc3RhcnQgbG9jYXRpb24gb2YgdGhlIGFyYyBzaG91bGQgcm90YXRlIGVhY2ggdGltZS5cbiRzcGlubmVyLWFyYy1zdGFydC1yb3Q6IDIxNmRlZztcblxuJHNwaW5uZXItZHVyYXRpb246IDM2MCAqICRzcGlubmVyLWFyYy10aW1lIC8gKFxuICAgIHN0cmlwLXVuaXRzKCRzcGlubmVyLWFyYy1zdGFydC1yb3QgKyAoMzYwZGVnIC0gJHNwaW5uZXItYXJjLXNpemUpKSk7XG5cblxuLyogUkFESU8gKi9cblxuJHJhZGlvLWxhYmVsLWZvbnQtc2l6ZTogMTZweDtcbiRyYWRpby1sYWJlbC1oZWlnaHQ6IDI0cHg7XG4kcmFkaW8tYnV0dG9uLXNpemU6IDE2cHg7XG4kcmFkaW8taW5uZXItbWFyZ2luOiAkcmFkaW8tYnV0dG9uLXNpemUgLyA0O1xuJHJhZGlvLXBhZGRpbmc6IDhweDtcbiRyYWRpby10b3Atb2Zmc2V0OiAoJHJhZGlvLWxhYmVsLWhlaWdodCAtICRyYWRpby1idXR0b24tc2l6ZSkgLyAyO1xuJHJhZGlvLXJpcHBsZS1zaXplOiA0MnB4O1xuXG5cbi8qIE1FTlUgKi9cblxuJG1lbnUtZXhwYW5kLWR1cmF0aW9uOiAwLjNzO1xuJG1lbnUtZmFkZS1kdXJhdGlvbjogMC4ycztcblxuLyogTElTVCAqL1xuXG4kbGlzdC1jb250YWluZXItaGVpZ2h0OiA1MDBweDtcbiRsaXN0LWNvbnRhaW5lci13aWR0aDogNDAwcHg7XG4kbGlzdC1jb250YWluZXItaXRlbS1oZWlnaHQ6IDcwcHg7XG5cbi8qIExBWU9VVCAqL1xuXG4kbGF5b3V0LW5hdi1saW5rLWZvbnQtc2l6ZTogMTNweDtcblxuJGxheW91dC1kcmF3ZXItbmFycm93OiAyNDBweDtcbiRsYXlvdXQtZHJhd2VyLXdpZGU6IDQ1NnB4O1xuJGxheW91dC1kcmF3ZXItd2lkdGg6ICRsYXlvdXQtZHJhd2VyLW5hcnJvdztcblxuJGxheW91dC1oZWFkZXItaWNvbi1zaXplOiAzMnB4O1xuJGxheW91dC1zY3JlZW4tc2l6ZS10aHJlc2hvbGQ6IDEwMjRweDtcbiRsYXlvdXQtaGVhZGVyLWljb24tbWFyZ2luOiAyNHB4O1xuJGxheW91dC1kcmF3ZXItYnV0dG9uLW1vYmlsZS1zaXplOiAzMnB4O1xuJGxheW91dC1kcmF3ZXItYnV0dG9uLWRlc2t0b3Atc2l6ZTogNDhweDtcblxuJGxheW91dC1oZWFkZXItbW9iaWxlLXJvdy1oZWlnaHQ6IDU2cHg7XG4kbGF5b3V0LW1vYmlsZS1oZWFkZXItaGVpZ2h0OiAkbGF5b3V0LWhlYWRlci1tb2JpbGUtcm93LWhlaWdodDtcbiRsYXlvdXQtaGVhZGVyLWRlc2t0b3Atcm93LWhlaWdodDogNjRweDtcbiRsYXlvdXQtZGVza3RvcC1oZWFkZXItaGVpZ2h0OiAkbGF5b3V0LWhlYWRlci1kZXNrdG9wLXJvdy1oZWlnaHQ7XG5cbiRsYXlvdXQtaGVhZGVyLWRlc2t0b3AtYmFzZWxpbmU6IDgwcHg7XG4kbGF5b3V0LWhlYWRlci1tb2JpbGUtYmFzZWxpbmU6IDcycHg7XG4kbGF5b3V0LWhlYWRlci1tb2JpbGUtaW5kZW50OiAxNnB4O1xuJGxheW91dC1oZWFkZXItZGVza3RvcC1pbmRlbnQ6IDQwcHg7XG5cbiRsYXlvdXQtdGFiLWZvbnQtc2l6ZTogMTRweDtcbiRsYXlvdXQtdGFiLWJhci1oZWlnaHQ6IDQ4cHg7XG4kbGF5b3V0LXRhYi1tb2JpbGUtcGFkZGluZzogMTJweDtcbiRsYXlvdXQtdGFiLWRlc2t0b3AtcGFkZGluZzogMjRweDtcbiRsYXlvdXQtdGFiLWhpZ2hsaWdodC10aGlja25lc3M6IDJweDtcblxuXG4vKiBJQ09OIFRPR0dMRSAqL1xuXG4kaWNvbi10b2dnbGUtc2l6ZTogMzJweCAhZGVmYXVsdDtcbiRpY29uLXRvZ2dsZS1mb250LXNpemU6IDI0cHggIWRlZmF1bHQ7XG4kaWNvbi10b2dnbGUtcmlwcGxlLXNpemU6IDM2cHggIWRlZmF1bHQ7XG5cbi8qIEZPT1RFUiAqL1xuXG4vKm1lZ2EtZm9vdGVyKi9cbiRmb290ZXItbWluLXBhZGRpbmc6IDE2cHggIWRlZmF1bHQ7XG4kZm9vdGVyLXBhZGRpbmctc2lkZXM6IDQwcHggIWRlZmF1bHQ7XG4kZm9vdGVyLWhlYWRpbmctZm9udC1zaXplOiAxNHB4ICFkZWZhdWx0O1xuJGZvb3Rlci1oZWFkaW5nLWxpbmUtaGVpZ2h0OiAoMS43ICogJGZvb3Rlci1oZWFkaW5nLWZvbnQtc2l6ZSkgIWRlZmF1bHQ7XG4kZm9vdGVyLWJ0bi1zaXplOiAzNnB4ICAhZGVmYXVsdDtcblxuLyptaW5pLWZvb3RlciovXG4kcGFkZGluZzogMTZweCAhZGVmYXVsdDtcbiRmb290ZXItaGVhZGluZy1mb250LXNpemU6IDI0cHggIWRlZmF1bHQ7XG4kZm9vdGVyLWhlYWRpbmctbGluZS1oZWlnaHQ6ICgxLjUgKiAkZm9vdGVyLWhlYWRpbmctZm9udC1zaXplKSAhZGVmYXVsdDtcbiRmb290ZXItYnRuLXNpemU6IDM2cHggIWRlZmF1bHQ7XG5cbi8qIENIRUNLQk9YICovXG5cbiRjaGVja2JveC1sYWJlbC1mb250LXNpemU6IDE2cHg7XG4kY2hlY2tib3gtbGFiZWwtaGVpZ2h0OiAyNHB4O1xuJGNoZWNrYm94LWJ1dHRvbi1zaXplOiAxNnB4O1xuJGNoZWNrYm94LWlubmVyLW1hcmdpbjogMnB4O1xuJGNoZWNrYm94LXBhZGRpbmc6IDhweDtcbiRjaGVja2JveC10b3Atb2Zmc2V0OlxuKCRjaGVja2JveC1sYWJlbC1oZWlnaHQgLSAkY2hlY2tib3gtYnV0dG9uLXNpemUgLSAkY2hlY2tib3gtaW5uZXItbWFyZ2luKSAvIDI7XG4kY2hlY2tib3gtcmlwcGxlLXNpemU6ICRjaGVja2JveC1sYWJlbC1oZWlnaHQgKiAxLjU7XG5cbi8qIENBUkQgKi9cblxuLyogQ2FyZCBkaW1lbnNpb25zICovXG4kY2FyZC13aWR0aDogMzMwcHggIWRlZmF1bHQ7XG4kY2FyZC1oZWlnaHQ6IDIwMHB4ICFkZWZhdWx0O1xuJGNhcmQtZm9udC1zaXplOiAxNnB4ICFkZWZhdWx0O1xuJGNhcmQtdGl0bGUtZm9udC1zaXplOiAyNHB4ICFkZWZhdWx0O1xuJGNhcmQtc3VidGl0bGUtZm9udC1zaXplOiAxNHB4ICFkZWZhdWx0O1xuJGNhcmQtaG9yaXpvbnRhbC1wYWRkaW5nOiAxNnB4ICFkZWZhdWx0O1xuJGNhcmQtdmVydGljYWwtcGFkZGluZzogMTZweCAhZGVmYXVsdDtcblxuJGNhcmQtdGl0bGUtcGVyc3BlY3RpdmUtb3JpZ2luLXg6IDE2NXB4ICFkZWZhdWx0O1xuJGNhcmQtdGl0bGUtcGVyc3BlY3RpdmUtb3JpZ2luLXk6IDU2cHggIWRlZmF1bHQ7XG5cbiRjYXJkLXRpdGxlLXRyYW5zZm9ybS1vcmlnaW4teDogMTY1cHggIWRlZmF1bHQ7XG4kY2FyZC10aXRsZS10cmFuc2Zvcm0tb3JpZ2luLXk6IDU2cHggIWRlZmF1bHQ7XG5cbiRjYXJkLXRpdGxlLXRleHQtdHJhbnNmb3JtLW9yaWdpbi14OiAxNDlweCAhZGVmYXVsdDtcbiRjYXJkLXRpdGxlLXRleHQtdHJhbnNmb3JtLW9yaWdpbi15OiA0OHB4ICFkZWZhdWx0O1xuXG4kY2FyZC1zdXBwb3J0aW5nLXRleHQtZm9udC1zaXplOiAxM3B4ICFkZWZhdWx0O1xuJGNhcmQtc3VwcG9ydGluZy10ZXh0LWxpbmUtaGVpZ2h0OiAxOHB4ICFkZWZhdWx0O1xuXG4kY2FyZC1hY3Rpb25zLWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcblxuJGNhcmQtdGl0bGUtdGV4dC1mb250LXdlaWdodDogMzAwICFkZWZhdWx0O1xuJGNhcmQtei1pbmRleDogMSAhZGVmYXVsdDtcblxuLyogQ292ZXIgaW1hZ2UgKi9cbiRjYXJkLWNvdmVyLWltYWdlLWhlaWdodDogMTg2cHggIWRlZmF1bHQ7XG4kY2FyZC1iYWNrZ3JvdW5kLWltYWdlLXVybDogJycgIWRlZmF1bHQ7XG5cblxuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4kYnV0dG9uLW1pbi13aWR0aDogNjRweCAhZGVmYXVsdDtcbiRidXR0b24taGVpZ2h0OiAzNnB4ICFkZWZhdWx0O1xuJGJ1dHRvbi1wYWRkaW5nOiAxNnB4ICFkZWZhdWx0O1xuJGJ1dHRvbi1tYXJnaW46IDRweCAhZGVmYXVsdDtcbiRidXR0b24tYm9yZGVyLXJhZGl1czogMnB4ICFkZWZhdWx0O1xuXG4kYnV0dG9uLWZhYi1zaXplOiA1NnB4ICFkZWZhdWx0O1xuJGJ1dHRvbi1mYWItc2l6ZS1taW5pOiA0MHB4ICFkZWZhdWx0O1xuJGJ1dHRvbi1mYWItZm9udC1zaXplOiAyNHB4ICFkZWZhdWx0O1xuXG4kYnV0dG9uLWljb24tc2l6ZTogMzJweCAhZGVmYXVsdDtcbiRidXR0b24taWNvbi1zaXplLW1pbmk6IDI0cHggIWRlZmF1bHQ7XG5cblxuLyogQU5JTUFUSU9OICovXG4kYW5pbWF0aW9uLWN1cnZlLWZhc3Qtb3V0LXNsb3ctaW46IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWRlZmF1bHQ7XG4kYW5pbWF0aW9uLWN1cnZlLWxpbmVhci1vdXQtc2xvdy1pbjogY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSkgIWRlZmF1bHQ7XG4kYW5pbWF0aW9uLWN1cnZlLWZhc3Qtb3V0LWxpbmVhci1pbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSkgIWRlZmF1bHQ7XG5cbiRhbmltYXRpb24tY3VydmUtZGVmYXVsdDogJGFuaW1hdGlvbi1jdXJ2ZS1mYXN0LW91dC1zbG93LWluICFkZWZhdWx0O1xuXG5cbi8qIFBST0dSRVNTICovXG4kYmFyLWhlaWdodDogNHB4ICFkZWZhdWx0O1xuXG4vKiBCQURHRSAqL1xuJGJhZGdlLWZvbnQtc2l6ZTogMTJweDtcbiRiYWRnZS1jb2xvcjogdW5xdW90ZShcInJnYigjeyRjb2xvci1hY2NlbnQtY29udHJhc3R9KVwiKSAhZGVmYXVsdDtcbiRiYWRnZS1jb2xvci1pbnZlcnNlOiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLWFjY2VudH0pXCIpICFkZWZhdWx0O1xuJGJhZGdlLWJhY2tncm91bmQ6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItYWNjZW50fSlcIikgIWRlZmF1bHQ7XG4kYmFkZ2UtYmFja2dyb3VuZC1pbnZlcnNlOiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLWFjY2VudC1jb250cmFzdH0pXCIpICFkZWZhdWx0O1xuJGJhZGdlLXNpemUgOiAyMnB4O1xuJGJhZGdlLXBhZGRpbmc6IDJweDtcblxuLyogU0hBRE9XUyAqL1xuXG4kc2hhZG93LWtleS11bWJyYS1vcGFjaXR5OiAwLjI7XG4kc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5OiAwLjE0O1xuJHNoYWRvdy1hbWJpZW50LXNoYWRvdy1vcGFjaXR5OiAwLjEyO1xuXG4vKiBHUklEICovXG5cbiRncmlkLWRlc2t0b3AtY29sdW1uczogMTIgIWRlZmF1bHQ7XG4kZ3JpZC1kZXNrdG9wLWd1dHRlcjogMTZweCAhZGVmYXVsdDtcbiRncmlkLWRlc2t0b3AtbWFyZ2luOiAxNnB4ICFkZWZhdWx0O1xuXG4kZ3JpZC1kZXNrdG9wLWJyZWFrcG9pbnQ6IDg0MHB4ICFkZWZhdWx0O1xuXG4kZ3JpZC10YWJsZXQtY29sdW1uczogOCAhZGVmYXVsdDtcbiRncmlkLXRhYmxldC1ndXR0ZXI6ICRncmlkLWRlc2t0b3AtZ3V0dGVyICFkZWZhdWx0O1xuJGdyaWQtdGFibGV0LW1hcmdpbjogJGdyaWQtZGVza3RvcC1tYXJnaW4gIWRlZmF1bHQ7XG5cbiRncmlkLXRhYmxldC1icmVha3BvaW50OiA0ODBweCAhZGVmYXVsdDtcblxuJGdyaWQtcGhvbmUtY29sdW1uczogNCAhZGVmYXVsdDtcbiRncmlkLXBob25lLWd1dHRlcjogJGdyaWQtZGVza3RvcC1ndXR0ZXIgIWRlZmF1bHQ7XG4kZ3JpZC1waG9uZS1tYXJnaW46ICRncmlkLWRlc2t0b3AtbWFyZ2luICFkZWZhdWx0O1xuXG4kZ3JpZC1jZWxsLWRlZmF1bHQtY29sdW1uczogJGdyaWQtcGhvbmUtY29sdW1ucyAhZGVmYXVsdDtcblxuLyogREFUQSBUQUJMRSAqL1xuXG4kZGF0YS10YWJsZS1mb250LXNpemU6IDEzcHg7XG4kZGF0YS10YWJsZS1oZWFkZXItZm9udC1zaXplOiAxMnB4O1xuXG4kZGF0YS10YWJsZS1oZWFkZXItY29sb3I6IHJnYmEoIzAwMCwgMC41NCk7XG4kZGF0YS10YWJsZS1kaXZpZGVyLWNvbG9yOiByZ2JhKCMwMDAsIDAuMTIpO1xuXG4kZGF0YS10YWJsZS1ob3Zlci1jb2xvcjogI2VlZWVlZTtcbiRkYXRhLXRhYmxlLXNlbGVjdGlvbi1jb2xvcjogI2UwZTBlMDtcblxuJGRhdGEtdGFibGUtZGl2aWRlcnM6IDFweCBzb2xpZCAkZGF0YS10YWJsZS1kaXZpZGVyLWNvbG9yO1xuXG4kZGF0YS10YWJsZS1yb3ctaGVpZ2h0OiA0OHB4O1xuJGRhdGEtdGFibGUtbGFzdC1yb3ctaGVpZ2h0OiA1NnB4O1xuJGRhdGEtdGFibGUtaGVhZGVyLWhlaWdodDogNTZweDtcblxuJGRhdGEtdGFibGUtY29sdW1uLXNwYWNpbmc6IDM2cHg7XG4kZGF0YS10YWJsZS1jb2x1bW4tcGFkZGluZzogJGRhdGEtdGFibGUtY29sdW1uLXNwYWNpbmcgLyAyO1xuXG4kZGF0YS10YWJsZS1jYXJkLWhlYWRlci1oZWlnaHQ6IDY0cHg7XG4kZGF0YS10YWJsZS1jYXJkLXRpdGxlLXRvcDogMjBweDtcbiRkYXRhLXRhYmxlLWNhcmQtcGFkZGluZzogMjRweDtcbiRkYXRhLXRhYmxlLWJ1dHRvbi1wYWRkaW5nLXJpZ2h0OiAxNnB4O1xuJGRhdGEtdGFibGUtY2VsbC10b3A6ICRkYXRhLXRhYmxlLWNhcmQtcGFkZGluZyAvIDI7XG5cbi8qIFRPT0xUSVAgKi9cbiR0b29sdGlwLWZvbnQtc2l6ZTogMTBweCAhZGVmYXVsdDtcbiR0b29sdGlwLWZvbnQtc2l6ZS1sYXJnZTogMTRweCAhZGVmYXVsdDtcbiIsIi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG5cbi8vIENvbG9yIG9yZGVyOiA1MCwgMTAwLCAyMDAsIDMwMCwgNDAwLCA1MDAsIDYwMCwgNzAwLCA4MDAsIDkwMCwgQTEwMCwgQTIwMCxcbi8vIEE0MDAsIEE3MDAuXG5cbiRwYWxldHRlLXJlZDpcblwiMjU1LDIzNSwyMzhcIlxuXCIyNTUsMjA1LDIxMFwiXG5cIjIzOSwxNTQsMTU0XCJcblwiMjI5LDExNSwxMTVcIlxuXCIyMzksODMsODBcIlxuXCIyNDQsNjcsNTRcIlxuXCIyMjksNTcsNTNcIlxuXCIyMTEsNDcsNDdcIlxuXCIxOTgsNDAsNDBcIlxuXCIxODMsMjgsMjhcIlxuXCIyNTUsMTM4LDEyOFwiXG5cIjI1NSw4Miw4MlwiXG5cIjI1NSwyMyw2OFwiXG5cIjIxMywwLDBcIjtcblxuJHBhbGV0dGUtcmVkLTUwOiBudGgoJHBhbGV0dGUtcmVkLCAxKTtcbiRwYWxldHRlLXJlZC0xMDA6IG50aCgkcGFsZXR0ZS1yZWQsIDIpO1xuJHBhbGV0dGUtcmVkLTIwMDogbnRoKCRwYWxldHRlLXJlZCwgMyk7XG4kcGFsZXR0ZS1yZWQtMzAwOiBudGgoJHBhbGV0dGUtcmVkLCA0KTtcbiRwYWxldHRlLXJlZC00MDA6IG50aCgkcGFsZXR0ZS1yZWQsIDUpO1xuJHBhbGV0dGUtcmVkLTUwMDogbnRoKCRwYWxldHRlLXJlZCwgNik7XG4kcGFsZXR0ZS1yZWQtNjAwOiBudGgoJHBhbGV0dGUtcmVkLCA3KTtcbiRwYWxldHRlLXJlZC03MDA6IG50aCgkcGFsZXR0ZS1yZWQsIDgpO1xuJHBhbGV0dGUtcmVkLTgwMDogbnRoKCRwYWxldHRlLXJlZCwgOSk7XG4kcGFsZXR0ZS1yZWQtOTAwOiBudGgoJHBhbGV0dGUtcmVkLCAxMCk7XG4kcGFsZXR0ZS1yZWQtQTEwMDogbnRoKCRwYWxldHRlLXJlZCwgMTEpO1xuJHBhbGV0dGUtcmVkLUEyMDA6IG50aCgkcGFsZXR0ZS1yZWQsIDEyKTtcbiRwYWxldHRlLXJlZC1BNDAwOiBudGgoJHBhbGV0dGUtcmVkLCAxMyk7XG4kcGFsZXR0ZS1yZWQtQTcwMDogbnRoKCRwYWxldHRlLXJlZCwgMTQpO1xuXG4kcGFsZXR0ZS1waW5rOlxuXCIyNTIsMjI4LDIzNlwiXG5cIjI0OCwxODcsMjA4XCJcblwiMjQ0LDE0MywxNzdcIlxuXCIyNDAsOTgsMTQ2XCJcblwiMjM2LDY0LDEyMlwiXG5cIjIzMywzMCw5OVwiXG5cIjIxNiwyNyw5NlwiXG5cIjE5NCwyNCw5MVwiXG5cIjE3MywyMCw4N1wiXG5cIjEzNiwxNCw3OVwiXG5cIjI1NSwxMjgsMTcxXCJcblwiMjU1LDY0LDEyOVwiXG5cIjI0NSwwLDg3XCJcblwiMTk3LDE3LDk4XCI7XG5cbiRwYWxldHRlLXBpbmstNTA6IG50aCgkcGFsZXR0ZS1waW5rLCAxKTtcbiRwYWxldHRlLXBpbmstMTAwOiBudGgoJHBhbGV0dGUtcGluaywgMik7XG4kcGFsZXR0ZS1waW5rLTIwMDogbnRoKCRwYWxldHRlLXBpbmssIDMpO1xuJHBhbGV0dGUtcGluay0zMDA6IG50aCgkcGFsZXR0ZS1waW5rLCA0KTtcbiRwYWxldHRlLXBpbmstNDAwOiBudGgoJHBhbGV0dGUtcGluaywgNSk7XG4kcGFsZXR0ZS1waW5rLTUwMDogbnRoKCRwYWxldHRlLXBpbmssIDYpO1xuJHBhbGV0dGUtcGluay02MDA6IG50aCgkcGFsZXR0ZS1waW5rLCA3KTtcbiRwYWxldHRlLXBpbmstNzAwOiBudGgoJHBhbGV0dGUtcGluaywgOCk7XG4kcGFsZXR0ZS1waW5rLTgwMDogbnRoKCRwYWxldHRlLXBpbmssIDkpO1xuJHBhbGV0dGUtcGluay05MDA6IG50aCgkcGFsZXR0ZS1waW5rLCAxMCk7XG4kcGFsZXR0ZS1waW5rLUExMDA6IG50aCgkcGFsZXR0ZS1waW5rLCAxMSk7XG4kcGFsZXR0ZS1waW5rLUEyMDA6IG50aCgkcGFsZXR0ZS1waW5rLCAxMik7XG4kcGFsZXR0ZS1waW5rLUE0MDA6IG50aCgkcGFsZXR0ZS1waW5rLCAxMyk7XG4kcGFsZXR0ZS1waW5rLUE3MDA6IG50aCgkcGFsZXR0ZS1waW5rLCAxNCk7XG5cbiRwYWxldHRlLXB1cnBsZTpcblwiMjQzLDIyOSwyNDVcIlxuXCIyMjUsMTkwLDIzMVwiXG5cIjIwNiwxNDcsMjE2XCJcblwiMTg2LDEwNCwyMDBcIlxuXCIxNzEsNzEsMTg4XCJcblwiMTU2LDM5LDE3NlwiXG5cIjE0MiwzNiwxNzBcIlxuXCIxMjMsMzEsMTYyXCJcblwiMTA2LDI3LDE1NFwiXG5cIjc0LDIwLDE0MFwiXG5cIjIzNCwxMjgsMjUyXCJcblwiMjI0LDY0LDI1MVwiXG5cIjIxMywwLDI0OVwiXG5cIjE3MCwwLDI1NVwiO1xuXG4kcGFsZXR0ZS1wdXJwbGUtNTA6IG50aCgkcGFsZXR0ZS1wdXJwbGUsIDEpO1xuJHBhbGV0dGUtcHVycGxlLTEwMDogbnRoKCRwYWxldHRlLXB1cnBsZSwgMik7XG4kcGFsZXR0ZS1wdXJwbGUtMjAwOiBudGgoJHBhbGV0dGUtcHVycGxlLCAzKTtcbiRwYWxldHRlLXB1cnBsZS0zMDA6IG50aCgkcGFsZXR0ZS1wdXJwbGUsIDQpO1xuJHBhbGV0dGUtcHVycGxlLTQwMDogbnRoKCRwYWxldHRlLXB1cnBsZSwgNSk7XG4kcGFsZXR0ZS1wdXJwbGUtNTAwOiBudGgoJHBhbGV0dGUtcHVycGxlLCA2KTtcbiRwYWxldHRlLXB1cnBsZS02MDA6IG50aCgkcGFsZXR0ZS1wdXJwbGUsIDcpO1xuJHBhbGV0dGUtcHVycGxlLTcwMDogbnRoKCRwYWxldHRlLXB1cnBsZSwgOCk7XG4kcGFsZXR0ZS1wdXJwbGUtODAwOiBudGgoJHBhbGV0dGUtcHVycGxlLCA5KTtcbiRwYWxldHRlLXB1cnBsZS05MDA6IG50aCgkcGFsZXR0ZS1wdXJwbGUsIDEwKTtcbiRwYWxldHRlLXB1cnBsZS1BMTAwOiBudGgoJHBhbGV0dGUtcHVycGxlLCAxMSk7XG4kcGFsZXR0ZS1wdXJwbGUtQTIwMDogbnRoKCRwYWxldHRlLXB1cnBsZSwgMTIpO1xuJHBhbGV0dGUtcHVycGxlLUE0MDA6IG50aCgkcGFsZXR0ZS1wdXJwbGUsIDEzKTtcbiRwYWxldHRlLXB1cnBsZS1BNzAwOiBudGgoJHBhbGV0dGUtcHVycGxlLCAxNCk7XG5cbiRwYWxldHRlLWRlZXAtcHVycGxlOlxuXCIyMzcsMjMxLDI0NlwiXG5cIjIwOSwxOTYsMjMzXCJcblwiMTc5LDE1NywyMTlcIlxuXCIxNDksMTE3LDIwNVwiXG5cIjEyNiw4NywxOTRcIlxuXCIxMDMsNTgsMTgzXCJcblwiOTQsNTMsMTc3XCJcblwiODEsNDUsMTY4XCJcblwiNjksMzksMTYwXCJcblwiNDksMjcsMTQ2XCJcblwiMTc5LDEzNiwyNTVcIlxuXCIxMjQsNzcsMjU1XCJcblwiMTAxLDMxLDI1NVwiXG5cIjk4LDAsMjM0XCI7XG5cbiRwYWxldHRlLWRlZXAtcHVycGxlLTUwOiBudGgoJHBhbGV0dGUtZGVlcC1wdXJwbGUsIDEpO1xuJHBhbGV0dGUtZGVlcC1wdXJwbGUtMTAwOiBudGgoJHBhbGV0dGUtZGVlcC1wdXJwbGUsIDIpO1xuJHBhbGV0dGUtZGVlcC1wdXJwbGUtMjAwOiBudGgoJHBhbGV0dGUtZGVlcC1wdXJwbGUsIDMpO1xuJHBhbGV0dGUtZGVlcC1wdXJwbGUtMzAwOiBudGgoJHBhbGV0dGUtZGVlcC1wdXJwbGUsIDQpO1xuJHBhbGV0dGUtZGVlcC1wdXJwbGUtNDAwOiBudGgoJHBhbGV0dGUtZGVlcC1wdXJwbGUsIDUpO1xuJHBhbGV0dGUtZGVlcC1wdXJwbGUtNTAwOiBudGgoJHBhbGV0dGUtZGVlcC1wdXJwbGUsIDYpO1xuJHBhbGV0dGUtZGVlcC1wdXJwbGUtNjAwOiBudGgoJHBhbGV0dGUtZGVlcC1wdXJwbGUsIDcpO1xuJHBhbGV0dGUtZGVlcC1wdXJwbGUtNzAwOiBudGgoJHBhbGV0dGUtZGVlcC1wdXJwbGUsIDgpO1xuJHBhbGV0dGUtZGVlcC1wdXJwbGUtODAwOiBudGgoJHBhbGV0dGUtZGVlcC1wdXJwbGUsIDkpO1xuJHBhbGV0dGUtZGVlcC1wdXJwbGUtOTAwOiBudGgoJHBhbGV0dGUtZGVlcC1wdXJwbGUsIDEwKTtcbiRwYWxldHRlLWRlZXAtcHVycGxlLUExMDA6IG50aCgkcGFsZXR0ZS1kZWVwLXB1cnBsZSwgMTEpO1xuJHBhbGV0dGUtZGVlcC1wdXJwbGUtQTIwMDogbnRoKCRwYWxldHRlLWRlZXAtcHVycGxlLCAxMik7XG4kcGFsZXR0ZS1kZWVwLXB1cnBsZS1BNDAwOiBudGgoJHBhbGV0dGUtZGVlcC1wdXJwbGUsIDEzKTtcbiRwYWxldHRlLWRlZXAtcHVycGxlLUE3MDA6IG50aCgkcGFsZXR0ZS1kZWVwLXB1cnBsZSwgMTQpO1xuXG4kcGFsZXR0ZS1pbmRpZ286XG5cIjIzMiwyMzQsMjQ2XCJcblwiMTk3LDIwMiwyMzNcIlxuXCIxNTksMTY4LDIxOFwiXG5cIjEyMSwxMzQsMjAzXCJcblwiOTIsMTA3LDE5MlwiXG5cIjYzLDgxLDE4MVwiXG5cIjU3LDczLDE3MVwiXG5cIjQ4LDYzLDE1OVwiXG5cIjQwLDUzLDE0N1wiXG5cIjI2LDM1LDEyNlwiXG5cIjE0MCwxNTgsMjU1XCJcblwiODMsMTA5LDI1NFwiXG5cIjYxLDkwLDI1NFwiXG5cIjQ4LDc5LDI1NFwiO1xuXG4kcGFsZXR0ZS1pbmRpZ28tNTA6IG50aCgkcGFsZXR0ZS1pbmRpZ28sIDEpO1xuJHBhbGV0dGUtaW5kaWdvLTEwMDogbnRoKCRwYWxldHRlLWluZGlnbywgMik7XG4kcGFsZXR0ZS1pbmRpZ28tMjAwOiBudGgoJHBhbGV0dGUtaW5kaWdvLCAzKTtcbiRwYWxldHRlLWluZGlnby0zMDA6IG50aCgkcGFsZXR0ZS1pbmRpZ28sIDQpO1xuJHBhbGV0dGUtaW5kaWdvLTQwMDogbnRoKCRwYWxldHRlLWluZGlnbywgNSk7XG4kcGFsZXR0ZS1pbmRpZ28tNTAwOiBudGgoJHBhbGV0dGUtaW5kaWdvLCA2KTtcbiRwYWxldHRlLWluZGlnby02MDA6IG50aCgkcGFsZXR0ZS1pbmRpZ28sIDcpO1xuJHBhbGV0dGUtaW5kaWdvLTcwMDogbnRoKCRwYWxldHRlLWluZGlnbywgOCk7XG4kcGFsZXR0ZS1pbmRpZ28tODAwOiBudGgoJHBhbGV0dGUtaW5kaWdvLCA5KTtcbiRwYWxldHRlLWluZGlnby05MDA6IG50aCgkcGFsZXR0ZS1pbmRpZ28sIDEwKTtcbiRwYWxldHRlLWluZGlnby1BMTAwOiBudGgoJHBhbGV0dGUtaW5kaWdvLCAxMSk7XG4kcGFsZXR0ZS1pbmRpZ28tQTIwMDogbnRoKCRwYWxldHRlLWluZGlnbywgMTIpO1xuJHBhbGV0dGUtaW5kaWdvLUE0MDA6IG50aCgkcGFsZXR0ZS1pbmRpZ28sIDEzKTtcbiRwYWxldHRlLWluZGlnby1BNzAwOiBudGgoJHBhbGV0dGUtaW5kaWdvLCAxNCk7XG5cbiRwYWxldHRlLWJsdWU6XG5cIjIyNywyNDIsMjUzXCJcblwiMTg3LDIyMiwyNTFcIlxuXCIxNDQsMjAyLDI0OVwiXG5cIjEwMCwxODEsMjQ2XCJcblwiNjYsMTY1LDI0NVwiXG5cIjMzLDE1MCwyNDNcIlxuXCIzMCwxMzYsMjI5XCJcblwiMjUsMTE4LDIxMFwiXG5cIjIxLDEwMSwxOTJcIlxuXCIxMyw3MSwxNjFcIlxuXCIxMzAsMTc3LDI1NVwiXG5cIjY4LDEzOCwyNTVcIlxuXCI0MSwxMjEsMjU1XCJcblwiNDEsOTgsMjU1XCI7XG5cbiRwYWxldHRlLWJsdWUtNTA6IG50aCgkcGFsZXR0ZS1ibHVlLCAxKTtcbiRwYWxldHRlLWJsdWUtMTAwOiBudGgoJHBhbGV0dGUtYmx1ZSwgMik7XG4kcGFsZXR0ZS1ibHVlLTIwMDogbnRoKCRwYWxldHRlLWJsdWUsIDMpO1xuJHBhbGV0dGUtYmx1ZS0zMDA6IG50aCgkcGFsZXR0ZS1ibHVlLCA0KTtcbiRwYWxldHRlLWJsdWUtNDAwOiBudGgoJHBhbGV0dGUtYmx1ZSwgNSk7XG4kcGFsZXR0ZS1ibHVlLTUwMDogbnRoKCRwYWxldHRlLWJsdWUsIDYpO1xuJHBhbGV0dGUtYmx1ZS02MDA6IG50aCgkcGFsZXR0ZS1ibHVlLCA3KTtcbiRwYWxldHRlLWJsdWUtNzAwOiBudGgoJHBhbGV0dGUtYmx1ZSwgOCk7XG4kcGFsZXR0ZS1ibHVlLTgwMDogbnRoKCRwYWxldHRlLWJsdWUsIDkpO1xuJHBhbGV0dGUtYmx1ZS05MDA6IG50aCgkcGFsZXR0ZS1ibHVlLCAxMCk7XG4kcGFsZXR0ZS1ibHVlLUExMDA6IG50aCgkcGFsZXR0ZS1ibHVlLCAxMSk7XG4kcGFsZXR0ZS1ibHVlLUEyMDA6IG50aCgkcGFsZXR0ZS1ibHVlLCAxMik7XG4kcGFsZXR0ZS1ibHVlLUE0MDA6IG50aCgkcGFsZXR0ZS1ibHVlLCAxMyk7XG4kcGFsZXR0ZS1ibHVlLUE3MDA6IG50aCgkcGFsZXR0ZS1ibHVlLCAxNCk7XG5cbiRwYWxldHRlLWxpZ2h0LWJsdWU6XG5cIjIyNSwyNDUsMjU0XCJcblwiMTc5LDIyOSwyNTJcIlxuXCIxMjksMjEyLDI1MFwiXG5cIjc5LDE5NSwyNDdcIlxuXCI0MSwxODIsMjQ2XCJcblwiMywxNjksMjQ0XCJcblwiMywxNTUsMjI5XCJcblwiMiwxMzYsMjA5XCJcblwiMiwxMTksMTg5XCJcblwiMSw4NywxNTVcIlxuXCIxMjgsMjE2LDI1NVwiXG5cIjY0LDE5NiwyNTVcIlxuXCIwLDE3NiwyNTVcIlxuXCIwLDE0NSwyMzRcIjtcblxuJHBhbGV0dGUtbGlnaHQtYmx1ZS01MDogbnRoKCRwYWxldHRlLWxpZ2h0LWJsdWUsIDEpO1xuJHBhbGV0dGUtbGlnaHQtYmx1ZS0xMDA6IG50aCgkcGFsZXR0ZS1saWdodC1ibHVlLCAyKTtcbiRwYWxldHRlLWxpZ2h0LWJsdWUtMjAwOiBudGgoJHBhbGV0dGUtbGlnaHQtYmx1ZSwgMyk7XG4kcGFsZXR0ZS1saWdodC1ibHVlLTMwMDogbnRoKCRwYWxldHRlLWxpZ2h0LWJsdWUsIDQpO1xuJHBhbGV0dGUtbGlnaHQtYmx1ZS00MDA6IG50aCgkcGFsZXR0ZS1saWdodC1ibHVlLCA1KTtcbiRwYWxldHRlLWxpZ2h0LWJsdWUtNTAwOiBudGgoJHBhbGV0dGUtbGlnaHQtYmx1ZSwgNik7XG4kcGFsZXR0ZS1saWdodC1ibHVlLTYwMDogbnRoKCRwYWxldHRlLWxpZ2h0LWJsdWUsIDcpO1xuJHBhbGV0dGUtbGlnaHQtYmx1ZS03MDA6IG50aCgkcGFsZXR0ZS1saWdodC1ibHVlLCA4KTtcbiRwYWxldHRlLWxpZ2h0LWJsdWUtODAwOiBudGgoJHBhbGV0dGUtbGlnaHQtYmx1ZSwgOSk7XG4kcGFsZXR0ZS1saWdodC1ibHVlLTkwMDogbnRoKCRwYWxldHRlLWxpZ2h0LWJsdWUsIDEwKTtcbiRwYWxldHRlLWxpZ2h0LWJsdWUtQTEwMDogbnRoKCRwYWxldHRlLWxpZ2h0LWJsdWUsIDExKTtcbiRwYWxldHRlLWxpZ2h0LWJsdWUtQTIwMDogbnRoKCRwYWxldHRlLWxpZ2h0LWJsdWUsIDEyKTtcbiRwYWxldHRlLWxpZ2h0LWJsdWUtQTQwMDogbnRoKCRwYWxldHRlLWxpZ2h0LWJsdWUsIDEzKTtcbiRwYWxldHRlLWxpZ2h0LWJsdWUtQTcwMDogbnRoKCRwYWxldHRlLWxpZ2h0LWJsdWUsIDE0KTtcblxuJHBhbGV0dGUtY3lhbjpcblwiMjI0LDI0NywyNTBcIlxuXCIxNzgsMjM1LDI0MlwiXG5cIjEyOCwyMjIsMjM0XCJcblwiNzcsMjA4LDIyNVwiXG5cIjM4LDE5OCwyMThcIlxuXCIwLDE4OCwyMTJcIlxuXCIwLDE3MiwxOTNcIlxuXCIwLDE1MSwxNjdcIlxuXCIwLDEzMSwxNDNcIlxuXCIwLDk2LDEwMFwiXG5cIjEzMiwyNTUsMjU1XCJcblwiMjQsMjU1LDI1NVwiXG5cIjAsMjI5LDI1NVwiXG5cIjAsMTg0LDIxMlwiO1xuXG4kcGFsZXR0ZS1jeWFuLTUwOiBudGgoJHBhbGV0dGUtY3lhbiwgMSk7XG4kcGFsZXR0ZS1jeWFuLTEwMDogbnRoKCRwYWxldHRlLWN5YW4sIDIpO1xuJHBhbGV0dGUtY3lhbi0yMDA6IG50aCgkcGFsZXR0ZS1jeWFuLCAzKTtcbiRwYWxldHRlLWN5YW4tMzAwOiBudGgoJHBhbGV0dGUtY3lhbiwgNCk7XG4kcGFsZXR0ZS1jeWFuLTQwMDogbnRoKCRwYWxldHRlLWN5YW4sIDUpO1xuJHBhbGV0dGUtY3lhbi01MDA6IG50aCgkcGFsZXR0ZS1jeWFuLCA2KTtcbiRwYWxldHRlLWN5YW4tNjAwOiBudGgoJHBhbGV0dGUtY3lhbiwgNyk7XG4kcGFsZXR0ZS1jeWFuLTcwMDogbnRoKCRwYWxldHRlLWN5YW4sIDgpO1xuJHBhbGV0dGUtY3lhbi04MDA6IG50aCgkcGFsZXR0ZS1jeWFuLCA5KTtcbiRwYWxldHRlLWN5YW4tOTAwOiBudGgoJHBhbGV0dGUtY3lhbiwgMTApO1xuJHBhbGV0dGUtY3lhbi1BMTAwOiBudGgoJHBhbGV0dGUtY3lhbiwgMTEpO1xuJHBhbGV0dGUtY3lhbi1BMjAwOiBudGgoJHBhbGV0dGUtY3lhbiwgMTIpO1xuJHBhbGV0dGUtY3lhbi1BNDAwOiBudGgoJHBhbGV0dGUtY3lhbiwgMTMpO1xuJHBhbGV0dGUtY3lhbi1BNzAwOiBudGgoJHBhbGV0dGUtY3lhbiwgMTQpO1xuXG4kcGFsZXR0ZS10ZWFsOlxuXCIyMjQsMjQyLDI0MVwiXG5cIjE3OCwyMjMsMjE5XCJcblwiMTI4LDIwMywxOTZcIlxuXCI3NywxODIsMTcyXCJcblwiMzgsMTY2LDE1NFwiXG5cIjAsMTUwLDEzNlwiXG5cIjAsMTM3LDEyM1wiXG5cIjAsMTIxLDEwN1wiXG5cIjAsMTA1LDkyXCJcblwiMCw3Nyw2NFwiXG5cIjE2NywyNTUsMjM1XCJcblwiMTAwLDI1NSwyMThcIlxuXCIyOSwyMzMsMTgyXCJcblwiMCwxOTEsMTY1XCI7XG5cbiRwYWxldHRlLXRlYWwtNTA6IG50aCgkcGFsZXR0ZS10ZWFsLCAxKTtcbiRwYWxldHRlLXRlYWwtMTAwOiBudGgoJHBhbGV0dGUtdGVhbCwgMik7XG4kcGFsZXR0ZS10ZWFsLTIwMDogbnRoKCRwYWxldHRlLXRlYWwsIDMpO1xuJHBhbGV0dGUtdGVhbC0zMDA6IG50aCgkcGFsZXR0ZS10ZWFsLCA0KTtcbiRwYWxldHRlLXRlYWwtNDAwOiBudGgoJHBhbGV0dGUtdGVhbCwgNSk7XG4kcGFsZXR0ZS10ZWFsLTUwMDogbnRoKCRwYWxldHRlLXRlYWwsIDYpO1xuJHBhbGV0dGUtdGVhbC02MDA6IG50aCgkcGFsZXR0ZS10ZWFsLCA3KTtcbiRwYWxldHRlLXRlYWwtNzAwOiBudGgoJHBhbGV0dGUtdGVhbCwgOCk7XG4kcGFsZXR0ZS10ZWFsLTgwMDogbnRoKCRwYWxldHRlLXRlYWwsIDkpO1xuJHBhbGV0dGUtdGVhbC05MDA6IG50aCgkcGFsZXR0ZS10ZWFsLCAxMCk7XG4kcGFsZXR0ZS10ZWFsLUExMDA6IG50aCgkcGFsZXR0ZS10ZWFsLCAxMSk7XG4kcGFsZXR0ZS10ZWFsLUEyMDA6IG50aCgkcGFsZXR0ZS10ZWFsLCAxMik7XG4kcGFsZXR0ZS10ZWFsLUE0MDA6IG50aCgkcGFsZXR0ZS10ZWFsLCAxMyk7XG4kcGFsZXR0ZS10ZWFsLUE3MDA6IG50aCgkcGFsZXR0ZS10ZWFsLCAxNCk7XG5cbiRwYWxldHRlLWdyZWVuOlxuXCIyMzIsMjQ1LDIzM1wiXG5cIjIwMCwyMzAsMjAxXCJcblwiMTY1LDIxNCwxNjdcIlxuXCIxMjksMTk5LDEzMlwiXG5cIjEwMiwxODcsMTA2XCJcblwiNzYsMTc1LDgwXCJcblwiNjcsMTYwLDcxXCJcblwiNTYsMTQyLDYwXCJcblwiNDYsMTI1LDUwXCJcblwiMjcsOTQsMzJcIlxuXCIxODUsMjQ2LDIwMlwiXG5cIjEwNSwyNDAsMTc0XCJcblwiMCwyMzAsMTE4XCJcblwiMCwyMDAsODNcIjtcblxuJHBhbGV0dGUtZ3JlZW4tNTA6IG50aCgkcGFsZXR0ZS1ncmVlbiwgMSk7XG4kcGFsZXR0ZS1ncmVlbi0xMDA6IG50aCgkcGFsZXR0ZS1ncmVlbiwgMik7XG4kcGFsZXR0ZS1ncmVlbi0yMDA6IG50aCgkcGFsZXR0ZS1ncmVlbiwgMyk7XG4kcGFsZXR0ZS1ncmVlbi0zMDA6IG50aCgkcGFsZXR0ZS1ncmVlbiwgNCk7XG4kcGFsZXR0ZS1ncmVlbi00MDA6IG50aCgkcGFsZXR0ZS1ncmVlbiwgNSk7XG4kcGFsZXR0ZS1ncmVlbi01MDA6IG50aCgkcGFsZXR0ZS1ncmVlbiwgNik7XG4kcGFsZXR0ZS1ncmVlbi02MDA6IG50aCgkcGFsZXR0ZS1ncmVlbiwgNyk7XG4kcGFsZXR0ZS1ncmVlbi03MDA6IG50aCgkcGFsZXR0ZS1ncmVlbiwgOCk7XG4kcGFsZXR0ZS1ncmVlbi04MDA6IG50aCgkcGFsZXR0ZS1ncmVlbiwgOSk7XG4kcGFsZXR0ZS1ncmVlbi05MDA6IG50aCgkcGFsZXR0ZS1ncmVlbiwgMTApO1xuJHBhbGV0dGUtZ3JlZW4tQTEwMDogbnRoKCRwYWxldHRlLWdyZWVuLCAxMSk7XG4kcGFsZXR0ZS1ncmVlbi1BMjAwOiBudGgoJHBhbGV0dGUtZ3JlZW4sIDEyKTtcbiRwYWxldHRlLWdyZWVuLUE0MDA6IG50aCgkcGFsZXR0ZS1ncmVlbiwgMTMpO1xuJHBhbGV0dGUtZ3JlZW4tQTcwMDogbnRoKCRwYWxldHRlLWdyZWVuLCAxNCk7XG5cbiRwYWxldHRlLWxpZ2h0LWdyZWVuOlxuXCIyNDEsMjQ4LDIzM1wiXG5cIjIyMCwyMzcsMjAwXCJcblwiMTk3LDIyNSwxNjVcIlxuXCIxNzQsMjEzLDEyOVwiXG5cIjE1NiwyMDQsMTAxXCJcblwiMTM5LDE5NSw3NFwiXG5cIjEyNCwxNzksNjZcIlxuXCIxMDQsMTU5LDU2XCJcblwiODUsMTM5LDQ3XCJcblwiNTEsMTA1LDMwXCJcblwiMjA0LDI1NSwxNDRcIlxuXCIxNzgsMjU1LDg5XCJcblwiMTE4LDI1NSwzXCJcblwiMTAwLDIyMSwyM1wiO1xuXG4kcGFsZXR0ZS1saWdodC1ncmVlbi01MDogbnRoKCRwYWxldHRlLWxpZ2h0LWdyZWVuLCAxKTtcbiRwYWxldHRlLWxpZ2h0LWdyZWVuLTEwMDogbnRoKCRwYWxldHRlLWxpZ2h0LWdyZWVuLCAyKTtcbiRwYWxldHRlLWxpZ2h0LWdyZWVuLTIwMDogbnRoKCRwYWxldHRlLWxpZ2h0LWdyZWVuLCAzKTtcbiRwYWxldHRlLWxpZ2h0LWdyZWVuLTMwMDogbnRoKCRwYWxldHRlLWxpZ2h0LWdyZWVuLCA0KTtcbiRwYWxldHRlLWxpZ2h0LWdyZWVuLTQwMDogbnRoKCRwYWxldHRlLWxpZ2h0LWdyZWVuLCA1KTtcbiRwYWxldHRlLWxpZ2h0LWdyZWVuLTUwMDogbnRoKCRwYWxldHRlLWxpZ2h0LWdyZWVuLCA2KTtcbiRwYWxldHRlLWxpZ2h0LWdyZWVuLTYwMDogbnRoKCRwYWxldHRlLWxpZ2h0LWdyZWVuLCA3KTtcbiRwYWxldHRlLWxpZ2h0LWdyZWVuLTcwMDogbnRoKCRwYWxldHRlLWxpZ2h0LWdyZWVuLCA4KTtcbiRwYWxldHRlLWxpZ2h0LWdyZWVuLTgwMDogbnRoKCRwYWxldHRlLWxpZ2h0LWdyZWVuLCA5KTtcbiRwYWxldHRlLWxpZ2h0LWdyZWVuLTkwMDogbnRoKCRwYWxldHRlLWxpZ2h0LWdyZWVuLCAxMCk7XG4kcGFsZXR0ZS1saWdodC1ncmVlbi1BMTAwOiBudGgoJHBhbGV0dGUtbGlnaHQtZ3JlZW4sIDExKTtcbiRwYWxldHRlLWxpZ2h0LWdyZWVuLUEyMDA6IG50aCgkcGFsZXR0ZS1saWdodC1ncmVlbiwgMTIpO1xuJHBhbGV0dGUtbGlnaHQtZ3JlZW4tQTQwMDogbnRoKCRwYWxldHRlLWxpZ2h0LWdyZWVuLCAxMyk7XG4kcGFsZXR0ZS1saWdodC1ncmVlbi1BNzAwOiBudGgoJHBhbGV0dGUtbGlnaHQtZ3JlZW4sIDE0KTtcblxuJHBhbGV0dGUtbGltZTpcblwiMjQ5LDI1MSwyMzFcIlxuXCIyNDAsMjQ0LDE5NVwiXG5cIjIzMCwyMzgsMTU2XCJcblwiMjIwLDIzMSwxMTdcIlxuXCIyMTIsMjI1LDg3XCJcblwiMjA1LDIyMCw1N1wiXG5cIjE5MiwyMDIsNTFcIlxuXCIxNzUsMTgwLDQzXCJcblwiMTU4LDE1NywzNlwiXG5cIjEzMCwxMTksMjNcIlxuXCIyNDQsMjU1LDEyOVwiXG5cIjIzOCwyNTUsNjVcIlxuXCIxOTgsMjU1LDBcIlxuXCIxNzQsMjM0LDBcIjtcblxuJHBhbGV0dGUtbGltZS01MDogbnRoKCRwYWxldHRlLWxpbWUsIDEpO1xuJHBhbGV0dGUtbGltZS0xMDA6IG50aCgkcGFsZXR0ZS1saW1lLCAyKTtcbiRwYWxldHRlLWxpbWUtMjAwOiBudGgoJHBhbGV0dGUtbGltZSwgMyk7XG4kcGFsZXR0ZS1saW1lLTMwMDogbnRoKCRwYWxldHRlLWxpbWUsIDQpO1xuJHBhbGV0dGUtbGltZS00MDA6IG50aCgkcGFsZXR0ZS1saW1lLCA1KTtcbiRwYWxldHRlLWxpbWUtNTAwOiBudGgoJHBhbGV0dGUtbGltZSwgNik7XG4kcGFsZXR0ZS1saW1lLTYwMDogbnRoKCRwYWxldHRlLWxpbWUsIDcpO1xuJHBhbGV0dGUtbGltZS03MDA6IG50aCgkcGFsZXR0ZS1saW1lLCA4KTtcbiRwYWxldHRlLWxpbWUtODAwOiBudGgoJHBhbGV0dGUtbGltZSwgOSk7XG4kcGFsZXR0ZS1saW1lLTkwMDogbnRoKCRwYWxldHRlLWxpbWUsIDEwKTtcbiRwYWxldHRlLWxpbWUtQTEwMDogbnRoKCRwYWxldHRlLWxpbWUsIDExKTtcbiRwYWxldHRlLWxpbWUtQTIwMDogbnRoKCRwYWxldHRlLWxpbWUsIDEyKTtcbiRwYWxldHRlLWxpbWUtQTQwMDogbnRoKCRwYWxldHRlLWxpbWUsIDEzKTtcbiRwYWxldHRlLWxpbWUtQTcwMDogbnRoKCRwYWxldHRlLWxpbWUsIDE0KTtcblxuJHBhbGV0dGUteWVsbG93OlxuXCIyNTUsMjUzLDIzMVwiXG5cIjI1NSwyNDksMTk2XCJcblwiMjU1LDI0NSwxNTdcIlxuXCIyNTUsMjQxLDExOFwiXG5cIjI1NSwyMzgsODhcIlxuXCIyNTUsMjM1LDU5XCJcblwiMjUzLDIxNiw1M1wiXG5cIjI1MSwxOTIsNDVcIlxuXCIyNDksMTY4LDM3XCJcblwiMjQ1LDEyNywyM1wiXG5cIjI1NSwyNTUsMTQxXCJcblwiMjU1LDI1NSwwXCJcblwiMjU1LDIzNCwwXCJcblwiMjU1LDIxNCwwXCI7XG5cbiRwYWxldHRlLXllbGxvdy01MDogbnRoKCRwYWxldHRlLXllbGxvdywgMSk7XG4kcGFsZXR0ZS15ZWxsb3ctMTAwOiBudGgoJHBhbGV0dGUteWVsbG93LCAyKTtcbiRwYWxldHRlLXllbGxvdy0yMDA6IG50aCgkcGFsZXR0ZS15ZWxsb3csIDMpO1xuJHBhbGV0dGUteWVsbG93LTMwMDogbnRoKCRwYWxldHRlLXllbGxvdywgNCk7XG4kcGFsZXR0ZS15ZWxsb3ctNDAwOiBudGgoJHBhbGV0dGUteWVsbG93LCA1KTtcbiRwYWxldHRlLXllbGxvdy01MDA6IG50aCgkcGFsZXR0ZS15ZWxsb3csIDYpO1xuJHBhbGV0dGUteWVsbG93LTYwMDogbnRoKCRwYWxldHRlLXllbGxvdywgNyk7XG4kcGFsZXR0ZS15ZWxsb3ctNzAwOiBudGgoJHBhbGV0dGUteWVsbG93LCA4KTtcbiRwYWxldHRlLXllbGxvdy04MDA6IG50aCgkcGFsZXR0ZS15ZWxsb3csIDkpO1xuJHBhbGV0dGUteWVsbG93LTkwMDogbnRoKCRwYWxldHRlLXllbGxvdywgMTApO1xuJHBhbGV0dGUteWVsbG93LUExMDA6IG50aCgkcGFsZXR0ZS15ZWxsb3csIDExKTtcbiRwYWxldHRlLXllbGxvdy1BMjAwOiBudGgoJHBhbGV0dGUteWVsbG93LCAxMik7XG4kcGFsZXR0ZS15ZWxsb3ctQTQwMDogbnRoKCRwYWxldHRlLXllbGxvdywgMTMpO1xuJHBhbGV0dGUteWVsbG93LUE3MDA6IG50aCgkcGFsZXR0ZS15ZWxsb3csIDE0KTtcblxuJHBhbGV0dGUtYW1iZXI6XG5cIjI1NSwyNDgsMjI1XCJcblwiMjU1LDIzNiwxNzlcIlxuXCIyNTUsMjI0LDEzMFwiXG5cIjI1NSwyMTMsNzlcIlxuXCIyNTUsMjAyLDQwXCJcblwiMjU1LDE5Myw3XCJcblwiMjU1LDE3OSwwXCJcblwiMjU1LDE2MCwwXCJcblwiMjU1LDE0MywwXCJcblwiMjU1LDExMSwwXCJcblwiMjU1LDIyOSwxMjdcIlxuXCIyNTUsMjE1LDY0XCJcblwiMjU1LDE5NiwwXCJcblwiMjU1LDE3MSwwXCI7XG5cbiRwYWxldHRlLWFtYmVyLTUwOiBudGgoJHBhbGV0dGUtYW1iZXIsIDEpO1xuJHBhbGV0dGUtYW1iZXItMTAwOiBudGgoJHBhbGV0dGUtYW1iZXIsIDIpO1xuJHBhbGV0dGUtYW1iZXItMjAwOiBudGgoJHBhbGV0dGUtYW1iZXIsIDMpO1xuJHBhbGV0dGUtYW1iZXItMzAwOiBudGgoJHBhbGV0dGUtYW1iZXIsIDQpO1xuJHBhbGV0dGUtYW1iZXItNDAwOiBudGgoJHBhbGV0dGUtYW1iZXIsIDUpO1xuJHBhbGV0dGUtYW1iZXItNTAwOiBudGgoJHBhbGV0dGUtYW1iZXIsIDYpO1xuJHBhbGV0dGUtYW1iZXItNjAwOiBudGgoJHBhbGV0dGUtYW1iZXIsIDcpO1xuJHBhbGV0dGUtYW1iZXItNzAwOiBudGgoJHBhbGV0dGUtYW1iZXIsIDgpO1xuJHBhbGV0dGUtYW1iZXItODAwOiBudGgoJHBhbGV0dGUtYW1iZXIsIDkpO1xuJHBhbGV0dGUtYW1iZXItOTAwOiBudGgoJHBhbGV0dGUtYW1iZXIsIDEwKTtcbiRwYWxldHRlLWFtYmVyLUExMDA6IG50aCgkcGFsZXR0ZS1hbWJlciwgMTEpO1xuJHBhbGV0dGUtYW1iZXItQTIwMDogbnRoKCRwYWxldHRlLWFtYmVyLCAxMik7XG4kcGFsZXR0ZS1hbWJlci1BNDAwOiBudGgoJHBhbGV0dGUtYW1iZXIsIDEzKTtcbiRwYWxldHRlLWFtYmVyLUE3MDA6IG50aCgkcGFsZXR0ZS1hbWJlciwgMTQpO1xuXG4kcGFsZXR0ZS1vcmFuZ2U6XG5cIjI1NSwyNDMsMjI0XCJcblwiMjU1LDIyNCwxNzhcIlxuXCIyNTUsMjA0LDEyOFwiXG5cIjI1NSwxODMsNzdcIlxuXCIyNTUsMTY3LDM4XCJcblwiMjU1LDE1MiwwXCJcblwiMjUxLDE0MCwwXCJcblwiMjQ1LDEyNCwwXCJcblwiMjM5LDEwOCwwXCJcblwiMjMwLDgxLDBcIlxuXCIyNTUsMjA5LDEyOFwiXG5cIjI1NSwxNzEsNjRcIlxuXCIyNTUsMTQ1LDBcIlxuXCIyNTUsMTA5LDBcIjtcblxuJHBhbGV0dGUtb3JhbmdlLTUwOiBudGgoJHBhbGV0dGUtb3JhbmdlLCAxKTtcbiRwYWxldHRlLW9yYW5nZS0xMDA6IG50aCgkcGFsZXR0ZS1vcmFuZ2UsIDIpO1xuJHBhbGV0dGUtb3JhbmdlLTIwMDogbnRoKCRwYWxldHRlLW9yYW5nZSwgMyk7XG4kcGFsZXR0ZS1vcmFuZ2UtMzAwOiBudGgoJHBhbGV0dGUtb3JhbmdlLCA0KTtcbiRwYWxldHRlLW9yYW5nZS00MDA6IG50aCgkcGFsZXR0ZS1vcmFuZ2UsIDUpO1xuJHBhbGV0dGUtb3JhbmdlLTUwMDogbnRoKCRwYWxldHRlLW9yYW5nZSwgNik7XG4kcGFsZXR0ZS1vcmFuZ2UtNjAwOiBudGgoJHBhbGV0dGUtb3JhbmdlLCA3KTtcbiRwYWxldHRlLW9yYW5nZS03MDA6IG50aCgkcGFsZXR0ZS1vcmFuZ2UsIDgpO1xuJHBhbGV0dGUtb3JhbmdlLTgwMDogbnRoKCRwYWxldHRlLW9yYW5nZSwgOSk7XG4kcGFsZXR0ZS1vcmFuZ2UtOTAwOiBudGgoJHBhbGV0dGUtb3JhbmdlLCAxMCk7XG4kcGFsZXR0ZS1vcmFuZ2UtQTEwMDogbnRoKCRwYWxldHRlLW9yYW5nZSwgMTEpO1xuJHBhbGV0dGUtb3JhbmdlLUEyMDA6IG50aCgkcGFsZXR0ZS1vcmFuZ2UsIDEyKTtcbiRwYWxldHRlLW9yYW5nZS1BNDAwOiBudGgoJHBhbGV0dGUtb3JhbmdlLCAxMyk7XG4kcGFsZXR0ZS1vcmFuZ2UtQTcwMDogbnRoKCRwYWxldHRlLW9yYW5nZSwgMTQpO1xuXG4kcGFsZXR0ZS1kZWVwLW9yYW5nZTpcblwiMjUxLDIzMywyMzFcIlxuXCIyNTUsMjA0LDE4OFwiXG5cIjI1NSwxNzEsMTQ1XCJcblwiMjU1LDEzOCwxMDFcIlxuXCIyNTUsMTEyLDY3XCJcblwiMjU1LDg3LDM0XCJcblwiMjQ0LDgxLDMwXCJcblwiMjMwLDc0LDI1XCJcblwiMjE2LDY3LDIxXCJcblwiMTkxLDU0LDEyXCJcblwiMjU1LDE1OCwxMjhcIlxuXCIyNTUsMTEwLDY0XCJcblwiMjU1LDYxLDBcIlxuXCIyMjEsNDQsMFwiO1xuXG4kcGFsZXR0ZS1kZWVwLW9yYW5nZS01MDogbnRoKCRwYWxldHRlLWRlZXAtb3JhbmdlLCAxKTtcbiRwYWxldHRlLWRlZXAtb3JhbmdlLTEwMDogbnRoKCRwYWxldHRlLWRlZXAtb3JhbmdlLCAyKTtcbiRwYWxldHRlLWRlZXAtb3JhbmdlLTIwMDogbnRoKCRwYWxldHRlLWRlZXAtb3JhbmdlLCAzKTtcbiRwYWxldHRlLWRlZXAtb3JhbmdlLTMwMDogbnRoKCRwYWxldHRlLWRlZXAtb3JhbmdlLCA0KTtcbiRwYWxldHRlLWRlZXAtb3JhbmdlLTQwMDogbnRoKCRwYWxldHRlLWRlZXAtb3JhbmdlLCA1KTtcbiRwYWxldHRlLWRlZXAtb3JhbmdlLTUwMDogbnRoKCRwYWxldHRlLWRlZXAtb3JhbmdlLCA2KTtcbiRwYWxldHRlLWRlZXAtb3JhbmdlLTYwMDogbnRoKCRwYWxldHRlLWRlZXAtb3JhbmdlLCA3KTtcbiRwYWxldHRlLWRlZXAtb3JhbmdlLTcwMDogbnRoKCRwYWxldHRlLWRlZXAtb3JhbmdlLCA4KTtcbiRwYWxldHRlLWRlZXAtb3JhbmdlLTgwMDogbnRoKCRwYWxldHRlLWRlZXAtb3JhbmdlLCA5KTtcbiRwYWxldHRlLWRlZXAtb3JhbmdlLTkwMDogbnRoKCRwYWxldHRlLWRlZXAtb3JhbmdlLCAxMCk7XG4kcGFsZXR0ZS1kZWVwLW9yYW5nZS1BMTAwOiBudGgoJHBhbGV0dGUtZGVlcC1vcmFuZ2UsIDExKTtcbiRwYWxldHRlLWRlZXAtb3JhbmdlLUEyMDA6IG50aCgkcGFsZXR0ZS1kZWVwLW9yYW5nZSwgMTIpO1xuJHBhbGV0dGUtZGVlcC1vcmFuZ2UtQTQwMDogbnRoKCRwYWxldHRlLWRlZXAtb3JhbmdlLCAxMyk7XG4kcGFsZXR0ZS1kZWVwLW9yYW5nZS1BNzAwOiBudGgoJHBhbGV0dGUtZGVlcC1vcmFuZ2UsIDE0KTtcblxuXG4vLyBDb2xvciBvcmRlcjogNTAsIDEwMCwgMjAwLCAzMDAsIDQwMCwgNTAwLCA2MDAsIDcwMCwgODAwLCA5MDAuXG5cbiRwYWxldHRlLWJyb3duOlxuXCIyMzksMjM1LDIzM1wiXG5cIjIxNSwyMDQsMjAwXCJcblwiMTg4LDE3MCwxNjRcIlxuXCIxNjEsMTM2LDEyN1wiXG5cIjE0MSwxMTAsOTlcIlxuXCIxMjEsODUsNzJcIlxuXCIxMDksNzYsNjVcIlxuXCI5Myw2NCw1NVwiXG5cIjc4LDUyLDQ2XCJcblwiNjIsMzksMzVcIjtcblxuJHBhbGV0dGUtYnJvd24tNTA6IG50aCgkcGFsZXR0ZS1icm93biwgMSk7XG4kcGFsZXR0ZS1icm93bi0xMDA6IG50aCgkcGFsZXR0ZS1icm93biwgMik7XG4kcGFsZXR0ZS1icm93bi0yMDA6IG50aCgkcGFsZXR0ZS1icm93biwgMyk7XG4kcGFsZXR0ZS1icm93bi0zMDA6IG50aCgkcGFsZXR0ZS1icm93biwgNCk7XG4kcGFsZXR0ZS1icm93bi00MDA6IG50aCgkcGFsZXR0ZS1icm93biwgNSk7XG4kcGFsZXR0ZS1icm93bi01MDA6IG50aCgkcGFsZXR0ZS1icm93biwgNik7XG4kcGFsZXR0ZS1icm93bi02MDA6IG50aCgkcGFsZXR0ZS1icm93biwgNyk7XG4kcGFsZXR0ZS1icm93bi03MDA6IG50aCgkcGFsZXR0ZS1icm93biwgOCk7XG4kcGFsZXR0ZS1icm93bi04MDA6IG50aCgkcGFsZXR0ZS1icm93biwgOSk7XG4kcGFsZXR0ZS1icm93bi05MDA6IG50aCgkcGFsZXR0ZS1icm93biwgMTApO1xuXG4kcGFsZXR0ZS1ncmV5OlxuXCIyNTAsMjUwLDI1MFwiXG5cIjI0NSwyNDUsMjQ1XCJcblwiMjM4LDIzOCwyMzhcIlxuXCIyMjQsMjI0LDIyNFwiXG5cIjE4OSwxODksMTg5XCJcblwiMTU4LDE1OCwxNThcIlxuXCIxMTcsMTE3LDExN1wiXG5cIjk3LDk3LDk3XCJcblwiNjYsNjYsNjZcIlxuXCIzMywzMywzM1wiO1xuXG4kcGFsZXR0ZS1ncmV5LTUwOiBudGgoJHBhbGV0dGUtZ3JleSwgMSk7XG4kcGFsZXR0ZS1ncmV5LTEwMDogbnRoKCRwYWxldHRlLWdyZXksIDIpO1xuJHBhbGV0dGUtZ3JleS0yMDA6IG50aCgkcGFsZXR0ZS1ncmV5LCAzKTtcbiRwYWxldHRlLWdyZXktMzAwOiBudGgoJHBhbGV0dGUtZ3JleSwgNCk7XG4kcGFsZXR0ZS1ncmV5LTQwMDogbnRoKCRwYWxldHRlLWdyZXksIDUpO1xuJHBhbGV0dGUtZ3JleS01MDA6IG50aCgkcGFsZXR0ZS1ncmV5LCA2KTtcbiRwYWxldHRlLWdyZXktNjAwOiBudGgoJHBhbGV0dGUtZ3JleSwgNyk7XG4kcGFsZXR0ZS1ncmV5LTcwMDogbnRoKCRwYWxldHRlLWdyZXksIDgpO1xuJHBhbGV0dGUtZ3JleS04MDA6IG50aCgkcGFsZXR0ZS1ncmV5LCA5KTtcbiRwYWxldHRlLWdyZXktOTAwOiBudGgoJHBhbGV0dGUtZ3JleSwgMTApO1xuXG4kcGFsZXR0ZS1ibHVlLWdyZXk6XG5cIjIzNiwyMzksMjQxXCJcblwiMjA3LDIxNiwyMjBcIlxuXCIxNzYsMTkwLDE5N1wiXG5cIjE0NCwxNjQsMTc0XCJcblwiMTIwLDE0NCwxNTZcIlxuXCI5NiwxMjUsMTM5XCJcblwiODQsMTEwLDEyMlwiXG5cIjY5LDkwLDEwMFwiXG5cIjU1LDcxLDc5XCJcblwiMzgsNTAsNTZcIjtcblxuJHBhbGV0dGUtYmx1ZS1ncmV5LTUwOiBudGgoJHBhbGV0dGUtYmx1ZS1ncmV5LCAxKTtcbiRwYWxldHRlLWJsdWUtZ3JleS0xMDA6IG50aCgkcGFsZXR0ZS1ibHVlLWdyZXksIDIpO1xuJHBhbGV0dGUtYmx1ZS1ncmV5LTIwMDogbnRoKCRwYWxldHRlLWJsdWUtZ3JleSwgMyk7XG4kcGFsZXR0ZS1ibHVlLWdyZXktMzAwOiBudGgoJHBhbGV0dGUtYmx1ZS1ncmV5LCA0KTtcbiRwYWxldHRlLWJsdWUtZ3JleS00MDA6IG50aCgkcGFsZXR0ZS1ibHVlLWdyZXksIDUpO1xuJHBhbGV0dGUtYmx1ZS1ncmV5LTUwMDogbnRoKCRwYWxldHRlLWJsdWUtZ3JleSwgNik7XG4kcGFsZXR0ZS1ibHVlLWdyZXktNjAwOiBudGgoJHBhbGV0dGUtYmx1ZS1ncmV5LCA3KTtcbiRwYWxldHRlLWJsdWUtZ3JleS03MDA6IG50aCgkcGFsZXR0ZS1ibHVlLWdyZXksIDgpO1xuJHBhbGV0dGUtYmx1ZS1ncmV5LTgwMDogbnRoKCRwYWxldHRlLWJsdWUtZ3JleSwgOSk7XG4kcGFsZXR0ZS1ibHVlLWdyZXktOTAwOiBudGgoJHBhbGV0dGUtYmx1ZS1ncmV5LCAxMCk7XG5cbiRjb2xvci1ibGFjazogXCIwLDAsMFwiO1xuJGNvbG9yLXdoaXRlOiBcIjI1NSwyNTUsMjU1XCI7XG5cblxuLyogY29sb3JzLnNjc3MgKi9cbiRzdHlsZWd1aWRlLWdlbmVyYXRlLXRlbXBsYXRlOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gVGhlIHR3byBwb3NzaWJsZSBjb2xvcnMgZm9yIG92ZXJsYXllZCB0ZXh0LlxuJGNvbG9yLWRhcmstY29udHJhc3Q6ICRjb2xvci13aGl0ZSAhZGVmYXVsdDtcbiRjb2xvci1saWdodC1jb250cmFzdDogJGNvbG9yLWJsYWNrICFkZWZhdWx0O1xuIiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuQGZ1bmN0aW9uIHN0cmlwLXVuaXRzKCRudW1iZXIpIHtcbiAgQHJldHVybiAkbnVtYmVyIC8gKCRudW1iZXIgKiAwICsgMSk7XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKiBUeXBvZ3JhcGh5ICovXG5cbkBtaXhpbiB0eXBvLXByZWZlcnJlZC1mb250KCR1c2VQcmVmZXJyZWQ6IHRydWUpIHtcbiAgQGlmICR1c2VQcmVmZXJyZWQge1xuICAgIGZvbnQtZmFtaWx5OiAkcHJlZmVycmVkX2ZvbnQ7XG4gIH1cbn1cblxuQG1peGluIHR5cG8tZGlzcGxheS00KCRjb2xvckNvbnRyYXN0OiBmYWxzZSwgJHVzZVByZWZlcnJlZDogdHJ1ZSkge1xuICBAaW5jbHVkZSB0eXBvLXByZWZlcnJlZC1mb250KCR1c2VQcmVmZXJyZWQpO1xuICBmb250LXNpemU6IDExMnB4O1xuICBmb250LXdlaWdodDogMzAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjA0ZW07XG5cbiAgQGlmICRjb2xvckNvbnRyYXN0IHtcbiAgICBvcGFjaXR5OiAwLjU0O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLWRpc3BsYXktMygkY29sb3JDb250cmFzdDogZmFsc2UsICR1c2VQcmVmZXJyZWQ6IHRydWUpIHtcbiAgQGluY2x1ZGUgdHlwby1wcmVmZXJyZWQtZm9udCgkdXNlUHJlZmVycmVkKTtcbiAgZm9udC1zaXplOiA1NnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4zNTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG5cbiAgQGlmICRjb2xvckNvbnRyYXN0IHtcbiAgICBvcGFjaXR5OiAwLjU0O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLWRpc3BsYXktMigkY29sb3JDb250cmFzdDogZmFsc2UsICR1c2VQcmVmZXJyZWQ6IHRydWUpIHtcbiAgQGluY2x1ZGUgdHlwby1wcmVmZXJyZWQtZm9udCgkdXNlUHJlZmVycmVkKTtcbiAgZm9udC1zaXplOiA0NXB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogNDhweDtcblxuICBAaWYgJGNvbG9yQ29udHJhc3Qge1xuICAgIG9wYWNpdHk6IDAuNTQ7XG4gIH1cbn1cblxuQG1peGluIHR5cG8tZGlzcGxheS0xKCRjb2xvckNvbnRyYXN0OiBmYWxzZSwgJHVzZVByZWZlcnJlZDogdHJ1ZSkge1xuICBAaW5jbHVkZSB0eXBvLXByZWZlcnJlZC1mb250KCR1c2VQcmVmZXJyZWQpO1xuICBmb250LXNpemU6IDM0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiA0MHB4O1xuXG4gIEBpZiAkY29sb3JDb250cmFzdCB7XG4gICAgb3BhY2l0eTogMC41NDtcbiAgfVxufVxuXG5AbWl4aW4gdHlwby1oZWFkbGluZSgkY29sb3JDb250cmFzdDogZmFsc2UsICR1c2VQcmVmZXJyZWQ6IHRydWUpIHtcbiAgQGluY2x1ZGUgdHlwby1wcmVmZXJyZWQtZm9udCgkdXNlUHJlZmVycmVkKTtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMzJweDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcblxuICBAaWYgJGNvbG9yQ29udHJhc3Qge1xuICAgIG9wYWNpdHk6IDAuODc7XG4gIH1cbn1cblxuQG1peGluIHR5cG8tdGl0bGUoJGNvbG9yQ29udHJhc3Q6IGZhbHNlLCAkdXNlUHJlZmVycmVkOiB0cnVlKSB7XG4gIEBpbmNsdWRlIHR5cG8tcHJlZmVycmVkLWZvbnQoJHVzZVByZWZlcnJlZCk7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG5cbiAgQGlmICRjb2xvckNvbnRyYXN0IHtcbiAgICBvcGFjaXR5OiAwLjg3O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLXN1YmhlYWQoJGNvbG9yQ29udHJhc3Q6IGZhbHNlLCAkdXNlUHJlZmVycmVkOiB0cnVlKSB7XG4gIEBpbmNsdWRlIHR5cG8tcHJlZmVycmVkLWZvbnQoJHVzZVByZWZlcnJlZCk7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG5cbiAgQGlmICRjb2xvckNvbnRyYXN0IHtcbiAgICBvcGFjaXR5OiAwLjg3O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLXN1YmhlYWQtMigkY29sb3JDb250cmFzdDogZmFsc2UsICR1c2VQcmVmZXJyZWQ6IHRydWUpIHtcbiAgQGluY2x1ZGUgdHlwby1wcmVmZXJyZWQtZm9udCgkdXNlUHJlZmVycmVkKTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjhweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcblxuICBAaWYgJGNvbG9yQ29udHJhc3Qge1xuICAgIG9wYWNpdHk6IDAuODc7XG4gIH1cbn1cblxuQG1peGluIHR5cG8tYm9keS0yKCRjb2xvckNvbnRyYXN0OiBmYWxzZSwgJHVzZVByZWZlcnJlZDogZmFsc2UpIHtcbiAgQGluY2x1ZGUgdHlwby1wcmVmZXJyZWQtZm9udCgkdXNlUHJlZmVycmVkKTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBAaWYgJHVzZVByZWZlcnJlZCB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgfSBAZWxzZSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuXG4gIEBpZiAkY29sb3JDb250cmFzdCB7XG4gICAgb3BhY2l0eTogMC44NztcbiAgfVxufVxuXG5AbWl4aW4gdHlwby1ib2R5LTEoJGNvbG9yQ29udHJhc3Q6IGZhbHNlLCAkdXNlUHJlZmVycmVkOiBmYWxzZSkge1xuICBAaW5jbHVkZSB0eXBvLXByZWZlcnJlZC1mb250KCR1c2VQcmVmZXJyZWQpO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMDtcblxuICBAaWYgJGNvbG9yQ29udHJhc3Qge1xuICAgIG9wYWNpdHk6IDAuODc7XG4gIH1cbn1cblxuQG1peGluIHR5cG8tY2FwdGlvbigkY29sb3JDb250cmFzdDogZmFsc2UsICR1c2VQcmVmZXJyZWQ6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIHR5cG8tcHJlZmVycmVkLWZvbnQoJHVzZVByZWZlcnJlZCk7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuXG4gIEBpZiAkY29sb3JDb250cmFzdCB7XG4gICAgb3BhY2l0eTogMC41NDtcbiAgfVxufVxuXG5AbWl4aW4gdHlwby1ibG9ja3F1b3RlKCRjb2xvckNvbnRyYXN0OiBmYWxzZSwgJHVzZVByZWZlcnJlZDogdHJ1ZSkge1xuICBAaW5jbHVkZSB0eXBvLXByZWZlcnJlZC1mb250KCR1c2VQcmVmZXJyZWQpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBsaW5lLWhlaWdodDogMS4zNTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcblxuICAmOmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IC0wLjVlbTtcbiAgICBjb250ZW50OiAn4oCcJztcbiAgfVxuXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICfigJ0nO1xuICAgIG1hcmdpbi1sZWZ0OiAtMC4wNWVtO1xuICB9XG5cbiAgQGlmICRjb2xvckNvbnRyYXN0IHtcbiAgICBvcGFjaXR5OiAwLjU0O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLW1lbnUoJGNvbG9yQ29udHJhc3Q6IGZhbHNlLCAkdXNlUHJlZmVycmVkOiB0cnVlKSB7XG4gIEBpbmNsdWRlIHR5cG8tcHJlZmVycmVkLWZvbnQoJHVzZVByZWZlcnJlZCk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuXG4gIEBpZiAkY29sb3JDb250cmFzdCB7XG4gICAgb3BhY2l0eTogMC44NztcbiAgfVxufVxuXG5AbWl4aW4gdHlwby1idXR0b24oJGNvbG9yQ29udHJhc3Q6IGZhbHNlLCAkdXNlUHJlZmVycmVkOiB0cnVlKSB7XG4gIEBpbmNsdWRlIHR5cG8tcHJlZmVycmVkLWZvbnQoJHVzZVByZWZlcnJlZCk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuXG4gIEBpZiAkY29sb3JDb250cmFzdCB7XG4gICAgb3BhY2l0eTogMC44NztcbiAgfVxufVxuXG4vKiBTaGFkb3dzICovXG5cbi8vIEZvY3VzIHNoYWRvdyBtaXhpbi5cbkBtaXhpbiBmb2N1cy1zaGFkb3coKSB7XG4gIGJveC1zaGFkb3c6IDAgMCA4cHggcmdiYSgwLDAsMCwuMTgpLDAgOHB4IDE2cHggcmdiYSgwLDAsMCwuMzYpO1xufVxuXG5AbWl4aW4gc2hhZG93LTJkcCgpIHtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAkc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5KSxcbiAgICAgICAgICAgICAgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAkc2hhZG93LWtleS11bWJyYS1vcGFjaXR5KSxcbiAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAkc2hhZG93LWFtYmllbnQtc2hhZG93LW9wYWNpdHkpO1xufVxuQG1peGluIHNoYWRvdy0zZHAoKSB7XG4gIGJveC1zaGFkb3c6IDAgM3B4IDRweCAwIHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSksXG4gICAgICAgICAgICAgIDAgM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSksXG4gICAgICAgICAgICAgIDAgMXB4IDhweCAwIHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1hbWJpZW50LXNoYWRvdy1vcGFjaXR5KTtcbn1cbkBtaXhpbiBzaGFkb3ctNGRwKCkge1xuICBib3gtc2hhZG93OiAwIDRweCA1cHggMCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHkpLFxuICAgICAgICAgICAgICAwIDFweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAkc2hhZG93LWFtYmllbnQtc2hhZG93LW9wYWNpdHkpLFxuICAgICAgICAgICAgICAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXVtYnJhLW9wYWNpdHkpO1xufVxuQG1peGluIHNoYWRvdy02ZHAoKSB7XG4gIGJveC1zaGFkb3c6IDAgNnB4IDEwcHggMCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHkpLFxuICAgICAgICAgICAgICAwIDFweCAxOHB4IDAgcmdiYSgwLCAwLCAwLCAkc2hhZG93LWFtYmllbnQtc2hhZG93LW9wYWNpdHkpLFxuICAgICAgICAgICAgICAwIDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXVtYnJhLW9wYWNpdHkpO1xufVxuQG1peGluIHNoYWRvdy04ZHAoKSB7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSksXG4gICAgICAgICAgICAgIDAgM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1hbWJpZW50LXNoYWRvdy1vcGFjaXR5KSxcbiAgICAgICAgICAgICAgMCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAkc2hhZG93LWtleS11bWJyYS1vcGFjaXR5KTtcbn1cblxuQG1peGluIHNoYWRvdy0xNmRwKCkge1xuICBib3gtc2hhZG93OiAwIDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAkc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5KSxcbiAgICAgICAgICAgICAgMCAgNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1hbWJpZW50LXNoYWRvdy1vcGFjaXR5KSxcbiAgICAgICAgICAgICAgMCAgOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXVtYnJhLW9wYWNpdHkpO1xufVxuXG4vKiBBbmltYXRpb25zICovXG5cbkBtaXhpbiBtYXRlcmlhbC1hbmltYXRpb24tZmFzdC1vdXQtc2xvdy1pbigkZHVyYXRpb246MC4ycykge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkYW5pbWF0aW9uLWN1cnZlLWZhc3Qtb3V0LXNsb3ctaW47XG59XG5cbkBtaXhpbiBtYXRlcmlhbC1hbmltYXRpb24tbGluZWFyLW91dC1zbG93LWluKCRkdXJhdGlvbjowLjJzKSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246ICRkdXJhdGlvbjtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICRhbmltYXRpb24tY3VydmUtbGluZWFyLW91dC1zbG93LWluO1xufVxuXG5AbWl4aW4gbWF0ZXJpYWwtYW5pbWF0aW9uLWZhc3Qtb3V0LWxpbmVhci1pbigkZHVyYXRpb246MC4ycykge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkYW5pbWF0aW9uLWN1cnZlLWZhc3Qtb3V0LWxpbmVhci1pbjtcbn1cblxuQG1peGluIG1hdGVyaWFsLWFuaW1hdGlvbi1kZWZhdWx0KCRkdXJhdGlvbjowLjJzKSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246ICRkdXJhdGlvbjtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICRhbmltYXRpb24tY3VydmUtZGVmYXVsdDtcbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbkBpbXBvcnQgXCJoNWJwXCI7XG5AaW1wb3J0IFwibW9iaWxlXCI7XG5cbi8qXG4gKiBNYWtlIGh0bWwgdGFrZSB1cCB0aGUgZW50aXJlIHNjcmVlblxuICogVGhlbiBzZXQgdG91Y2gtYWN0aW9uIHRvIGF2b2lkIHRvdWNoIGRlbGF5IG9uIG1vYmlsZSBJRVxuICovXG5odG1sIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgLW1zLXRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbn1cblxuLypcbiogTWFrZSBib2R5IHRha2UgdXAgdGhlIGVudGlyZSBzY3JlZW5cbiogUmVtb3ZlIGJvZHkgbWFyZ2luIHNvIGxheW91dCBjb250YWluZXJzIGRvbid0IGNhdXNlIGV4dHJhIG92ZXJmbG93LlxuKi9cbmJvZHkge1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKlxuICogTWFpbiBkaXNwbGF5IHJlc2V0IGZvciBJRSBzdXBwb3J0LlxuICogU291cmNlOiBodHRwOi8vd2VibG9nLndlc3Qtd2luZC5jb20vcG9zdHMvMjAxNS9KYW4vMTIvbWFpbi1IVE1MNS1UYWctbm90LXdvcmtpbmctaW4tSW50ZXJuZXQtRXhwbG9yZXItOTEwMTFcbiAqL1xubWFpbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuKiBBcHBseSBubyBkaXNwbGF5IHRvIGVsZW1lbnRzIHdpdGggdGhlIGhpZGRlbiBhdHRyaWJ1dGUuXG4qIElFIDkgYW5kIDEwIHN1cHBvcnQuXG4qL1xuKltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuXG4vKlxuICogV2hhdCBmb2xsb3dzIGlzIHRoZSByZXN1bHQgb2YgbXVjaCByZXNlYXJjaCBvbiBjcm9zcy1icm93c2VyIHN0eWxpbmcuXG4gKiBDcmVkaXQgbGVmdCBpbmxpbmUgYW5kIGJpZyB0aGFua3MgdG8gTmljb2xhcyBHYWxsYWdoZXIsIEpvbmF0aGFuIE5lYWwsXG4gKiBLcm9jIENhbWVuLCBhbmQgdGhlIEg1QlAgZGV2IGNvbW11bml0eSBhbmQgdGVhbS5cbiAqL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQmFzZSBzdHlsZXM6IG9waW5pb25hdGVkIGRlZmF1bHRzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5odG1sIHtcbiAgICBjb2xvcjogJHRleHQtY29sb3ItcHJpbWFyeTtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xufVxuXG4vKlxuICogUmVtb3ZlIHRleHQtc2hhZG93IGluIHNlbGVjdGlvbiBoaWdobGlnaHQ6XG4gKiBodHRwczovL3R3aXR0ZXIuY29tL21pa2V0YXlsci9zdGF0dXMvMTIyMjg4MDUzMDFcbiAqXG4gKiBUaGVzZSBzZWxlY3Rpb24gcnVsZSBzZXRzIGhhdmUgdG8gYmUgc2VwYXJhdGUuXG4gKiBDdXN0b21pemUgdGhlIGJhY2tncm91bmQgY29sb3IgdG8gbWF0Y2ggeW91ciBkZXNpZ24uXG4gKi9cblxuOjpzZWxlY3Rpb24ge1xuICAgIGJhY2tncm91bmQ6ICNiM2Q0ZmM7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG5cbi8qXG4gKiBBIGJldHRlciBsb29raW5nIGRlZmF1bHQgaG9yaXpvbnRhbCBydWxlXG4gKi9cblxuaHIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMXB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcbiAgICBtYXJnaW46IDFlbSAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi8qXG4gKiBSZW1vdmUgdGhlIGdhcCBiZXR3ZWVuIGF1ZGlvLCBjYW52YXMsIGlmcmFtZXMsXG4gKiBpbWFnZXMsIHZpZGVvcyBhbmQgdGhlIGJvdHRvbSBvZiB0aGVpciBjb250YWluZXJzOlxuICogaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvaXNzdWVzLzQ0MFxuICovXG5cbmF1ZGlvLFxuY2FudmFzLFxuaWZyYW1lLFxuaW1nLFxuc3ZnLFxudmlkZW8ge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qXG4gKiBSZW1vdmUgZGVmYXVsdCBmaWVsZHNldCBzdHlsZXMuXG4gKi9cblxuZmllbGRzZXQge1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLypcbiAqIEFsbG93IG9ubHkgdmVydGljYWwgcmVzaXppbmcgb2YgdGV4dGFyZWFzLlxuICovXG5cbnRleHRhcmVhIHtcbiAgICByZXNpemU6IHZlcnRpY2FsO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQnJvd3NlciBVcGdyYWRlIFByb21wdFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmJyb3dzZXJ1cGdyYWRlIHtcbiAgICBtYXJnaW46IDAuMmVtIDA7XG4gICAgYmFja2dyb3VuZDogI2NjYztcbiAgICBjb2xvcjogIzAwMDtcbiAgICBwYWRkaW5nOiAwLjJlbSAwO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQXV0aG9yJ3MgY3VzdG9tIHN0eWxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgSGVscGVyIGNsYXNzZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBIaWRlIHZpc3VhbGx5IGFuZCBmcm9tIHNjcmVlbiByZWFkZXJzOlxuICovXG5cbi5oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLypcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqL1xuXG4udmlzdWFsbHloaWRkZW4ge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG59XG5cbi8qXG4gKiBFeHRlbmRzIHRoZSAudmlzdWFsbHloaWRkZW4gY2xhc3MgdG8gYWxsb3cgdGhlIGVsZW1lbnRcbiAqIHRvIGJlIGZvY3VzYWJsZSB3aGVuIG5hdmlnYXRlZCB0byB2aWEgdGhlIGtleWJvYXJkOlxuICogaHR0cHM6Ly93d3cuZHJ1cGFsLm9yZy9ub2RlLzg5NzYzOFxuICovXG5cbi52aXN1YWxseWhpZGRlbi5mb2N1c2FibGU6YWN0aXZlLFxuLnZpc3VhbGx5aGlkZGVuLmZvY3VzYWJsZTpmb2N1cyB7XG4gICAgY2xpcDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgd2lkdGg6IGF1dG87XG59XG5cbi8qXG4gKiBIaWRlIHZpc3VhbGx5IGFuZCBmcm9tIHNjcmVlbiByZWFkZXJzLCBidXQgbWFpbnRhaW4gbGF5b3V0XG4gKi9cblxuLmludmlzaWJsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vKlxuICogQ2xlYXJmaXg6IGNvbnRhaW4gZmxvYXRzXG4gKlxuICogRm9yIG1vZGVybiBicm93c2Vyc1xuICogMS4gVGhlIHNwYWNlIGNvbnRlbnQgaXMgb25lIHdheSB0byBhdm9pZCBhbiBPcGVyYSBidWcgd2hlbiB0aGVcbiAqICAgIGBjb250ZW50ZWRpdGFibGVgIGF0dHJpYnV0ZSBpcyBpbmNsdWRlZCBhbnl3aGVyZSBlbHNlIGluIHRoZSBkb2N1bWVudC5cbiAqICAgIE90aGVyd2lzZSBpdCBjYXVzZXMgc3BhY2UgdG8gYXBwZWFyIGF0IHRoZSB0b3AgYW5kIGJvdHRvbSBvZiBlbGVtZW50c1xuICogICAgdGhhdCByZWNlaXZlIHRoZSBgY2xlYXJmaXhgIGNsYXNzLlxuICogMi4gVGhlIHVzZSBvZiBgdGFibGVgIHJhdGhlciB0aGFuIGBibG9ja2AgaXMgb25seSBuZWNlc3NhcnkgaWYgdXNpbmdcbiAqICAgIGA6YmVmb3JlYCB0byBjb250YWluIHRoZSB0b3AtbWFyZ2lucyBvZiBjaGlsZCBlbGVtZW50cy5cbiAqL1xuXG4uY2xlYXJmaXg6YmVmb3JlLFxuLmNsZWFyZml4OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiBcIjsgLyogMSAqL1xuICAgIGRpc3BsYXk6IHRhYmxlOyAvKiAyICovXG59XG5cbi5jbGVhcmZpeDphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBFWEFNUExFIE1lZGlhIFF1ZXJpZXMgZm9yIFJlc3BvbnNpdmUgRGVzaWduLlxuICAgVGhlc2UgZXhhbXBsZXMgb3ZlcnJpZGUgdGhlIHByaW1hcnkgKCdtb2JpbGUgZmlyc3QnKSBzdHlsZXMuXG4gICBNb2RpZnkgYXMgY29udGVudCByZXF1aXJlcy5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzVlbSkge1xuICAgIC8qIFN0eWxlIGFkanVzdG1lbnRzIGZvciB2aWV3cG9ydHMgdGhhdCBtZWV0IHRoZSBjb25kaXRpb24gKi9cbn1cblxuQG1lZGlhIHByaW50LFxuICAgICAgIChtaW4tcmVzb2x1dGlvbjogMS4yNWRwcHgpLFxuICAgICAgIChtaW4tcmVzb2x1dGlvbjogMTIwZHBpKSB7XG4gICAgLyogU3R5bGUgYWRqdXN0bWVudHMgZm9yIGhpZ2ggcmVzb2x1dGlvbiBkZXZpY2VzICovXG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQcmludCBzdHlsZXMuXG4gICBJbmxpbmVkIHRvIGF2b2lkIHRoZSBhZGRpdGlvbmFsIEhUVFAgcmVxdWVzdDpcbiAgIGh0dHA6Ly93d3cucGhwaWVkLmNvbS9kZWxheS1sb2FkaW5nLXlvdXItcHJpbnQtY3NzL1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuQG1lZGlhIHByaW50IHtcbiAgICAqLFxuICAgICo6YmVmb3JlLFxuICAgICo6YWZ0ZXIsXG4gICAgKjpmaXJzdC1sZXR0ZXIsXG4gICAgKjpmaXJzdC1saW5lIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsgLyogQmxhY2sgcHJpbnRzIGZhc3RlcjogaHR0cDovL3d3dy5zYW5iZWlqaS5jb20vYXJjaGl2ZXMvOTUzICovXG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBhLFxuICAgIGE6dmlzaXRlZCB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cblxuICAgIGFbaHJlZl06YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjtcbiAgICB9XG5cbiAgICBhYmJyW3RpdGxlXTphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjtcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIERvbid0IHNob3cgbGlua3MgdGhhdCBhcmUgZnJhZ21lbnQgaWRlbnRpZmllcnMsXG4gICAgICogb3IgdXNlIHRoZSBgamF2YXNjcmlwdDpgIHBzZXVkbyBwcm90b2NvbFxuICAgICAqL1xuXG4gICAgYVtocmVmXj1cIiNcIl06YWZ0ZXIsXG4gICAgYVtocmVmXj1cImphdmFzY3JpcHQ6XCJdOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICB9XG5cbiAgICBwcmUsXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIFByaW50aW5nIFRhYmxlczpcbiAgICAgKiBodHRwOi8vY3NzLWRpc2N1c3MuaW5jdXRpby5jb20vd2lraS9QcmludGluZ19UYWJsZXNcbiAgICAgKi9cblxuICAgIHRoZWFkIHtcbiAgICAgICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwO1xuICAgIH1cblxuICAgIHRyLFxuICAgIGltZyB7XG4gICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBwLFxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgICAgb3JwaGFuczogMztcbiAgICAgICAgd2lkb3dzOiAzO1xuICAgIH1cblxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuXG4vKiBSZW1vdmUgdGhlIHVud2FudGVkIGJveCBhcm91bmQgRkFCIGJ1dHRvbnMgKi9cbi8qIE1vcmUgaW5mbzogaHR0cDovL2dvby5nbC9JUHdLaSAqL1xuYSwgLm1kbC1hY2NvcmRpb24sIC5tZGwtYnV0dG9uLCAubWRsLWNhcmQsIC5tZGwtY2hlY2tib3gsIC5tZGwtZHJvcGRvd24tbWVudSxcbi5tZGwtaWNvbi10b2dnbGUsIC5tZGwtaXRlbSwgLm1kbC1yYWRpbywgLm1kbC1zbGlkZXIsIC5tZGwtc3dpdGNoLCAubWRsLXRhYnNfX3RhYiB7XG5cbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcblxuQGlmICR0YXJnZXQtZWxlbWVudHMtZGlyZWN0bHkgPT0gdHJ1ZSB7XG4gIGh0bWwsIGJvZHkge1xuICAgIGZvbnQtZmFtaWx5OiAkcGVyZm9ybWFuY2VfZm9udDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgfVxuXG4gIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLyoqXG4gICogU3R5bGVzIGZvciBIVE1MIGVsZW1lbnRzXG4gICovXG5cbiAgaDEgc21hbGwsIGgyIHNtYWxsLCBoMyBzbWFsbCwgaDQgc21hbGwsIGg1IHNtYWxsLCBoNiBzbWFsbCB7XG4gICAgQGluY2x1ZGUgdHlwby1kaXNwbGF5LTMoJGNvbG9yQ29udHJhc3Q6IHRydWUpO1xuXG4gICAgZm9udC1zaXplOiAwLjZlbTtcbiAgfVxuXG4gIGgxIHtcbiAgICBAaW5jbHVkZSB0eXBvLWRpc3BsYXktMztcblxuICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgfVxuXG4gIGgyIHtcbiAgICBAaW5jbHVkZSB0eXBvLWRpc3BsYXktMjtcblxuICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgfVxuXG4gIGgzIHtcbiAgICBAaW5jbHVkZSB0eXBvLWRpc3BsYXktMTtcblxuICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgfVxuXG4gIGg0IHtcbiAgICBAaW5jbHVkZSB0eXBvLWhlYWRsaW5lO1xuXG4gICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICB9XG5cbiAgaDUge1xuICAgIEBpbmNsdWRlIHR5cG8tdGl0bGU7XG5cbiAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIH1cblxuICBoNiB7XG4gICAgQGluY2x1ZGUgdHlwby1zdWJoZWFkO1xuXG4gICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICB9XG5cbiAgcCB7XG4gICAgQGluY2x1ZGUgdHlwby1ib2R5LTE7XG5cbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICB9XG5cbiAgYSB7XG4gICAgY29sb3I6ICR0ZXh0LWxpbmstY29sb3I7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgfVxuXG4gIGJsb2NrcXVvdGUge1xuICAgIEBpbmNsdWRlIHR5cG8tYmxvY2txdW90ZTtcbiAgfVxuXG4gIG1hcmsge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNGZmODE7XG4gIH1cblxuICBkdCB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgfVxuXG4gIGFkZHJlc3Mge1xuICAgIEBpbmNsdWRlIHR5cG8tY2FwdGlvbjtcblxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgfVxuXG4gIHVsLCBvbCB7XG4gICAgQGluY2x1ZGUgdHlwby1ib2R5LTE7XG4gIH1cbn1cblxuLyoqXG4gKiBDbGFzcyBOYW1lIFN0eWxlc1xuICovXG5cbi5tZGwtdHlwb2dyYXBoeS0tZGlzcGxheS00IHtcbiAgQGluY2x1ZGUgdHlwby1kaXNwbGF5LTQ7XG59XG5cbi5tZGwtdHlwb2dyYXBoeS0tZGlzcGxheS00LWNvbG9yLWNvbnRyYXN0IHtcbiAgQGluY2x1ZGUgdHlwby1kaXNwbGF5LTQoJGNvbG9yQ29udHJhc3Q6IHRydWUpO1xufVxuXG4ubWRsLXR5cG9ncmFwaHktLWRpc3BsYXktMyB7XG4gIEBpbmNsdWRlIHR5cG8tZGlzcGxheS0zO1xufVxuXG4ubWRsLXR5cG9ncmFwaHktLWRpc3BsYXktMy1jb2xvci1jb250cmFzdCB7XG4gIEBpbmNsdWRlIHR5cG8tZGlzcGxheS0zKCRjb2xvckNvbnRyYXN0OiB0cnVlKTtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS1kaXNwbGF5LTIge1xuICBAaW5jbHVkZSB0eXBvLWRpc3BsYXktMjtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS1kaXNwbGF5LTItY29sb3ItY29udHJhc3Qge1xuICBAaW5jbHVkZSB0eXBvLWRpc3BsYXktMigkY29sb3JDb250cmFzdDogdHJ1ZSk7XG59XG5cbi5tZGwtdHlwb2dyYXBoeS0tZGlzcGxheS0xIHtcbiAgQGluY2x1ZGUgdHlwby1kaXNwbGF5LTE7XG59XG5cbi5tZGwtdHlwb2dyYXBoeS0tZGlzcGxheS0xLWNvbG9yLWNvbnRyYXN0IHtcbiAgQGluY2x1ZGUgdHlwby1kaXNwbGF5LTEoJGNvbG9yQ29udHJhc3Q6IHRydWUpO1xufVxuXG4ubWRsLXR5cG9ncmFwaHktLWhlYWRsaW5lIHtcbiAgQGluY2x1ZGUgdHlwby1oZWFkbGluZTtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS1oZWFkbGluZS1jb2xvci1jb250cmFzdCB7XG4gIEBpbmNsdWRlIHR5cG8taGVhZGxpbmUoJGNvbG9yQ29udHJhc3Q6IHRydWUpO1xufVxuXG4ubWRsLXR5cG9ncmFwaHktLXRpdGxlIHtcbiAgQGluY2x1ZGUgdHlwby10aXRsZTtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS10aXRsZS1jb2xvci1jb250cmFzdCB7XG4gIEBpbmNsdWRlIHR5cG8tdGl0bGUoJGNvbG9yQ29udHJhc3Q6IHRydWUpO1xufVxuXG4ubWRsLXR5cG9ncmFwaHktLXN1YmhlYWQge1xuICBAaW5jbHVkZSB0eXBvLXN1YmhlYWQ7XG59XG5cbi5tZGwtdHlwb2dyYXBoeS0tc3ViaGVhZC1jb2xvci1jb250cmFzdCB7XG4gIEBpbmNsdWRlIHR5cG8tc3ViaGVhZCgkY29sb3JDb250cmFzdDogdHJ1ZSk7XG59XG5cbi5tZGwtdHlwb2dyYXBoeS0tYm9keS0yIHtcbiAgQGluY2x1ZGUgdHlwby1ib2R5LTI7XG59XG5cbi5tZGwtdHlwb2dyYXBoeS0tYm9keS0yLWNvbG9yLWNvbnRyYXN0IHtcbiAgQGluY2x1ZGUgdHlwby1ib2R5LTIoJGNvbG9yQ29udHJhc3Q6IHRydWUpO1xufVxuXG4ubWRsLXR5cG9ncmFwaHktLWJvZHktMSB7XG4gIEBpbmNsdWRlIHR5cG8tYm9keS0xO1xufVxuXG4ubWRsLXR5cG9ncmFwaHktLWJvZHktMS1jb2xvci1jb250cmFzdCB7XG4gIEBpbmNsdWRlIHR5cG8tYm9keS0xKCRjb2xvckNvbnRyYXN0OiB0cnVlKTtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS1ib2R5LTItZm9yY2UtcHJlZmVycmVkLWZvbnQge1xuICBAaW5jbHVkZSB0eXBvLWJvZHktMigkdXNlUHJlZmVycmVkOiB0cnVlKTtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS1ib2R5LTItZm9yY2UtcHJlZmVycmVkLWZvbnQtY29sb3ItY29udHJhc3Qge1xuICBAaW5jbHVkZSB0eXBvLWJvZHktMigkY29sb3JDb250cmFzdDogdHJ1ZSwgJHVzZVByZWZlcnJlZDogdHJ1ZSk7XG59XG5cbi5tZGwtdHlwb2dyYXBoeS0tYm9keS0xLWZvcmNlLXByZWZlcnJlZC1mb250IHtcbiAgQGluY2x1ZGUgdHlwby1ib2R5LTEoJHVzZVByZWZlcnJlZDogdHJ1ZSk7XG59XG5cbi5tZGwtdHlwb2dyYXBoeS0tYm9keS0xLWZvcmNlLXByZWZlcnJlZC1mb250LWNvbG9yLWNvbnRyYXN0IHtcbiAgQGluY2x1ZGUgdHlwby1ib2R5LTEoJGNvbG9yQ29udHJhc3Q6IHRydWUsICR1c2VQcmVmZXJyZWQ6IHRydWUpO1xufVxuXG4ubWRsLXR5cG9ncmFwaHktLWNhcHRpb24ge1xuICBAaW5jbHVkZSB0eXBvLWNhcHRpb247XG59XG5cbi5tZGwtdHlwb2dyYXBoeS0tY2FwdGlvbi1mb3JjZS1wcmVmZXJyZWQtZm9udCB7XG4gIEBpbmNsdWRlIHR5cG8tY2FwdGlvbigkdXNlUHJlZmVycmVkOiB0cnVlKTtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS1jYXB0aW9uLWNvbG9yLWNvbnRyYXN0IHtcbiAgQGluY2x1ZGUgdHlwby1jYXB0aW9uKCRjb2xvckNvbnRyYXN0OiB0cnVlKTtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS1jYXB0aW9uLWZvcmNlLXByZWZlcnJlZC1mb250LWNvbG9yLWNvbnRyYXN0IHtcbiAgQGluY2x1ZGUgdHlwby1jYXB0aW9uKCRjb2xvckNvbnRyYXN0OiB0cnVlLCAkdXNlUHJlZmVycmVkOiB0cnVlKTtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS1tZW51IHtcbiAgQGluY2x1ZGUgdHlwby1tZW51O1xufVxuXG4ubWRsLXR5cG9ncmFwaHktLW1lbnUtY29sb3ItY29udHJhc3Qge1xuICBAaW5jbHVkZSB0eXBvLW1lbnUoJGNvbG9yQ29udHJhc3Q6IHRydWUpO1xufVxuXG4ubWRsLXR5cG9ncmFwaHktLWJ1dHRvbiB7XG4gIEBpbmNsdWRlIHR5cG8tYnV0dG9uO1xufVxuXG4ubWRsLXR5cG9ncmFwaHktLWJ1dHRvbi1jb2xvci1jb250cmFzdCB7XG4gIEBpbmNsdWRlIHR5cG8tYnV0dG9uKCRjb2xvckNvbnRyYXN0OiB0cnVlKTtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS10ZXh0LWxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4ubWRsLXR5cG9ncmFwaHktLXRleHQtcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS10ZXh0LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS10ZXh0LWp1c3RpZnkge1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xufVxuXG4ubWRsLXR5cG9ncmFwaHktLXRleHQtbm93cmFwIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS10ZXh0LWxvd2VyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG59XG5cbi5tZGwtdHlwb2dyYXBoeS0tdGV4dC11cHBlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4ubWRsLXR5cG9ncmFwaHktLXRleHQtY2FwaXRhbGl6ZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuXG4ubWRsLXR5cG9ncmFwaHktLWZvbnQtdGhpbiB7XG4gIGZvbnQtd2VpZ2h0OiAyMDAgIWltcG9ydGFudDtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS1mb250LWxpZ2h0IHtcbiAgZm9udC13ZWlnaHQ6IDMwMCAhaW1wb3J0YW50O1xufVxuXG4ubWRsLXR5cG9ncmFwaHktLWZvbnQtcmVndWxhciB7XG4gIGZvbnQtd2VpZ2h0OiA0MDAgIWltcG9ydGFudDtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS1mb250LW1lZGl1bSB7XG4gIGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS1mb250LWJvbGQge1xuICBmb250LXdlaWdodDogNzAwICFpbXBvcnRhbnQ7XG59XG5cbi5tZGwtdHlwb2dyYXBoeS0tZm9udC1ibGFjayB7XG4gIGZvbnQtd2VpZ2h0OiA5MDAgIWltcG9ydGFudDtcbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcblxuQGlmICR0cmltLWNvbG9yLWNsYXNzZXMgPT0gZmFsc2Uge1xuICAvLyBSZWRcblxuICAubWRsLWNvbG9yLXRleHQtLXJlZCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1yZWQtNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXJlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1yZWQtNTAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcmVkLTUwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXJlZC01MCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXJlZC0xMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcmVkLTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1yZWQtMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcmVkLTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXJlZC0yMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcmVkLTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1yZWQtMjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcmVkLTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXJlZC0zMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcmVkLTMwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1yZWQtMzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcmVkLTMwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXJlZC00MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcmVkLTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1yZWQtNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcmVkLTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXJlZC01MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcmVkLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1yZWQtNTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcmVkLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXJlZC02MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcmVkLTYwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1yZWQtNjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcmVkLTYwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXJlZC03MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcmVkLTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1yZWQtNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcmVkLTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXJlZC04MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcmVkLTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1yZWQtODAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcmVkLTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXJlZC05MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcmVkLTkwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1yZWQtOTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcmVkLTkwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXJlZC1BMTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC1BMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXJlZC1BMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcmVkLUExMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1yZWQtQTIwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1yZWQtQTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1yZWQtQTIwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC1BMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tcmVkLUE0MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcmVkLUE0MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcmVkLUE0MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1yZWQtQTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXJlZC1BNzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC1BNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXJlZC1BNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcmVkLUE3MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLy8gUGlua1xuXG4gIC5tZGwtY29sb3ItdGV4dC0tcGluayB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1waW5rLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1waW5rIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcGluay01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1waW5rLTUwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXBpbmstNTB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcGluay01MCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXBpbmstNTB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1waW5rLTEwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1waW5rLTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1waW5rLTEwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXBpbmstMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tcGluay0yMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcGluay0yMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcGluay0yMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1waW5rLTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXBpbmstMzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXBpbmstMzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXBpbmstMzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcGluay0zMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1waW5rLTQwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1waW5rLTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1waW5rLTQwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXBpbmstNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tcGluay01MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcGluay01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcGluay01MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1waW5rLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXBpbmstNjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXBpbmstNjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXBpbmstNjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcGluay02MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1waW5rLTcwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1waW5rLTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1waW5rLTcwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXBpbmstNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tcGluay04MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcGluay04MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcGluay04MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1waW5rLTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXBpbmstOTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXBpbmstOTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXBpbmstOTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcGluay05MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1waW5rLUExMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcGluay1BMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXBpbmstQTEwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXBpbmstQTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXBpbmstQTIwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1waW5rLUEyMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcGluay1BMjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcGluay1BMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tcGluay1BNDAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXBpbmstQTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1waW5rLUE0MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1waW5rLUE0MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1waW5rLUE3MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcGluay1BNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXBpbmstQTcwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXBpbmstQTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyBQdXJwbGVcblxuICAubWRsLWNvbG9yLXRleHQtLXB1cnBsZSB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1wdXJwbGUtNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXB1cnBsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXB1cnBsZS01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtNTAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcHVycGxlLTUwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXB1cnBsZS01MCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXB1cnBsZS01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXB1cnBsZS0xMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcHVycGxlLTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1wdXJwbGUtMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcHVycGxlLTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXB1cnBsZS0yMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcHVycGxlLTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1wdXJwbGUtMjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcHVycGxlLTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXB1cnBsZS0zMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcHVycGxlLTMwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1wdXJwbGUtMzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcHVycGxlLTMwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXB1cnBsZS00MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcHVycGxlLTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1wdXJwbGUtNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcHVycGxlLTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXB1cnBsZS01MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcHVycGxlLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1wdXJwbGUtNTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcHVycGxlLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXB1cnBsZS02MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcHVycGxlLTYwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1wdXJwbGUtNjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcHVycGxlLTYwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXB1cnBsZS03MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcHVycGxlLTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1wdXJwbGUtNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcHVycGxlLTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXB1cnBsZS04MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcHVycGxlLTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1wdXJwbGUtODAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcHVycGxlLTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXB1cnBsZS05MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcHVycGxlLTkwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1wdXJwbGUtOTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcHVycGxlLTkwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXB1cnBsZS1BMTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXB1cnBsZS1BMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXB1cnBsZS1BMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcHVycGxlLUExMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtQTIwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1wdXJwbGUtQTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1wdXJwbGUtQTIwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXB1cnBsZS1BMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tcHVycGxlLUE0MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcHVycGxlLUE0MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcHVycGxlLUE0MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1wdXJwbGUtQTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXB1cnBsZS1BNzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXB1cnBsZS1BNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXB1cnBsZS1BNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcHVycGxlLUE3MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLy8gRGVlcCBQdXJwbGUuXG5cbiAgLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZSB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLXB1cnBsZS01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLXB1cnBsZS01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS01MCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLXB1cnBsZS01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS01MCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtcHVycGxlLTUwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtMTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtcHVycGxlLTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS0xMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLXB1cnBsZS0xMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS0yMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1wdXJwbGUtMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWRlZXAtcHVycGxlLTIwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtcHVycGxlLTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLTMwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLXB1cnBsZS0zMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtMzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1wdXJwbGUtMzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtNDAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtcHVycGxlLTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS00MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLXB1cnBsZS00MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS01MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1wdXJwbGUtNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWRlZXAtcHVycGxlLTUwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtcHVycGxlLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLTYwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLXB1cnBsZS02MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtNjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1wdXJwbGUtNjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtNzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtcHVycGxlLTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS03MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLXB1cnBsZS03MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS04MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1wdXJwbGUtODAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWRlZXAtcHVycGxlLTgwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtcHVycGxlLTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLTkwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLXB1cnBsZS05MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtOTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1wdXJwbGUtOTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtQTEwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLXB1cnBsZS1BMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWRlZXAtcHVycGxlLUExMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLXB1cnBsZS1BMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtQTIwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLXB1cnBsZS1BMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWRlZXAtcHVycGxlLUEyMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLXB1cnBsZS1BMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtQTQwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLXB1cnBsZS1BNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWRlZXAtcHVycGxlLUE0MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLXB1cnBsZS1BNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtQTcwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLXB1cnBsZS1BNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWRlZXAtcHVycGxlLUE3MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLXB1cnBsZS1BNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8vIEluZGlnb1xuXG4gIC5tZGwtY29sb3ItdGV4dC0taW5kaWdvIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWluZGlnby01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0taW5kaWdvIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtaW5kaWdvLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWluZGlnby01MCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1pbmRpZ28tNTB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0taW5kaWdvLTUwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtaW5kaWdvLTUwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0taW5kaWdvLTEwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1pbmRpZ28tMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWluZGlnby0xMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1pbmRpZ28tMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0taW5kaWdvLTIwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1pbmRpZ28tMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWluZGlnby0yMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1pbmRpZ28tMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0taW5kaWdvLTMwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1pbmRpZ28tMzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWluZGlnby0zMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1pbmRpZ28tMzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0taW5kaWdvLTQwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1pbmRpZ28tNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWluZGlnby00MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1pbmRpZ28tNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0taW5kaWdvLTUwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1pbmRpZ28tNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWluZGlnby01MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1pbmRpZ28tNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0taW5kaWdvLTYwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1pbmRpZ28tNjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWluZGlnby02MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1pbmRpZ28tNjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0taW5kaWdvLTcwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1pbmRpZ28tNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWluZGlnby03MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1pbmRpZ28tNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0taW5kaWdvLTgwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1pbmRpZ28tODAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWluZGlnby04MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1pbmRpZ28tODAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0taW5kaWdvLTkwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1pbmRpZ28tOTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWluZGlnby05MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1pbmRpZ28tOTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0taW5kaWdvLUExMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtaW5kaWdvLUExMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0taW5kaWdvLUExMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1pbmRpZ28tQTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWluZGlnby1BMjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWluZGlnby1BMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWluZGlnby1BMjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtaW5kaWdvLUEyMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tQTQwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1pbmRpZ28tQTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1pbmRpZ28tQTQwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWluZGlnby1BNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0taW5kaWdvLUE3MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtaW5kaWdvLUE3MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0taW5kaWdvLUE3MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1pbmRpZ28tQTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyBCbHVlXG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ibHVlIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWJsdWUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ibHVlLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWJsdWUtNTAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ibHVlLTUwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWJsdWUtMTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWJsdWUtMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS0xMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ibHVlLTIwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ibHVlLTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ibHVlLTIwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYmx1ZS0zMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS0zMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYmx1ZS0zMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ibHVlLTMwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWJsdWUtNDAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWJsdWUtNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS00MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ibHVlLTUwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ibHVlLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ibHVlLTUwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYmx1ZS02MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS02MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYmx1ZS02MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ibHVlLTYwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWJsdWUtNzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWJsdWUtNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS03MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ibHVlLTgwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ibHVlLTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ibHVlLTgwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtODAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYmx1ZS05MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS05MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYmx1ZS05MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ibHVlLTkwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWJsdWUtQTEwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ibHVlLUExMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYmx1ZS1BMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS1BMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYmx1ZS1BMjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtQTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ibHVlLUEyMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ibHVlLUEyMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ibHVlLUE0MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS1BNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWJsdWUtQTQwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtQTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWJsdWUtQTcwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ibHVlLUE3MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYmx1ZS1BNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS1BNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8vIExpZ2h0IEJsdWVcblxuICAubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtYmx1ZS01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGlnaHQtYmx1ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWJsdWUtNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS01MCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ibHVlLTUwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtNTAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ibHVlLTUwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS0xMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtYmx1ZS0xMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS0xMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ibHVlLTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUtMjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWJsdWUtMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtMjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtYmx1ZS0yMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLTMwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ibHVlLTMwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saWdodC1ibHVlLTMwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWJsdWUtMzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS00MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtYmx1ZS00MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS00MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ibHVlLTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUtNTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWJsdWUtNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtNTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtYmx1ZS01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLTYwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ibHVlLTYwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saWdodC1ibHVlLTYwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWJsdWUtNjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS03MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtYmx1ZS03MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS03MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ibHVlLTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUtODAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWJsdWUtODAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtODAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtYmx1ZS04MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLTkwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ibHVlLTkwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saWdodC1ibHVlLTkwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWJsdWUtOTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS1BMTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWJsdWUtQTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saWdodC1ibHVlLUExMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ibHVlLUExMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLUEyMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtYmx1ZS1BMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtQTIwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWJsdWUtQTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUtQTQwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ibHVlLUE0MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS1BNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtYmx1ZS1BNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS1BNzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWJsdWUtQTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saWdodC1ibHVlLUE3MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ibHVlLUE3MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLy8gQ3lhblxuXG4gIC5tZGwtY29sb3ItdGV4dC0tY3lhbiB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1jeWFuLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1jeWFuIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtY3lhbi01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1jeWFuLTUwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWN5YW4tNTB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tY3lhbi01MCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWN5YW4tNTB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1jeWFuLTEwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1jeWFuLTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1jeWFuLTEwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWN5YW4tMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tY3lhbi0yMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtY3lhbi0yMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tY3lhbi0yMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1jeWFuLTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWN5YW4tMzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWN5YW4tMzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWN5YW4tMzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtY3lhbi0zMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1jeWFuLTQwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1jeWFuLTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1jeWFuLTQwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWN5YW4tNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tY3lhbi01MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtY3lhbi01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tY3lhbi01MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1jeWFuLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWN5YW4tNjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWN5YW4tNjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWN5YW4tNjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtY3lhbi02MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1jeWFuLTcwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1jeWFuLTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1jeWFuLTcwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWN5YW4tNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tY3lhbi04MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtY3lhbi04MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tY3lhbi04MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1jeWFuLTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWN5YW4tOTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWN5YW4tOTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWN5YW4tOTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtY3lhbi05MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1jeWFuLUExMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtY3lhbi1BMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWN5YW4tQTEwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWN5YW4tQTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWN5YW4tQTIwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1jeWFuLUEyMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tY3lhbi1BMjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtY3lhbi1BMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tY3lhbi1BNDAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWN5YW4tQTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1jeWFuLUE0MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1jeWFuLUE0MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1jeWFuLUE3MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtY3lhbi1BNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWN5YW4tQTcwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWN5YW4tQTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyBUZWFsXG5cbiAgLm1kbC1jb2xvci10ZXh0LS10ZWFsIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXRlYWwtNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXRlYWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS10ZWFsLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXRlYWwtNTAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtdGVhbC01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS10ZWFsLTUwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtdGVhbC01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXRlYWwtMTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXRlYWwtMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXRlYWwtMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtdGVhbC0xMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS10ZWFsLTIwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS10ZWFsLTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS10ZWFsLTIwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXRlYWwtMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tdGVhbC0zMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtdGVhbC0zMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tdGVhbC0zMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS10ZWFsLTMwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXRlYWwtNDAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXRlYWwtNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXRlYWwtNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtdGVhbC00MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS10ZWFsLTUwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS10ZWFsLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS10ZWFsLTUwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXRlYWwtNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tdGVhbC02MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtdGVhbC02MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tdGVhbC02MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS10ZWFsLTYwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXRlYWwtNzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXRlYWwtNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXRlYWwtNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtdGVhbC03MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS10ZWFsLTgwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS10ZWFsLTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS10ZWFsLTgwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXRlYWwtODAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tdGVhbC05MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtdGVhbC05MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tdGVhbC05MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS10ZWFsLTkwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXRlYWwtQTEwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS10ZWFsLUExMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tdGVhbC1BMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtdGVhbC1BMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tdGVhbC1BMjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXRlYWwtQTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS10ZWFsLUEyMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS10ZWFsLUEyMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS10ZWFsLUE0MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtdGVhbC1BNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXRlYWwtQTQwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXRlYWwtQTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXRlYWwtQTcwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS10ZWFsLUE3MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tdGVhbC1BNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtdGVhbC1BNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8vIEdyZWVuXG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ncmVlbiB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmVlbi01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZ3JlZW4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmVlbi01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ncmVlbi01MCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmVlbi01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ncmVlbi01MCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZWVuLTUwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tMTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZWVuLTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ncmVlbi0xMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmVlbi0xMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ncmVlbi0yMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JlZW4tMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWdyZWVuLTIwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZWVuLTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWdyZWVuLTMwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmVlbi0zMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZ3JlZW4tMzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JlZW4tMzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tNDAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZWVuLTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ncmVlbi00MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmVlbi00MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ncmVlbi01MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JlZW4tNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWdyZWVuLTUwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZWVuLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWdyZWVuLTYwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmVlbi02MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZ3JlZW4tNjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JlZW4tNjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tNzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZWVuLTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ncmVlbi03MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmVlbi03MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ncmVlbi04MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JlZW4tODAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWdyZWVuLTgwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZWVuLTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWdyZWVuLTkwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmVlbi05MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZ3JlZW4tOTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JlZW4tOTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tQTEwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmVlbi1BMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWdyZWVuLUExMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmVlbi1BMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tQTIwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmVlbi1BMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWdyZWVuLUEyMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmVlbi1BMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tQTQwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmVlbi1BNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWdyZWVuLUE0MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmVlbi1BNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tQTcwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmVlbi1BNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWdyZWVuLUE3MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmVlbi1BNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8vIExpZ2h0IEdyZWVuXG5cbiAgLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbiB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ncmVlbi01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ncmVlbi01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi01MCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ncmVlbi01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saWdodC1ncmVlbi01MCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWdyZWVuLTUwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tMTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWdyZWVuLTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saWdodC1ncmVlbi0xMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ncmVlbi0xMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi0yMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtZ3JlZW4tMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLTIwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWdyZWVuLTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLTMwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ncmVlbi0zMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tMzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtZ3JlZW4tMzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tNDAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWdyZWVuLTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saWdodC1ncmVlbi00MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ncmVlbi00MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi01MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtZ3JlZW4tNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLTUwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWdyZWVuLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLTYwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ncmVlbi02MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tNjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtZ3JlZW4tNjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tNzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWdyZWVuLTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saWdodC1ncmVlbi03MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ncmVlbi03MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi04MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtZ3JlZW4tODAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLTgwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWdyZWVuLTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLTkwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ncmVlbi05MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tOTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtZ3JlZW4tOTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tQTEwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ncmVlbi1BMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLUExMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ncmVlbi1BMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tQTIwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ncmVlbi1BMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLUEyMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ncmVlbi1BMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tQTQwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ncmVlbi1BNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLUE0MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ncmVlbi1BNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tQTcwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ncmVlbi1BNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLUE3MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ncmVlbi1BNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8vIExpbWVcblxuICAubWRsLWNvbG9yLXRleHQtLWxpbWUge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGltZS01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGltZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpbWUtNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGltZS01MCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saW1lLTUwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpbWUtNTAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saW1lLTUwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGltZS0xMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGltZS0xMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGltZS0xMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saW1lLTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpbWUtMjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpbWUtMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpbWUtMjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGltZS0yMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1saW1lLTMwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saW1lLTMwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saW1lLTMwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpbWUtMzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGltZS00MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGltZS00MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGltZS00MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saW1lLTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpbWUtNTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpbWUtNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpbWUtNTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGltZS01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1saW1lLTYwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saW1lLTYwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saW1lLTYwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpbWUtNjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGltZS03MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGltZS03MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGltZS03MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saW1lLTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpbWUtODAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpbWUtODAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpbWUtODAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGltZS04MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1saW1lLTkwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saW1lLTkwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saW1lLTkwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpbWUtOTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGltZS1BMTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpbWUtQTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saW1lLUExMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saW1lLUExMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1saW1lLUEyMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGltZS1BMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpbWUtQTIwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpbWUtQTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpbWUtQTQwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saW1lLUE0MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGltZS1BNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGltZS1BNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGltZS1BNzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpbWUtQTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saW1lLUE3MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saW1lLUE3MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLy8gWWVsbG93XG5cbiAgLm1kbC1jb2xvci10ZXh0LS15ZWxsb3cge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUteWVsbG93LTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS15ZWxsb3cge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0teWVsbG93LTUwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXllbGxvdy01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS15ZWxsb3ctNTAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctNTB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctMTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXllbGxvdy0xMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0teWVsbG93LTEwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXllbGxvdy0xMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctMjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXllbGxvdy0yMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0teWVsbG93LTIwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXllbGxvdy0yMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctMzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXllbGxvdy0zMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0teWVsbG93LTMwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXllbGxvdy0zMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctNDAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXllbGxvdy00MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0teWVsbG93LTQwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXllbGxvdy00MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctNTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXllbGxvdy01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0teWVsbG93LTUwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXllbGxvdy01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctNjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXllbGxvdy02MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0teWVsbG93LTYwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXllbGxvdy02MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctNzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXllbGxvdy03MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0teWVsbG93LTcwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXllbGxvdy03MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctODAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXllbGxvdy04MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0teWVsbG93LTgwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXllbGxvdy04MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctOTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXllbGxvdy05MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0teWVsbG93LTkwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXllbGxvdy05MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctQTEwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctQTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS15ZWxsb3ctQTEwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXllbGxvdy1BMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0teWVsbG93LUEyMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUteWVsbG93LUEyMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0teWVsbG93LUEyMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctQTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXllbGxvdy1BNDAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXllbGxvdy1BNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXllbGxvdy1BNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUteWVsbG93LUE0MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctQTcwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctQTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS15ZWxsb3ctQTcwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXllbGxvdy1BNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8vIEFtYmVyXG5cbiAgLm1kbC1jb2xvci10ZXh0LS1hbWJlciB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1hbWJlci01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYW1iZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1hbWJlci01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1hbWJlci01MCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1hbWJlci01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1hbWJlci01MCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWFtYmVyLTUwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYW1iZXItMTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWFtYmVyLTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1hbWJlci0xMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1hbWJlci0xMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1hbWJlci0yMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYW1iZXItMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWFtYmVyLTIwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWFtYmVyLTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWFtYmVyLTMwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1hbWJlci0zMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYW1iZXItMzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYW1iZXItMzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYW1iZXItNDAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWFtYmVyLTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1hbWJlci00MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1hbWJlci00MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1hbWJlci01MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYW1iZXItNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWFtYmVyLTUwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWFtYmVyLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWFtYmVyLTYwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1hbWJlci02MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYW1iZXItNjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYW1iZXItNjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYW1iZXItNzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWFtYmVyLTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1hbWJlci03MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1hbWJlci03MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1hbWJlci04MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYW1iZXItODAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWFtYmVyLTgwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWFtYmVyLTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWFtYmVyLTkwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1hbWJlci05MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYW1iZXItOTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYW1iZXItOTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYW1iZXItQTEwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1hbWJlci1BMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWFtYmVyLUExMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1hbWJlci1BMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYW1iZXItQTIwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1hbWJlci1BMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWFtYmVyLUEyMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1hbWJlci1BMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYW1iZXItQTQwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1hbWJlci1BNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWFtYmVyLUE0MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1hbWJlci1BNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYW1iZXItQTcwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1hbWJlci1BNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWFtYmVyLUE3MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1hbWJlci1BNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8vIE9yYW5nZVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tb3JhbmdlIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLW9yYW5nZS01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tb3JhbmdlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtb3JhbmdlLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLW9yYW5nZS01MCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1vcmFuZ2UtNTB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tb3JhbmdlLTUwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtb3JhbmdlLTUwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTEwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1vcmFuZ2UtMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLW9yYW5nZS0xMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1vcmFuZ2UtMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTIwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1vcmFuZ2UtMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLW9yYW5nZS0yMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1vcmFuZ2UtMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTMwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1vcmFuZ2UtMzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLW9yYW5nZS0zMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1vcmFuZ2UtMzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTQwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1vcmFuZ2UtNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLW9yYW5nZS00MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1vcmFuZ2UtNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTUwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1vcmFuZ2UtNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLW9yYW5nZS01MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1vcmFuZ2UtNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTYwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1vcmFuZ2UtNjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLW9yYW5nZS02MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1vcmFuZ2UtNjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTcwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1vcmFuZ2UtNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLW9yYW5nZS03MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1vcmFuZ2UtNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTgwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1vcmFuZ2UtODAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLW9yYW5nZS04MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1vcmFuZ2UtODAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTkwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1vcmFuZ2UtOTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLW9yYW5nZS05MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1vcmFuZ2UtOTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLUExMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtb3JhbmdlLUExMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tb3JhbmdlLUExMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1vcmFuZ2UtQTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLW9yYW5nZS1BMjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLW9yYW5nZS1BMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLW9yYW5nZS1BMjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtb3JhbmdlLUEyMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1vcmFuZ2UtQTQwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1vcmFuZ2UtQTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1vcmFuZ2UtQTQwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLW9yYW5nZS1BNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLUE3MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtb3JhbmdlLUE3MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tb3JhbmdlLUE3MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1vcmFuZ2UtQTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyBEZWVwIE9yYW5nZVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2Uge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1vcmFuZ2UtNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWRlZXAtb3JhbmdlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1vcmFuZ2UtNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2UtNTAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1vcmFuZ2UtNTB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtNTAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLW9yYW5nZS01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLTEwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLW9yYW5nZS0xMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1vcmFuZ2UtMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2UtMjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtb3JhbmdlLTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS0yMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLW9yYW5nZS0yMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS0zMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1vcmFuZ2UtMzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLTMwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtb3JhbmdlLTMwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLTQwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLW9yYW5nZS00MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1vcmFuZ2UtNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2UtNTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtb3JhbmdlLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS01MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLW9yYW5nZS01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS02MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1vcmFuZ2UtNjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLTYwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtb3JhbmdlLTYwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLTcwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLW9yYW5nZS03MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1vcmFuZ2UtNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2UtODAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtb3JhbmdlLTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS04MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLW9yYW5nZS04MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS05MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1vcmFuZ2UtOTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLTkwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtb3JhbmdlLTkwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLUExMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1vcmFuZ2UtQTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS1BMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1vcmFuZ2UtQTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLUEyMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1vcmFuZ2UtQTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS1BMjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1vcmFuZ2UtQTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLUE0MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1vcmFuZ2UtQTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS1BNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1vcmFuZ2UtQTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLUE3MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1vcmFuZ2UtQTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS1BNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1vcmFuZ2UtQTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyBCcm93blxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYnJvd24ge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYnJvd24tNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWJyb3duIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYnJvd24tNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYnJvd24tNTAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYnJvd24tNTB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYnJvd24tNTAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1icm93bi01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWJyb3duLTEwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1icm93bi0xMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYnJvd24tMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYnJvd24tMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYnJvd24tMjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJyb3duLTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1icm93bi0yMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1icm93bi0yMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1icm93bi0zMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYnJvd24tMzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWJyb3duLTMwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJyb3duLTMwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWJyb3duLTQwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1icm93bi00MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYnJvd24tNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYnJvd24tNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYnJvd24tNTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJyb3duLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1icm93bi01MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1icm93bi01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1icm93bi02MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYnJvd24tNjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWJyb3duLTYwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJyb3duLTYwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWJyb3duLTcwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1icm93bi03MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYnJvd24tNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYnJvd24tNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYnJvd24tODAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJyb3duLTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1icm93bi04MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1icm93bi04MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1icm93bi05MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYnJvd24tOTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWJyb3duLTkwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJyb3duLTkwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyBHcmV5XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ncmV5IHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWdyZXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmV5LTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWdyZXktNTAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JleS01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ncmV5LTUwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JleS01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWdyZXktMTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWdyZXktMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JleS0xMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ncmV5LTIwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmV5LTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ncmV5LTIwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZ3JleS0zMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JleS0zMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZ3JleS0zMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmV5LTMwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWdyZXktNDAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWdyZXktNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JleS00MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ncmV5LTUwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmV5LTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ncmV5LTUwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZ3JleS02MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JleS02MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZ3JleS02MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmV5LTYwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWdyZXktNzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWdyZXktNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JleS03MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ncmV5LTgwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmV5LTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ncmV5LTgwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktODAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZ3JleS05MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JleS05MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZ3JleS05MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmV5LTkwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyBCbHVlIEdyZXlcblxuICAubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleSB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ibHVlLWdyZXktNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWJsdWUtZ3JleSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtZ3JleS01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXktNTAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS1ncmV5LTUwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWJsdWUtZ3JleS01MCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtZ3JleS01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleS0xMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS1ncmV5LTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ibHVlLWdyZXktMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS1ncmV5LTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleS0yMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS1ncmV5LTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ibHVlLWdyZXktMjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS1ncmV5LTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleS0zMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS1ncmV5LTMwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ibHVlLWdyZXktMzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS1ncmV5LTMwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleS00MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS1ncmV5LTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ibHVlLWdyZXktNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS1ncmV5LTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleS01MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS1ncmV5LTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ibHVlLWdyZXktNTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS1ncmV5LTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleS02MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS1ncmV5LTYwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ibHVlLWdyZXktNjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS1ncmV5LTYwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleS03MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS1ncmV5LTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ibHVlLWdyZXktNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS1ncmV5LTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleS04MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS1ncmV5LTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ibHVlLWdyZXktODAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS1ncmV5LTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleS05MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS1ncmV5LTkwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ibHVlLWdyZXktOTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS1ncmV5LTkwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyBCbGFja1xuXG4gIC5tZGwtY29sb3ItLWJsYWNrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLWJsYWNrfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYmxhY2sge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLWJsYWNrfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8vIFdoaXRlXG5cbiAgLm1kbC1jb2xvci0td2hpdGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skY29sb3Itd2hpdGV9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS13aGl0ZSB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skY29sb3Itd2hpdGV9KVwiKSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vIFByaW1hcnkgYW5kIGFjY2VudFxuXG4ubWRsLWNvbG9yLS1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRjb2xvci1wcmltYXJ5fSlcIikgIWltcG9ydGFudDtcbn1cblxuLm1kbC1jb2xvci0tcHJpbWFyeS1jb250cmFzdCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItcHJpbWFyeS1jb250cmFzdH0pXCIpICFpbXBvcnRhbnQ7XG59XG5cbi5tZGwtY29sb3ItLXByaW1hcnktZGFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItcHJpbWFyeS1kYXJrfSlcIikgIWltcG9ydGFudDtcbn1cblxuLm1kbC1jb2xvci0tYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRjb2xvci1hY2NlbnR9KVwiKSAhaW1wb3J0YW50O1xufVxuXG4ubWRsLWNvbG9yLS1hY2NlbnQtY29udHJhc3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLWFjY2VudC1jb250cmFzdH0pXCIpICFpbXBvcnRhbnQ7XG59XG5cbi5tZGwtY29sb3ItdGV4dC0tcHJpbWFyeSB7XG4gIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLXByaW1hcnl9KVwiKSAhaW1wb3J0YW50O1xufVxuXG4ubWRsLWNvbG9yLXRleHQtLXByaW1hcnktY29udHJhc3Qge1xuICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRjb2xvci1wcmltYXJ5LWNvbnRyYXN0fSlcIikgIWltcG9ydGFudDtcbn1cblxuLm1kbC1jb2xvci10ZXh0LS1wcmltYXJ5LWRhcmsge1xuICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRjb2xvci1wcmltYXJ5LWRhcmt9KVwiKSAhaW1wb3J0YW50O1xufVxuXG4ubWRsLWNvbG9yLXRleHQtLWFjY2VudCB7XG4gIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLWFjY2VudH0pXCIpICFpbXBvcnRhbnQ7XG59XG5cbi5tZGwtY29sb3ItdGV4dC0tYWNjZW50LWNvbnRyYXN0IHtcbiAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItYWNjZW50LWNvbnRyYXN0fSlcIikgIWltcG9ydGFudDtcbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcblxuLm1kbC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kICAgICAgIDogJHJpcHBsZS1iZy1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1cyAgICA6IDUwJTtcbiAgaGVpZ2h0ICAgICAgICAgICA6IDUwcHg7XG4gIGxlZnQgICAgICAgICAgICAgOiAwO1xuICBvcGFjaXR5ICAgICAgICAgIDogMDtcbiAgcG9pbnRlci1ldmVudHMgICA6IG5vbmU7XG4gIHBvc2l0aW9uICAgICAgICAgOiBhYnNvbHV0ZTtcbiAgdG9wICAgICAgICAgICAgICA6IDA7XG4gIHRyYW5zZm9ybSAgICAgICAgOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHdpZHRoICAgICAgICAgICAgOiA1MHB4O1xuICBvdmVyZmxvdyAgICAgICAgIDogaGlkZGVuO1xuXG4gICYuaXMtYW5pbWF0aW5nIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyAkYW5pbWF0aW9uLWN1cnZlLWxpbmVhci1vdXQtc2xvdy1pbixcbiAgICB3aWR0aCAwLjNzICRhbmltYXRpb24tY3VydmUtbGluZWFyLW91dC1zbG93LWluLFxuICAgIGhlaWdodCAwLjNzICRhbmltYXRpb24tY3VydmUtbGluZWFyLW91dC1zbG93LWluLFxuICAgIG9wYWNpdHkgMC42cyAkYW5pbWF0aW9uLWN1cnZlLWxpbmVhci1vdXQtc2xvdy1pbjtcbiAgfVxuXG4gICYuaXMtdmlzaWJsZSB7XG4gICAgb3BhY2l0eTogMC4zO1xuICB9XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5cblxuLm1kbC1hbmltYXRpb24tLWRlZmF1bHQge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJGFuaW1hdGlvbi1jdXJ2ZS1kZWZhdWx0O1xufVxuXG4ubWRsLWFuaW1hdGlvbi0tZmFzdC1vdXQtc2xvdy1pbiB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkYW5pbWF0aW9uLWN1cnZlLWZhc3Qtb3V0LXNsb3ctaW47XG59XG5cbi5tZGwtYW5pbWF0aW9uLS1saW5lYXItb3V0LXNsb3ctaW4ge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJGFuaW1hdGlvbi1jdXJ2ZS1saW5lYXItb3V0LXNsb3ctaW47XG59XG5cbi5tZGwtYW5pbWF0aW9uLS1mYXN0LW91dC1saW5lYXItaW4ge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJGFuaW1hdGlvbi1jdXJ2ZS1mYXN0LW91dC1saW5lYXItaW47XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5cbi5tZGwtYmFkZ2Uge1xuICBwb3NpdGlvbiA6IHJlbGF0aXZlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBtYXJnaW4tcmlnaHQ6ICgkYmFkZ2Utc2l6ZSArICRiYWRnZS1wYWRkaW5nKTtcblxuICAmOm5vdChbZGF0YS1iYWRnZV0pIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cblxuICAmW2RhdGEtYmFkZ2VdOmFmdGVyIHtcbiAgICBjb250ZW50OiBhdHRyKGRhdGEtYmFkZ2UpO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0oJGJhZGdlLXNpemUgLyAyKTtcbiAgICByaWdodDogLSgkYmFkZ2Utc2l6ZSArICRiYWRnZS1wYWRkaW5nKTtcblxuICAgIC5tZGwtYnV0dG9uICYge1xuICAgICAgdG9wOiAtMTBweDtcbiAgICAgIHJpZ2h0OiAtNXB4O1xuICAgIH1cblxuICAgIGZvbnQtZmFtaWx5OiAkcHJlZmVycmVkX2ZvbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6ICRiYWRnZS1mb250LXNpemU7XG4gICAgd2lkdGg6ICRiYWRnZS1zaXplO1xuICAgIGhlaWdodDogJGJhZGdlLXNpemU7XG4gICAgYm9yZGVyLXJhZGl1cyA6IDUwJTtcblxuICAgIGJhY2tncm91bmQ6ICRiYWRnZS1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkYmFkZ2UtY29sb3I7XG4gIH1cblxuICAmLm1kbC1iYWRnZS0tbm8tYmFja2dyb3VuZCB7XG4gICAgJltkYXRhLWJhZGdlXTphZnRlciB7XG4gICAgICBjb2xvcjogJGJhZGdlLWNvbG9yLWludmVyc2U7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFkZ2UtYmFja2dyb3VuZC1pbnZlcnNlO1xuXG4gICAgICBib3gtc2hhZG93OiAwIDAgMXB4IGdyYXk7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vbWl4aW5zXCI7XG5cbi8vIFRoZSBidXR0b24gY29tcG9uZW50LiBEZWZhdWx0cyB0byBhIGZsYXQgYnV0dG9uLlxuLm1kbC1idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAkYnV0dG9uLWJvcmRlci1yYWRpdXM7XG4gIGNvbG9yOiAkYnV0dG9uLXNlY29uZGFyeS1jb2xvcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6ICRidXR0b24taGVpZ2h0O1xuICBtaW4td2lkdGg6ICRidXR0b24tbWluLXdpZHRoO1xuICBwYWRkaW5nOiAwICRidXR0b24tcGFkZGluZztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBAaW5jbHVkZSB0eXBvLWJ1dHRvbigpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWxsLWNoYW5nZTogYm94LXNoYWRvdywgdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMnMgJGFuaW1hdGlvbi1jdXJ2ZS1mYXN0LW91dC1saW5lYXItaW4sXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3IgMC4ycyAkYW5pbWF0aW9uLWN1cnZlLWRlZmF1bHQsXG4gICAgICAgICAgICAgIGNvbG9yIDAuMnMgJGFuaW1hdGlvbi1jdXJ2ZS1kZWZhdWx0O1xuICBvdXRsaW5lOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogJGJ1dHRvbi1oZWlnaHQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1ob3Zlci1jb2xvcjtcbiAgfVxuXG4gICY6Zm9jdXM6bm90KDphY3RpdmUpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLWZvY3VzLWNvbG9yO1xuICB9XG5cbiAgJjphY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tYWN0aXZlLWNvbG9yO1xuICB9XG5cbiAgJi5tZGwtYnV0dG9uLS1jb2xvcmVkIHtcbiAgICBjb2xvcjogJGJ1dHRvbi1wcmltYXJ5LWNvbG9yLWFsdDtcblxuICAgICY6Zm9jdXM6bm90KDphY3RpdmUpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tZm9jdXMtY29sb3ItYWx0O1xuICAgIH1cbiAgfVxufVxuXG5pbnB1dC5tZGwtYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtcbn1cblxuICAvLyBSYWlzZWQgYnV0dG9uc1xuICAubWRsLWJ1dHRvbi0tcmFpc2VkIHtcbiAgICBiYWNrZ3JvdW5kOiAkYnV0dG9uLXByaW1hcnktY29sb3I7XG4gICAgQGluY2x1ZGUgc2hhZG93LTJkcCgpO1xuXG4gICAgJjphY3RpdmUge1xuICAgICAgQGluY2x1ZGUgc2hhZG93LTRkcCgpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1hY3RpdmUtY29sb3I7XG4gICAgfVxuXG4gICAgJjpmb2N1czpub3QoOmFjdGl2ZSkge1xuICAgICAgQGluY2x1ZGUgZm9jdXMtc2hhZG93KCk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLWFjdGl2ZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1kbC1idXR0b24tLWNvbG9yZWQge1xuICAgICAgYmFja2dyb3VuZDogJGJ1dHRvbi1wcmltYXJ5LWNvbG9yLWFsdDtcbiAgICAgIGNvbG9yOiAkYnV0dG9uLXNlY29uZGFyeS1jb2xvci1hbHQ7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLWhvdmVyLWNvbG9yLWFsdDtcbiAgICAgIH1cblxuICAgICAgJjphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLWFjdGl2ZS1jb2xvci1hbHQ7XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXM6bm90KDphY3RpdmUpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1hY3RpdmUtY29sb3ItYWx0O1xuICAgICAgfVxuXG4gICAgICAmIC5tZGwtcmlwcGxlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGJ1dHRvbi1yaXBwbGUtY29sb3ItYWx0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cbiAgLy8gRkFCc1xuICAubWRsLWJ1dHRvbi0tZmFiIHtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZm9udC1zaXplOiAkYnV0dG9uLWZhYi1mb250LXNpemU7XG4gICAgaGVpZ2h0OiAkYnV0dG9uLWZhYi1zaXplO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBtaW4td2lkdGg6ICRidXR0b24tZmFiLXNpemU7XG4gICAgd2lkdGg6ICRidXR0b24tZmFiLXNpemU7XG4gICAgcGFkZGluZzogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6ICRidXR0b24tcHJpbWFyeS1jb2xvcjtcbiAgICBib3gtc2hhZG93OiAwIDFweCAxLjVweCAwIHJnYmEoMCwwLDAsMC4xMiksIDAgMXB4IDFweCAwIHJnYmEoMCwwLDAsMC4yNCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cbiAgICAmIC5tYXRlcmlhbC1pY29ucyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0gJGJ1dHRvbi1mYWItZm9udC1zaXplIC8gMiwgLSAkYnV0dG9uLWZhYi1mb250LXNpemUgLyAyKTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkYnV0dG9uLWZhYi1mb250LXNpemU7XG4gICAgICB3aWR0aDogJGJ1dHRvbi1mYWItZm9udC1zaXplO1xuICAgIH1cblxuICAgICYubWRsLWJ1dHRvbi0tbWluaS1mYWIge1xuICAgICAgaGVpZ2h0OiAkYnV0dG9uLWZhYi1zaXplLW1pbmk7XG4gICAgICBtaW4td2lkdGg6ICRidXR0b24tZmFiLXNpemUtbWluaTtcbiAgICAgIHdpZHRoOiAkYnV0dG9uLWZhYi1zaXplLW1pbmk7XG4gICAgfVxuXG4gICAgJiAubWRsLWJ1dHRvbl9fcmlwcGxlLWNvbnRhaW5lciB7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAvLyBGaXhlcyBjbGlwcGluZyBidWcgaW4gU2FmYXJpLlxuICAgICAgLXdlYmtpdC1tYXNrLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHdoaXRlLCBibGFjayk7XG4gICAgfVxuXG4gICAgJjphY3RpdmUge1xuICAgICAgQGluY2x1ZGUgc2hhZG93LTRkcCgpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1hY3RpdmUtY29sb3I7XG4gICAgfVxuXG4gICAgJjpmb2N1czpub3QoOmFjdGl2ZSkge1xuICAgICAgQGluY2x1ZGUgZm9jdXMtc2hhZG93KCk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLWFjdGl2ZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1kbC1idXR0b24tLWNvbG9yZWQge1xuICAgICAgYmFja2dyb3VuZDogJGJ1dHRvbi1mYWItY29sb3ItYWx0O1xuICAgICAgY29sb3I6ICRidXR0b24tZmFiLXRleHQtY29sb3ItYWx0O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1mYWItaG92ZXItY29sb3ItYWx0O1xuICAgICAgfVxuXG4gICAgICAmOmZvY3VzOm5vdCg6YWN0aXZlKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tZmFiLWFjdGl2ZS1jb2xvci1hbHQ7XG4gICAgICB9XG5cbiAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1mYWItYWN0aXZlLWNvbG9yLWFsdDtcbiAgICAgIH1cblxuICAgICAgJiAubWRsLXJpcHBsZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRidXR0b24tZmFiLXJpcHBsZS1jb2xvci1hbHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICAvLyBJY29uIGJ1dHRvbnNcbiAgLm1kbC1idXR0b24tLWljb24ge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBmb250LXNpemU6ICRidXR0b24tZmFiLWZvbnQtc2l6ZTtcbiAgICBoZWlnaHQ6ICRidXR0b24taWNvbi1zaXplO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtaW4td2lkdGg6ICRidXR0b24taWNvbi1zaXplO1xuICAgIHdpZHRoOiAkYnV0dG9uLWljb24tc2l6ZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcblxuICAgICYgLm1hdGVyaWFsLWljb25zIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLSAkYnV0dG9uLWZhYi1mb250LXNpemUgLyAyLCAtICRidXR0b24tZmFiLWZvbnQtc2l6ZSAvIDIpO1xuICAgICAgbGluZS1oZWlnaHQ6ICRidXR0b24tZmFiLWZvbnQtc2l6ZTtcbiAgICAgIHdpZHRoOiAkYnV0dG9uLWZhYi1mb250LXNpemU7XG4gICAgfVxuXG4gICAgJi5tZGwtYnV0dG9uLS1taW5pLWljb24ge1xuICAgICAgaGVpZ2h0OiAkYnV0dG9uLWljb24tc2l6ZS1taW5pO1xuICAgICAgbWluLXdpZHRoOiAkYnV0dG9uLWljb24tc2l6ZS1taW5pO1xuICAgICAgd2lkdGg6ICRidXR0b24taWNvbi1zaXplLW1pbmk7XG5cbiAgICAgICYgLm1hdGVyaWFsLWljb25zIHtcbiAgICAgICAgdG9wOiAoJGJ1dHRvbi1pY29uLXNpemUtbWluaSAtICRidXR0b24tZmFiLWZvbnQtc2l6ZSkgLyAyO1xuICAgICAgICBsZWZ0OiAoJGJ1dHRvbi1pY29uLXNpemUtbWluaSAtICRidXR0b24tZmFiLWZvbnQtc2l6ZSkgLyAyO1xuICAgICAgfVxuICAgIH1cblxuICAgICYgLm1kbC1idXR0b25fX3JpcHBsZS1jb250YWluZXIge1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgLy8gRml4ZXMgY2xpcHBpbmcgYnVnIGluIFNhZmFyaS5cbiAgICAgIC13ZWJraXQtbWFzay1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB3aGl0ZSwgYmxhY2spO1xuICAgIH1cbiAgfVxuXG5cbiAgLy8gUmlwcGxlc1xuICAubWRsLWJ1dHRvbl9fcmlwcGxlLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLm1kbC1idXR0b25bZGlzYWJsZWRdICYgLm1kbC1yaXBwbGUsXG4gICAgLm1kbC1idXR0b24ubWRsLWJ1dHRvbi0tZGlzYWJsZWQgJiAubWRsLXJpcHBsZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cblxuLy8gQ29sb3JpemVkIGJ1dHRvbnNcblxuLm1kbC1idXR0b24tLXByaW1hcnkubWRsLWJ1dHRvbi0tcHJpbWFyeSB7XG4gIGNvbG9yOiAkYnV0dG9uLXByaW1hcnktY29sb3ItYWx0O1xuICAmIC5tZGwtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kOiAkYnV0dG9uLXNlY29uZGFyeS1jb2xvci1hbHQ7XG4gIH1cbiAgJi5tZGwtYnV0dG9uLS1yYWlzZWQsICYubWRsLWJ1dHRvbi0tZmFiIHtcbiAgICBjb2xvcjogJGJ1dHRvbi1zZWNvbmRhcnktY29sb3ItYWx0O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tcHJpbWFyeS1jb2xvci1hbHQ7XG4gIH1cbn1cblxuLm1kbC1idXR0b24tLWFjY2VudC5tZGwtYnV0dG9uLS1hY2NlbnQge1xuICBjb2xvcjogJGJ1dHRvbi1mYWItY29sb3ItYWx0O1xuICAmIC5tZGwtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kOiAkYnV0dG9uLWZhYi10ZXh0LWNvbG9yLWFsdDtcbiAgfVxuICAmLm1kbC1idXR0b24tLXJhaXNlZCwgJi5tZGwtYnV0dG9uLS1mYWIge1xuICAgIGNvbG9yOiAkYnV0dG9uLWZhYi10ZXh0LWNvbG9yLWFsdDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLWZhYi1jb2xvci1hbHQ7XG4gIH1cbn1cblxuLy8gRGlzYWJsZWQgYnV0dG9uc1xuXG4ubWRsLWJ1dHRvbiB7XG4gIC8vIEJ1bXAgdXAgc3BlY2lmaWNpdHkgYnkgdXNpbmcgW2Rpc2FibGVkXSB0d2ljZS5cbiAgJltkaXNhYmxlZF1bZGlzYWJsZWRdLFxuICAmLm1kbC1idXR0b24tLWRpc2FibGVkLm1kbC1idXR0b24tLWRpc2FibGVkIHtcbiAgICBjb2xvcjogJGJ1dHRvbi1zZWNvbmRhcnktY29sb3ItZGlzYWJsZWQ7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgJi0tZmFiIHtcbiAgICAvLyBCdW1wIHVwIHNwZWNpZmljaXR5IGJ5IHVzaW5nIFtkaXNhYmxlZF0gdHdpY2UuXG4gICAgJltkaXNhYmxlZF1bZGlzYWJsZWRdLFxuICAgICYubWRsLWJ1dHRvbi0tZGlzYWJsZWQubWRsLWJ1dHRvbi0tZGlzYWJsZWQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1wcmltYXJ5LWNvbG9yLWRpc2FibGVkO1xuICAgICAgY29sb3I6ICRidXR0b24tc2Vjb25kYXJ5LWNvbG9yLWRpc2FibGVkO1xuICAgICAgQGluY2x1ZGUgc2hhZG93LTJkcCgpO1xuICAgIH1cbiAgfVxuXG4gICYtLXJhaXNlZCB7XG4gICAgLy8gQnVtcCB1cCBzcGVjaWZpY2l0eSBieSB1c2luZyBbZGlzYWJsZWRdIHR3aWNlLlxuICAgICZbZGlzYWJsZWRdW2Rpc2FibGVkXSxcbiAgICAmLm1kbC1idXR0b24tLWRpc2FibGVkLm1kbC1idXR0b24tLWRpc2FibGVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tcHJpbWFyeS1jb2xvci1kaXNhYmxlZDtcbiAgICAgIGNvbG9yOiAkYnV0dG9uLXNlY29uZGFyeS1jb2xvci1kaXNhYmxlZDtcbiAgICAgIEBpbmNsdWRlIHNoYWRvdy0yZHAoKTtcbiAgICB9XG4gIH1cbiAgJi0tY29sb3JlZCB7XG4gICAgLy8gQnVtcCB1cCBzcGVjaWZpY2l0eSBieSB1c2luZyBbZGlzYWJsZWRdIHR3aWNlLlxuICAgICZbZGlzYWJsZWRdW2Rpc2FibGVkXSxcbiAgICAmLm1kbC1idXR0b24tLWRpc2FibGVkLm1kbC1idXR0b24tLWRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiAkYnV0dG9uLXNlY29uZGFyeS1jb2xvci1kaXNhYmxlZDtcbiAgICB9XG4gIH1cbn1cblxuLy8gQWxpZ24gaWNvbnMgaW5zaWRlIGJ1dHRvbnMgd2l0aCB0ZXh0XG4ubWRsLWJ1dHRvbiAubWF0ZXJpYWwtaWNvbnMge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuXG4ubWRsLWNhcmQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmb250LXNpemU6ICRjYXJkLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbWluLWhlaWdodDogJGNhcmQtaGVpZ2h0O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogJGNhcmQtd2lkdGg7XG4gIHotaW5kZXg6ICRjYXJkLXotaW5kZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogJGNhcmQtYmFja2dyb3VuZC1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ubWRsLWNhcmRfX21lZGlhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNhcmQtaW1hZ2UtcGxhY2Vob2xkZXItY29sb3I7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtb3JpZ2luOiBwYWRkaW5nLWJveDtcbiAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBzY3JvbGw7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5tZGwtY2FyZF9fdGl0bGUge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2xvcjogJGNhcmQtdGV4dC1jb2xvcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3RyZXRjaDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgcGFkZGluZzogJGNhcmQtdmVydGljYWwtcGFkZGluZyAkY2FyZC1ob3Jpem9udGFsLXBhZGRpbmc7XG4gIHBlcnNwZWN0aXZlLW9yaWdpbjogJGNhcmQtdGl0bGUtcGVyc3BlY3RpdmUtb3JpZ2luLXggJGNhcmQtdGl0bGUtcGVyc3BlY3RpdmUtb3JpZ2luLXk7XG4gIHRyYW5zZm9ybS1vcmlnaW46ICRjYXJkLXRpdGxlLXRyYW5zZm9ybS1vcmlnaW4teCAkY2FyZC10aXRsZS10cmFuc2Zvcm0tb3JpZ2luLXk7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgJi5tZGwtY2FyZC0tYm9yZGVyIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNhcmQtYm9yZGVyLWNvbG9yO1xuICB9XG59XG5cbi5tZGwtY2FyZF9fdGl0bGUtdGV4dCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZvbnQtc2l6ZTogJGNhcmQtdGl0bGUtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGNhcmQtdGl0bGUtdGV4dC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNmb3JtLW9yaWdpbjogJGNhcmQtdGl0bGUtdGV4dC10cmFuc2Zvcm0tb3JpZ2luLXggJGNhcmQtdGl0bGUtdGV4dC10cmFuc2Zvcm0tb3JpZ2luLXk7XG4gIG1hcmdpbjogMDtcbn1cblxuLm1kbC1jYXJkX19zdWJ0aXRsZS10ZXh0IHtcbiAgZm9udC1zaXplOiAkY2FyZC1zdWJ0aXRsZS1mb250LXNpemU7XG4gIGNvbG9yOiAkY2FyZC1zdWJ0aXRsZS1jb2xvcjtcbiAgbWFyZ2luOiAwO1xufVxuXG4ubWRsLWNhcmRfX3N1cHBvcnRpbmctdGV4dCB7XG4gIGNvbG9yOiAkY2FyZC1zdXBwb3J0aW5nLXRleHQtdGV4dC1jb2xvcjtcbiAgZm9udC1zaXplOiAkY2FyZC1zdXBwb3J0aW5nLXRleHQtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogJGNhcmQtc3VwcG9ydGluZy10ZXh0LWxpbmUtaGVpZ2h0O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAkY2FyZC12ZXJ0aWNhbC1wYWRkaW5nICRjYXJkLWhvcml6b250YWwtcGFkZGluZztcbiAgd2lkdGg6IDkwJTtcbn1cblxuLm1kbC1jYXJkX19hY3Rpb25zIHtcbiAgZm9udC1zaXplOiAkY2FyZC1hY3Rpb25zLWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XG4gIHBhZGRpbmc6IDhweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAmLm1kbC1jYXJkLS1ib3JkZXIge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY2FyZC1ib3JkZXItY29sb3I7XG4gIH1cbn1cblxuLm1kbC1jYXJkLS1leHBhbmQge1xuICBmbGV4LWdyb3c6IDE7XG59XG5cblxuLm1kbC1jYXJkX19tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTZweDtcbiAgdG9wOiAxNnB4O1xufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuXG4ubWRsLWNoZWNrYm94IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIHotaW5kZXg6IDE7XG5cbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJGNoZWNrYm94LWxhYmVsLWhlaWdodDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuXG4gICYuaXMtdXBncmFkZWQge1xuICAgIHBhZGRpbmctbGVmdDogJGNoZWNrYm94LWJ1dHRvbi1zaXplICsgJGNoZWNrYm94LXBhZGRpbmc7XG4gIH1cbn1cblxuLm1kbC1jaGVja2JveF9faW5wdXQge1xuICBsaW5lLWhlaWdodDogJGNoZWNrYm94LWxhYmVsLWhlaWdodDtcblxuICAubWRsLWNoZWNrYm94LmlzLXVwZ3JhZGVkICYge1xuICAgIC8vIEhpZGUgaW5wdXQgZWxlbWVudCwgd2hpbGUgc3RpbGwgbWFraW5nIGl0IHJlc3BvbmQgdG8gZm9jdXMuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC1tcy1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cbn1cblxuLm1kbC1jaGVja2JveF9fYm94LW91dGxpbmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJGNoZWNrYm94LXRvcC1vZmZzZXQ7XG4gIGxlZnQ6IDA7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAkY2hlY2tib3gtYnV0dG9uLXNpemU7XG4gIGhlaWdodDogJGNoZWNrYm94LWJ1dHRvbi1zaXplO1xuICBtYXJnaW46IDA7XG5cbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIGJvcmRlcjogMnB4IHNvbGlkICRjaGVja2JveC1vZmYtY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcblxuICB6LWluZGV4OiAyO1xuXG4gIC5tZGwtY2hlY2tib3guaXMtY2hlY2tlZCAmIHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkY2hlY2tib3gtY29sb3I7XG4gIH1cblxuICAubWRsLWNoZWNrYm94LmlzLWRpc2FibGVkICYge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICRjaGVja2JveC1kaXNhYmxlZC1jb2xvcjtcbiAgICBjdXJzb3I6IGF1dG87XG4gIH1cbn1cblxuLm1kbC1jaGVja2JveF9fZm9jdXMtaGVscGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6ICRjaGVja2JveC10b3Atb2Zmc2V0O1xuICBsZWZ0OiAwO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogJGNoZWNrYm94LWJ1dHRvbi1zaXplO1xuICBoZWlnaHQ6ICRjaGVja2JveC1idXR0b24tc2l6ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gIC5tZGwtY2hlY2tib3guaXMtZm9jdXNlZCAmIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMHB4ICgkY2hlY2tib3gtYnV0dG9uLXNpemUgLyAyKSByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpO1xuICB9XG5cbiAgLm1kbC1jaGVja2JveC5pcy1mb2N1c2VkLmlzLWNoZWNrZWQgJiB7XG4gICAgYm94LXNoYWRvdzogMCAwIDBweCAoJGNoZWNrYm94LWJ1dHRvbi1zaXplIC8gMikgJGNoZWNrYm94LWZvY3VzLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjaGVja2JveC1mb2N1cy1jb2xvcjtcbiAgfVxufVxuXG4ubWRsLWNoZWNrYm94X190aWNrLW91dGxpbmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgbWFzazogdXJsKFwiI3skY2hlY2tib3gtaW1hZ2UtcGF0aH0vdGljay1tYXNrLnN2Zz9lbWJlZFwiKTtcblxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgQGluY2x1ZGUgbWF0ZXJpYWwtYW5pbWF0aW9uLWRlZmF1bHQoMC4yOHMpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kO1xuXG4gIC5tZGwtY2hlY2tib3guaXMtY2hlY2tlZCAmIHtcbiAgICBiYWNrZ3JvdW5kOiAkY2hlY2tib3gtY29sb3IgdXJsKFwiI3skY2hlY2tib3gtaW1hZ2UtcGF0aH0vdGljay5zdmc/ZW1iZWRcIik7XG4gIH1cblxuICAubWRsLWNoZWNrYm94LmlzLWNoZWNrZWQuaXMtZGlzYWJsZWQgJiB7XG4gICAgYmFja2dyb3VuZDogJGNoZWNrYm94LWRpc2FibGVkLWNvbG9yIHVybChcIiN7JGNoZWNrYm94LWltYWdlLXBhdGh9L3RpY2suc3ZnP2VtYmVkXCIpO1xuICB9XG59XG5cbi5tZGwtY2hlY2tib3hfX2xhYmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogJGNoZWNrYm94LWxhYmVsLWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6ICRjaGVja2JveC1sYWJlbC1oZWlnaHQ7XG4gIG1hcmdpbjogMDtcblxuICAubWRsLWNoZWNrYm94LmlzLWRpc2FibGVkICYge1xuICAgIGNvbG9yOiAkY2hlY2tib3gtZGlzYWJsZWQtY29sb3I7XG4gICAgY3Vyc29yOiBhdXRvO1xuICB9XG59XG5cbi5tZGwtY2hlY2tib3hfX3JpcHBsZS1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDI7XG4gIHRvcDogLSgoJGNoZWNrYm94LXJpcHBsZS1zaXplIC0gJGNoZWNrYm94LWxhYmVsLWhlaWdodCkgLyAyKTtcbiAgbGVmdDogLSgoJGNoZWNrYm94LXJpcHBsZS1zaXplIC0gJGNoZWNrYm94LWJ1dHRvbi1zaXplKSAvIDIpO1xuXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAkY2hlY2tib3gtcmlwcGxlLXNpemU7XG4gIGhlaWdodDogJGNoZWNrYm94LXJpcHBsZS1zaXplO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC13ZWJraXQtbWFzay1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB3aGl0ZSwgYmxhY2spO1xuXG4gICYgLm1kbC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQ6ICRjaGVja2JveC1jb2xvcjtcbiAgfVxuXG4gIC5tZGwtY2hlY2tib3guaXMtZGlzYWJsZWQgJiB7XG4gICAgY3Vyc29yOiBhdXRvO1xuICB9XG5cbiAgLm1kbC1jaGVja2JveC5pcy1kaXNhYmxlZCAmIC5tZGwtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuXG4ubWRsLWRhdGEtdGFibGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlcjogJGRhdGEtdGFibGUtZGl2aWRlcnM7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGZvbnQtc2l6ZTogJGRhdGEtdGFibGUtZm9udC1zaXplO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLXdoaXRlfSlcIik7XG5cbiAgdGhlYWQge1xuICAgIHBhZGRpbmctYm90dG9tOiAzcHg7XG5cbiAgICAubWRsLWRhdGEtdGFibGVfX3NlbGVjdCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gIHRib2R5IHtcbiAgICB0ciB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBoZWlnaHQ6ICRkYXRhLXRhYmxlLXJvdy1oZWlnaHQ7XG4gICAgICBAaW5jbHVkZSBtYXRlcmlhbC1hbmltYXRpb24tZGVmYXVsdCgwLjI4cyk7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICAgICAmLmlzLXNlbGVjdGVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhdGEtdGFibGUtc2VsZWN0aW9uLWNvbG9yO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhdGEtdGFibGUtaG92ZXItY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdGQsIHRoIHtcbiAgICBwYWRkaW5nOiAwICRkYXRhLXRhYmxlLWNvbHVtbi1wYWRkaW5nIDAgJGRhdGEtdGFibGUtY29sdW1uLXBhZGRpbmc7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4O1xuICAgIH1cblxuICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDI0cHg7XG4gICAgfVxuICB9XG5cbiAgdGQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIGhlaWdodDogJGRhdGEtdGFibGUtcm93LWhlaWdodDtcbiAgICBib3JkZXItdG9wOiAkZGF0YS10YWJsZS1kaXZpZGVycztcbiAgICBib3JkZXItYm90dG9tOiAkZGF0YS10YWJsZS1kaXZpZGVycztcbiAgICBwYWRkaW5nLXRvcDogJGRhdGEtdGFibGUtY2VsbC10b3A7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIC5tZGwtZGF0YS10YWJsZV9fc2VsZWN0IHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAyNHB4O1xuICAgIH1cbiAgfVxuXG4gIHRoIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBAaW5jbHVkZSB0eXBvLWJvZHktMigpO1xuICAgIGhlaWdodDogJGRhdGEtdGFibGUtcm93LWhlaWdodDtcbiAgICBmb250LXNpemU6ICRkYXRhLXRhYmxlLWhlYWRlci1mb250LXNpemU7XG4gICAgY29sb3I6ICRkYXRhLXRhYmxlLWhlYWRlci1jb2xvcjtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAubWRsLWRhdGEtdGFibGVfX3NlbGVjdCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDhweDtcbiAgICAgIGxlZnQ6IDI0cHg7XG4gICAgfVxuICB9XG59XG5cbi5tZGwtZGF0YS10YWJsZV9fc2VsZWN0IHtcbiAgd2lkdGg6IDE2cHg7XG59XG5cbi5tZGwtZGF0YS10YWJsZV9fY2VsbC0tbm9uLW51bWVyaWMubWRsLWRhdGEtdGFibGVfX2NlbGwtLW5vbi1udW1lcmljIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcblxuLm1kbC1tZWdhLWZvb3RlciB7XG4gIHBhZGRpbmc6ICRmb290ZXItbWluLXBhZGRpbmcgJGZvb3Rlci1wYWRkaW5nLXNpZGVzO1xuXG4gIGNvbG9yOiAkZm9vdGVyLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9vdGVyLWJnLWNvbG9yO1xufVxuXG5cbi5tZGwtbWVnYS1mb290ZXItLXRvcC1zZWN0aW9uOmFmdGVyLFxuLm1kbC1tZWdhLWZvb3Rlci0tbWlkZGxlLXNlY3Rpb246YWZ0ZXIsXG4ubWRsLW1lZ2EtZm9vdGVyLS1ib3R0b20tc2VjdGlvbjphZnRlcixcbi5tZGwtbWVnYS1mb290ZXJfX3RvcC1zZWN0aW9uOmFmdGVyLFxuLm1kbC1tZWdhLWZvb3Rlcl9fbWlkZGxlLXNlY3Rpb246YWZ0ZXIsXG4ubWRsLW1lZ2EtZm9vdGVyX19ib3R0b20tc2VjdGlvbjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5tZGwtbWVnYS1mb290ZXItLWxlZnQtc2VjdGlvbixcbi5tZGwtbWVnYS1mb290ZXJfX2xlZnQtc2VjdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206ICRmb290ZXItbWluLXBhZGRpbmc7XG59XG5cbi5tZGwtbWVnYS1mb290ZXItLXJpZ2h0LXNlY3Rpb24sXG4ubWRsLW1lZ2EtZm9vdGVyX19yaWdodC1zZWN0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogJGZvb3Rlci1taW4tcGFkZGluZztcbn1cblxuLm1kbC1tZWdhLWZvb3Rlci0tcmlnaHQtc2VjdGlvbiBhLFxuLm1kbC1tZWdhLWZvb3Rlcl9fcmlnaHQtc2VjdGlvbiBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgbWFyZ2luLWJvdHRvbTogJGZvb3Rlci1taW4tcGFkZGluZztcblxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjBweCkge1xuICAubWRsLW1lZ2EtZm9vdGVyLS1sZWZ0LXNlY3Rpb24sXG4gIC5tZGwtbWVnYS1mb290ZXJfX2xlZnQtc2VjdGlvbiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cblxuICAubWRsLW1lZ2EtZm9vdGVyLS1yaWdodC1zZWN0aW9uLFxuICAubWRsLW1lZ2EtZm9vdGVyX19yaWdodC1zZWN0aW9uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cblxuICAubWRsLW1lZ2EtZm9vdGVyLS1yaWdodC1zZWN0aW9uIGEsXG4gIC5tZGwtbWVnYS1mb290ZXJfX3JpZ2h0LXNlY3Rpb24gYSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgbWFyZ2luLWxlZnQ6ICRmb290ZXItbWluLXBhZGRpbmc7XG5cbiAgICBsaW5lLWhlaWdodDogJGZvb3Rlci1idG4tc2l6ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG59XG5cbi5tZGwtbWVnYS1mb290ZXItLXNvY2lhbC1idG4sXG4ubWRsLW1lZ2EtZm9vdGVyX19zb2NpYWwtYnRuIHtcbiAgd2lkdGg6ICRmb290ZXItYnRuLXNpemU7XG4gIGhlaWdodDogJGZvb3Rlci1idG4tc2l6ZTtcblxuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGZvb3Rlci1idXR0b24tZmlsbC1jb2xvcjtcblxuICBib3JkZXI6IG5vbmU7XG59XG5cbi5tZGwtbWVnYS1mb290ZXItLWRyb3AtZG93bi1zZWN0aW9uLFxuLm1kbC1tZWdhLWZvb3Rlcl9fZHJvcC1kb3duLXNlY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jaztcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2MHB4KSB7XG4gIC5tZGwtbWVnYS1mb290ZXItLWRyb3AtZG93bi1zZWN0aW9uLFxuICAubWRsLW1lZ2EtZm9vdGVyX19kcm9wLWRvd24tc2VjdGlvbiB7XG4gICAgd2lkdGg6IDMzJTtcbiAgfVxuXG4gIC5tZGwtbWVnYS1mb290ZXItLWRyb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCgxKSxcbiAgLm1kbC1tZWdhLWZvb3Rlci0tZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDIpLFxuICAubWRsLW1lZ2EtZm9vdGVyX19kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoMSksXG4gIC5tZGwtbWVnYS1mb290ZXJfX2Ryb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCgyKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cblxuICAubWRsLW1lZ2EtZm9vdGVyLS1kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoMyksXG4gIC5tZGwtbWVnYS1mb290ZXJfX2Ryb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCgzKSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuXG4gICAgJjphZnRlciB7XG4gICAgICBjbGVhcjogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLm1kbC1tZWdhLWZvb3Rlci0tZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDQpLFxuICAubWRsLW1lZ2EtZm9vdGVyX19kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoNCkge1xuICAgIGNsZWFyOiByaWdodDtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cblxuICAubWRsLW1lZ2EtZm9vdGVyLS1taWRkbGUtc2VjdGlvbjphZnRlcixcbiAgLm1kbC1tZWdhLWZvb3Rlcl9fbWlkZGxlLXNlY3Rpb246YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBjbGVhcjogYm90aDtcbiAgfVxuXG4gIC5tZGwtbWVnYS1mb290ZXItLWJvdHRvbS1zZWN0aW9uLFxuICAubWRsLW1lZ2EtZm9vdGVyX19ib3R0b20tc2VjdGlvbiB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5tZGwtbWVnYS1mb290ZXItLWRyb3AtZG93bi1zZWN0aW9uLFxuICAubWRsLW1lZ2EtZm9vdGVyLS1kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoMyksXG4gIC5tZGwtbWVnYS1mb290ZXItLWRyb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCg0KSxcbiAgLm1kbC1tZWdhLWZvb3Rlcl9fZHJvcC1kb3duLXNlY3Rpb24sXG4gIC5tZGwtbWVnYS1mb290ZXJfX2Ryb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCgzKSxcbiAgLm1kbC1tZWdhLWZvb3Rlcl9fZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDQpIHtcbiAgICB3aWR0aDogMjQlO1xuXG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbn1cblxuLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveCxcbi5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3gge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRmb290ZXItaGVhZGluZy1saW5lLWhlaWdodCArICgkZm9vdGVyLW1pbi1wYWRkaW5nICogMik7XG5cbiAgcGFkZGluZzogKCRmb290ZXItbWluLXBhZGRpbmcgKiAyKTtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tdG9wOiAtJGZvb3Rlci1taW4tcGFkZGluZztcblxuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgei1pbmRleDogMTtcbiAgb3BhY2l0eTogMDtcblxuICAmICsgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZzphZnRlcixcbiAgJiArIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmc6YWZ0ZXIge1xuICAgIGZvbnQtZmFtaWx5OiAnTWF0ZXJpYWwgSWNvbnMnO1xuICAgIGNvbnRlbnQ6ICdcXEU1Q0UnXG4gIH1cbn1cblxuLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveDpjaGVja2VkLFxuLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveDpjaGVja2VkIHtcbiAgLy8gV2ViVmlld3MgaW4gaU9TIDkgYnJlYWsgdGhlIFwiflwiIG9wZXJhdG9yLCBhbmQgV2ViVmlld3MgaW4gT1MgWCAxMC4xMFxuICAvLyBicmVhayBjb25zZWN1dGl2ZSBcIitcIiBvcGVyYXRvcnMgaW4gc29tZSBjYXNlcy4gVGhlcmVmb3JlLCB3ZSBuZWVkIHRvIHVzZVxuICAvLyBib3RoIGhlcmUgdG8gY292ZXIgYWxsIHRoZSBiYXNlcy5cbiAgJiB+IC5tZGwtbWVnYS1mb290ZXItLWxpbmstbGlzdCxcbiAgJiB+IC5tZGwtbWVnYS1mb290ZXJfX2xpbmstbGlzdCxcbiAgJiArIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmcgKyAubWRsLW1lZ2EtZm9vdGVyLS1saW5rLWxpc3QsXG4gICYgKyAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nICsgLm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJiArIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmc6YWZ0ZXIsXG4gICYgKyAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nOmFmdGVyIHtcbiAgICBmb250LWZhbWlseTogJ01hdGVyaWFsIEljb25zJztcbiAgICBjb250ZW50OiAnXFxFNUNGJ1xuICB9XG59XG5cbi5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmcsXG4ubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcblxuICBwYWRkaW5nLXJpZ2h0OiAkZm9vdGVyLWhlYWRpbmctbGluZS1oZWlnaHQgKyAkZm9vdGVyLW1pbi1wYWRkaW5nO1xuICBtYXJnaW4tYm90dG9tOiAkZm9vdGVyLW1pbi1wYWRkaW5nO1xuXG4gIGJveC1zaXppbmc6Ym9yZGVyLWJveDtcblxuICBmb250LXNpemU6ICRmb290ZXItaGVhZGluZy1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAkZm9vdGVyLWhlYWRpbmctbGluZS1oZWlnaHQ7XG5cbiAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICBjb2xvcjogJGZvb3Rlci1oZWFkaW5nLWNvbG9yO1xufVxuXG4ubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nOmFmdGVyLFxuLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZzphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcblxuICBkaXNwbGF5OiBibG9jaztcblxuICB3aWR0aDogJGZvb3Rlci1oZWFkaW5nLWxpbmUtaGVpZ2h0O1xuICBoZWlnaHQ6ICRmb290ZXItaGVhZGluZy1saW5lLWhlaWdodDtcblxuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xufVxuXG4ubWRsLW1lZ2EtZm9vdGVyLS1saW5rLWxpc3QsXG4ubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3Qge1xuICBsaXN0LXN0eWxlOiBub25lO1xuXG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcblxuICBtYXJnaW4tYm90dG9tOiAkZm9vdGVyLW1pbi1wYWRkaW5nICogMjtcbiAgJjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29udGVudDogJyc7XG4gIH1cbn1cblxuLm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0IGxpLFxuLm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0IGxpIHtcbiAgQGluY2x1ZGUgdHlwby1ib2R5LTEoKTtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG59XG5cbi5tZGwtbWVnYS1mb290ZXItLWxpbmstbGlzdCBhLFxuLm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0IGEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjBweCkge1xuICAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLWNoZWNrYm94LFxuICAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94IHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgJiArIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmc6YWZ0ZXIsXG4gICAgJiArIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmc6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICB9XG4gIH1cbiAgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveDpjaGVja2VkLFxuICAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQge1xuICAgIC8vIFdlYlZpZXdzIGluIGlPUyA5IGJyZWFrIHRoZSBcIn5cIiBvcGVyYXRvciwgYW5kIFdlYlZpZXdzIGluIE9TIFggMTAuMTBcbiAgICAvLyBicmVhayBjb25zZWN1dGl2ZSBcIitcIiBvcGVyYXRvcnMgaW4gc29tZSBjYXNlcy4gVGhlcmVmb3JlLCB3ZSBuZWVkIHRvIHVzZVxuICAgIC8vIGJvdGggaGVyZSB0byBjb3ZlciBhbGwgdGhlIGJhc2VzLlxuICAgICYgfiAubWRsLW1lZ2EtZm9vdGVyLS1saW5rLWxpc3QsXG4gICAgJiB+IC5tZGwtbWVnYS1mb290ZXJfX2xpbmstbGlzdCxcbiAgICAmICsgLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZyArIC5tZGwtbWVnYS1mb290ZXJfX2xpbmstbGlzdCxcbiAgICAmICsgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZyArIC5tZGwtbWVnYS1mb290ZXItLWxpbmstbGlzdCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmICsgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZzphZnRlcixcbiAgICAmICsgLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZzphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICB9XG4gIH1cbn1cblxuLm1kbC1tZWdhLWZvb3Rlci0tYm90dG9tLXNlY3Rpb24sXG4ubWRsLW1lZ2EtZm9vdGVyX19ib3R0b20tc2VjdGlvbiB7XG4gIHBhZGRpbmctdG9wOiAkZm9vdGVyLW1pbi1wYWRkaW5nO1xuICBtYXJnaW4tYm90dG9tOiAkZm9vdGVyLW1pbi1wYWRkaW5nO1xufVxuXG4ubWRsLWxvZ28ge1xuICBtYXJnaW4tYm90dG9tOiAkZm9vdGVyLW1pbi1wYWRkaW5nO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5tZGwtbWVnYS1mb290ZXItLWJvdHRvbS1zZWN0aW9uIC5tZGwtbWVnYS1mb290ZXItLWxpbmstbGlzdCBsaSxcbi5tZGwtbWVnYS1mb290ZXJfX2JvdHRvbS1zZWN0aW9uIC5tZGwtbWVnYS1mb290ZXJfX2xpbmstbGlzdCBsaSB7XG4gIGZsb2F0OiBsZWZ0O1xuXG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG1hcmdpbi1yaWdodDogJGZvb3Rlci1taW4tcGFkZGluZztcbn1cblxuXG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2MHB4KSB7XG4gIC5tZGwtbG9nbyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1hcmdpbi1yaWdodDogJGZvb3Rlci1taW4tcGFkZGluZztcbiAgfVxufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuXG4ubWRsLW1pbmktZm9vdGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gIHBhZGRpbmc6ICgkcGFkZGluZyAqIDIpICRwYWRkaW5nO1xuXG4gIGNvbG9yOiAkZm9vdGVyLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9vdGVyLWJnLWNvbG9yO1xuXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgJiAubWRsLWxvZ28ge1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9vdGVyLWJ0bi1zaXplO1xuICB9XG59XG5cbi5tZGwtbWluaS1mb290ZXItLWxpbmstbGlzdCxcbi5tZGwtbWluaS1mb290ZXJfX2xpbmstbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcblxuICBsaXN0LXN0eWxlOiBub25lO1xuXG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcblxuICAmIGxpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1hcmdpbi1yaWdodDogJHBhZGRpbmc7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjBweCkge1xuICAgICAgbGluZS1oZWlnaHQ6ICRmb290ZXItYnRuLXNpemU7XG4gICAgfVxuICB9XG5cbiAgJiBhIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxufVxuXG4ubWRsLW1pbmktZm9vdGVyLS1sZWZ0LXNlY3Rpb24sXG4ubWRsLW1pbmktZm9vdGVyX19sZWZ0LXNlY3Rpb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG9yZGVyOiAwO1xufVxuXG4ubWRsLW1pbmktZm9vdGVyLS1yaWdodC1zZWN0aW9uLFxuLm1kbC1taW5pLWZvb3Rlcl9fcmlnaHQtc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3JkZXI6IDE7XG59XG5cbi5tZGwtbWluaS1mb290ZXItLXNvY2lhbC1idG4sXG4ubWRsLW1pbmktZm9vdGVyX19zb2NpYWwtYnRuIHtcbiAgd2lkdGg6ICRmb290ZXItYnRuLXNpemU7XG4gIGhlaWdodDogJGZvb3Rlci1idG4tc2l6ZTtcblxuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGZvb3Rlci1idXR0b24tZmlsbC1jb2xvcjtcblxuICBib3JkZXI6IG5vbmU7XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5cbi5tZGwtaWNvbi10b2dnbGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgei1pbmRleDogMTtcblxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAkaWNvbi10b2dnbGUtc2l6ZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4ubWRsLWljb24tdG9nZ2xlX19pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiAkaWNvbi10b2dnbGUtc2l6ZTtcblxuICAubWRsLWljb24tdG9nZ2xlLmlzLXVwZ3JhZGVkICYge1xuICAgIC8vIEhpZGUgaW5wdXQgZWxlbWVudCwgd2hpbGUgc3RpbGwgbWFraW5nIGl0IHJlc3BvbmQgdG8gZm9jdXMuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC1tcy1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cbn1cblxuLm1kbC1pY29uLXRvZ2dsZV9fbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBoZWlnaHQ6ICRpY29uLXRvZ2dsZS1zaXplO1xuICB3aWR0aDogJGljb24tdG9nZ2xlLXNpemU7XG4gIG1pbi13aWR0aDogJGljb24tdG9nZ2xlLXNpemU7XG4gIGNvbG9yOiAkaWNvbi10b2dnbGUtY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgd2lsbC1jaGFuZ2U6IGJhY2tncm91bmQtY29sb3I7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyAkYW5pbWF0aW9uLWN1cnZlLWRlZmF1bHQsXG4gIGNvbG9yIDAuMnMgJGFuaW1hdGlvbi1jdXJ2ZS1kZWZhdWx0O1xuXG4gICYubWF0ZXJpYWwtaWNvbnMge1xuICAgIGxpbmUtaGVpZ2h0OiAkaWNvbi10b2dnbGUtc2l6ZTtcbiAgICBmb250LXNpemU6ICRpY29uLXRvZ2dsZS1mb250LXNpemU7XG4gIH1cblxuICAubWRsLWljb24tdG9nZ2xlLmlzLWNoZWNrZWQgJiB7XG4gICAgY29sb3I6ICRpY29uLXRvZ2dsZS1jaGVja2VkLWNvbG9yO1xuICB9XG5cbiAgLm1kbC1pY29uLXRvZ2dsZS5pcy1kaXNhYmxlZCAmIHtcbiAgICBjb2xvcjogJGljb24tdG9nZ2xlLWRpc2FibGVkLWNvbG9yO1xuICAgIGN1cnNvcjogYXV0bztcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG5cbiAgLm1kbC1pY29uLXRvZ2dsZS5pcy1mb2N1c2VkICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpY29uLXRvZ2dsZS1mb2N1cy1jb2xvcjtcbiAgfVxuXG4gIC5tZGwtaWNvbi10b2dnbGUuaXMtZm9jdXNlZC5pcy1jaGVja2VkICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpY29uLXRvZ2dsZS1jaGVja2VkLWZvY3VzLWNvbG9yO1xuICB9XG59XG5cblxuLm1kbC1pY29uLXRvZ2dsZV9fcmlwcGxlLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMjtcbiAgdG9wOiAtKCgkaWNvbi10b2dnbGUtcmlwcGxlLXNpemUgLSAkaWNvbi10b2dnbGUtc2l6ZSkgLyAyKTtcbiAgbGVmdDogLSgoJGljb24tdG9nZ2xlLXJpcHBsZS1zaXplIC0gJGljb24tdG9nZ2xlLXNpemUpIC8gMik7XG5cbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6ICRpY29uLXRvZ2dsZS1yaXBwbGUtc2l6ZTtcbiAgaGVpZ2h0OiAkaWNvbi10b2dnbGUtcmlwcGxlLXNpemU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLXdlYmtpdC1tYXNrLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHdoaXRlLCBibGFjayk7XG5cbiAgJiAubWRsLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZDogJGljb24tdG9nZ2xlLWNvbG9yO1xuICB9XG5cbiAgLm1kbC1pY29uLXRvZ2dsZS5pcy1kaXNhYmxlZCAmIHtcbiAgICBjdXJzb3I6IGF1dG87XG4gIH1cblxuICAubWRsLWljb24tdG9nZ2xlLmlzLWRpc2FibGVkICYgLm1kbC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vbWl4aW5zXCI7XG5cbi5tZGwtbWVudV9fY29udGFpbmVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHotaW5kZXg6IC0xO1xuXG4gICYuaXMtdmlzaWJsZSxcbiAgJi5pcy1hbmltYXRpbmcge1xuICAgIHotaW5kZXg6IDk5OTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG59XG5cbi5tZGwtbWVudV9fb3V0bGluZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kOiAkZGVmYXVsdC1kcm9wZG93bi1iZy1jb2xvcjtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgQGluY2x1ZGUgc2hhZG93LTJkcCgpO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJG1lbnUtZXhwYW5kLWR1cmF0aW9uICRhbmltYXRpb24tY3VydmUtZGVmYXVsdCxcbiAgICAgIG9wYWNpdHkgJG1lbnUtZmFkZS1kdXJhdGlvbiAkYW5pbWF0aW9uLWN1cnZlLWRlZmF1bHQ7XG4gIHotaW5kZXg6IC0xO1xuXG4gIC5tZGwtbWVudV9fY29udGFpbmVyLmlzLXZpc2libGUgJiB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHotaW5kZXg6IDk5OTtcbiAgfVxuXG4gICYubWRsLW1lbnUtLWJvdHRvbS1yaWdodCB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwO1xuICB9XG5cbiAgJi5tZGwtbWVudS0tdG9wLWxlZnQge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMTAwJTtcbiAgfVxuXG4gICYubWRsLW1lbnUtLXRvcC1yaWdodCB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xuICB9XG59XG5cbi5tZGwtbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBtaW4td2lkdGg6IDEyNHB4O1xuICBwYWRkaW5nOiA4cHggMDtcbiAgbWFyZ2luOiAwO1xuICBvcGFjaXR5OiAwO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICB6LWluZGV4OiAtMTtcblxuICAubWRsLW1lbnVfX2NvbnRhaW5lci5pcy12aXNpYmxlICYge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgei1pbmRleDogOTk5O1xuICB9XG5cbiAgJi5pcy1hbmltYXRpbmcge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJG1lbnUtZmFkZS1kdXJhdGlvbiAkYW5pbWF0aW9uLWN1cnZlLWRlZmF1bHQsXG4gICAgICAgIGNsaXAgJG1lbnUtZXhwYW5kLWR1cmF0aW9uICRhbmltYXRpb24tY3VydmUtZGVmYXVsdDtcbiAgfVxuXG4gICYubWRsLW1lbnUtLWJvdHRvbS1yaWdodCB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMDtcbiAgfVxuXG4gICYubWRsLW1lbnUtLXRvcC1sZWZ0IHtcbiAgICB0b3A6IGF1dG87XG4gICAgYm90dG9tOiAwO1xuICB9XG5cbiAgJi5tZGwtbWVudS0tdG9wLXJpZ2h0IHtcbiAgICB0b3A6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDA7XG4gIH1cblxuICAmLm1kbC1tZW51LS11bmFsaWduZWQge1xuICAgIHRvcDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG59XG5cbi5tZGwtbWVudV9faXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiAkZGVmYXVsdC1pdGVtLXRleHQtY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgMTZweDtcbiAgb3V0bGluZS1jb2xvcjogJGRlZmF1bHQtaXRlbS1vdXRsaW5lLWNvbG9yO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIEBpbmNsdWRlIHR5cG8tYm9keS0xKCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRtZW51LWZhZGUtZHVyYXRpb24gJGFuaW1hdGlvbi1jdXJ2ZS1kZWZhdWx0O1xuICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAubWRsLW1lbnVfX2NvbnRhaW5lci5pcy12aXNpYmxlICYge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY29sb3I6ICRkaXNhYmxlZC1pdGVtLXRleHQtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY3Vyc29yOiBhdXRvO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgICYgLm1kbC1yaXBwbGUge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGRlZmF1bHQtaXRlbS1ob3Zlci1iZy1jb2xvcjtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGRlZmF1bHQtaXRlbS1mb2N1cy1iZy1jb2xvcjtcbiAgfVxuXG4gICY6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGVmYXVsdC1pdGVtLWFjdGl2ZS1iZy1jb2xvcjtcbiAgfVxufVxuXG5cbi5tZGwtbWVudV9faXRlbS0tcmlwcGxlLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5cbi5tZGwtcHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6ICRiYXItaGVpZ2h0O1xuICB3aWR0aDogNTAwcHg7XG59XG5cbi5tZGwtcHJvZ3Jlc3MgPiAuYmFyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAwJTtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4ycyAkYW5pbWF0aW9uLWN1cnZlLWRlZmF1bHQ7XG59XG5cbi5tZGwtcHJvZ3Jlc3MgPiAucHJvZ3Jlc3NiYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvZ3Jlc3MtbWFpbi1jb2xvcjtcbiAgei1pbmRleDogMTtcbiAgbGVmdDogMDtcbn1cblxuLm1kbC1wcm9ncmVzcyA+IC5idWZmZXJiYXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRwcm9ncmVzcy1zZWNvbmRhcnktY29sb3IsICRwcm9ncmVzcy1zZWNvbmRhcnktY29sb3IpLFxuICAgIGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHByb2dyZXNzLW1haW4tY29sb3IsICRwcm9ncmVzcy1tYWluLWNvbG9yKTtcbiAgei1pbmRleDogMDtcbiAgbGVmdDogMDtcbn1cblxuLm1kbC1wcm9ncmVzcyA+IC5hdXhiYXIge1xuICByaWdodDogMDtcbn1cblxuLy8gV2Via2l0IG9ubHlcbkBzdXBwb3J0cyAoLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmUpIHtcbiAgLm1kbC1wcm9ncmVzczpub3QoLm1kbC1wcm9ncmVzc19faW5kZXRlcm1pbmF0ZSk6bm90KC5tZGwtcHJvZ3Jlc3NfX2luZGV0ZXJtaW5hdGUpID4gLmF1eGJhciB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkcHJvZ3Jlc3Mtc2Vjb25kYXJ5LWNvbG9yLCAkcHJvZ3Jlc3Mtc2Vjb25kYXJ5LWNvbG9yKSxcbiAgICAgIGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHByb2dyZXNzLW1haW4tY29sb3IsICRwcm9ncmVzcy1tYWluLWNvbG9yKTtcbiAgICBtYXNrOiB1cmwoJyN7JHByb2dyZXNzLWltYWdlLXBhdGh9L2J1ZmZlci5zdmc/ZW1iZWQnKTtcbiAgfVxufVxuXG4ubWRsLXByb2dyZXNzOm5vdCgubWRsLXByb2dyZXNzX19pbmRldGVybWluYXRlKSA+IC5hdXhiYXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRwcm9ncmVzcy1mYWxsYmFjay1idWZmZXItY29sb3IsICRwcm9ncmVzcy1mYWxsYmFjay1idWZmZXItY29sb3IpLFxuICAgIGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHByb2dyZXNzLW1haW4tY29sb3IsICRwcm9ncmVzcy1tYWluLWNvbG9yKTtcbn1cblxuLm1kbC1wcm9ncmVzcy5tZGwtcHJvZ3Jlc3NfX2luZGV0ZXJtaW5hdGUgPiAuYmFyMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcm9ncmVzcy1tYWluLWNvbG9yO1xuICBhbmltYXRpb24tbmFtZTogaW5kZXRlcm1pbmF0ZTE7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMnM7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG59XG5cbi5tZGwtcHJvZ3Jlc3MubWRsLXByb2dyZXNzX19pbmRldGVybWluYXRlID4gLmJhcjMge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvZ3Jlc3MtbWFpbi1jb2xvcjtcbiAgYW5pbWF0aW9uLW5hbWU6IGluZGV0ZXJtaW5hdGUyO1xuICBhbmltYXRpb24tZHVyYXRpb246IDJzO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xufVxuXG5Aa2V5ZnJhbWVzIGluZGV0ZXJtaW5hdGUxIHtcbiAgMCUge1xuICAgIGxlZnQ6IDAlO1xuICAgIHdpZHRoOiAwJTtcbiAgfVxuICA1MCUge1xuICAgIGxlZnQ6IDI1JTtcbiAgICB3aWR0aDogNzUlO1xuICB9XG4gIDc1JSB7XG4gICAgbGVmdDogMTAwJTtcbiAgICB3aWR0aDogMCU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBpbmRldGVybWluYXRlMiB7XG4gIDAlIHtcbiAgICBsZWZ0OiAwJTtcbiAgICB3aWR0aDogMCU7XG4gIH1cbiAgNTAlIHtcbiAgICBsZWZ0OiAwJTtcbiAgICB3aWR0aDogMCU7XG4gIH1cbiAgNzUlIHtcbiAgICBsZWZ0OiAwJTtcbiAgICB3aWR0aDogMjUlO1xuICB9XG4gIDEwMCUge1xuICAgIGxlZnQ6IDEwMCU7XG4gICAgd2lkdGg6IDAlO1xuICB9XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vbWl4aW5zXCI7XG5cbi8vIE5hdmlnYXRpb24gY2xhc3Nlcy4gT25seSB1c2VkIGhlcmUgZm9yIG5vdywgYnV0IHdlIG1heSBhdCBzb21lIHBvaW50IG1vdmVcbi8vIHRoaXMgdG8gaXRzIG93biBjb21wb25lbnQuXG4ubWRsLW5hdmlnYXRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLm1kbC1uYXZpZ2F0aW9uX19saW5rIHtcbiAgY29sb3I6ICRsYXlvdXQtdGV4dC1jb2xvcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6ICRsYXlvdXQtbmF2LWxpbmstZm9udC1zaXplO1xuICBtYXJnaW46IDA7XG59XG5cbi8vIE1haW4gbGF5b3V0IGNsYXNzLlxuLm1kbC1sYXlvdXQge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG4vLyBVdGlsaXR5IGNsYXNzZXMgZm9yIHNjcmVlbiBzaXplcy5cbi5tZGwtbGF5b3V0LmlzLXNtYWxsLXNjcmVlbiAubWRsLWxheW91dC0tbGFyZ2Utc2NyZWVuLW9ubHkge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWRsLWxheW91dDpub3QoLmlzLXNtYWxsLXNjcmVlbikgLm1kbC1sYXlvdXQtLXNtYWxsLXNjcmVlbi1vbmx5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1kbC1sYXlvdXRfX2NvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuXG4gIC8vIE9wdGlvbmFsIHV0aWxpdHkgY2xhc3NlcyBmb3IgZm9ybWF0dGluZyBzcGVjaWFsIGJsb2NrcyBpbiB0aGlzIGNvbXBvbmVudC5cbiAgLm1kbC1sYXlvdXRfX3RpdGxlLFxuICAubWRsLWxheW91dC10aXRsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgQGluY2x1ZGUgdHlwby10aXRsZSgpO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIC5tZGwtbGF5b3V0LXNwYWNlciB7XG4gICAgZmxleC1ncm93OiAxO1xuICB9XG5cblxuICAvLyBEcmF3ZXIuXG4gIC5tZGwtbGF5b3V0X19kcmF3ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcblxuICAgIHdpZHRoOiAkbGF5b3V0LWRyYXdlci13aWR0aDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIEBpbmNsdWRlIHNoYWRvdy0yZHAoKTtcblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGxheW91dC1kcmF3ZXItYm9yZGVyLWNvbG9yO1xuICAgIGJhY2tncm91bmQ6ICRsYXlvdXQtZHJhd2VyLWJnLWNvbG9yO1xuXG4gICAgLy8gVHJhbnNmb3JtIG9mZnNjcmVlbi5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRsYXlvdXQtZHJhd2VyLXdpZHRoIC0gMTBweCk7XG4gICAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuXG4gICAgQGluY2x1ZGUgbWF0ZXJpYWwtYW5pbWF0aW9uLWRlZmF1bHQoKTtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm07XG5cbiAgICBjb2xvcjogJGxheW91dC10ZXh0LWNvbG9yO1xuXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIHotaW5kZXg6IDU7XG5cbiAgICAmLmlzLXZpc2libGUge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgJiB+IC5tZGwtbGF5b3V0X19jb250ZW50Lm1kbC1sYXlvdXRfX2NvbnRlbnQge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgfVxuICAgIH1cblxuICAgICYgPiAqIHtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIH1cblxuICAgICYgPiAubWRsLWxheW91dF9fdGl0bGUsXG4gICAgJiA+IC5tZGwtbGF5b3V0LXRpdGxlIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkbGF5b3V0LWRlc2t0b3AtaGVhZGVyLWhlaWdodDtcbiAgICAgIHBhZGRpbmctbGVmdDogJGxheW91dC1oZWFkZXItZGVza3RvcC1pbmRlbnQ7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsYXlvdXQtc2NyZWVuLXNpemUtdGhyZXNob2xkKSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkbGF5b3V0LW1vYmlsZS1oZWFkZXItaGVpZ2h0O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRsYXlvdXQtaGVhZGVyLW1vYmlsZS1pbmRlbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJiAubWRsLW5hdmlnYXRpb24ge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgcGFkZGluZy10b3A6IDE2cHg7XG5cbiAgICAgICYgLm1kbC1uYXZpZ2F0aW9uX19saW5rIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICBwYWRkaW5nOiAxNnB4ICRsYXlvdXQtaGVhZGVyLWRlc2t0b3AtaW5kZW50O1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgY29sb3I6ICRsYXlvdXQtZHJhd2VyLW5hdmlnYXRpb24tY29sb3I7XG5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxheW91dC1zY3JlZW4tc2l6ZS10aHJlc2hvbGQpIHtcbiAgICAgICAgICBwYWRkaW5nOiAxNnB4ICRsYXlvdXQtaGVhZGVyLW1vYmlsZS1pbmRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGF5b3V0LW5hdi1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGxheW91dC1kcmF3ZXItbmF2aWdhdGlvbi1saW5rLWFjdGl2ZS1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgY29sb3I6ICRsYXlvdXQtZHJhd2VyLW5hdmlnYXRpb24tbGluay1hY3RpdmUtY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGF5b3V0LXNjcmVlbi1zaXplLXRocmVzaG9sZCArIDFweCkge1xuICAgICAgLm1kbC1sYXlvdXQtLWZpeGVkLWRyYXdlciA+ICYge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICAvLyBEcmF3ZXIgYnV0dG9uLlxuICAvLyBUT0RPKHNnb21lcyk6IFJlcGxhY2Ugd2l0aCBhbiBpY29uIGJ1dHRvbiB3aGVuIHdlIGhhdmUgdGhhdCBjb21wb25lbnQuXG4gIC5tZGwtbGF5b3V0X19kcmF3ZXItYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6ICRsYXlvdXQtZHJhd2VyLWJ1dHRvbi1kZXNrdG9wLXNpemU7XG4gICAgd2lkdGg6ICRsYXlvdXQtZHJhd2VyLWJ1dHRvbi1kZXNrdG9wLXNpemU7XG4gICAgYm9yZGVyOiAwO1xuXG4gICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAyNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAkbGF5b3V0LWRyYXdlci1idXR0b24tZGVza3RvcC1zaXplICsgMjtcbiAgICBmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBtYXJnaW46IDEwcHggMTJweDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBjb2xvcjogJGxheW91dC1oZWFkZXItdGV4dC1jb2xvcjtcblxuICAgIHotaW5kZXg6IDQ7XG5cbiAgICAubWRsLWxheW91dF9faGVhZGVyICYge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgY29sb3I6ICRsYXlvdXQtaGVhZGVyLXRleHQtY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbGF5b3V0LXNjcmVlbi1zaXplLXRocmVzaG9sZCkge1xuICAgICAgICBtYXJnaW46IDRweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbGF5b3V0LXNjcmVlbi1zaXplLXRocmVzaG9sZCkge1xuICAgICAgbWFyZ2luOiA0cHg7XG4gICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXlvdXQtc2NyZWVuLXNpemUtdGhyZXNob2xkICsgMXB4KSB7XG4gICAgICAubWRsLWxheW91dC0tZml4ZWQtZHJhd2VyID4gJiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kbC1sYXlvdXRfX2hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG1pbi1oZWlnaHQ6ICRsYXlvdXQtZGVza3RvcC1oZWFkZXItaGVpZ2h0O1xuICAgIG1heC1oZWlnaHQ6IDEwMDBweDtcbiAgICB6LWluZGV4OiAzO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGxheW91dC1oZWFkZXItYmctY29sb3I7XG4gICAgY29sb3I6ICRsYXlvdXQtaGVhZGVyLXRleHQtY29sb3I7XG5cbiAgICBAaW5jbHVkZSBzaGFkb3ctMmRwKCk7XG4gICAgQGluY2x1ZGUgbWF0ZXJpYWwtYW5pbWF0aW9uLWRlZmF1bHQoKTtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBtYXgtaGVpZ2h0LCBib3gtc2hhZG93O1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxheW91dC1zY3JlZW4tc2l6ZS10aHJlc2hvbGQpIHtcbiAgICAgIG1pbi1oZWlnaHQ6ICRsYXlvdXQtbW9iaWxlLWhlYWRlci1oZWlnaHQ7XG4gICAgfVxuXG4gICAgLm1kbC1sYXlvdXQtLWZpeGVkLWRyYXdlci5pcy11cGdyYWRlZDpub3QoLmlzLXNtYWxsLXNjcmVlbikgPiAmIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAkbGF5b3V0LWRyYXdlci13aWR0aDtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRsYXlvdXQtZHJhd2VyLXdpZHRofSk7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxheW91dC1zY3JlZW4tc2l6ZS10aHJlc2hvbGQgKyAxcHgpIHtcbiAgICAgIC5tZGwtbGF5b3V0LS1maXhlZC1kcmF3ZXIgPiAmIHtcbiAgICAgICAgLm1kbC1sYXlvdXRfX2hlYWRlci1yb3cge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogNDBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYgPiAubWRsLWxheW91dC1pY29uIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6ICRsYXlvdXQtaGVhZGVyLWRlc2t0b3AtaW5kZW50O1xuICAgICAgdG9wOiAoJGxheW91dC1kZXNrdG9wLWhlYWRlci1oZWlnaHQgLSAkbGF5b3V0LWhlYWRlci1pY29uLXNpemUpIC8gMjtcbiAgICAgIGhlaWdodDogJGxheW91dC1oZWFkZXItaWNvbi1zaXplO1xuICAgICAgd2lkdGg6ICRsYXlvdXQtaGVhZGVyLWljb24tc2l6ZTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB6LWluZGV4OiAzO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsYXlvdXQtc2NyZWVuLXNpemUtdGhyZXNob2xkKSB7XG4gICAgICAgIGxlZnQ6ICRsYXlvdXQtaGVhZGVyLW1vYmlsZS1pbmRlbnQ7XG4gICAgICAgIHRvcDogKCRsYXlvdXQtbW9iaWxlLWhlYWRlci1oZWlnaHQgLSAkbGF5b3V0LWhlYWRlci1pY29uLXNpemUpIC8gMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWRsLWxheW91dC5oYXMtZHJhd2VyICYgPiAubWRsLWxheW91dC1pY29uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5pcy1jb21wYWN0IHtcbiAgICAgIG1heC1oZWlnaHQ6ICRsYXlvdXQtZGVza3RvcC1oZWFkZXItaGVpZ2h0O1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbGF5b3V0LXNjcmVlbi1zaXplLXRocmVzaG9sZCkge1xuICAgICAgICBtYXgtaGVpZ2h0OiAkbGF5b3V0LW1vYmlsZS1oZWFkZXItaGVpZ2h0O1xuICAgICAgfVxuICAgIH1cblxuICAgICYuaXMtY29tcGFjdC5oYXMtdGFicyB7XG4gICAgICBoZWlnaHQ6ICRsYXlvdXQtZGVza3RvcC1oZWFkZXItaGVpZ2h0ICsgJGxheW91dC10YWItYmFyLWhlaWdodDtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxheW91dC1zY3JlZW4tc2l6ZS10aHJlc2hvbGQpIHtcbiAgICAgICAgbWluLWhlaWdodDogJGxheW91dC1tb2JpbGUtaGVhZGVyLWhlaWdodCArICRsYXlvdXQtdGFiLWJhci1oZWlnaHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxheW91dC1zY3JlZW4tc2l6ZS10aHJlc2hvbGQpIHtcbiAgICAgICYge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICAubWRsLWxheW91dC0tZml4ZWQtaGVhZGVyID4gJiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgICAubWRsLWxheW91dF9faGVhZGVyLS10cmFuc3BhcmVudC5tZGwtbGF5b3V0X19oZWFkZXItLXRyYW5zcGFyZW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG5cbiAgICAubWRsLWxheW91dF9faGVhZGVyLS1zZWFtZWQge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG5cbiAgICAubWRsLWxheW91dF9faGVhZGVyLS1zY3JvbGwge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG5cbiAgICAubWRsLWxheW91dF9faGVhZGVyLS13YXRlcmZhbGwge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICYuaXMtY2FzdGluZy1zaGFkb3cge1xuICAgICAgICBAaW5jbHVkZSBzaGFkb3ctMmRwKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1kbC1sYXlvdXRfX2hlYWRlci1yb3cge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgaGVpZ2h0OiAkbGF5b3V0LWhlYWRlci1kZXNrdG9wLXJvdy1oZWlnaHQ7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwICRsYXlvdXQtaGVhZGVyLWRlc2t0b3AtaW5kZW50IDAgJGxheW91dC1oZWFkZXItZGVza3RvcC1iYXNlbGluZTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxheW91dC1zY3JlZW4tc2l6ZS10aHJlc2hvbGQpIHtcbiAgICAgICAgaGVpZ2h0OiAkbGF5b3V0LWhlYWRlci1tb2JpbGUtcm93LWhlaWdodDtcbiAgICAgICAgcGFkZGluZzogMCAkbGF5b3V0LWhlYWRlci1tb2JpbGUtaW5kZW50IDAgJGxheW91dC1oZWFkZXItbW9iaWxlLWJhc2VsaW5lO1xuICAgICAgfVxuXG4gICAgICAmID4gKiB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgfVxuXG4gICAgICAubWRsLWxheW91dF9faGVhZGVyLS1zY3JvbGwgJiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAmIC5tZGwtbmF2aWdhdGlvbiB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgaGVpZ2h0OiAkbGF5b3V0LWhlYWRlci1kZXNrdG9wLXJvdy1oZWlnaHQ7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxheW91dC1zY3JlZW4tc2l6ZS10aHJlc2hvbGQpIHtcbiAgICAgICAgICBoZWlnaHQ6ICRsYXlvdXQtaGVhZGVyLW1vYmlsZS1yb3ctaGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYgLm1kbC1uYXZpZ2F0aW9uX19saW5rIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbG9yOiAkbGF5b3V0LWhlYWRlci10ZXh0LWNvbG9yO1xuICAgICAgICBsaW5lLWhlaWdodDogJGxheW91dC1oZWFkZXItZGVza3RvcC1yb3ctaGVpZ2h0O1xuICAgICAgICBwYWRkaW5nOiAwIDI0cHg7XG5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxheW91dC1zY3JlZW4tc2l6ZS10aHJlc2hvbGQpIHtcbiAgICAgICAgICBsaW5lLWhlaWdodDogJGxheW91dC1oZWFkZXItbW9iaWxlLXJvdy1oZWlnaHQ7XG4gICAgICAgICAgcGFkZGluZzogMCAkbGF5b3V0LWhlYWRlci1tb2JpbGUtaW5kZW50O1xuICAgICAgICB9XG4gICAgICB9ICAgIH1cblxuICAvLyBPYmZ1c2NhdG9yLlxuICAubWRsLWxheW91dF9fb2JmdXNjYXRvciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiA0O1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIEBpbmNsdWRlIG1hdGVyaWFsLWFuaW1hdGlvbi1kZWZhdWx0KCk7XG5cbiAgICAmLmlzLXZpc2libGUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG4gIH1cblxuXG4gIC8vIENvbnRlbnQuXG4gIC5tZGwtbGF5b3V0X19jb250ZW50IHtcbiAgICAvLyBGaXggSUUxMCBidWcuXG4gICAgLW1zLWZsZXg6IDAgMSBhdXRvO1xuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICB6LWluZGV4OiAxO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcblxuICAgIC5tZGwtbGF5b3V0LS1maXhlZC1kcmF3ZXIgPiAmIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAkbGF5b3V0LWRyYXdlci13aWR0aDtcbiAgICB9XG5cbiAgICAubWRsLWxheW91dF9fY29udGFpbmVyLmhhcy1zY3JvbGxpbmctaGVhZGVyICYge1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxheW91dC1zY3JlZW4tc2l6ZS10aHJlc2hvbGQpIHtcbiAgICAgIC5tZGwtbGF5b3V0LS1maXhlZC1kcmF3ZXIgPiAmIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG5cbiAgICAgIC5tZGwtbGF5b3V0X19jb250YWluZXIuaGFzLXNjcm9sbGluZy1oZWFkZXIgJiB7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBUYWJzLlxuICAubWRsLWxheW91dF9fdGFiLWJhciB7XG4gICAgaGVpZ2h0OiAkbGF5b3V0LXRhYi1iYXItaGVpZ2h0ICogMjtcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtXG4gICAgICAgICN7KCgkbGF5b3V0LWhlYWRlci1kZXNrdG9wLWJhc2VsaW5lIC0gJGxheW91dC10YWItZGVza3RvcC1wYWRkaW5nKSAqIDIpfSk7XG4gICAgcGFkZGluZzogMCAwIDBcbiAgICAgICAgKCRsYXlvdXQtaGVhZGVyLWRlc2t0b3AtYmFzZWxpbmUgLSAkbGF5b3V0LXRhYi1kZXNrdG9wLXBhZGRpbmcpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGxheW91dC1oZWFkZXItYmctY29sb3I7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcblxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxheW91dC1zY3JlZW4tc2l6ZS10aHJlc2hvbGQpIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLVxuICAgICAgICAgICN7KCRsYXlvdXQtaGVhZGVyLW1vYmlsZS1iYXNlbGluZSAtICRsYXlvdXQtdGFiLW1vYmlsZS1wYWRkaW5nKX0pO1xuICAgICAgcGFkZGluZzogMCAwIDBcbiAgICAgICAgICAoJGxheW91dC1oZWFkZXItbW9iaWxlLWJhc2VsaW5lIC0gJGxheW91dC10YWItbW9iaWxlLXBhZGRpbmcpO1xuICAgIH1cblxuICAgIC5tZGwtbGF5b3V0LS1maXhlZC10YWJzICYge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAubWRsLWxheW91dF9fdGFiLWJhci1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6ICRsYXlvdXQtdGFiLWJhci1oZWlnaHQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICB6LWluZGV4OiAyO1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLm1kbC1sYXlvdXRfX2NvbnRhaW5lciA+ICYge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICB9XG4gIH1cblxuICAubWRsLWxheW91dF9fdGFiLWJhci1idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGhlaWdodDogJGxheW91dC10YWItYmFyLWhlaWdodDtcbiAgICB3aWR0aDogJGxheW91dC1oZWFkZXItZGVza3RvcC1iYXNlbGluZSAtICRsYXlvdXQtdGFiLWRlc2t0b3AtcGFkZGluZztcbiAgICB6LWluZGV4OiA0O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGF5b3V0LWhlYWRlci1iZy1jb2xvcjtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxheW91dC1zY3JlZW4tc2l6ZS10aHJlc2hvbGQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB3aWR0aDogJGxheW91dC1oZWFkZXItbW9iaWxlLWJhc2VsaW5lIC0gJGxheW91dC10YWItbW9iaWxlLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLm1kbC1sYXlvdXQtLWZpeGVkLXRhYnMgJiB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICYgLm1hdGVyaWFsLWljb25zIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkbGF5b3V0LXRhYi1iYXItaGVpZ2h0O1xuICAgIH1cblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIGNvbG9yOiAkbGF5b3V0LWhlYWRlci10ZXh0LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5tZGwtbGF5b3V0X190YWItYmFyLWxlZnQtYnV0dG9uIHtcbiAgICBsZWZ0OiAwO1xuICB9XG5cbiAgLm1kbC1sYXlvdXRfX3RhYi1iYXItcmlnaHQtYnV0dG9uIHtcbiAgICByaWdodDogMDtcbiAgfVxuXG4gIC5tZGwtbGF5b3V0X190YWIge1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZzogMCAkbGF5b3V0LXRhYi1kZXNrdG9wLXBhZGRpbmcgMCAkbGF5b3V0LXRhYi1kZXNrdG9wLXBhZGRpbmc7XG5cbiAgICBmbG9hdDogbGVmdDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGhlaWdodDogJGxheW91dC10YWItYmFyLWhlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJGxheW91dC10YWItYmFyLWhlaWdodDtcblxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc2l6ZTogJGxheW91dC10YWItZm9udC1zaXplO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICBjb2xvcjogJGxheW91dC1oZWFkZXItdGFiLXRleHQtY29sb3I7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsYXlvdXQtc2NyZWVuLXNpemUtdGhyZXNob2xkKSB7XG4gICAgICBwYWRkaW5nOiAwICRsYXlvdXQtdGFiLW1vYmlsZS1wYWRkaW5nIDAgJGxheW91dC10YWItbW9iaWxlLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLm1kbC1sYXlvdXQtLWZpeGVkLXRhYnMgJiB7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLm1kbC1sYXlvdXQuaXMtdXBncmFkZWQgJi5pcy1hY3RpdmUge1xuICAgICAgY29sb3I6ICRsYXlvdXQtaGVhZGVyLXRleHQtY29sb3I7XG4gICAgfVxuXG4gICAgLm1kbC1sYXlvdXQuaXMtdXBncmFkZWQgJi5pcy1hY3RpdmU6OmFmdGVyIHtcbiAgICAgIGhlaWdodDogJGxheW91dC10YWItaGlnaGxpZ2h0LXRoaWNrbmVzcztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBiYWNrZ3JvdW5kOiAkbGF5b3V0LWhlYWRlci10YWItaGlnaGxpZ2h0O1xuICAgICAgYW5pbWF0aW9uOiBib3JkZXItZXhwYW5kIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjQsIDEpIDAuMDFzIGFsdGVybmF0ZSBmb3J3YXJkcztcbiAgICAgIHRyYW5zaXRpb246IGFsbCAxcyBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDEsIDEpO1xuICAgIH1cblxuICAgICYgLm1kbC1sYXlvdXRfX3RhYi1yaXBwbGUtY29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdG9wOiAwO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICYgLm1kbC1yaXBwbGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGF5b3V0LWhlYWRlci10ZXh0LWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGwtbGF5b3V0X190YWItcGFuZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgLm1kbC1sYXlvdXQuaXMtdXBncmFkZWQgJiB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5tZGwtbGF5b3V0LmlzLXVwZ3JhZGVkICYuaXMtYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuXG4ubWRsLXJhZGlvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIGZvbnQtc2l6ZTogJHJhZGlvLWxhYmVsLWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6ICRyYWRpby1sYWJlbC1oZWlnaHQ7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuXG4gICYuaXMtdXBncmFkZWQge1xuICAgIHBhZGRpbmctbGVmdDogJHJhZGlvLWJ1dHRvbi1zaXplICsgJHJhZGlvLXBhZGRpbmc7XG4gIH1cbn1cblxuLm1kbC1yYWRpb19fYnV0dG9uIHtcbiAgbGluZS1oZWlnaHQ6ICRyYWRpby1sYWJlbC1oZWlnaHQ7XG5cbiAgLm1kbC1yYWRpby5pcy11cGdyYWRlZCAmIHtcbiAgICAvLyBIaWRlIGlucHV0IGVsZW1lbnQsIHdoaWxlIHN0aWxsIG1ha2luZyBpdCByZXNwb25kIHRvIGZvY3VzLlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtbXMtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG59XG5cbi5tZGwtcmFkaW9fX291dGVyLWNpcmNsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAkcmFkaW8tdG9wLW9mZnNldDtcbiAgbGVmdDogMDtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6ICRyYWRpby1idXR0b24tc2l6ZTtcbiAgaGVpZ2h0OiAkcmFkaW8tYnV0dG9uLXNpemU7XG4gIG1hcmdpbjogMDtcblxuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgYm9yZGVyOiAycHggc29saWQgJHJhZGlvLW9mZi1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gIHotaW5kZXg6IDI7XG5cbiAgLm1kbC1yYWRpby5pcy1jaGVja2VkICYge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICRyYWRpby1jb2xvcjtcbiAgfVxuXG4gIC5tZGwtcmFkaW8uaXMtZGlzYWJsZWQgJiB7XG4gICAgYm9yZGVyOiAycHggc29saWQgJHJhZGlvLWRpc2FibGVkLWNvbG9yO1xuICAgIGN1cnNvcjogYXV0bztcbiAgfVxufVxuXG4ubWRsLXJhZGlvX19pbm5lci1jaXJjbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE7XG4gIG1hcmdpbjogMDtcbiAgdG9wOiAkcmFkaW8tdG9wLW9mZnNldCArICRyYWRpby1pbm5lci1tYXJnaW47XG4gIGxlZnQ6ICRyYWRpby1pbm5lci1tYXJnaW47XG5cbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6ICRyYWRpby1idXR0b24tc2l6ZSAtICgkcmFkaW8taW5uZXItbWFyZ2luICogMik7XG4gIGhlaWdodDogJHJhZGlvLWJ1dHRvbi1zaXplIC0gKCRyYWRpby1pbm5lci1tYXJnaW4gKiAyKTtcblxuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgQGluY2x1ZGUgbWF0ZXJpYWwtYW5pbWF0aW9uLWRlZmF1bHQoMC4yOHMpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm07XG4gIHRyYW5zZm9ybTogc2NhbGUzZCgwLCAwLCAwKTtcblxuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6ICRyYWRpby1jb2xvcjtcblxuICAubWRsLXJhZGlvLmlzLWNoZWNrZWQgJiB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG5cbiAgLm1kbC1yYWRpby5pcy1kaXNhYmxlZCAmIHtcbiAgICBiYWNrZ3JvdW5kOiAkcmFkaW8tZGlzYWJsZWQtY29sb3I7XG4gICAgY3Vyc29yOiBhdXRvO1xuICB9XG5cbiAgLm1kbC1yYWRpby5pcy1mb2N1c2VkICYge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwcHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIH1cbn1cblxuLm1kbC1yYWRpb19fbGFiZWwge1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgLm1kbC1yYWRpby5pcy1kaXNhYmxlZCAmIHtcbiAgICBjb2xvcjogJHJhZGlvLWRpc2FibGVkLWNvbG9yO1xuICAgIGN1cnNvcjogYXV0bztcbiAgfVxufVxuXG4ubWRsLXJhZGlvX19yaXBwbGUtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAyO1xuICB0b3A6IC0oKCRyYWRpby1yaXBwbGUtc2l6ZSAtICRyYWRpby1sYWJlbC1oZWlnaHQpIC8gMik7XG4gIGxlZnQ6IC0oKCRyYWRpby1yaXBwbGUtc2l6ZSAtICRyYWRpby1idXR0b24tc2l6ZSkgLyAyKTtcblxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogJHJhZGlvLXJpcHBsZS1zaXplO1xuICBoZWlnaHQ6ICRyYWRpby1yaXBwbGUtc2l6ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICBvdmVyZmxvdzogaGlkZGVuO1xuICAtd2Via2l0LW1hc2staW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgd2hpdGUsIGJsYWNrKTtcblxuICAmIC5tZGwtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kOiAkcmFkaW8tY29sb3I7XG4gIH1cblxuICAubWRsLXJhZGlvLmlzLWRpc2FibGVkICYge1xuICAgIGN1cnNvcjogYXV0bztcbiAgfVxuXG4gIC5tZGwtcmFkaW8uaXMtZGlzYWJsZWQgJiAubWRsLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcblxuLy8gU29tZSBDU1MgbWFnaWMgdG8gdGFyZ2V0IG9ubHkgSUUuXG5fOi1tcy1pbnB1dC1wbGFjZWhvbGRlciwgOnJvb3QgLm1kbC1zbGlkZXIubWRsLXNsaWRlci5pcy11cGdyYWRlZCB7XG4gIC1tcy1hcHBlYXJhbmNlOiBub25lO1xuICAvLyBUaGUgdGh1bWIgY2FuJ3Qgb3ZlcmZsb3cgdGhlIHRyYWNrIG9yIHRoZSByZXN0IG9mIHRoZSBjb250cm9sIGluIElFLCBzbyB3ZVxuICAvLyBuZWVkIHRvIG1ha2UgaXQgdGFsbCBlbm91Z2ggdG8gY29udGFpbiB0aGUgbGFyZ2VzdCB2ZXJzaW9uIG9mIHRoZSB0aHVtYi5cbiAgaGVpZ2h0OiAzMnB4O1xuICBtYXJnaW46IDA7XG59XG5cbi8vIFNsaWRlciBjb21wb25lbnQgKHN0eWxlZCBpbnB1dFt0eXBlPXJhbmdlXSkuXG4ubWRsLXNsaWRlciB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA0MHB4KTtcbiAgbWFyZ2luOiAwIDIwcHg7XG5cbiAgJi5pcy11cGdyYWRlZCB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGhlaWdodDogMnB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY29sb3I6ICRyYW5nZS1jb2xvcjtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgei1pbmRleDogMTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cblxuICAgIC8vIERpc2FibGUgZGVmYXVsdCBmb2N1cyBvbiBGaXJlZm94LlxuICAgICY6Oi1tb3otZm9jdXMtb3V0ZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cblxuICAgIC8vIERpc2FibGUgdG9vbHRpcCBvbiBJRS5cbiAgICAmOjotbXMtdG9vbHRpcCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKiogVHJhY2tzICoqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gICAgJjo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgJjo6LW1vei1yYW5nZS10cmFjayB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG5cbiAgICAmOjotbXMtdHJhY2sge1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGhlaWdodDogMnB4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuXG4gICAgJjo6LW1zLWZpbGwtbG93ZXIge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIC8vIE1hcmdpbiBvbiAtbXMtdHJhY2sgZG9lc24ndCB3b3JrIHJpZ2h0LCBzbyB3ZSB1c2UgZ3JhZGllbnRzIG9uIHRoZVxuICAgICAgLy8gZmlsbHMuXG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsXG4gICAgICB0cmFuc3BhcmVudCxcbiAgICAgIHRyYW5zcGFyZW50IDE2cHgsXG4gICAgICAkcmFuZ2UtY29sb3IgMTZweCxcbiAgICAgICRyYW5nZS1jb2xvciAwKTtcbiAgICB9XG5cbiAgICAmOjotbXMtZmlsbC11cHBlciB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgLy8gTWFyZ2luIG9uIC1tcy10cmFjayBkb2Vzbid0IHdvcmsgcmlnaHQsIHNvIHdlIHVzZSBncmFkaWVudHMgb24gdGhlXG4gICAgICAvLyBmaWxscy5cbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LFxuICAgICAgdHJhbnNwYXJlbnQsXG4gICAgICB0cmFuc3BhcmVudCAxNnB4LFxuICAgICAgJHJhbmdlLWJnLWNvbG9yIDE2cHgsXG4gICAgICAkcmFuZ2UtYmctY29sb3IgMCk7XG4gICAgfVxuXG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBUaHVtYnMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgICAmOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICB3aWR0aDogMTJweDtcbiAgICAgIGhlaWdodDogMTJweDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBiYWNrZ3JvdW5kOiAkcmFuZ2UtY29sb3I7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xOHMgJGFuaW1hdGlvbi1jdXJ2ZS1kZWZhdWx0LFxuICAgICAgYm9yZGVyIDAuMThzICRhbmltYXRpb24tY3VydmUtZGVmYXVsdCxcbiAgICAgIGJveC1zaGFkb3cgMC4xOHMgJGFuaW1hdGlvbi1jdXJ2ZS1kZWZhdWx0LFxuICAgICAgYmFja2dyb3VuZCAwLjI4cyAkYW5pbWF0aW9uLWN1cnZlLWRlZmF1bHQ7XG4gICAgfVxuXG4gICAgJjo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICB3aWR0aDogMTJweDtcbiAgICAgIGhlaWdodDogMTJweDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgYmFja2dyb3VuZDogJHJhbmdlLWNvbG9yO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgLy8gLW1vei1yYW5nZS10aHVtYiBkb2Vzbid0IGN1cnJlbnRseSBzdXBwb3J0IHRyYW5zaXRpb25zLlxuICAgIH1cblxuICAgICY6Zm9jdXM6bm90KDphY3RpdmUpOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAxMHB4ICRyYW5nZS1mYWRlZC1jb2xvcjtcbiAgICB9XG5cbiAgICAmOmZvY3VzOm5vdCg6YWN0aXZlKTo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAxMHB4ICRyYW5nZS1mYWRlZC1jb2xvcjtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6ICRyYW5nZS1jb2xvcjtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZTo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgYmFja2dyb3VuZDogJHJhbmdlLWNvbG9yO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xuICAgIH1cblxuICAgICY6Oi1tcy10aHVtYiB7XG4gICAgICB3aWR0aDogMzJweDtcbiAgICAgIGhlaWdodDogMzJweDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGJhY2tncm91bmQ6ICRyYW5nZS1jb2xvcjtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC4zNzUpO1xuICAgICAgLy8gLW1zLXRodW1iIGRvZXNuJ3QgY3VycmVudGx5IHN1cHBvcnQgdHJhbnNpdGlvbnMsIGJ1dCBsZWF2aW5nIHRoaXMgaGVyZVxuICAgICAgLy8gaW4gY2FzZSBzdXBwb3J0IGV2ZXIgZ2V0cyBhZGRlZC5cbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE4cyAkYW5pbWF0aW9uLWN1cnZlLWRlZmF1bHQsXG4gICAgICBiYWNrZ3JvdW5kIDAuMjhzICRhbmltYXRpb24tY3VydmUtZGVmYXVsdDtcbiAgICB9XG5cbiAgICAmOmZvY3VzOm5vdCg6YWN0aXZlKTo6LW1zLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgY2xvc2VzdC1zaWRlLFxuICAgICAgJHJhbmdlLWNvbG9yIDAlLFxuICAgICAgJHJhbmdlLWNvbG9yIDM3LjUlLFxuICAgICAgJHJhbmdlLWZhZGVkLWNvbG9yIDM3LjUlLFxuICAgICAgJHJhbmdlLWZhZGVkLWNvbG9yIDEwMCUpO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZTo6LW1zLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQ6ICRyYW5nZS1jb2xvcjtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC41NjI1KTtcbiAgICB9XG5cblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqIDAtdmFsdWUgKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgICAmLmlzLWxvd2VzdC12YWx1ZTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgYm9yZGVyOiAycHggc29saWQgJHJhbmdlLWJnLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgJi5pcy1sb3dlc3QtdmFsdWU6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgICAgYm9yZGVyOiAycHggc29saWQgJHJhbmdlLWJnLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgJi5pcy1sb3dlc3QtdmFsdWUgK1xuICAgICAgICAubWRsLXNsaWRlcl9fYmFja2dyb3VuZC1mbGV4ID4gLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtdXBwZXIge1xuICAgICAgbGVmdDogNnB4O1xuICAgIH1cblxuICAgICYuaXMtbG93ZXN0LXZhbHVlOmZvY3VzOm5vdCg6YWN0aXZlKTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMTBweCAkcmFuZ2UtYmctZm9jdXMtY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kOiAkcmFuZ2UtYmctZm9jdXMtY29sb3I7XG4gICAgfVxuXG4gICAgJi5pcy1sb3dlc3QtdmFsdWU6Zm9jdXM6bm90KDphY3RpdmUpOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDEwcHggJHJhbmdlLWJnLWZvY3VzLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZDogJHJhbmdlLWJnLWZvY3VzLWNvbG9yO1xuICAgIH1cblxuICAgICYuaXMtbG93ZXN0LXZhbHVlOmFjdGl2ZTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgYm9yZGVyOiAxLjZweCBzb2xpZCAkcmFuZ2UtYmctY29sb3I7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gICAgfVxuXG4gICAgJi5pcy1sb3dlc3QtdmFsdWU6YWN0aXZlICtcbiAgICAgICAgLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtZmxleCA+IC5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLXVwcGVyIHtcbiAgICAgIGxlZnQ6IDlweDtcbiAgICB9XG5cbiAgICAmLmlzLWxvd2VzdC12YWx1ZTphY3RpdmU6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgICAgYm9yZGVyOiAxLjVweCBzb2xpZCAkcmFuZ2UtYmctY29sb3I7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gICAgfVxuXG4gICAgJi5pcy1sb3dlc3QtdmFsdWU6Oi1tcy10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGNsb3Nlc3Qtc2lkZSxcbiAgICAgIHRyYW5zcGFyZW50IDAlLFxuICAgICAgdHJhbnNwYXJlbnQgNjYuNjclLFxuICAgICAgJHJhbmdlLWJnLWNvbG9yIDY2LjY3JSxcbiAgICAgICRyYW5nZS1iZy1jb2xvciAxMDAlKTtcbiAgICB9XG5cbiAgICAmLmlzLWxvd2VzdC12YWx1ZTpmb2N1czpub3QoOmFjdGl2ZSk6Oi1tcy10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGNsb3Nlc3Qtc2lkZSxcbiAgICAgICRyYW5nZS1iZy1mb2N1cy1jb2xvciAwJSxcbiAgICAgICRyYW5nZS1iZy1mb2N1cy1jb2xvciAyNSUsXG4gICAgICAkcmFuZ2UtYmctY29sb3IgMjUlLFxuICAgICAgJHJhbmdlLWJnLWNvbG9yIDM3LjUlLFxuICAgICAgJHJhbmdlLWJnLWZvY3VzLWNvbG9yIDM3LjUlLFxuICAgICAgJHJhbmdlLWJnLWZvY3VzLWNvbG9yIDEwMCUpO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB9XG5cbiAgICAmLmlzLWxvd2VzdC12YWx1ZTphY3RpdmU6Oi1tcy10aHVtYiB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNTYyNSk7XG4gICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGNsb3Nlc3Qtc2lkZSxcbiAgICAgIHRyYW5zcGFyZW50IDAlLFxuICAgICAgdHJhbnNwYXJlbnQgNzcuNzglLFxuICAgICAgJHJhbmdlLWJnLWNvbG9yIDc3Ljc4JSxcbiAgICAgICRyYW5nZS1iZy1jb2xvciAxMDAlKTtcbiAgICB9XG5cbiAgICAmLmlzLWxvd2VzdC12YWx1ZTo6LW1zLWZpbGwtbG93ZXIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgJi5pcy1sb3dlc3QtdmFsdWU6Oi1tcy1maWxsLXVwcGVyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7XG4gICAgfVxuXG4gICAgJi5pcy1sb3dlc3QtdmFsdWU6YWN0aXZlOjotbXMtZmlsbC11cHBlciB7XG4gICAgICBtYXJnaW4tbGVmdDogOXB4O1xuICAgIH1cblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqIERpc2FibGVkICoqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICAmOmRpc2FibGVkOmZvY3VzOjotd2Via2l0LXNsaWRlci10aHVtYixcbiAgICAmOmRpc2FibGVkOmFjdGl2ZTo6LXdlYmtpdC1zbGlkZXItdGh1bWIsXG4gICAgJjpkaXNhYmxlZDo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjY2Nyk7XG4gICAgICBiYWNrZ3JvdW5kOiAkcmFuZ2UtYmctY29sb3I7XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZDpmb2N1czo6LW1vei1yYW5nZS10aHVtYixcbiAgICAmOmRpc2FibGVkOmFjdGl2ZTo6LW1vei1yYW5nZS10aHVtYixcbiAgICAmOmRpc2FibGVkOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC42NjcpO1xuICAgICAgYmFja2dyb3VuZDogJHJhbmdlLWJnLWNvbG9yO1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQgK1xuICAgICAgICAubWRsLXNsaWRlcl9fYmFja2dyb3VuZC1mbGV4ID4gLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtbG93ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJhbmdlLWJnLWNvbG9yO1xuICAgICAgbGVmdDogLTZweDtcbiAgICB9XG5cbiAgICAmOmRpc2FibGVkICtcbiAgICAgICAgLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtZmxleCA+IC5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLXVwcGVyIHtcbiAgICAgIGxlZnQ6IDZweDtcbiAgICB9XG5cbiAgICAmLmlzLWxvd2VzdC12YWx1ZTpkaXNhYmxlZDpmb2N1czo6LXdlYmtpdC1zbGlkZXItdGh1bWIsXG4gICAgJi5pcy1sb3dlc3QtdmFsdWU6ZGlzYWJsZWQ6YWN0aXZlOjotd2Via2l0LXNsaWRlci10aHVtYixcbiAgICAmLmlzLWxvd2VzdC12YWx1ZTpkaXNhYmxlZDo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgYm9yZGVyOiAzcHggc29saWQgJHJhbmdlLWJnLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNjY3KTtcbiAgICB9XG5cbiAgICAmLmlzLWxvd2VzdC12YWx1ZTpkaXNhYmxlZDpmb2N1czo6LW1vei1yYW5nZS10aHVtYixcbiAgICAmLmlzLWxvd2VzdC12YWx1ZTpkaXNhYmxlZDphY3RpdmU6Oi1tb3otcmFuZ2UtdGh1bWIsXG4gICAgJi5pcy1sb3dlc3QtdmFsdWU6ZGlzYWJsZWQ6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgICAgYm9yZGVyOiAzcHggc29saWQgJHJhbmdlLWJnLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNjY3KTtcbiAgICB9XG5cbiAgICAmLmlzLWxvd2VzdC12YWx1ZTpkaXNhYmxlZDphY3RpdmUgK1xuICAgICAgICAubWRsLXNsaWRlcl9fYmFja2dyb3VuZC1mbGV4ID4gLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtdXBwZXIge1xuICAgICAgbGVmdDogNnB4O1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQ6Zm9jdXM6Oi1tcy10aHVtYixcbiAgICAmOmRpc2FibGVkOmFjdGl2ZTo6LW1zLXRodW1iLFxuICAgICY6ZGlzYWJsZWQ6Oi1tcy10aHVtYiB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMjUpO1xuICAgICAgYmFja2dyb3VuZDogJHJhbmdlLWJnLWNvbG9yO1xuICAgIH1cblxuICAgICYuaXMtbG93ZXN0LXZhbHVlOmRpc2FibGVkOmZvY3VzOjotbXMtdGh1bWIsXG4gICAgJi5pcy1sb3dlc3QtdmFsdWU6ZGlzYWJsZWQ6YWN0aXZlOjotbXMtdGh1bWIsXG4gICAgJi5pcy1sb3dlc3QtdmFsdWU6ZGlzYWJsZWQ6Oi1tcy10aHVtYiB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMjUpO1xuICAgICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBjbG9zZXN0LXNpZGUsXG4gICAgICB0cmFuc3BhcmVudCAwJSxcbiAgICAgIHRyYW5zcGFyZW50IDUwJSxcbiAgICAgICRyYW5nZS1iZy1jb2xvciA1MCUsXG4gICAgICAkcmFuZ2UtYmctY29sb3IgMTAwJSk7XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZDo6LW1zLWZpbGwtbG93ZXIge1xuICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsXG4gICAgICB0cmFuc3BhcmVudCxcbiAgICAgIHRyYW5zcGFyZW50IDI1cHgsXG4gICAgICAkcmFuZ2UtYmctY29sb3IgMjVweCxcbiAgICAgICRyYW5nZS1iZy1jb2xvciAwKTtcbiAgICB9XG5cbiAgICAmOmRpc2FibGVkOjotbXMtZmlsbC11cHBlciB7XG4gICAgICBtYXJnaW4tbGVmdDogNnB4O1xuICAgIH1cblxuICAgICYuaXMtbG93ZXN0LXZhbHVlOmRpc2FibGVkOmFjdGl2ZTo6LW1zLWZpbGwtdXBwZXIge1xuICAgICAgbWFyZ2luLWxlZnQ6IDZweDtcbiAgICB9XG4gIH1cbn1cblxuICAvLyBTaW5jZSB3ZSBuZWVkIHRvIHNwZWNpZnkgYSBoZWlnaHQgb2YgMzJweCBpbiBJRSwgd2UgYWRkIGEgY2xhc3MgaGVyZSBmb3IgYVxuICAvLyBjb250YWluZXIgdGhhdCBicmluZ3MgaXQgYmFjayB0byBhIHJlYXNvbmFibGUgaGVpZ2h0LlxuICAubWRsLXNsaWRlcl9faWUtY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG1hcmdpbjogbm9uZTtcbiAgICBwYWRkaW5nOiBub25lO1xuICB9XG5cbiAgLy8gV2UgdXNlIGEgc2V0IG9mIGRpdnMgYmVoaW5kIHRoZSB0cmFjayB0byBzdHlsZSBpdCBpbiBhbGwgbm9uLUlFIGJyb3dzZXJzLlxuICAvLyBUaGlzIG9uZSBjb250YWlucyBib3RoIHRoZSBiYWNrZ3JvdW5kIGFuZCB0aGUgc2xpZGVyLlxuICAubWRsLXNsaWRlcl9fY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB9XG5cbiAgLy8gVGhpcyBvbmUgc2V0cyB1cCBhIGZsZXggYm94IGZvciB0aGUgc3R5bGVkIHVwcGVyIGFuZCBsb3dlciBwb3J0aW9ucyBvZiB0aGVcbiAgLy8gdGhlIHNsaWRlciB0cmFjay5cbiAgLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtZmxleCB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogMnB4O1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA1MnB4KTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiAwO1xuICAgIG1hcmdpbjogMCAyNnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMXB4KTtcbiAgfVxuXG4gIC8vIFRoaXMgb25lIHN0eWxlcyB0aGUgbG93ZXIgcGFydCBvZiB0aGUgc2xpZGVyIHRyYWNrLlxuICAubWRsLXNsaWRlcl9fYmFja2dyb3VuZC1sb3dlciB7XG4gICAgYmFja2dyb3VuZDogJHJhbmdlLWNvbG9yO1xuICAgIGZsZXg6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLy8gVGhpcyBvbmUgc3R5bGVzIHRoZSB1cHBlciBwYXJ0IG9mIHRoZSBzbGlkZXIgdHJhY2suXG4gIC5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLXVwcGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkcmFuZ2UtYmctY29sb3I7XG4gICAgZmxleDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdHJhbnNpdGlvbjogbGVmdCAwLjE4cyAkYW5pbWF0aW9uLWN1cnZlLWRlZmF1bHRcbiAgfVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuXG5cbi5tZGwtc3Bpbm5lciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogJHNwaW5uZXItc2l6ZTtcbiAgaGVpZ2h0OiAkc3Bpbm5lci1zaXplO1xuXG4gICY6bm90KC5pcy11cGdyYWRlZCkuaXMtYWN0aXZlOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIkxvYWRpbmcuLi5cIjtcbiAgfVxuXG4gICYuaXMtdXBncmFkZWQuaXMtYWN0aXZlIHtcbiAgICBhbmltYXRpb246IG1kbC1zcGlubmVyX19jb250YWluZXItcm90YXRlICRzcGlubmVyLWR1cmF0aW9uIGxpbmVhciBpbmZpbml0ZTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIG1kbC1zcGlubmVyX19jb250YWluZXItcm90YXRlIHtcbiAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpIH1cbn1cblxuLm1kbC1zcGlubmVyX19sYXllciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3BhY2l0eTogMDtcbn1cblxuLm1kbC1zcGlubmVyX19sYXllci0xIHtcbiAgYm9yZGVyLWNvbG9yOiAkc3Bpbm5lci1jb2xvci0xO1xuXG4gIC5tZGwtc3Bpbm5lci0tc2luZ2xlLWNvbG9yICYge1xuICAgIGJvcmRlci1jb2xvcjogJHNwaW5uZXItc2luZ2xlLWNvbG9yO1xuICB9XG5cbiAgLm1kbC1zcGlubmVyLmlzLWFjdGl2ZSAmIHtcbiAgICBhbmltYXRpb246XG4gICAgICAgIG1kbC1zcGlubmVyX19maWxsLXVuZmlsbC1yb3RhdGUgKDQgKiAkc3Bpbm5lci1hcmMtdGltZSlcbiAgICAgICAgICAgICRhbmltYXRpb24tY3VydmUtZmFzdC1vdXQtc2xvdy1pbiBpbmZpbml0ZSBib3RoLFxuICAgICAgICBtZGwtc3Bpbm5lcl9fbGF5ZXItMS1mYWRlLWluLW91dCAoNCAqICRzcGlubmVyLWFyYy10aW1lKVxuICAgICAgICAgICAgJGFuaW1hdGlvbi1jdXJ2ZS1mYXN0LW91dC1zbG93LWluIGluZmluaXRlIGJvdGg7XG4gIH1cbn1cblxuLm1kbC1zcGlubmVyX19sYXllci0yIHtcbiAgYm9yZGVyLWNvbG9yOiAkc3Bpbm5lci1jb2xvci0yO1xuXG4gIC5tZGwtc3Bpbm5lci0tc2luZ2xlLWNvbG9yICYge1xuICAgIGJvcmRlci1jb2xvcjogJHNwaW5uZXItc2luZ2xlLWNvbG9yO1xuICB9XG5cbiAgLm1kbC1zcGlubmVyLmlzLWFjdGl2ZSAmIHtcbiAgICBhbmltYXRpb246XG4gICAgICAgIG1kbC1zcGlubmVyX19maWxsLXVuZmlsbC1yb3RhdGUgKDQgKiAkc3Bpbm5lci1hcmMtdGltZSlcbiAgICAgICAgICAgICRhbmltYXRpb24tY3VydmUtZmFzdC1vdXQtc2xvdy1pbiBpbmZpbml0ZSBib3RoLFxuICAgICAgICBtZGwtc3Bpbm5lcl9fbGF5ZXItMi1mYWRlLWluLW91dCAoNCAqICRzcGlubmVyLWFyYy10aW1lKVxuICAgICAgICAgICAgJGFuaW1hdGlvbi1jdXJ2ZS1mYXN0LW91dC1zbG93LWluIGluZmluaXRlIGJvdGg7XG4gIH1cbn1cblxuLm1kbC1zcGlubmVyX19sYXllci0zIHtcbiAgYm9yZGVyLWNvbG9yOiAkc3Bpbm5lci1jb2xvci0zO1xuXG4gIC5tZGwtc3Bpbm5lci0tc2luZ2xlLWNvbG9yICYge1xuICAgIGJvcmRlci1jb2xvcjogJHNwaW5uZXItc2luZ2xlLWNvbG9yO1xuICB9XG5cbiAgLm1kbC1zcGlubmVyLmlzLWFjdGl2ZSAmIHtcbiAgICBhbmltYXRpb246XG4gICAgICAgIG1kbC1zcGlubmVyX19maWxsLXVuZmlsbC1yb3RhdGUgKDQgKiAkc3Bpbm5lci1hcmMtdGltZSlcbiAgICAgICAgICAgICRhbmltYXRpb24tY3VydmUtZmFzdC1vdXQtc2xvdy1pbiBpbmZpbml0ZSBib3RoLFxuICAgICAgICBtZGwtc3Bpbm5lcl9fbGF5ZXItMy1mYWRlLWluLW91dCAoNCAqICRzcGlubmVyLWFyYy10aW1lKVxuICAgICAgICAgICAgJGFuaW1hdGlvbi1jdXJ2ZS1mYXN0LW91dC1zbG93LWluIGluZmluaXRlIGJvdGg7XG4gIH1cbn1cblxuLm1kbC1zcGlubmVyX19sYXllci00IHtcbiAgYm9yZGVyLWNvbG9yOiAkc3Bpbm5lci1jb2xvci00O1xuXG4gIC5tZGwtc3Bpbm5lci0tc2luZ2xlLWNvbG9yICYge1xuICAgIGJvcmRlci1jb2xvcjogJHNwaW5uZXItc2luZ2xlLWNvbG9yO1xuICB9XG5cbiAgLm1kbC1zcGlubmVyLmlzLWFjdGl2ZSAmIHtcbiAgICBhbmltYXRpb246XG4gICAgICAgIG1kbC1zcGlubmVyX19maWxsLXVuZmlsbC1yb3RhdGUgKDQgKiAkc3Bpbm5lci1hcmMtdGltZSlcbiAgICAgICAgICAgICRhbmltYXRpb24tY3VydmUtZmFzdC1vdXQtc2xvdy1pbiBpbmZpbml0ZSBib3RoLFxuICAgICAgICBtZGwtc3Bpbm5lcl9fbGF5ZXItNC1mYWRlLWluLW91dCAoNCAqICRzcGlubmVyLWFyYy10aW1lKVxuICAgICAgICAgICAgJGFuaW1hdGlvbi1jdXJ2ZS1mYXN0LW91dC1zbG93LWluIGluZmluaXRlIGJvdGg7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBtZGwtc3Bpbm5lcl9fZmlsbC11bmZpbGwtcm90YXRlIHtcbiAgMTIuNSUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwLjUgKiAkc3Bpbm5lci1hcmMtc2l6ZSk7ICB9XG4gIDI1JSAgIHsgdHJhbnNmb3JtOiByb3RhdGUoJHNwaW5uZXItYXJjLXNpemUpOyAgfVxuICAzNy41JSB7IHRyYW5zZm9ybTogcm90YXRlKDEuNSAqICRzcGlubmVyLWFyYy1zaXplKTsgIH1cbiAgNTAlICAgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyICogJHNwaW5uZXItYXJjLXNpemUpOyAgfVxuICA2Mi41JSB7IHRyYW5zZm9ybTogcm90YXRlKDIuNSAqICRzcGlubmVyLWFyYy1zaXplKTsgIH1cbiAgNzUlICAgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzICogJHNwaW5uZXItYXJjLXNpemUpOyAgfVxuICA4Ny41JSB7IHRyYW5zZm9ybTogcm90YXRlKDMuNSAqICRzcGlubmVyLWFyYy1zaXplKTsgfVxuICB0byAgICB7IHRyYW5zZm9ybTogcm90YXRlKDQgKiAkc3Bpbm5lci1hcmMtc2l6ZSk7IH1cbn1cblxuLyoqXG4qIEhBQ0s6IEV2ZW4gdGhvdWdoIHRoZSBpbnRlbnRpb24gaXMgdG8gaGF2ZSB0aGUgY3VycmVudCAubWRsLXNwaW5uZXJfX2xheWVyLU5cbiogYXQgYG9wYWNpdHk6IDFgLCB3ZSBzZXQgaXQgdG8gYG9wYWNpdHk6IDAuOTlgIGluc3RlYWQgc2luY2UgdGhpcyBmb3JjZXMgQ2hyb21lXG4qIHRvIGRvIHByb3BlciBzdWJwaXhlbCByZW5kZXJpbmcgZm9yIHRoZSBlbGVtZW50cyBiZWluZyBhbmltYXRlZC4gVGhpcyBpc1xuKiBlc3BlY2lhbGx5IHZpc2libGUgaW4gQ2hyb21lIDM5IG9uIFVidW50dSAxNC4wNC4gU2VlOlxuKlxuKiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9Qb2x5bWVyL3BhcGVyLXNwaW5uZXIvaXNzdWVzLzlcbiogLSBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9NDM2MjU1XG4qL1xuQGtleWZyYW1lcyBtZGwtc3Bpbm5lcl9fbGF5ZXItMS1mYWRlLWluLW91dCB7XG4gIGZyb20geyBvcGFjaXR5OiAwLjk5OyB9XG4gIDI1JSB7IG9wYWNpdHk6IDAuOTk7IH1cbiAgMjYlIHsgb3BhY2l0eTogMDsgfVxuICA4OSUgeyBvcGFjaXR5OiAwOyB9XG4gIDkwJSB7IG9wYWNpdHk6IDAuOTk7IH1cbiAgMTAwJSB7IG9wYWNpdHk6IDAuOTk7IH1cbn1cblxuQGtleWZyYW1lcyBtZGwtc3Bpbm5lcl9fbGF5ZXItMi1mYWRlLWluLW91dCB7XG4gIGZyb20geyBvcGFjaXR5OiAwOyB9XG4gIDE1JSB7IG9wYWNpdHk6IDA7IH1cbiAgMjUlIHsgb3BhY2l0eTogMC45OTsgfVxuICA1MCUgeyBvcGFjaXR5OiAwLjk5OyB9XG4gIDUxJSB7IG9wYWNpdHk6IDA7IH1cbn1cblxuQGtleWZyYW1lcyBtZGwtc3Bpbm5lcl9fbGF5ZXItMy1mYWRlLWluLW91dCB7XG4gIGZyb20geyBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7IG9wYWNpdHk6IDA7IH1cbiAgNTAlIHsgb3BhY2l0eTogMC45OTsgfVxuICA3NSUgeyBvcGFjaXR5OiAwLjk5OyB9XG4gIDc2JSB7IG9wYWNpdHk6IDA7IH1cbn1cblxuQGtleWZyYW1lcyBtZGwtc3Bpbm5lcl9fbGF5ZXItNC1mYWRlLWluLW91dCB7XG4gIGZyb20geyBvcGFjaXR5OiAwOyB9XG4gIDY1JSB7IG9wYWNpdHk6IDA7IH1cbiAgNzUlIHsgb3BhY2l0eTogMC45OTsgfVxuICA5MCUgeyBvcGFjaXR5OiAwLjk5OyB9XG4gIDEwMCUgeyBvcGFjaXR5OiAwOyB9XG59XG5cbi8qKlxuKiBQYXRjaCB0aGUgZ2FwIHRoYXQgYXBwZWFyIGJldHdlZW4gdGhlIHR3byBhZGphY2VudFxuKiBkaXYubWRsLXNwaW5uZXJfX2NpcmNsZS1jbGlwcGVyIHdoaWxlIHRoZSBzcGlubmVyIGlzIHJvdGF0aW5nXG4qIChhcHBlYXJzIG9uIENocm9tZSAzOCwgU2FmYXJpIDcuMSwgYW5kIElFIDExKS5cbipcbiogVXBkYXRlOiB0aGUgZ2FwIG5vIGxvbmdlciBhcHBlYXJzIG9uIENocm9tZSB3aGVuIC5tZGwtc3Bpbm5lcl9fbGF5ZXItTidzXG4qIG9wYWNpdHkgaXMgMC45OSwgYnV0IHN0aWxsIGRvZXMgb24gU2FmYXJpIGFuZCBJRS5cbiovXG4ubWRsLXNwaW5uZXJfX2dhcC1wYXRjaCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdG9wOiAwO1xuICBsZWZ0OiA0NSU7XG4gIHdpZHRoOiAxMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xuXG4gICYgLm1kbC1zcGlubmVyX19jaXJjbGUge1xuICAgIHdpZHRoOiAxMDAwJTtcbiAgICBsZWZ0OiAtNDUwJTtcbiAgfVxufVxuXG4ubWRsLXNwaW5uZXJfX2NpcmNsZS1jbGlwcGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA1MCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xuXG4gICYgLm1kbC1zcGlubmVyX19jaXJjbGUge1xuICAgIHdpZHRoOiAyMDAlO1xuICB9XG59XG5cbi5tZGwtc3Bpbm5lcl9fY2lyY2xlIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItd2lkdGg6ICRzcGlubmVyLXN0cm9rZS13aWR0aDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGFuaW1hdGlvbjogbm9uZTtcblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcblxuICAubWRsLXNwaW5uZXJfX2xlZnQgJiB7XG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDEyOWRlZyk7XG5cbiAgICAubWRsLXNwaW5uZXIuaXMtYWN0aXZlICYge1xuICAgICAgYW5pbWF0aW9uOiBtZGwtc3Bpbm5lcl9fbGVmdC1zcGluICRzcGlubmVyLWFyYy10aW1lXG4gICAgICAgICAgJGFuaW1hdGlvbi1jdXJ2ZS1mYXN0LW91dC1zbG93LWluIGluZmluaXRlIGJvdGg7XG4gICAgfVxuICB9XG5cbiAgLm1kbC1zcGlubmVyX19yaWdodCAmIHtcbiAgICBsZWZ0OiAtMTAwJTtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTI5ZGVnKTtcblxuICAgIC5tZGwtc3Bpbm5lci5pcy1hY3RpdmUgJiB7XG4gICAgICBhbmltYXRpb246IG1kbC1zcGlubmVyX19yaWdodC1zcGluICRzcGlubmVyLWFyYy10aW1lXG4gICAgICAgICAgJGFuaW1hdGlvbi1jdXJ2ZS1mYXN0LW91dC1zbG93LWluIGluZmluaXRlIGJvdGg7XG4gICAgfVxuICB9XG59XG5cbkBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xlZnQtc3BpbiB7XG4gIGZyb20geyB0cmFuc2Zvcm06IHJvdGF0ZSgxMzBkZWcpOyB9XG4gIDUwJSB7IHRyYW5zZm9ybTogcm90YXRlKC01ZGVnKTsgfVxuICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDEzMGRlZyk7IH1cbn1cblxuQGtleWZyYW1lcyBtZGwtc3Bpbm5lcl9fcmlnaHQtc3BpbiB7XG4gIGZyb20geyB0cmFuc2Zvcm06IHJvdGF0ZSgtMTMwZGVnKTsgfVxuICA1MCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSg1ZGVnKTsgfVxuICB0byB7IHRyYW5zZm9ybTogcm90YXRlKC0xMzBkZWcpOyB9XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5cbkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcblxuLm1kbC1zd2l0Y2gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgei1pbmRleDogMTtcblxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkc3dpdGNoLWxhYmVsLWhlaWdodDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuXG4gICYuaXMtdXBncmFkZWQge1xuICAgIHBhZGRpbmctbGVmdDogJHN3aXRjaC10cmFjay1sZW5ndGggLSA4cHg7XG4gIH1cblxuICAvLyBhdm9pZHMgYmx1ZSBib3ggYXJvdW5kIHN3aXRjaFxuICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5tZGwtc3dpdGNoX19pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiAkc3dpdGNoLWxhYmVsLWhlaWdodDtcblxuICAubWRsLXN3aXRjaC5pcy11cGdyYWRlZCAmIHtcbiAgICAvLyBIaWRlIGlucHV0IGVsZW1lbnQsIHdoaWxlIHN0aWxsIG1ha2luZyBpdCByZXNwb25kIHRvIGZvY3VzLlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtbXMtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG59XG5cbi5tZGwtc3dpdGNoX190cmFjayB7XG4gIGJhY2tncm91bmQ6ICRzd2l0Y2gtb2ZmLXRyYWNrLWNvbG9yO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogJHN3aXRjaC10cmFjay10b3A7XG4gIGhlaWdodDogJHN3aXRjaC10cmFjay1oZWlnaHQ7XG4gIHdpZHRoOiAkc3dpdGNoLXRyYWNrLWxlbmd0aDtcbiAgYm9yZGVyLXJhZGl1czogJHN3aXRjaC10cmFjay1oZWlnaHQ7XG5cbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC5tZGwtc3dpdGNoLmlzLWNoZWNrZWQgJiB7XG4gICAgYmFja2dyb3VuZDogJHN3aXRjaC10cmFjay1jb2xvcjtcbiAgfVxuXG4gIC5tZGwtc3dpdGNoLmlzLWRpc2FibGVkICYge1xuICAgIGJhY2tncm91bmQ6ICRzd2l0Y2gtZGlzYWJsZWQtdHJhY2stY29sb3I7XG4gICAgY3Vyc29yOiBhdXRvO1xuICB9XG59XG5cbi5tZGwtc3dpdGNoX190aHVtYiB7XG4gIGJhY2tncm91bmQ6ICRzd2l0Y2gtb2ZmLXRodW1iLWNvbG9yO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogJHN3aXRjaC10aHVtYi10b3A7XG4gIGhlaWdodDogJHN3aXRjaC10aHVtYi1zaXplO1xuICB3aWR0aDogJHN3aXRjaC10aHVtYi1zaXplO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIEBpbmNsdWRlIHNoYWRvdy0yZHAoKTtcblxuICBAaW5jbHVkZSBtYXRlcmlhbC1hbmltYXRpb24tZGVmYXVsdCgwLjI4cyk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGxlZnQ7XG5cbiAgLm1kbC1zd2l0Y2guaXMtY2hlY2tlZCAmIHtcbiAgICBiYWNrZ3JvdW5kOiAkc3dpdGNoLXRodW1iLWNvbG9yO1xuICAgIGxlZnQ6ICRzd2l0Y2gtdHJhY2stbGVuZ3RoIC0gJHN3aXRjaC10aHVtYi1zaXplO1xuXG4gICAgQGluY2x1ZGUgc2hhZG93LTNkcCgpO1xuICB9XG5cbiAgLm1kbC1zd2l0Y2guaXMtZGlzYWJsZWQgJiB7XG4gICAgYmFja2dyb3VuZDogJHN3aXRjaC1kaXNhYmxlZC10aHVtYi1jb2xvcjtcbiAgICBjdXJzb3I6IGF1dG87XG4gIH1cbn1cblxuLm1kbC1zd2l0Y2hfX2ZvY3VzLWhlbHBlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcblxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtJHN3aXRjaC1oZWxwZXItc2l6ZSAvIDIsIC0kc3dpdGNoLWhlbHBlci1zaXplIC8gMik7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAkc3dpdGNoLWhlbHBlci1zaXplO1xuICBoZWlnaHQ6ICRzd2l0Y2gtaGVscGVyLXNpemU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAubWRsLXN3aXRjaC5pcy1mb2N1c2VkICYge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwcHggKCgkc3dpdGNoLXJpcHBsZS1zaXplIC0gJHN3aXRjaC1oZWxwZXItc2l6ZSkgLyAyKVxuICAgICAgICByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpO1xuICB9XG5cbiAgLm1kbC1zd2l0Y2guaXMtZm9jdXNlZC5pcy1jaGVja2VkICYge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwcHggKCgkc3dpdGNoLXJpcHBsZS1zaXplIC0gJHN3aXRjaC1oZWxwZXItc2l6ZSkgLyAyKVxuICAgICAgICAkc3dpdGNoLWZhZGVkLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzd2l0Y2gtZmFkZWQtY29sb3I7XG4gIH1cbn1cblxuLm1kbC1zd2l0Y2hfX2xhYmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogJHN3aXRjaC1sYWJlbC1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAkc3dpdGNoLWxhYmVsLWhlaWdodDtcbiAgbWFyZ2luOiAwO1xuICBsZWZ0OiAyNHB4O1xuXG4gIC5tZGwtc3dpdGNoLmlzLWRpc2FibGVkICYge1xuICAgIGNvbG9yOiAkc3dpdGNoLWRpc2FibGVkLXRodW1iLWNvbG9yO1xuICAgIGN1cnNvcjogYXV0bztcbiAgfVxufVxuXG4ubWRsLXN3aXRjaF9fcmlwcGxlLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMjtcbiAgdG9wOiAtKCRzd2l0Y2gtcmlwcGxlLXNpemUgLSAkc3dpdGNoLWxhYmVsLWhlaWdodCkgLyAyO1xuICBsZWZ0OiAkc3dpdGNoLXRodW1iLXNpemUgLyAyIC0gJHN3aXRjaC1yaXBwbGUtc2l6ZSAvIDI7XG5cbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6ICRzd2l0Y2gtcmlwcGxlLXNpemU7XG4gIGhlaWdodDogJHN3aXRjaC1yaXBwbGUtc2l6ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICBvdmVyZmxvdzogaGlkZGVuO1xuICAtd2Via2l0LW1hc2staW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgd2hpdGUsIGJsYWNrKTtcblxuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjQwcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHN0ZXAtZW5kO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBsZWZ0O1xuXG4gICYgLm1kbC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQ6ICRzd2l0Y2gtY29sb3I7XG4gIH1cblxuICAubWRsLXN3aXRjaC5pcy1kaXNhYmxlZCAmIHtcbiAgICBjdXJzb3I6IGF1dG87XG4gIH1cblxuICAubWRsLXN3aXRjaC5pcy1kaXNhYmxlZCAmIC5tZGwtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC5tZGwtc3dpdGNoLmlzLWNoZWNrZWQgJiB7XG4gICAgY3Vyc29yOiBhdXRvO1xuICAgIGxlZnQ6ICRzd2l0Y2gtdHJhY2stbGVuZ3RoIC0gJHN3aXRjaC1yaXBwbGUtc2l6ZSAvIDIgLVxuICAgICAgICAkc3dpdGNoLXRodW1iLXNpemUgLyAyO1xuICB9XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5cblxuLm1kbC10YWJzIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubWRsLXRhYnNfX3RhYi1iYXIge1xuICAgIGRpc3BsYXkgICAgICAgICA6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb24gIDogcm93O1xuICAgIGp1c3RpZnktY29udGVudCA6IGNlbnRlcjsgLy8g4oe+XG4gICAgYWxpZ24tY29udGVudCAgIDogc3BhY2UtYmV0d2VlbjsgLy8gfHxcbiAgICBhbGlnbi1pdGVtcyAgICAgOiBmbGV4LXN0YXJ0OyAvLyDihpNcblxuICAgIGhlaWdodCAgICAgICAgICA6IDQ4cHg7XG4gICAgcGFkZGluZyAgICAgICAgIDogMCAwIDAgMDtcbiAgICBtYXJnaW4gICAgICAgICAgOiAwO1xuICAgIGJvcmRlci1ib3R0b20gICA6IDFweCBzb2xpZCAkdGFiLWJvcmRlci1jb2xvcjtcbn1cblxuLm1kbC10YWJzX190YWIge1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMCAyNHB4IDAgMjRweDtcblxuICBmbG9hdDogbGVmdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcblxuICBjb2xvcjogcmVkO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGhlaWdodDogNDhweDtcbiAgbGluZS1oZWlnaHQ6IDQ4cHg7XG5cbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6ICRsYXlvdXQtdGFiLWZvbnQtc2l6ZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICBjb2xvcjogJHRhYi10ZXh0LWNvbG9yO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIC5tZGwtdGFicy5pcy11cGdyYWRlZCAmLmlzLWFjdGl2ZSB7XG4gICAgY29sb3I6ICR0YWItYWN0aXZlLXRleHQtY29sb3I7XG4gIH1cblxuICAubWRsLXRhYnMuaXMtdXBncmFkZWQgJi5pcy1hY3RpdmU6YWZ0ZXIge1xuICAgIGhlaWdodDogMnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIGJvdHRvbTogMHB4O1xuICAgIGxlZnQ6IDBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZDogJHRhYi1oaWdobGlnaHQtY29sb3I7XG4gICAgYW5pbWF0aW9uOiBib3JkZXItZXhwYW5kIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjQsIDEpIDAuMDFzIGFsdGVybmF0ZSBmb3J3YXJkcztcbiAgICB0cmFuc2l0aW9uOiBhbGwgMXMgY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAxLCAxKTtcbiAgfVxuXG4gICYgLm1kbC10YWJzX19yaXBwbGUtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGxlZnQ6IDBweDtcbiAgICB0b3A6IDBweDtcbiAgICB6LWluZGV4OiAxO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmIC5tZGwtcmlwcGxlIHtcbiAgICAgIGJhY2tncm91bmQ6ICR0YWItaGlnaGxpZ2h0LWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG4ubWRsLXRhYnNfX3BhbmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgLm1kbC10YWJzLmlzLXVwZ3JhZGVkICYge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAubWRsLXRhYnMuaXMtdXBncmFkZWQgJi5pcy1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYm9yZGVyLWV4cGFuZCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHdpZHRoOiAwO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuXG4vLyBUaGUgY29udGFpbmVyIGZvciB0aGUgd2hvbGUgY29tcG9uZW50LlxuLm1kbC10ZXh0ZmllbGQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgZm9udC1zaXplOiAkaW5wdXQtdGV4dC1mb250LXNpemU7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAzMDBweDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6ICRpbnB1dC10ZXh0LXZlcnRpY2FsLXNwYWNpbmcgMDtcblxuICAvLyBBbGlnbiBidXR0b25zLCBpZiB1c2VkLlxuICAmIC5tZGwtYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAkaW5wdXQtdGV4dC12ZXJ0aWNhbC1zcGFjaW5nO1xuICB9XG59XG5cbi8vIE9wdGlvbmFsIGNsYXNzIHRvIGFsaWduIHJpZ2h0LlxuLm1kbC10ZXh0ZmllbGQtLWFsaWduLXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi8vIE9wdGlvbmFsIGNsYXNzIHRvIGRpc3BsYXkgYXQgZnVsbCB3aWR0aC5cbi5tZGwtdGV4dGZpZWxkLS1mdWxsLXdpZHRoIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi8vIE9wdGlvbmFsIGNsYXNzIHRvIG1ha2UgdGhlIHRleHQgZmllbGQgZXhwYW5kYWJsZS5cbi5tZGwtdGV4dGZpZWxkLS1leHBhbmRhYmxlIHtcbiAgbWluLXdpZHRoOiAkaW5wdXQtdGV4dC1idXR0b24tc2l6ZTtcbiAgd2lkdGg6IGF1dG87XG4gIG1pbi1oZWlnaHQ6ICRpbnB1dC10ZXh0LWJ1dHRvbi1zaXplO1xufVxuXG4vLyBTdHlsaW5nIGZvciB0aGUgaW5wdXQgZWxlbWVudC5cbi5tZGwtdGV4dGZpZWxkX19pbnB1dCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRpbnB1dC10ZXh0LWJvdHRvbS1ib3JkZXItY29sb3I7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICRpbnB1dC10ZXh0LWZvbnQtc2l6ZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAkaW5wdXQtdGV4dC1wYWRkaW5nIDA7XG4gIHdpZHRoOiAkaW5wdXQtdGV4dC13aWR0aDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY29sb3I6IGluaGVyaXQ7XG5cbiAgLm1kbC10ZXh0ZmllbGQuaXMtZm9jdXNlZCAmIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5cbiAgLm1kbC10ZXh0ZmllbGQuaXMtaW52YWxpZCAmIHtcbiAgICBib3JkZXItY29sb3I6ICRpbnB1dC10ZXh0LWVycm9yLWNvbG9yO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cblxuICAubWRsLXRleHRmaWVsZC5pcy1kaXNhYmxlZCAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRpbnB1dC10ZXh0LWRpc2FibGVkLWNvbG9yO1xuICAgIGNvbG9yOiAkaW5wdXQtdGV4dC1kaXNhYmxlZC10ZXh0LWNvbG9yO1xuICB9XG59XG5cbi5tZGwtdGV4dGZpZWxkIHRleHRhcmVhLm1kbC10ZXh0ZmllbGRfX2lucHV0IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vIFN0eWxpbmcgZm9yIHRoZSBsYWJlbCAvIGZsb2F0aW5nIGxhYmVsLlxuLm1kbC10ZXh0ZmllbGRfX2xhYmVsIHtcbiAgYm90dG9tOiAwO1xuICBjb2xvcjogJGlucHV0LXRleHQtbGFiZWwtY29sb3I7XG4gIGZvbnQtc2l6ZTogJGlucHV0LXRleHQtZm9udC1zaXplO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRvcDogKCRpbnB1dC10ZXh0LXBhZGRpbmcgKyAkaW5wdXQtdGV4dC12ZXJ0aWNhbC1zcGFjaW5nKTtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgLm1kbC10ZXh0ZmllbGQuaXMtZGlydHkgJiB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgLy8gRmxvYXRpbmcgTGFiZWxcbiAgLm1kbC10ZXh0ZmllbGQtLWZsb2F0aW5nLWxhYmVsICYge1xuICAgIEBpbmNsdWRlIG1hdGVyaWFsLWFuaW1hdGlvbi1kZWZhdWx0KCk7XG4gIH1cblxuICAubWRsLXRleHRmaWVsZC5pcy1kaXNhYmxlZC5pcy1kaXNhYmxlZCAmIHtcbiAgICBjb2xvcjogJGlucHV0LXRleHQtZGlzYWJsZWQtdGV4dC1jb2xvcjtcbiAgfVxuXG4gIC5tZGwtdGV4dGZpZWxkLS1mbG9hdGluZy1sYWJlbC5pcy1mb2N1c2VkICYsXG4gIC5tZGwtdGV4dGZpZWxkLS1mbG9hdGluZy1sYWJlbC5pcy1kaXJ0eSAmIHtcbiAgICBjb2xvcjogJGlucHV0LXRleHQtaGlnaGxpZ2h0LWNvbG9yO1xuICAgIGZvbnQtc2l6ZSA6ICRpbnB1dC10ZXh0LWZsb2F0aW5nLWxhYmVsLWZvbnRzaXplO1xuICAgIHRvcDogJGlucHV0LXRleHQtdmVydGljYWwtc3BhY2luZyAtICgkaW5wdXQtdGV4dC1mbG9hdGluZy1sYWJlbC1mb250c2l6ZSArICRpbnB1dC10ZXh0LXBhZGRpbmcpO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cblxuICAubWRsLXRleHRmaWVsZC0tZmxvYXRpbmctbGFiZWwuaXMtZm9jdXNlZCAubWRsLXRleHRmaWVsZF9fZXhwYW5kYWJsZS1ob2xkZXIgJixcbiAgLm1kbC10ZXh0ZmllbGQtLWZsb2F0aW5nLWxhYmVsLmlzLWRpcnR5IC5tZGwtdGV4dGZpZWxkX19leHBhbmRhYmxlLWhvbGRlciAme1xuICAgIHRvcDogLSgkaW5wdXQtdGV4dC1mbG9hdGluZy1sYWJlbC1mb250c2l6ZSArICRpbnB1dC10ZXh0LXBhZGRpbmcpO1xuICB9XG5cbiAgLm1kbC10ZXh0ZmllbGQtLWZsb2F0aW5nLWxhYmVsLmlzLWludmFsaWQgJiB7XG4gICAgY29sb3I6ICRpbnB1dC10ZXh0LWVycm9yLWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogJGlucHV0LXRleHQtZmxvYXRpbmctbGFiZWwtZm9udHNpemU7XG4gIH1cblxuICAvLyBUaGUgYWZ0ZXIgbGFiZWwgaXMgdGhlIGNvbG9yZWQgdW5kZXJsaW5lIGZvciB0aGUgVGV4dEZpZWxkLlxuICAmOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtdGV4dC1oaWdobGlnaHQtY29sb3I7XG4gICAgYm90dG9tOiAkaW5wdXQtdGV4dC12ZXJ0aWNhbC1zcGFjaW5nO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGhlaWdodDogMnB4O1xuICAgIGxlZnQ6IDQ1JTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgQGluY2x1ZGUgbWF0ZXJpYWwtYW5pbWF0aW9uLWRlZmF1bHQoKTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgd2lkdGg6IDEwcHg7XG4gIH1cblxuICAubWRsLXRleHRmaWVsZC5pcy1mb2N1c2VkICY6YWZ0ZXIge1xuICAgIGxlZnQ6IDA7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5tZGwtdGV4dGZpZWxkLmlzLWludmFsaWQgJjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LXRleHQtZXJyb3ItY29sb3I7XG4gIH1cbn1cblxuLy8gVGV4dEZpZWxkIEVycm9yLlxuLm1kbC10ZXh0ZmllbGRfX2Vycm9yIHtcbiAgY29sb3I6ICRpbnB1dC10ZXh0LWVycm9yLWNvbG9yO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGZvbnQtc2l6ZTogJGlucHV0LXRleHQtZmxvYXRpbmctbGFiZWwtZm9udHNpemU7XG4gIG1hcmdpbi10b3A6IDNweDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBkaXNwbGF5OiBibG9jaztcblxuICAubWRsLXRleHRmaWVsZC5pcy1pbnZhbGlkICYge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cbn1cblxuLy8gRXhwYW5kYWJsZSBIb2xkZXIuXG4ubWRsLXRleHRmaWVsZF9fZXhwYW5kYWJsZS1ob2xkZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWxlZnQ6ICRpbnB1dC10ZXh0LWJ1dHRvbi1zaXplO1xuXG4gIEBpbmNsdWRlIG1hdGVyaWFsLWFuaW1hdGlvbi1kZWZhdWx0KCk7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAvLyBTYWZhcmkgKHBvc3NpYmx5IG90aGVycykgbmVlZCB0byBiZSBjb252aW5jZWQgdGhhdCB0aGlzIGZpZWxkIGlzIGFjdHVhbGx5XG4gIC8vIHZpc2libGUsIG90aGVyd2lzZSBpdCBjYW5ub3QgYmUgdGFiYmVkIHRvIG5vciBmb2N1c2VkIHZpYSBhIDxsYWJlbD4uXG4gIC8vIFRPRE86IEluIHNvbWUgY2FzZXMgKFJldGluYSBkaXNwbGF5cyksIHRoaXMgaXMgYmlnIGVub3VnaCB0byByZW5kZXIgdGhlXG4gIC8vIGlubmVyIGVsZW1lbnQgOihcbiAgbWF4LXdpZHRoOiAwLjFweDtcblxuICAubWRsLXRleHRmaWVsZC5pcy1mb2N1c2VkICYsIC5tZGwtdGV4dGZpZWxkLmlzLWRpcnR5ICYge1xuICAgIC8vIFRoaXMgaXMgYW4gdW5mb3J0dW5hdGUgaGFjay4gQW5pbWF0aW5nIGJldHdlZW4gd2lkdGhzIGluIHBlcmNlbnQgKCUpXG4gICAgLy8gaW4gbWFueSBicm93c2VycyAoQ2hyb21lLCBGaXJlZm94KSBvbmx5IGFuaW1hdGVzIHRoZSBpbm5lciB2aXN1YWwgc3R5bGVcbiAgICAvLyBvZiB0aGUgaW5wdXQgLSB0aGUgb3V0ZXIgYm91bmRpbmcgYm94IHN0aWxsICdqdW1wcycuXG4gICAgLy8gVGh1cyBhc3N1bWUgYSBzZW5zaWJsZSBtYXhpbXVtLCBhbmQgYW5pbWF0ZSB0by9mcm9tIHRoYXQgdmFsdWUuXG4gICAgbWF4LXdpZHRoOiA2MDBweDtcbiAgfVxuICAubWRsLXRleHRmaWVsZF9fbGFiZWw6YWZ0ZXIge1xuICAgIGJvdHRvbTogMDtcbiAgfVxufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuXG4ubWRsLXRvb2x0aXAge1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB6LWluZGV4OiA5OTk7XG4gIGJhY2tncm91bmQ6ICR0b29sdGlwLWJhY2tncm91bmQtY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgY29sb3I6ICR0b29sdGlwLXRleHQtY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdG9vbHRpcC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICBtYXgtd2lkdGg6IDE3MHB4O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogLTUwMHB4O1xuICBsZWZ0OiAtNTAwcHg7XG4gIHBhZGRpbmc6IDhweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLm1kbC10b29sdGlwLmlzLWFjdGl2ZSB7XG4gIGFuaW1hdGlvbjogcHVsc2UgMjAwbXMgJGFuaW1hdGlvbi1jdXJ2ZS1saW5lYXItb3V0LXNsb3ctaW4gZm9yd2FyZHM7XG59XG5cbi5tZGwtdG9vbHRpcC0tbGFyZ2Uge1xuICBsaW5lLWhlaWdodDogMTRweDtcbiAgZm9udC1zaXplOiAkdG9vbHRpcC1mb250LXNpemUtbGFyZ2U7XG4gIHBhZGRpbmc6IDE2cHg7XG59XG5cbkBrZXlmcmFtZXMgcHVsc2Uge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDUwJSB7XG4gICAgLy8gRml4ZXMgYSB3ZWlyZCBidWcgd2l0aCB0aGUgaW50ZXJhY3Rpb24gYmV0d2VlbiBTYWZhcmkgYW5kIHRoZSByZXN1bHQgb2ZcbiAgICAvLyB0aGUgU0FTUyBjb21waWxhdGlvbiBmb3IgdGhlIGFuaW1hdGlvbi5cbiAgICAvLyBFc3NlbnRpYWxseSwgd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCBcIjUwJVwiIGFuZCBcIjEwMCVcIiBkb24ndCBnZXQgbWVyZ2VkXG4gICAgLy8gaW50byBhIHNpbmdsZSBcIjUwJSwgMTAwJVwiIGVudHJ5LCBzbyB3ZSBuZWVkIHRvIGF2b2lkIHRoZW0gaGF2aW5nIGFueVxuICAgIC8vIG1hdGNoaW5nIHByb3BlcnRpZXMuXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk5KTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuXG4ubWRsLXNoYWRvdy0tMmRwIHtcbiAgQGluY2x1ZGUgc2hhZG93LTJkcCgpO1xufVxuXG4ubWRsLXNoYWRvdy0tM2RwIHtcbiAgQGluY2x1ZGUgc2hhZG93LTNkcCgpO1xufVxuXG4ubWRsLXNoYWRvdy0tNGRwIHtcbiAgQGluY2x1ZGUgc2hhZG93LTRkcCgpO1xufVxuXG4ubWRsLXNoYWRvdy0tNmRwIHtcbiAgQGluY2x1ZGUgc2hhZG93LTZkcCgpO1xufVxuXG4ubWRsLXNoYWRvdy0tOGRwIHtcbiAgQGluY2x1ZGUgc2hhZG93LThkcCgpO1xufVxuXG4ubWRsLXNoYWRvdy0tMTZkcCB7XG4gIEBpbmNsdWRlIHNoYWRvdy0xNmRwKCk7XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKlxuKiBOT1RFOiBTb21lIHJ1bGVzIGhlcmUgYXJlIGFwcGxpZWQgdXNpbmcgZHVwbGljYXRlIHNlbGVjdG9ycy5cbiogVGhpcyBpcyBvbiBwdXJwb3NlIHRvIGluY3JlYXNlIHRoZWlyIHNwZWNpZmljaXR5IHdoZW4gYXBwbGllZC5cbiogRm9yIGV4YW1wbGU6IGAubWRsLWNlbGwtLTEtY29sLXBob25lLm1kbC1jZWxsLS0xLWNvbC1waG9uZWBcbiovXG5cbkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcblxuLm1kbC1ncmlkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgbWFyZ2luOiAwIGF1dG8gMCBhdXRvO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcblxuICAmLm1kbC1ncmlkLS1uby1zcGFjaW5nIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi5tZGwtY2VsbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cblxuLm1kbC1jZWxsLS10b3Age1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xufVxuXG4ubWRsLWNlbGwtLW1pZGRsZSB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cblxuLm1kbC1jZWxsLS1ib3R0b20ge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbn1cblxuLm1kbC1jZWxsLS1zdHJldGNoIHtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbn1cblxuLm1kbC1ncmlkLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsIHtcbiAgbWFyZ2luOiAwO1xufVxuXG5cbi8vIE1peGlucyBmb3Igd2lkdGggY2FsY3VsYXRpb24uXG5AbWl4aW4gcGFydGlhbC1zaXplKCRzaXplLCAkY29sdW1ucywgJGd1dHRlcikge1xuICB3aWR0aDogY2FsYygjeygoJHNpemUgLyAkY29sdW1ucykgKiAxMDApK1wiJVwifSAtICN7JGd1dHRlcn0pO1xuXG4gIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+ICYge1xuICAgIHdpZHRoOiAjeygoJHNpemUgLyAkY29sdW1ucykgKiAxMDApK1wiJVwifTtcbiAgfVxufVxuXG5AbWl4aW4gZnVsbC1zaXplKCRndXR0ZXIpIHtcbiAgQGluY2x1ZGUgcGFydGlhbC1zaXplKDEsIDEsICRndXR0ZXIpO1xufVxuXG5cblxuLy8vLy8vLy8vLyBQaG9uZSAvLy8vLy8vLy8vXG5cbkBtZWRpYSAobWF4LXdpZHRoOiAkZ3JpZC10YWJsZXQtYnJlYWtwb2ludCAtIDEpIHtcbiAgLm1kbC1ncmlkIHtcbiAgICBwYWRkaW5nOiAkZ3JpZC1waG9uZS1tYXJnaW4gLSAoJGdyaWQtcGhvbmUtZ3V0dGVyIC8gMik7XG4gIH1cblxuICAubWRsLWNlbGwge1xuICAgIG1hcmdpbjogJGdyaWQtcGhvbmUtZ3V0dGVyIC8gMjtcbiAgICBAaW5jbHVkZSBwYXJ0aWFsLXNpemUoJGdyaWQtY2VsbC1kZWZhdWx0LWNvbHVtbnMsICRncmlkLXBob25lLWNvbHVtbnMsXG4gICAgICAgICRncmlkLXBob25lLWd1dHRlcik7XG4gIH1cblxuICAubWRsLWNlbGwtLWhpZGUtcGhvbmUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8vIERlZmluZSBwYXJ0aWFsIHNpemVzIGZvciBjb2x1bW5OdW1iZXIgPCB0b3RhbENvbHVtbnMuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggKCRncmlkLXBob25lLWNvbHVtbnMgLSAxKSB7XG4gICAgLm1kbC1jZWxsLS0jeyRpfS1jb2wsXG4gICAgLm1kbC1jZWxsLS0jeyRpfS1jb2wtcGhvbmUubWRsLWNlbGwtLSN7JGl9LWNvbC1waG9uZSB7XG4gICAgICBAaW5jbHVkZSBwYXJ0aWFsLXNpemUoJGksICRncmlkLXBob25lLWNvbHVtbnMsICRncmlkLXBob25lLWd1dHRlcik7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVmaW5lIDEwMCUgZm9yIGV2ZXJ5dGhpbmcgZWxzZS5cbiAgQGZvciAkaSBmcm9tICRncmlkLXBob25lLWNvbHVtbnMgdGhyb3VnaCAkZ3JpZC1kZXNrdG9wLWNvbHVtbnMge1xuICAgIC5tZGwtY2VsbC0tI3skaX0tY29sLFxuICAgIC5tZGwtY2VsbC0tI3skaX0tY29sLXBob25lLm1kbC1jZWxsLS0jeyRpfS1jb2wtcGhvbmUge1xuICAgICAgQGluY2x1ZGUgZnVsbC1zaXplKCRncmlkLXBob25lLWd1dHRlcik7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLyBUYWJsZXQgLy8vLy8vLy8vL1xuXG5AbWVkaWEgKG1pbi13aWR0aDogJGdyaWQtdGFibGV0LWJyZWFrcG9pbnQpIGFuZCAobWF4LXdpZHRoOiAkZ3JpZC1kZXNrdG9wLWJyZWFrcG9pbnQgLSAxKSB7XG4gIC5tZGwtZ3JpZCB7XG4gICAgcGFkZGluZzogJGdyaWQtdGFibGV0LW1hcmdpbiAtICgkZ3JpZC10YWJsZXQtZ3V0dGVyIC8gMik7XG4gIH1cblxuICAubWRsLWNlbGwge1xuICAgIG1hcmdpbjogJGdyaWQtdGFibGV0LWd1dHRlciAvIDI7XG4gICAgQGluY2x1ZGUgcGFydGlhbC1zaXplKCRncmlkLWNlbGwtZGVmYXVsdC1jb2x1bW5zLCAkZ3JpZC10YWJsZXQtY29sdW1ucyxcbiAgICAgICAgJGdyaWQtdGFibGV0LWd1dHRlcik7XG4gIH1cblxuICAubWRsLWNlbGwtLWhpZGUtdGFibGV0IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyBEZWZpbmUgcGFydGlhbCBzaXplcyBmb3IgY29sdW1uTnVtYmVyIDwgdG90YWxDb2x1bW5zLlxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICgkZ3JpZC10YWJsZXQtY29sdW1ucyAtIDEpIHtcbiAgICAubWRsLWNlbGwtLSN7JGl9LWNvbCxcbiAgICAubWRsLWNlbGwtLSN7JGl9LWNvbC10YWJsZXQubWRsLWNlbGwtLSN7JGl9LWNvbC10YWJsZXQge1xuICAgICAgQGluY2x1ZGUgcGFydGlhbC1zaXplKCRpLCAkZ3JpZC10YWJsZXQtY29sdW1ucywgJGdyaWQtdGFibGV0LWd1dHRlcik7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVmaW5lIDEwMCUgZm9yIGV2ZXJ5dGhpbmcgZWxzZS5cbiAgQGZvciAkaSBmcm9tICRncmlkLXRhYmxldC1jb2x1bW5zIHRocm91Z2ggJGdyaWQtZGVza3RvcC1jb2x1bW5zIHtcbiAgICAubWRsLWNlbGwtLSN7JGl9LWNvbCxcbiAgICAubWRsLWNlbGwtLSN7JGl9LWNvbC10YWJsZXQubWRsLWNlbGwtLSN7JGl9LWNvbC10YWJsZXQge1xuICAgICAgQGluY2x1ZGUgZnVsbC1zaXplKCRncmlkLXRhYmxldC1ndXR0ZXIpO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8gRGVza3RvcCAvLy8vLy8vLy8vXG5cbkBtZWRpYSAobWluLXdpZHRoOiAkZ3JpZC1kZXNrdG9wLWJyZWFrcG9pbnQpIHtcbiAgLm1kbC1ncmlkIHtcbiAgICBwYWRkaW5nOiAkZ3JpZC1kZXNrdG9wLW1hcmdpbiAtICgkZ3JpZC1kZXNrdG9wLWd1dHRlciAvIDIpO1xuICB9XG5cbiAgLm1kbC1jZWxsIHtcbiAgICBtYXJnaW46ICRncmlkLWRlc2t0b3AtZ3V0dGVyIC8gMjtcbiAgICBAaW5jbHVkZSBwYXJ0aWFsLXNpemUoJGdyaWQtY2VsbC1kZWZhdWx0LWNvbHVtbnMsICRncmlkLWRlc2t0b3AtY29sdW1ucyxcbiAgICAgICAgJGdyaWQtZGVza3RvcC1ndXR0ZXIpO1xuICB9XG5cbiAgLm1kbC1jZWxsLS1oaWRlLWRlc2t0b3Age1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8vIERlZmluZSBwYXJ0aWFsIHNpemVzIGZvciBhbGwgbnVtYmVycyBvZiBjb2x1bW5zLlxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWRlc2t0b3AtY29sdW1ucyB7XG4gICAgLm1kbC1jZWxsLS0jeyRpfS1jb2wsXG4gICAgLm1kbC1jZWxsLS0jeyRpfS1jb2wtZGVza3RvcC5tZGwtY2VsbC0tI3skaX0tY29sLWRlc2t0b3Age1xuICAgICAgQGluY2x1ZGUgcGFydGlhbC1zaXplKCRpLCAkZ3JpZC1kZXNrdG9wLWNvbHVtbnMsICRncmlkLWRlc2t0b3AtZ3V0dGVyKTtcbiAgICB9XG4gIH1cbn1cbiIsIi5tZC1mYWItYm90dG9tLXJpZ2h0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDIwcHg7XG4gIHJpZ2h0OiAyMHB4O1xuICB6LWluZGV4OiA0OTtcblxuICAvLyAubWQtZmFiIHtcbiAgLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vla2VyLWNvbG9yLXR4LWFjdGl2ZSAhaW1wb3J0YW50O1xuICAvLyB9XG59XG4iLCJtZC1jYXJkIHtcbiAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7IEBpbmNsdWRlIG1hcmdpbigwIG51bGwpOyB9XG5cbiAgbWQtdG9vbGJhciB7XG4gICAgbWluLWhlaWdodDogJGNhcmQtdG9vbGJhci1oZWlnaHQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNhcmQtdG9vbGJhci1jb2xvci1iZyAhaW1wb3J0YW50O1xuICAgIHotaW5kZXg6IDA7XG5cbiAgICAubWQtdG9vbGJhci10b29scyB7XG4gICAgICBoZWlnaHQ6ICRjYXJkLXRvb2xiYXItaGVpZ2h0O1xuICAgICAgbWF4LWhlaWdodDogJGNhcmQtdG9vbGJhci1oZWlnaHQ7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkbWVkaXVtO1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgIH1cblxuICAgIC5tZC10b29sYmFyLXRvb2xzLCBtZC1pY29uIHtcbiAgICAgIGNvbG9yOiAkY2FyZC1jb2xvci10eCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG4uY2FyZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjYXJkLWNvbG9yLWJnICFpbXBvcnRhbnQ7XG5cbiAgJi1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDk2cHg7XG5cbiAgICBtZC1pY29uIHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIEBpbmNsdWRlIHNpemUoMzZweCk7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKDEycHgpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNhcmQtY29sb3ItaWM7XG4gICAgICBjb2xvcjogJGNhcmQtY29sb3ItYmc7XG4gICAgICBib3JkZXI6IDhweCBkb3VibGU7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgfVxuICB9XG5cbiAgJi1pbmZvIHtcbiAgICAmX192YWx1ZSB7XG4gICAgICBjb2xvcjogJHByaW1hcnktZGFyayAhaW1wb3J0YW50O1xuICAgICAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICAgIH1cblxuICAgICZfX25hbWUge1xuICAgICAgY29sb3I6ICRwcmltYXJ5LXJlZ3VsYXIgIWltcG9ydGFudDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LXdlaWdodDogJG1lZGl1bTtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gIC5jYXJkIHtcbiAgICAmLWluZm8ge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRGlyZWN0aW9uYWwtcHJvcGVydHkgbWl4aW5zIGFyZSBzaG9ydGhhbmRzIGZvciB3cml0aW5nIHByb3BlcnRpZXMgbGlrZSB0aGUgZm9sbG93aW5nXG4vLy9cbi8vLyBAaWdub3JlIFlvdSBjYW4gYWxzbyB1c2UgYGZhbHNlYCBpbnN0ZWFkIG9mIGBudWxsYC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgZGlyZWN0aW9uYWwgdmFsdWVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRvdHRlZCBudWxsKTtcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMCAxMHB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogZG90dGVkO1xuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkb3R0ZWQ7XG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAwO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fVxuXG5AZnVuY3Rpb24gY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKSB7XG4gICRvdXRwdXQ6IG51bGw7XG5cbiAgJGE6IG50aCgkdmFscywgMSk7XG4gICRiOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgMikpO1xuICAkYzogaWYobGVuZ3RoKCR2YWxzKSA8IDMsICRhLCBudGgoJHZhbHMsIDMpKTtcbiAgJGQ6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCBpZihsZW5ndGgoJHZhbHMpIDwgNCwgMiwgNCkpKTtcblxuICBAaWYgJGEgPT0gMCB7ICRhOiAwOyB9XG4gIEBpZiAkYiA9PSAwIHsgJGI6IDA7IH1cbiAgQGlmICRjID09IDAgeyAkYzogMDsgfVxuICBAaWYgJGQgPT0gMCB7ICRkOiAwOyB9XG5cbiAgQGlmICRhID09ICRiIGFuZCAkYSA9PSAkYyBhbmQgJGEgPT0gJGQgeyAkb3V0cHV0OiAkYTsgICAgICAgICAgfVxuICBAZWxzZSBpZiAkYSA9PSAkYyBhbmQgJGIgPT0gJGQgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiOyAgICAgICB9XG4gIEBlbHNlIGlmICRiID09ICRkICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGM7ICAgIH1cbiAgQGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYyAkZDsgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cblxuLy8vIE91dHB1dCBkaXJlY3Rpb25hbCBwcm9wZXJ0aWVzLCBmb3IgaW5zdGFuY2UgYG1hcmdpbmAuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJlXG4vLy8gICBQcmVmaXggdG8gdXNlXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdWZcbi8vLyAgIFN1ZmZpeCB0byB1c2Vcbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIHZhbHVlc1xuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb2xsYXBzZS1kaXJlY3Rpb25hbHNcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG5cbkBtaXhpbiBkaXJlY3Rpb25hbC1wcm9wZXJ0eSgkcHJlLCAkc3VmLCAkdmFscykge1xuICAvLyBQcm9wZXJ0eSBOYW1lc1xuICAkdG9wOiAgICAkcHJlICsgXCItdG9wXCIgICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYm90dG9tOiAkcHJlICsgXCItYm90dG9tXCIgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkbGVmdDogICAkcHJlICsgXCItbGVmdFwiICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkcmlnaHQ6ICAkcHJlICsgXCItcmlnaHRcIiAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYWxsOiAgICAkcHJlICsgICAgICAgICAgICAgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcblxuICAkdmFsczogY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKTtcblxuICBAaWYgY29udGFpbnMtZmFsc3koJHZhbHMpIHtcbiAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHRvcH06IG50aCgkdmFscywgMSk7IH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDEge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRyaWdodH06IG50aCgkdmFscywgMSk7IH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDIpOyB9XG4gICAgfVxuXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMiB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMSk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSAzIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDQge1xuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCA0KSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgNCk7IH1cbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICN7JGFsbH06ICR2YWxzO1xuICB9XG59XG4iLCIvLyBGb250IHdlaWdodHNcbiR0aGluICAgICA6IDEwMDtcbiRsaWdodCAgICA6IDMwMDtcbiRyZWd1bGFyICA6IDQwMDtcbiRtZWRpdW0gICA6IDUwMDtcbiRib2xkICAgICA6IDcwMDtcbiRibGFjayAgICA6IDkwMDtcblxuLy8gQmFzZSBGb250XG4kYmFzZS1mb250LWZhbWlseSAgIDogICdSb2JvdG8nLCAnSGVsdmV0aWNhJywgc2Fucy1zZXJpZjtcbiRiYXNlLWZvbnQtd2VpZ2h0ICAgOiAgJHJlZ3VsYXI7XG4kYmFzZS1mb250LXNpemUgICAgIDogIDE2cHg7XG5cbi8vIEZpeGVkIEZvbnRcbiRmaXhlZC1mb250LWZhbWlseSAgOiBtb25vc3BhY2U7XG4kZml4ZWQtZm9udC1zaXplICAgIDogODUlO1xuXG4vLyBDb2xvcnNcbiRwcmltYXJ5LWRhcmsgICAgICAgOiAjMjczMTQwO1xuJHByaW1hcnktcmVndWxhciAgICA6IHRpbnQoIzI3MzE0MCwgMTAlKTtcbiRwcmltYXJ5LWxpZ2h0ICAgICAgOiB0aW50KCMyNzMxNDAsIDUwJSk7XG4kYWNjZW50LXJlZ3VsYXIgICAgIDogIzEwODBmMjtcbiRzZWNvbmRhcnktZGFyayAgICAgOiAkbWQtZ3JleS03MDA7XG4kc2Vjb25kYXJ5LXJlZ3VsYXIgIDogJG1kLWdyZXktNDAwO1xuJHNlY29uZGFyeS1saWdodCAgICA6ICRtZC1ncmV5LTEwMDtcblxuLy8gTWFpblxuJGJvZHktY29sb3ItYmcgICAgICA6IHRpbnQoJHByaW1hcnktcmVndWxhciwgOTAlKTtcblxuLy8gUmliYm9uXG4kcmliYm9uLXNpemUtaGVpZ2h0IDogNTB2aDtcbiRyaWJib24tY29sb3ItYmcgICAgOiAkbWQtYmx1ZS1ncmV5LTEwMDtcblxuLy8gSGVhZGVyXG4kaGVhZGVyLWNvbG9yLXR4ICAgIDogJG1kLXdoaXRlO1xuJGhlYWRlci1jb2xvci1iZyAgICA6ICRwcmltYXJ5LWRhcms7XG5cbi8vIFNpZGVuYXYgW01lbnVdXG4kc2lkZW5hdi1tZW51LXNpemUtd2lkdGggICAgOiAyNDBweDtcbiRzaWRlbmF2LW1lbnUtc2l6ZS1hdmF0YXIgICA6IDY0cHg7XG4kc2lkZW5hdi1tZW51LWNvbG9yLXR4ICAgICAgOiAkcHJpbWFyeS1yZWd1bGFyO1xuJHNpZGVuYXYtbWVudS1jb2xvci1iZyAgICAgIDogdGludCgkcHJpbWFyeS1saWdodCwgNzAlKTtcblxuLy8gU2lkZW5hdiBbRmlsdGVyXVxuJHNpZGVuYXYtZmlsdGVyLXNpemUtd2lkdGggIDogMzIwcHg7XG4kc2lkZW5hdi1maWx0ZXItY29sb3ItYmcgICAgOiAkbWQtd2hpdGU7XG5cbi8vIFNlZWtlclxuJHNlZWtlci1jb2xvci10eCAgICAgICAgICAgIDogJG1kLWdyZXktNjAwO1xuJHNlZWtlci1jb2xvci10eC1hY3RpdmUgICAgIDogJGFjY2VudC1yZWd1bGFyO1xuJHNlZWtlci1jb2xvci1iZyAgICAgICAgICAgIDogJG1kLXdoaXRlO1xuJHNlZWtlci1jb2xvci1iZy1jb250ZW50ICAgIDogdGludCgkcHJpbWFyeS1yZWd1bGFyLCA5MCUpO1xuXG4vLyBTdWJoZWFkZXJcbiRzdWJoZWFkZXItY29sb3ItdHggOiAkbWQtZ3JleS04MDA7XG4kc3ViaGVhZGVyLWNvbG9yLWJnIDogdGludCgkYm9keS1jb2xvci1iZywgMzAlKTtcbi8vICRzdWJoZWFkZXItY29sb3ItYmcgOiByZ2JhKCRtZC13aGl0ZSwgMC45KTtcblxuLy8gTWVudVxuJG1lbnUtY29sb3ItdHggOiAkcHJpbWFyeS1yZWd1bGFyO1xuJG1lbnUtY29sb3ItYmcgOiB0aW50KCRwcmltYXJ5LWxpZ2h0LCA3MCUpO1xuXG4vLyBDYXJkXG4kY2FyZC1jb2xvci10eCA6ICRwcmltYXJ5LXJlZ3VsYXI7XG4kY2FyZC1jb2xvci1iZyA6ICRtZC13aGl0ZTtcbiRjYXJkLWNvbG9yLWljIDogdGludCgkY2FyZC1jb2xvci10eCwgMjAlKTtcblxuJGNhcmQtdG9vbGJhci1oZWlnaHQgICAgOiA1NnB4O1xuJGNhcmQtdG9vbGJhci1jb2xvci1iZyAgOiAkbWQtd2hpdGU7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTZXRzIHRoZSBgd2lkdGhgIGFuZCBgaGVpZ2h0YCBvZiB0aGUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNpemVcbi8vLyAgIEEgbGlzdCBvZiBhdCBtb3N0IDIgc2l6ZSB2YWx1ZXMuXG4vLy9cbi8vLyAgIElmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgdmFsdWUgaW4gYCRzaXplYCBpdCBpcyB1c2VkIGZvciBib3RoIHdpZHRoIGFuZCBoZWlnaHQuIEFsbCB1bml0cyBhcmUgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNpemUoMmVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZShhdXRvIDEwZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogMmVtO1xuLy8vICAgICBoZWlnaHQ6IDJlbTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcbi8vLyAgICAgd2lkdGg6IGF1dG87XG4vLy8gICAgIGhlaWdodDogMTBlbTtcbi8vLyAgIH1cbi8vL1xuLy8vIEB0b2RvIFJlZmFjdG9yIGluIDUuMC4wIHRvIHVzZSBhIGNvbW1hLXNlcGFyYXRlZCBhcmd1bWVudFxuXG5AbWl4aW4gc2l6ZSgkdmFsdWUpIHtcbiAgJHdpZHRoOiBudGgoJHZhbHVlLCAxKTtcbiAgJGhlaWdodDogJHdpZHRoO1xuXG4gIEBpZiBsZW5ndGgoJHZhbHVlKSA+IDEge1xuICAgICRoZWlnaHQ6IG50aCgkdmFsdWUsIDIpO1xuICB9XG5cbiAgQGlmIGlzLXNpemUoJGhlaWdodCkge1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skaGVpZ2h0fWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCRoZWlnaHRgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG5cbiAgQGlmIGlzLXNpemUoJHdpZHRoKSB7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skd2lkdGh9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJHdpZHRoYCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIHdoaXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XG4vLy8gICBUaGUgYW1vdW50IG9mIHdoaXRlIHRvIGJlIG1peGVkIGluLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoIzZlY2FhNiwgNDAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E4ZGZjOTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXR1cm4ge0NvbG9yfVxuXG5AZnVuY3Rpb24gdGludCgkY29sb3IsICRwZXJjZW50KSB7XG4gIEByZXR1cm4gbWl4KCNmZmYsICRjb2xvciwgJHBlcmNlbnQpO1xufVxuIiwiJG1kLXJlZC01MDogI2ZmZWJlZTtcbiRtZC1yZWQtMTAwOiAjZmZjZGQyO1xuJG1kLXJlZC0yMDA6ICNlZjlhOWE7XG4kbWQtcmVkLTMwMDogI2U1NzM3MztcbiRtZC1yZWQtNDAwOiAjZWY1MzUwO1xuJG1kLXJlZC01MDA6ICNmNDQzMzY7XG4kbWQtcmVkLTYwMDogI2U1MzkzNTtcbiRtZC1yZWQtNzAwOiAjZDMyZjJmO1xuJG1kLXJlZC04MDA6ICNjNjI4Mjg7XG4kbWQtcmVkLTkwMDogI2I3MWMxYztcbiRtZC1yZWQtYTEwMDogI2ZmOGE4MDtcbiRtZC1yZWQtYTIwMDogI2ZmNTI1MjtcbiRtZC1yZWQtYTQwMDogI2ZmMTc0NDtcbiRtZC1yZWQtYTcwMDogI2Q1MDAwMDtcblxuJG1kLXBpbmstNTA6ICNmY2U0ZWM7XG4kbWQtcGluay0xMDA6ICNmOGJiZDA7XG4kbWQtcGluay0yMDA6ICNmNDhmYjE7XG4kbWQtcGluay0zMDA6ICNmMDYyOTI7XG4kbWQtcGluay00MDA6ICNlYzQwN2E7XG4kbWQtcGluay01MDA6ICNlOTFlNjM7XG4kbWQtcGluay02MDA6ICNkODFiNjA7XG4kbWQtcGluay03MDA6ICNjMjE4NWI7XG4kbWQtcGluay04MDA6ICNhZDE0NTc7XG4kbWQtcGluay05MDA6ICM4ODBlNGY7XG4kbWQtcGluay1hMTAwOiAjZmY4MGFiO1xuJG1kLXBpbmstYTIwMDogI2ZmNDA4MTtcbiRtZC1waW5rLWE0MDA6ICNmNTAwNTc7XG4kbWQtcGluay1hNzAwOiAjYzUxMTYyO1xuXG4kbWQtcHVycGxlLTUwOiAjZjNlNWY1O1xuJG1kLXB1cnBsZS0xMDA6ICNlMWJlZTc7XG4kbWQtcHVycGxlLTIwMDogI2NlOTNkODtcbiRtZC1wdXJwbGUtMzAwOiAjYmE2OGM4O1xuJG1kLXB1cnBsZS00MDA6ICNhYjQ3YmM7XG4kbWQtcHVycGxlLTUwMDogIzljMjdiMDtcbiRtZC1wdXJwbGUtNjAwOiAjOGUyNGFhO1xuJG1kLXB1cnBsZS03MDA6ICM3YjFmYTI7XG4kbWQtcHVycGxlLTgwMDogIzZhMWI5YTtcbiRtZC1wdXJwbGUtOTAwOiAjNGExNDhjO1xuJG1kLXB1cnBsZS1hMTAwOiAjZWE4MGZjO1xuJG1kLXB1cnBsZS1hMjAwOiAjZTA0MGZiO1xuJG1kLXB1cnBsZS1hNDAwOiAjZDUwMGY5O1xuJG1kLXB1cnBsZS1hNzAwOiAjYWEwMGZmO1xuXG4kbWQtZGVlcC1wdXJwbGUtNTA6ICNlZGU3ZjY7XG4kbWQtZGVlcC1wdXJwbGUtMTAwOiAjZDFjNGU5O1xuJG1kLWRlZXAtcHVycGxlLTIwMDogI2IzOWRkYjtcbiRtZC1kZWVwLXB1cnBsZS0zMDA6ICM5NTc1Y2Q7XG4kbWQtZGVlcC1wdXJwbGUtNDAwOiAjN2U1N2MyO1xuJG1kLWRlZXAtcHVycGxlLTUwMDogIzY3M2FiNztcbiRtZC1kZWVwLXB1cnBsZS02MDA6ICM1ZTM1YjE7XG4kbWQtZGVlcC1wdXJwbGUtNzAwOiAjNTEyZGE4O1xuJG1kLWRlZXAtcHVycGxlLTgwMDogIzQ1MjdhMDtcbiRtZC1kZWVwLXB1cnBsZS05MDA6ICMzMTFiOTI7XG4kbWQtZGVlcC1wdXJwbGUtYTEwMDogI2IzODhmZjtcbiRtZC1kZWVwLXB1cnBsZS1hMjAwOiAjN2M0ZGZmO1xuJG1kLWRlZXAtcHVycGxlLWE0MDA6ICM2NTFmZmY7XG4kbWQtZGVlcC1wdXJwbGUtYTcwMDogIzYyMDBlYTtcblxuJG1kLWluZGlnby01MDogI2U4ZWFmNjtcbiRtZC1pbmRpZ28tMTAwOiAjYzVjYWU5O1xuJG1kLWluZGlnby0yMDA6ICM5ZmE4ZGE7XG4kbWQtaW5kaWdvLTMwMDogIzc5ODZjYjtcbiRtZC1pbmRpZ28tNDAwOiAjNWM2YmMwO1xuJG1kLWluZGlnby01MDA6ICMzZjUxYjU7XG4kbWQtaW5kaWdvLTYwMDogIzM5NDlhYjtcbiRtZC1pbmRpZ28tNzAwOiAjMzAzZjlmO1xuJG1kLWluZGlnby04MDA6ICMyODM1OTM7XG4kbWQtaW5kaWdvLTkwMDogIzFhMjM3ZTtcbiRtZC1pbmRpZ28tYTEwMDogIzhjOWVmZjtcbiRtZC1pbmRpZ28tYTIwMDogIzUzNmRmZTtcbiRtZC1pbmRpZ28tYTQwMDogIzNkNWFmZTtcbiRtZC1pbmRpZ28tYTcwMDogIzMwNGZmZTtcblxuJG1kLWJsdWUtNTA6ICNlM2YyZmQ7XG4kbWQtYmx1ZS0xMDA6ICNiYmRlZmI7XG4kbWQtYmx1ZS0yMDA6ICM5MGNhZjk7XG4kbWQtYmx1ZS0zMDA6ICM2NGI1ZjY7XG4kbWQtYmx1ZS00MDA6ICM0MmE1ZjU7XG4kbWQtYmx1ZS01MDA6ICMyMTk2ZjM7XG4kbWQtYmx1ZS02MDA6ICMxZTg4ZTU7XG4kbWQtYmx1ZS03MDA6ICMxOTc2ZDI7XG4kbWQtYmx1ZS04MDA6ICMxNTY1YzA7XG4kbWQtYmx1ZS05MDA6ICMwZDQ3YTE7XG4kbWQtYmx1ZS1hMTAwOiAjODJiMWZmO1xuJG1kLWJsdWUtYTIwMDogIzQ0OGFmZjtcbiRtZC1ibHVlLWE0MDA6ICMyOTc5ZmY7XG4kbWQtYmx1ZS1hNzAwOiAjMjk2MmZmO1xuXG4kbWQtbGlnaHQtYmx1ZS01MDogI2UxZjVmZTtcbiRtZC1saWdodC1ibHVlLTEwMDogI2IzZTVmYztcbiRtZC1saWdodC1ibHVlLTIwMDogIzgxZDRmYTtcbiRtZC1saWdodC1ibHVlLTMwMDogIzRmYzNmNztcbiRtZC1saWdodC1ibHVlLTQwMDogIzI5YjZmNjtcbiRtZC1saWdodC1ibHVlLTUwMDogIzAzYTlmNDtcbiRtZC1saWdodC1ibHVlLTYwMDogIzAzOWJlNTtcbiRtZC1saWdodC1ibHVlLTcwMDogIzAyODhkMTtcbiRtZC1saWdodC1ibHVlLTgwMDogIzAyNzdiZDtcbiRtZC1saWdodC1ibHVlLTkwMDogIzAxNTc5YjtcbiRtZC1saWdodC1ibHVlLWExMDA6ICM4MGQ4ZmY7XG4kbWQtbGlnaHQtYmx1ZS1hMjAwOiAjNDBjNGZmO1xuJG1kLWxpZ2h0LWJsdWUtYTQwMDogIzAwYjBmZjtcbiRtZC1saWdodC1ibHVlLWE3MDA6ICMwMDkxZWE7XG5cbiRtZC1jeWFuLTUwOiAjZTBmN2ZhO1xuJG1kLWN5YW4tMTAwOiAjYjJlYmYyO1xuJG1kLWN5YW4tMjAwOiAjODBkZWVhO1xuJG1kLWN5YW4tMzAwOiAjNGRkMGUxO1xuJG1kLWN5YW4tNDAwOiAjMjZjNmRhO1xuJG1kLWN5YW4tNTAwOiAjMDBiY2Q0O1xuJG1kLWN5YW4tNjAwOiAjMDBhY2MxO1xuJG1kLWN5YW4tNzAwOiAjMDA5N2E3O1xuJG1kLWN5YW4tODAwOiAjMDA4MzhmO1xuJG1kLWN5YW4tOTAwOiAjMDA2MDY0O1xuJG1kLWN5YW4tYTEwMDogIzg0ZmZmZjtcbiRtZC1jeWFuLWEyMDA6ICMxOGZmZmY7XG4kbWQtY3lhbi1hNDAwOiAjMDBlNWZmO1xuJG1kLWN5YW4tYTcwMDogIzAwYjhkNDtcblxuJG1kLXRlYWwtNTA6ICNlMGYyZjE7XG4kbWQtdGVhbC0xMDA6ICNiMmRmZGI7XG4kbWQtdGVhbC0yMDA6ICM4MGNiYzQ7XG4kbWQtdGVhbC0zMDA6ICM0ZGI2YWM7XG4kbWQtdGVhbC00MDA6ICMyNmE2OWE7XG4kbWQtdGVhbC01MDA6ICMwMDk2ODg7XG4kbWQtdGVhbC02MDA6ICMwMDg5N2I7XG4kbWQtdGVhbC03MDA6ICMwMDc5NmI7XG4kbWQtdGVhbC04MDA6ICMwMDY5NWM7XG4kbWQtdGVhbC05MDA6ICMwMDRkNDA7XG4kbWQtdGVhbC1hMTAwOiAjYTdmZmViO1xuJG1kLXRlYWwtYTIwMDogIzY0ZmZkYTtcbiRtZC10ZWFsLWE0MDA6ICMxZGU5YjY7XG4kbWQtdGVhbC1hNzAwOiAjMDBiZmE1O1xuXG4kbWQtZ3JlZW4tNTA6ICNlOGY1ZTk7XG4kbWQtZ3JlZW4tMTAwOiAjYzhlNmM5O1xuJG1kLWdyZWVuLTIwMDogI2E1ZDZhNztcbiRtZC1ncmVlbi0zMDA6ICM4MWM3ODQ7XG4kbWQtZ3JlZW4tNDAwOiAjNjZiYjZhO1xuJG1kLWdyZWVuLTUwMDogIzRjYWY1MDtcbiRtZC1ncmVlbi02MDA6ICM0M2EwNDc7XG4kbWQtZ3JlZW4tNzAwOiAjMzg4ZTNjO1xuJG1kLWdyZWVuLTgwMDogIzJlN2QzMjtcbiRtZC1ncmVlbi05MDA6ICMxYjVlMjA7XG4kbWQtZ3JlZW4tYTEwMDogI2I5ZjZjYTtcbiRtZC1ncmVlbi1hMjAwOiAjNjlmMGFlO1xuJG1kLWdyZWVuLWE0MDA6ICMwMGU2NzY7XG4kbWQtZ3JlZW4tYTcwMDogIzAwYzg1MztcblxuJG1kLWxpZ2h0LWdyZWVuLTUwOiAjZjFmOGU5O1xuJG1kLWxpZ2h0LWdyZWVuLTEwMDogI2RjZWRjODtcbiRtZC1saWdodC1ncmVlbi0yMDA6ICNjNWUxYTU7XG4kbWQtbGlnaHQtZ3JlZW4tMzAwOiAjYWVkNTgxO1xuJG1kLWxpZ2h0LWdyZWVuLTQwMDogIzljY2M2NTtcbiRtZC1saWdodC1ncmVlbi01MDA6ICM4YmMzNGE7XG4kbWQtbGlnaHQtZ3JlZW4tNjAwOiAjN2NiMzQyO1xuJG1kLWxpZ2h0LWdyZWVuLTcwMDogIzY4OWYzODtcbiRtZC1saWdodC1ncmVlbi04MDA6ICM1NThiMmY7XG4kbWQtbGlnaHQtZ3JlZW4tOTAwOiAjMzM2OTFlO1xuJG1kLWxpZ2h0LWdyZWVuLWExMDA6ICNjY2ZmOTA7XG4kbWQtbGlnaHQtZ3JlZW4tYTIwMDogI2IyZmY1OTtcbiRtZC1saWdodC1ncmVlbi1hNDAwOiAjNzZmZjAzO1xuJG1kLWxpZ2h0LWdyZWVuLWE3MDA6ICM2NGRkMTc7XG5cbiRtZC1saW1lLTUwOiAjZjlmYmU3O1xuJG1kLWxpbWUtMTAwOiAjZjBmNGMzO1xuJG1kLWxpbWUtMjAwOiAjZTZlZTljO1xuJG1kLWxpbWUtMzAwOiAjZGNlNzc1O1xuJG1kLWxpbWUtNDAwOiAjZDRlMTU3O1xuJG1kLWxpbWUtNTAwOiAjY2RkYzM5O1xuJG1kLWxpbWUtNjAwOiAjYzBjYTMzO1xuJG1kLWxpbWUtNzAwOiAjYWZiNDJiO1xuJG1kLWxpbWUtODAwOiAjOWU5ZDI0O1xuJG1kLWxpbWUtOTAwOiAjODI3NzE3O1xuJG1kLWxpbWUtYTEwMDogI2Y0ZmY4MTtcbiRtZC1saW1lLWEyMDA6ICNlZWZmNDE7XG4kbWQtbGltZS1hNDAwOiAjYzZmZjAwO1xuJG1kLWxpbWUtYTcwMDogI2FlZWEwMDtcblxuJG1kLXllbGxvdy01MDogI2ZmZmRlNztcbiRtZC15ZWxsb3ctMTAwOiAjZmZmOWM0O1xuJG1kLXllbGxvdy0yMDA6ICNmZmY1OWQ7XG4kbWQteWVsbG93LTMwMDogI2ZmZjE3NjtcbiRtZC15ZWxsb3ctNDAwOiAjZmZlZTU4O1xuJG1kLXllbGxvdy01MDA6ICNmZmViM2I7XG4kbWQteWVsbG93LTYwMDogI2ZkZDgzNTtcbiRtZC15ZWxsb3ctNzAwOiAjZmJjMDJkO1xuJG1kLXllbGxvdy04MDA6ICNmOWE4MjU7XG4kbWQteWVsbG93LTkwMDogI2Y1N2YxNztcbiRtZC15ZWxsb3ctYTEwMDogI2ZmZmY4ZDtcbiRtZC15ZWxsb3ctYTIwMDogI2ZmZmYwMDtcbiRtZC15ZWxsb3ctYTQwMDogI2ZmZWEwMDtcbiRtZC15ZWxsb3ctYTcwMDogI2ZmZDYwMDtcblxuJG1kLWFtYmVyLTUwOiAjZmZmOGUxO1xuJG1kLWFtYmVyLTEwMDogI2ZmZWNiMztcbiRtZC1hbWJlci0yMDA6ICNmZmUwODI7XG4kbWQtYW1iZXItMzAwOiAjZmZkNTRmO1xuJG1kLWFtYmVyLTQwMDogI2ZmY2EyODtcbiRtZC1hbWJlci01MDA6ICNmZmMxMDc7XG4kbWQtYW1iZXItNjAwOiAjZmZiMzAwO1xuJG1kLWFtYmVyLTcwMDogI2ZmYTAwMDtcbiRtZC1hbWJlci04MDA6ICNmZjhmMDA7XG4kbWQtYW1iZXItOTAwOiAjZmY2ZjAwO1xuJG1kLWFtYmVyLWExMDA6ICNmZmU1N2Y7XG4kbWQtYW1iZXItYTIwMDogI2ZmZDc0MDtcbiRtZC1hbWJlci1hNDAwOiAjZmZjNDAwO1xuJG1kLWFtYmVyLWE3MDA6ICNmZmFiMDA7XG5cbiRtZC1vcmFuZ2UtNTA6ICNmZmYzZTA7XG4kbWQtb3JhbmdlLTEwMDogI2ZmZTBiMjtcbiRtZC1vcmFuZ2UtMjAwOiAjZmZjYzgwO1xuJG1kLW9yYW5nZS0zMDA6ICNmZmI3NGQ7XG4kbWQtb3JhbmdlLTQwMDogI2ZmYTcyNjtcbiRtZC1vcmFuZ2UtNTAwOiAjZmY5ODAwO1xuJG1kLW9yYW5nZS02MDA6ICNmYjhjMDA7XG4kbWQtb3JhbmdlLTcwMDogI2Y1N2MwMDtcbiRtZC1vcmFuZ2UtODAwOiAjZWY2YzAwO1xuJG1kLW9yYW5nZS05MDA6ICNlNjUxMDA7XG4kbWQtb3JhbmdlLWExMDA6ICNmZmQxODA7XG4kbWQtb3JhbmdlLWEyMDA6ICNmZmFiNDA7XG4kbWQtb3JhbmdlLWE0MDA6ICNmZjkxMDA7XG4kbWQtb3JhbmdlLWE3MDA6ICNmZjZkMDA7XG5cbiRtZC1kZWVwLW9yYW5nZS01MDogI2ZiZTllNztcbiRtZC1kZWVwLW9yYW5nZS0xMDA6ICNmZmNjYmM7XG4kbWQtZGVlcC1vcmFuZ2UtMjAwOiAjZmZhYjkxO1xuJG1kLWRlZXAtb3JhbmdlLTMwMDogI2ZmOGE2NTtcbiRtZC1kZWVwLW9yYW5nZS00MDA6ICNmZjcwNDM7XG4kbWQtZGVlcC1vcmFuZ2UtNTAwOiAjZmY1NzIyO1xuJG1kLWRlZXAtb3JhbmdlLTYwMDogI2Y0NTExZTtcbiRtZC1kZWVwLW9yYW5nZS03MDA6ICNlNjRhMTk7XG4kbWQtZGVlcC1vcmFuZ2UtODAwOiAjZDg0MzE1O1xuJG1kLWRlZXAtb3JhbmdlLTkwMDogI2JmMzYwYztcbiRtZC1kZWVwLW9yYW5nZS1hMTAwOiAjZmY5ZTgwO1xuJG1kLWRlZXAtb3JhbmdlLWEyMDA6ICNmZjZlNDA7XG4kbWQtZGVlcC1vcmFuZ2UtYTQwMDogI2ZmM2QwMDtcbiRtZC1kZWVwLW9yYW5nZS1hNzAwOiAjZGQyYzAwO1xuXG4kbWQtYnJvd24tNTA6ICNlZmViZTk7XG4kbWQtYnJvd24tMTAwOiAjZDdjY2M4O1xuJG1kLWJyb3duLTIwMDogI2JjYWFhNDtcbiRtZC1icm93bi0zMDA6ICNhMTg4N2Y7XG4kbWQtYnJvd24tNDAwOiAjOGQ2ZTYzO1xuJG1kLWJyb3duLTUwMDogIzc5NTU0ODtcbiRtZC1icm93bi02MDA6ICM2ZDRjNDE7XG4kbWQtYnJvd24tNzAwOiAjNWQ0MDM3O1xuJG1kLWJyb3duLTgwMDogIzRlMzQyZTtcbiRtZC1icm93bi05MDA6ICMzZTI3MjM7XG5cbiRtZC1ncmV5LTUwOiAjZmFmYWZhO1xuJG1kLWdyZXktMTAwOiAjZjVmNWY1O1xuJG1kLWdyZXktMjAwOiAjZWVlZWVlO1xuJG1kLWdyZXktMzAwOiAjZTBlMGUwO1xuJG1kLWdyZXktNDAwOiAjYmRiZGJkO1xuJG1kLWdyZXktNTAwOiAjOWU5ZTllO1xuJG1kLWdyZXktNjAwOiAjNzU3NTc1O1xuJG1kLWdyZXktNzAwOiAjNjE2MTYxO1xuJG1kLWdyZXktODAwOiAjNDI0MjQyO1xuJG1kLWdyZXktOTAwOiAjMjEyMTIxO1xuXG4kbWQtYmx1ZS1ncmV5LTUwOiAjZWNlZmYxO1xuJG1kLWJsdWUtZ3JleS0xMDA6ICNjZmQ4ZGM7XG4kbWQtYmx1ZS1ncmV5LTIwMDogI2IwYmVjNTtcbiRtZC1ibHVlLWdyZXktMzAwOiAjOTBhNGFlO1xuJG1kLWJsdWUtZ3JleS00MDA6ICM3ODkwOWM7XG4kbWQtYmx1ZS1ncmV5LTUwMDogIzYwN2Q4YjtcbiRtZC1ibHVlLWdyZXktNjAwOiAjNTQ2ZTdhO1xuJG1kLWJsdWUtZ3JleS03MDA6ICM0NTVhNjQ7XG4kbWQtYmx1ZS1ncmV5LTgwMDogIzM3NDc0ZjtcbiRtZC1ibHVlLWdyZXktOTAwOiAjMjYzMjM4O1xuXG4kbWQtd2hpdGU6ICNmZmZmZmY7XG5cbiRtZC1ibGFjazogIzAwMDAwMDtcblxuXG4iLCIuZHRwID4gLmR0cC1jb250ZW50ID4gLmR0cC1kYXRlLXZpZXcgPiBoZWFkZXIuZHRwLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWRhcms7XG59XG5cbi5kdHAgZGl2LmR0cC1kYXRlLFxuLmR0cCBkaXYuZHRwLXRpbWUsXG4uZHRwIC5kdHAtYWN0dWFsLW1lcmlkaWVuIGEuc2VsZWN0ZWQsXG4uZHRwIC5kdHAtcGlja2VyLXRpbWUgPiBhLmR0cC1zZWxlY3QtaG91ci5zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LXJlZ3VsYXI7XG59XG5cbi5kdHAgLnAxMCA+IGEsXG4uZHRwIC5kdHAtaGFuZC5vbixcbi5kdHAgdGFibGUuZHRwLXBpY2tlci1kYXlzIHRyID4gdGQgPiBhLnNlbGVjdGVkLFxuLmR0cCAuZHRwLXBpY2tlci10aW1lID4gYS5kdHAtc2VsZWN0LW1pbnV0ZS5zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LXJlZ3VsYXI7XG59XG5cbi5kdHAgZGl2LmR0cC1hY3R1YWwteWVhcixcbi5kdHAgZGl2LmR0cC15ZWFyLWJ0biB7XG4gIGNvbG9yOiAkc2Vjb25kYXJ5LXJlZ3VsYXI7XG59XG5cbi5kdHAgLmR0cC1waWNrZXItbW9udGgge1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIEBpbmNsdWRlIHBhZGRpbmcoOHB4IG51bGwpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYm9keS1jb2xvci1iZztcbiAgY29sb3I6ICRwcmltYXJ5LXJlZ3VsYXI7XG59XG5cbm1kLWlucHV0LWNvbnRhaW5lci5tZC1kZWZhdWx0LXRoZW1lIC5tZC1pbnB1dFtkaXNhYmxlZF0sXG5tZC1pbnB1dC1jb250YWluZXIgLm1kLWlucHV0W2Rpc2FibGVkXSxcbm1kLWlucHV0LWNvbnRhaW5lci5tZC1kZWZhdWx0LXRoZW1lIC5tZC1pbnB1dCBbZGlzYWJsZWRdLFxubWQtaW5wdXQtY29udGFpbmVyIC5tZC1pbnB1dCBbZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMCwwLDAsLjYpO1xufVxuIiwiaGVhZGVyIHtcbiAgei1pbmRleDogNjA7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA1OTlweCkge1xuICBoZWFkZXIge1xuICAgIG1kLXRvb2xiYXIge1xuICAgICAgLm1kLWJ1dHRvbi5tZC1pY29uLWJ1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbigwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIm1kLWNvbnRlbnQge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6ICRib2R5LWNvbG9yLWJnO1xufVxuXG5tZC1zZWxlY3QtbWVudSBtZC1jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJG1kLXdoaXRlO1xuXG4gIG1kLW9wdGlvbiB7XG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogICRtZW51LWNvbG9yLXR4ICFpbXBvcnRhbnQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWVudS1jb2xvci1iZyAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5tZC10b29sYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGhlYWRlci1jb2xvci1iZyAhaW1wb3J0YW50O1xufVxuXG4ubWQtY29udGVudC1zdWJoZWFkZXIge1xuICBAaW5jbHVkZSBwYWRkaW5nKDRweCA4cHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3ViaGVhZGVyLWNvbG9yLWJnO1xuICBjb2xvcjogJHN1YmhlYWRlci1jb2xvci10eDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG5tZC1jaGVja2JveC5tZC1jaGVja2VkIC5tZC1pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNlZWtlci1jb2xvci10eC1hY3RpdmU7XG4gIC8vIGJvcmRlci1jb2xvcjogJHNlZWtlci1jb2xvci1iZztcblxuICAmOjphZnRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAkbWQtd2hpdGU7XG4gIH1cbn1cblxubWQtdG9vbHRpcCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLmZhYiB7XG4gICYtY2xvc2VkLWljb24sICYtb3Blbi1pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxN3B4O1xuICAgIGxlZnQ6IDE2cHg7XG4gICAgdHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlLWluLW91dDtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cblxuICAmLW9wZW4taWNvbiB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICB9XG5cbiAgLm1kLWlzLW9wZW4gJi1jbG9zZWQtaWNvbiB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICB9XG5cbiAgLm1kLWlzLW9wZW4gJi1vcGVuLWljb24ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuIiwibWQtbWVudS1jb250ZW50IHtcbiAgLm1kLWJ1dHRvbiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDRweCAwO1xuXG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogICRtZW51LWNvbG9yLXR4ICFpbXBvcnRhbnQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWVudS1jb2xvci1iZyAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgIGNvbG9yOiAkbWVudS1jb2xvci10eCAhaW1wb3J0YW50O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRtZW51LWNvbG9yLWJnLCAxMCUpO1xuICAgIH1cbiAgfVxufVxuIiwibWQtdGFicyB7XG4gIEBpbmNsdWRlIHBhZGRpbmcobnVsbCA4cHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vla2VyLWNvbG9yLWJnO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJG1kLWdyZXktNDAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICY6bm90KC5tZC1uby10YWItY29udGVudCk6bm90KC5tZC1keW5hbWljLWhlaWdodCkge1xuICAgIG1pbi1oZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxuXG4gIG1kLWluay1iYXIge1xuICAgIGNvbG9yOiAkc2Vla2VyLWNvbG9yLXR4LWFjdGl2ZSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6ICRzZWVrZXItY29sb3ItdHgtYWN0aXZlICFpbXBvcnRhbnQ7XG4gIH1cblxuICBtZC10YWItY29udGVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJvZHktY29sb3ItYmc7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRtZC1ncmV5LTQwMDtcbiAgfVxuXG4gIG1kLWljb24ge1xuICAgIGNvbG9yOiAkc2Vla2VyLWNvbG9yLXR4O1xuICB9XG5cbiAgLm1kLXRhYiB7XG4gICAgY29sb3I6ICRzZWVrZXItY29sb3ItdHggIWltcG9ydGFudDtcblxuICAgICYubWQtYWN0aXZlIHtcbiAgICAgIGNvbG9yOiAkc2Vla2VyLWNvbG9yLXR4LWFjdGl2ZSAhaW1wb3J0YW50O1xuICAgICAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICAgIH1cbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgbWQtdGFicyB7XG4gICAgQGluY2x1ZGUgcGFkZGluZyhudWxsIDI0cHgpO1xuICB9XG59XG5cbi5tZC10YWItaW50ZXJ2YWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vla2VyLWNvbG9yLWJnLWNvbnRlbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbWQtZ3JleS00MDA7XG5cbiAgZGl2ID4gKiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAzMnB4O1xuXG4gICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgfVxuICB9XG5cbiAgI3F1aWNrSW50ZXJ2YWwgIHsgbWluLXdpZHRoOiAxMjBweDsgfVxuICAjcGVyaW9kSW50ZXJ2YWwgeyBtaW4td2lkdGg6IDE2MHB4OyB9XG5cbiAgLm1kLWNvbnRlbnQtdGl0bGUge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCBudWxsIDE2cHggbnVsbCk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogJGJvbGQ7XG4gIH1cblxuICBtZC1pbnB1dC1jb250YWluZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAubWQtZXJyb3JzLXNwYWNlciB7XG4gICAgICBtaW4taGVpZ2h0OiA4cHg7XG4gICAgfVxuICB9XG5cbiAgb2wsIHVsIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICBsaSB7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKDJweCA4cHgpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgICAgY29sb3I6ICRtZC1ncmV5LTgwMDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkbWVkaXVtO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyLCAmOmFjdGl2ZSwgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkbWQtd2hpdGU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQtcmVndWxhcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uc3ViaGVhZGVyLXBlcmlvZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzdWJoZWFkZXItY29sb3ItYmc7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbWQtZ3JleS00MDA7XG5cbiAgLm1kLXN1YmhlYWRlci1pbm5lciB7XG4gICAgQGluY2x1ZGUgcGFkZGluZygwIDMycHggMCAxNnB4KTtcbiAgfVxuXG4gIC5zdWJoZWFkZXItdGl0bGUge1xuICAgIGNvbG9yOiAkbWQtZ3JleS02MDA7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cblxuICBidXR0b24ge1xuICAgIC8vICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgLy8gICBtYXJnaW4tbGVmdDogMDtcbiAgICAvLyB9XG4gICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gIG1kLWlucHV0LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgbWFyZ2luKDRweCBudWxsKTtcblxuICAgIC5tZC1lcnJvcnMtc3BhY2VyIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgfVxuICB9XG59XG5cblxuI3NlZWtlclN1bW1hcnkge1xuICBtZC1wYWdpbmF0aW9uLXdyYXBwZXIge1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuI3NlZWtlckNvbXBhcmF0aXZlIHtcbiAgbWQtcGFnaW5hdGlvbi13cmFwcGVyIHtcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICB9XG59XG4iLCJtZC1zaWRlbmF2IHtcblxuICAvLyBtZC1saXN0IHtcbiAgLy8gICBAaW5jbHVkZSBwYWRkaW5nKDAgbnVsbCk7XG4gIC8vIH1cblxuICBtZC1jb250ZW50LCBtZC1jb250ZW50IC5tZC1zdWJoZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgbWQtZGl2aWRlciB7XG4gICAgQGluY2x1ZGUgbWFyZ2luKDRweCBudWxsKTtcbiAgfVxuXG4gIG1kLWxpc3QtaXRlbSB7XG5cbiAgICBtZC1pY29uIHtcbiAgICAgIEBpbmNsdWRlIG1hcmdpbigwIDhweCAwIDAgIWltcG9ydGFudCk7XG4gICAgfVxuXG4gICAgLm1kLWxpc3QtaXRlbS1pbm5lciB7XG4gICAgICBtYXJnaW4tdG9wICAgIDogMCAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLWJvdHRvbSA6IDAgIWltcG9ydGFudDtcblxuICAgICAgbWQtaWNvbiB7XG4gICAgICAgIG1hcmdpbi10b3AgICAgOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b20gOiAwICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjphY3RpdmUsICY6Zm9jdXMsICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNpZGVuYXYtbWVudS1jb2xvci1iZztcbiAgICAgIGNvbG9yOiAkc2lkZW5hdi1tZW51LWNvbG9yLXR4O1xuXG4gICAgICBtZC1pY29uIHtcbiAgICAgICAgY29sb3I6ICRzaWRlbmF2LW1lbnUtY29sb3ItdHggIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWQtYXZhdGFyIHtcbiAgICBAaW5jbHVkZSBzaXplKCRzaWRlbmF2LW1lbnUtc2l6ZS1hdmF0YXIpO1xuXG4gICAgaW1nIHtcbiAgICAgIEBpbmNsdWRlIHNpemUoJHNpZGVuYXYtbWVudS1zaXplLWF2YXRhcik7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgfVxuICB9XG5cbiAgLnRvb2xiYXIge1xuICAgICYtaGVhZGVyIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vYXNzZXRzL2ltYWdlcy9iZy1oZWFkZXIucG5nJyk7XG4gICAgICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IG11bHRpcGx5O1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICB9XG4gIH1cbn1cblxuI3NpZGVuYXZNZW51IHtcbiAgd2lkdGggICAgIDogJHNpZGVuYXYtbWVudS1zaXplLXdpZHRoO1xuICBtYXgtd2lkdGggOiAkc2lkZW5hdi1tZW51LXNpemUtd2lkdGg7XG4gIGhlaWdodDogaW5oZXJpdDtcblxuICBtZC10b29sYmFyIHtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIGhlaWdodDogMTYwcHg7XG4gICAgbWluLWhlaWdodDogMTYwcHg7XG4gICAgbWF4LWhlaWdodDogMTYwcHg7XG4gIH1cblxuICBtZC1jb250ZW50IHtcbiAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkge1xuICAjc2lkZW5hdk1lbnUge1xuICAgIHotaW5kZXg6IDU4O1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJG1kLWdyZXktNDAwO1xuICB9XG59XG5cbiNzaWRlbmF2RmlsdGVyIHtcbiAgd2lkdGggICAgIDogJHNpZGVuYXYtZmlsdGVyLXNpemUtd2lkdGg7XG4gIG1heC13aWR0aCA6ICRzaWRlbmF2LWZpbHRlci1zaXplLXdpZHRoO1xuICBwb3NpdGlvbiAgOiBmaXhlZDtcbiAgdG9wOiAwO1xuXG4gIG1kLXRhYnMge1xuICAgIG1kLXRhYi1jb250ZW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzaWRlbmF2LWZpbHRlci1jb2xvci1iZztcbiAgICB9XG4gIH1cblxuICBtZC1saXN0LWl0ZW0ge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0aW50KCRzZWVrZXItY29sb3ItYmctY29udGVudCwgMjUlKTtcblxuICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCJ0aGVhZCB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi50ZC1jb2xvcmVkIHtcbiAgbWF4LXdpZHRoOiAxMDBweDtcbn1cbiIsImgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIGNvbG9yOiAkcHJpbWFyeS1yZWd1bGFyO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbnNtYWxsIHtcbiAgb3BhY2l0eTogLjY7XG59XG5cbmEge1xuICBjb2xvcjogJHByaW1hcnktcmVndWxhcjtcblxuICAmOmZvY3VzLFxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSB7XG4gICAgY29sb3I6ICRwcmltYXJ5LWRhcms7XG4gIH1cbn1cbiIsIiRwcmltYXJ5LWNvbG9yOiByZ2IoMTAzLDU4LDE4Myk7XG5cbi5mc2Vuc2UtcmVzZXQtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDI0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGM0Y0RjY7XG5cbiAgLmZzZW5zZS1jYXJkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLDAsMCwwLjA1KTtcbiAgICBwYWRkaW5nOiA2NHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC5mc2Vuc2UtbG9nby1jb250YWluZXIge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDk5O1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgLmZzZW5zZS1sb2dvIHtcbiAgICAgICAgd2lkdGg6IDE1MHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIGgxIHtcbiAgICAgIG1hcmdpbjogMCAwIDhweCAwO1xuICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGNvbG9yOiAjMTExODI3O1xuICAgIH1cblxuICAgIHAge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgY29sb3I6ICM2QjcyODA7XG4gICAgfVxuXG4gICAgLm1kLW91dGxpbmVkLWlucHV0LWNvbnRhaW5lciB7XG5cbiAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAubWQtZXJyb3JzLXNwYWNlciB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IGF1dG87XG4gICAgICB9XG5cbiAgICAgIC5tZC1pbnB1dFtkaXNhYmxlZF0ge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDExOCwgMTE4LCAxMTgsIDAuMyk7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0LWRhcmsocmdiYSgyMzksIDIzOSwgMjM5LCAwLjMpLCByZ2JhKDU5LCA1OSwgNTksIDAuMykpO1xuICAgICAgfVxuXG4gICAgICAubWQtaW5wdXQge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgbWluLWhlaWdodDogNTZweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHBhZGRpbmc6IDAgMTZweCAwIDE2cHg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICBjb2xvcjogIzlDQTNBRjtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYubWQtaW5wdXQtaW52YWxpZCB7XG4gICAgICAgIC5tZC1pbnB1dCB7XG4gICAgICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiKDIyMSwgNDQsIDApICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgY29sb3I6IHJnYigyMjEsIDQ0LCAwKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYubWQtaW5wdXQtdmFsaWQge1xuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYubWQtaW5wdXQtZm9jdXNlZCB7XG4gICAgICAgIC5tZC1pbnB1dCB7XG4gICAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHByaW1hcnktY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHggMCAxNnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgICAgIHBhZGRpbmc6IDAgNHB4IDAgNHB4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5sYWJlbC1kZXNhdGl2YWRhIHtcbiAgICAgICAgY29sb3I6IHJnYigxNzAsIDE3MCwgMTcwKSAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICAmOm5vdCgubWQtaW5wdXQtaW52YWxpZCkubWQtaW5wdXQtaGFzLXZhbHVlIGxhYmVsIHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgfVxuXG4gICAgICBsYWJlbCB7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gICAgICAgIHRvcDogLTEzcHg7XG4gICAgICAgIGxlZnQ6IDEycHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCA0cHggMCA0cHggIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHVuc2V0ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZnNlbnNlLWJ0biB7XG4gICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxuXG4gICAgLmZzZW5zZS1saW5rIHtcbiAgICAgIG1hcmdpbi10b3A6IDMycHg7XG5cbiAgICAgIGEge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5mc2Vuc2Utc3VjY2Vzcy1pY29uIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB3aWR0aDogNjRweDtcbiAgICAgIGhlaWdodDogNjRweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxMEI5ODE7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBtYXJnaW46IDAgYXV0byAyNHB4IGF1dG87XG4gICAgICBib3gtc2hhZG93OiAwIDEwcHggMTVweCAtM3B4IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjMpO1xuXG4gICAgICBpIHtcbiAgICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbWQtcHJvZ3Jlc3MtY2lyY3VsYXIuY3VzdG9tLXByb2dyZXNzIHtcbiAgICAgIG1hcmdpbjogMCAxNnB4IDE2cHggMTZweDtcblxuICAgICAgcGF0aCB7XG4gICAgICAgIHN0cm9rZTogJHByaW1hcnktY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIkcHJpbWFyeS1jb2xvcjogcmdiKDEwMyw1OCwxODMpO1xuXG4uZnNlbnNlLXJlc2V0LXBhc3N3b3JkLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtaW4taGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAyNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjNGNEY2O1xuXG4gIC5mc2Vuc2UtY2FyZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IHJnYmEoMCwwLDAsMC4wNSk7XG4gICAgcGFkZGluZzogNjRweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA0ODBweDtcblxuICAgIC5mc2Vuc2UtbG9nby1jb250YWluZXIge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDk5O1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgLmZzZW5zZS1sb2dvIHtcbiAgICAgICAgd2lkdGg6IDE1MHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIGgxIHtcbiAgICAgIG1hcmdpbjogMCAwIDhweCAwO1xuICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGNvbG9yOiAjMTExODI3O1xuICAgIH1cblxuICAgIHAge1xuICAgICAgbWFyZ2luOiAwIDAgMTBweCAwO1xuICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgY29sb3I6ICM2QjcyODA7XG4gICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIH1cblxuICAgIC5tZC1vdXRsaW5lZC1pbnB1dC1jb250YWluZXIge1xuICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgIC5tZC1lcnJvcnMtc3BhY2VyIHtcbiAgICAgICAgbWluLWhlaWdodDogYXV0bztcbiAgICAgIH1cblxuICAgICAgLm1kLWlucHV0W2Rpc2FibGVkXSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTE4LCAxMTgsIDExOCwgMC4zKTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHQtZGFyayhyZ2JhKDIzOSwgMjM5LCAyMzksIDAuMyksIHJnYmEoNTksIDU5LCA1OSwgMC4zKSk7XG4gICAgICB9XG5cbiAgICAgIC5tZC1pbnB1dCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICBtaW4taGVpZ2h0OiA1NnB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgcGFkZGluZzogMCAxNnB4IDAgMTZweDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgIGNvbG9yOiAjOUNBM0FGO1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5tZC1pbnB1dC1pbnZhbGlkIHtcbiAgICAgICAgLm1kLWlucHV0IHtcbiAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCByZ2IoMjIxLCA0NCwgMCkgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBjb2xvcjogcmdiKDIyMSwgNDQsIDApICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5tZC1pbnB1dC12YWxpZCB7XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5tZC1pbnB1dC1mb2N1c2VkIHtcbiAgICAgICAgLm1kLWlucHV0IHtcbiAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkcHJpbWFyeS1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgICAgIHBhZGRpbmc6IDAgMTZweCAwIDE2cHg7XG4gICAgICAgIH1cblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgICAgcGFkZGluZzogMCA0cHggMCA0cHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmxhYmVsLWRlc2F0aXZhZGEge1xuICAgICAgICBjb2xvcjogcmdiKDE3MCwgMTcwLCAxNzApICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgICY6bm90KC5tZC1pbnB1dC1pbnZhbGlkKS5tZC1pbnB1dC1oYXMtdmFsdWUgbGFiZWwge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICB9XG5cbiAgICAgIGxhYmVsIHtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICAgICAgdG9wOiAtMTNweDtcbiAgICAgICAgbGVmdDogMTJweCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwIDRweCAwIDRweCAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogdW5zZXQgIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5yZXNldC1lcnJvcnMge1xuICAgICAgY29sb3I6IHJnYigyMjEsIDQ0LCAwKTtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBtYXJnaW46IDhweCAwIDE2cHggMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRUUyRTI7XG4gICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjRkNBNUE1O1xuXG4gICAgICAuZXJyb3ItbWVzc2FnZS1yZXNldCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuXG4gICAgICAgIHAge1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5mc2Vuc2UtYnRuIHtcbiAgICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB9XG5cbiAgICBtZC1wcm9ncmVzcy1jaXJjdWxhci5jdXN0b20tcHJvZ3Jlc3Mge1xuICAgICAgbWFyZ2luOiAwIDE2cHggMTZweCAxNnB4O1xuXG4gICAgICBwYXRoIHtcbiAgICAgICAgc3Ryb2tlOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG59XG4iLCIkcHJpbWFyeS1jb2xvcjogcmdiKDEwMyw1OCwxODMpO1xuXG4uZnNlbnNlLXNldC1wYXNzd29yZC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIHBhZGRpbmc6IDI0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGM0Y0RjY7XG5cbiAgLmZzZW5zZS1jYXJkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLDAsMCwwLjA1KTtcbiAgICBwYWRkaW5nOiA2NHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDQ4MHB4O1xuXG4gICAgLmZzZW5zZS1sb2dvLWNvbnRhaW5lciB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogOTk7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAuZnNlbnNlLWxvZ28ge1xuICAgICAgICB3aWR0aDogMTUwcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaDEge1xuICAgICAgbWFyZ2luOiAwIDAgOHB4IDA7XG4gICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgY29sb3I6ICMxMTE4Mjc7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICBtYXJnaW46IDAgMCAzMnB4IDA7XG4gICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICBjb2xvcjogIzZCNzI4MDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgfVxuXG4gICAgJi5pbnZhbGlkLXRva2VuLWNhcmQge1xuICAgICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICAgIHBhZGRpbmc6IDQ4cHggMzJweDtcblxuICAgICAgLmVycm9yLWljb24td3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB3aWR0aDogNjRweDtcbiAgICAgICAgaGVpZ2h0OiA2NHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkVFMkUyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvIDI0cHggYXV0bztcblxuICAgICAgICBpIHtcbiAgICAgICAgICBmb250LXNpemU6IDMycHg7XG4gICAgICAgICAgY29sb3I6ICNEQzI2MjY7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICBjb2xvcjogIzExMTgyNztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAucGFzc3dvcmQtaW5wdXQtd3JhcHBlciB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcblxuICAgICAgLnRvZ2dsZS1wYXNzd29yZCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDE2cHg7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIGNvbG9yOiAjOUNBM0FGO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2U7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5tZC1vdXRsaW5lZC1pbnB1dC1jb250YWluZXIge1xuICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgIC5tZC1lcnJvcnMtc3BhY2VyIHtcbiAgICAgICAgbWluLWhlaWdodDogYXV0bztcbiAgICAgIH1cblxuICAgICAgLm1kLWlucHV0W2Rpc2FibGVkXSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTE4LCAxMTgsIDExOCwgMC4zKTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHQtZGFyayhyZ2JhKDIzOSwgMjM5LCAyMzksIDAuMyksIHJnYmEoNTksIDU5LCA1OSwgMC4zKSk7XG4gICAgICB9XG5cbiAgICAgIC5tZC1pbnB1dCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICBtaW4taGVpZ2h0OiA1NnB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgcGFkZGluZzogMCA0OHB4IDAgMTZweDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgIGNvbG9yOiAjOUNBM0FGO1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5tZC1pbnB1dC1pbnZhbGlkIHtcbiAgICAgICAgLm1kLWlucHV0IHtcbiAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCByZ2IoMjIxLCA0NCwgMCkgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgY29sb3I6IHJnYigyMjEsIDQ0LCAwKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYubWQtaW5wdXQtdmFsaWQge1xuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYubWQtaW5wdXQtZm9jdXNlZCB7XG4gICAgICAgIC5tZC1pbnB1dCB7XG4gICAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHByaW1hcnktY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgICBwYWRkaW5nOiAwIDQ4cHggMCAxNnB4O1xuICAgICAgICB9XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgICBwYWRkaW5nOiAwIDRweCAwIDRweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubGFiZWwtZGVzYXRpdmFkYSB7XG4gICAgICAgIGNvbG9yOiByZ2IoMTcwLCAxNzAsIDE3MCkgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgJjpub3QoLm1kLWlucHV0LWludmFsaWQpLm1kLWlucHV0LWhhcy12YWx1ZSBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgbGFiZWwge1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgICAgICB0b3A6IC0xM3B4O1xuICAgICAgICBsZWZ0OiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDAgNHB4IDAgNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB1bnNldCAhaW1wb3J0YW50O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnJlc2V0LWVycm9ycyB7XG4gICAgICBjb2xvcjogcmdiKDIyMSwgNDQsIDApO1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIG1hcmdpbjogMTZweCAwIDhweCAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZFRTJFMjtcbiAgICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNGQ0E1QTU7XG4gICAgfVxuXG4gICAgLmZzZW5zZS1idG4ge1xuICAgICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgIH1cblxuICAgIC5mc2Vuc2UtbG9hZGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgfVxuXG4gIH1cblxufVxuIiwiaHRtbCwgYm9keSB7XG4gIEBpbmNsdWRlIHNpemUoMTAwJSk7XG4gIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJvZHktY29sb3ItYmc7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5kaXNwbGF5LWZsZXggeyBkaXNwbGF5OiBmbGV4OyB9XG5cbi5uby1wYWRkaW5nICB7IEBpbmNsdWRlIHBhZGRpbmcoMCk7IH1cbi5uby1tYXJnaW4gICB7IEBpbmNsdWRlIG1hcmdpbigwKTsgfVxuXG4ucGFkZGluZyB7XG4gICYtc20ge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoOHB4KTtcbiAgICAmX190YiB7IEBpbmNsdWRlIHBhZGRpbmcoOHB4IG51bGwpOyB9XG4gICAgJl9fcmwgeyBAaW5jbHVkZSBwYWRkaW5nKG51bGwgOHB4KTsgfVxuICB9XG4gICYtbWQge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoMTZweCk7XG4gICAgJl9fdGIgeyBAaW5jbHVkZSBwYWRkaW5nKDE2cHggbnVsbCk7IH1cbiAgICAmX19ybCB7IEBpbmNsdWRlIHBhZGRpbmcobnVsbCAxNnB4KTsgfVxuICB9XG4gICYtbGcge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoMzJweCk7XG4gICAgJl9fdGIgeyBAaW5jbHVkZSBwYWRkaW5nKDMycHggbnVsbCk7IH1cbiAgICAmX19ybCB7IEBpbmNsdWRlIHBhZGRpbmcobnVsbCAzMnB4KTsgfVxuICB9XG59XG5cbi5tYXJnaW4ge1xuICAmLXNtIHtcbiAgICBAaW5jbHVkZSBtYXJnaW4oOHB4KTtcbiAgICAmX190YiB7IEBpbmNsdWRlIG1hcmdpbig4cHggbnVsbCk7IH1cbiAgICAmX19ybCB7IEBpbmNsdWRlIG1hcmdpbihudWxsIDhweCk7IH1cbiAgfVxuICAmLW1kIHtcbiAgICBAaW5jbHVkZSBtYXJnaW4oMTZweCk7XG4gICAgJl9fdGIgeyBAaW5jbHVkZSBtYXJnaW4oMTZweCBudWxsKTsgfVxuICAgICZfX3JsIHsgQGluY2x1ZGUgbWFyZ2luKG51bGwgMTZweCk7IH1cbiAgfVxuICAmLWxnIHtcbiAgICBAaW5jbHVkZSBtYXJnaW4oMzJweCk7XG4gICAgJl9fdGIgeyBAaW5jbHVkZSBtYXJnaW4oMzJweCBudWxsKTsgfVxuICAgICZfX3JsIHsgQGluY2x1ZGUgbWFyZ2luKG51bGwgMzJweCk7IH1cbiAgfVxuICAmLWF1dG8ge1xuICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIGF1dG8pO1xuICB9XG59XG5cbi5mbG9hdCB7XG4gICZfX2xlZnQgICB7IGZsb2F0OiBsZWZ0OyB9XG4gICZfX3JpZ2h0ICB7IGZsb2F0OiByaWdodDsgfVxufVxuXG4udGV4dCB7XG4gICZfX2xlZnQgICB7IHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgJl9fY2VudGVyIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICZfX3JpZ2h0ICB7IHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbiAgJl9fbG93ZXJjYXNlICB7IHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7IH1cbiAgJl9fdXBwZXJjYXNlICB7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgJl9fY2FwaXRhbGl6ZSB7IHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOyB9XG5cbiAgJl9fdGhpbiAgICB7IGZvbnQtd2VpZ2h0OiAkdGhpbjsgfVxuICAmX19saWdodCAgIHsgZm9udC13ZWlnaHQ6ICRsaWdodDsgfVxuICAmX19yZWd1bGFyIHsgZm9udC13ZWlnaHQ6ICRyZWd1bGFyOyB9XG4gICZfX21lZGl1bSAgeyBmb250LXdlaWdodDogJG1lZGl1bTsgfVxuICAmX19ib2xkICAgIHsgZm9udC13ZWlnaHQ6ICRib2xkOyB9XG4gICZfX2JsYWNrICAgeyBmb250LXdlaWdodDogJGJsYWNrOyB9XG59XG5cbi5iZyB7XG4gICZfX2xpZ2h0LXByaW1hcnkgICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkYm9keS1jb2xvci1iZzsgIH1cbiAgJl9fbGlnaHQtc2Vjb25kYXJ5ICB7IGJhY2tncm91bmQtY29sb3I6ICRzZWVrZXItY29sb3ItYmctY29udGVudDsgfVxuXG4gICZfX2RhcmstcHJpbWFyeSAgICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyLWNvbG9yLWJnOyAgfVxuICAmX19kYXJrLXNlY29uZGFyeSAgIHsgYmFja2dyb3VuZC1jb2xvcjogJHNlZWtlci1jb2xvci1iZzsgfVxufVxuXG5cbi5yaWJib24ge1xuICBAaW5jbHVkZSBmbGV4LXNocmluaygwKTtcbiAgQGluY2x1ZGUgc2l6ZSgxMDAlICRyaWJib24tc2l6ZS1oZWlnaHQpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmliYm9uLWNvbG9yLWJnO1xufVxuXG4ubWFpbiB7XG4gIEBpbmNsdWRlIGZsZXgtc2hyaW5rKDApO1xuICBAaW5jbHVkZSBtYXJnaW4oLSRyaWJib24tc2l6ZS1oZWlnaHQgbnVsbCBudWxsIG51bGwpO1xufVxuXG4ubG9nbyB7XG4gIG1heC1oZWlnaHQ6IDM2cHg7XG4gIEBpbmNsdWRlIG1hcmdpbihudWxsIDhweCBudWxsIG51bGwpO1xufVxuXG4ubG9naW4ge1xuICB3aWR0aDogNDAwcHg7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBBIG1peGluIGZvciBnZW5lcmF0aW5nIHZlbmRvciBwcmVmaXhlcyBvbiBub24tc3RhbmRhcmRpemVkIHByb3BlcnRpZXMuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByb3BlcnR5XG4vLy8gICBQcm9wZXJ0eSB0byBwcmVmaXhcbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlXG4vLy8gICBWYWx1ZSB0byB1c2Vcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHByZWZpeGVzXG4vLy8gICBQcmVmaXhlcyB0byBkZWZpbmVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItcmFkaXVzLCAxMHB4LCB3ZWJraXQgbXMgc3BlYyk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci13ZWJraXRcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1vemlsbGFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1pY3Jvc29mdFxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itb3BlcmFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXNwZWNcblxuQG1peGluIHByZWZpeGVyKCRwcm9wZXJ0eSwgJHZhbHVlLCAkcHJlZml4ZXMpIHtcbiAgQGVhY2ggJHByZWZpeCBpbiAkcHJlZml4ZXMge1xuICAgIEBpZiAkcHJlZml4ID09IHdlYmtpdCB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itd2Via2l0IHtcbiAgICAgICAgLXdlYmtpdC0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbW96IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICAgICAgLW1vei0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbXMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1pY3Jvc29mdCB7XG4gICAgICAgIC1tcy0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itb3BlcmEge1xuICAgICAgICAtby0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gc3BlYyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itc3BlYyB7XG4gICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgIHtcbiAgICAgIEB3YXJuIFwiVW5yZWNvZ25pemVkIHByZWZpeDogI3skcHJlZml4fVwiO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpIHtcbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgIGZhbHNlICFnbG9iYWw7XG59XG4iLCIvLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcblxuLy8gQ3VzdG9tIHNob3J0aGFuZCBub3RhdGlvbiBmb3IgZmxleGJveFxuQG1peGluIGJveCgkb3JpZW50OiBpbmxpbmUtYXhpcywgJHBhY2s6IHN0YXJ0LCAkYWxpZ246IHN0cmV0Y2gpIHtcbiAgQGluY2x1ZGUgZGlzcGxheS1ib3g7XG4gIEBpbmNsdWRlIGJveC1vcmllbnQoJG9yaWVudCk7XG4gIEBpbmNsdWRlIGJveC1wYWNrKCRwYWNrKTtcbiAgQGluY2x1ZGUgYm94LWFsaWduKCRhbGlnbik7XG59XG5cbkBtaXhpbiBkaXNwbGF5LWJveCB7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBkaXNwbGF5OiAtbW96LWJveDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIElFIDEwXG4gIGRpc3BsYXk6IGJveDtcbn1cblxuQG1peGluIGJveC1vcmllbnQoJG9yaWVudDogaW5saW5lLWF4aXMpIHtcbi8vIGhvcml6b250YWx8dmVydGljYWx8aW5saW5lLWF4aXN8YmxvY2stYXhpc3xpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICRvcmllbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBib3gtcGFjaygkcGFjazogc3RhcnQpIHtcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8anVzdGlmeVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJHBhY2ssIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXBhY2s6ICRwYWNrOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWFsaWduKCRhbGlnbjogc3RyZXRjaCkge1xuLy8gc3RhcnR8ZW5kfGNlbnRlcnxiYXNlbGluZXxzdHJldGNoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsaWduLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1hbGlnbjogJGFsaWduOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWRpcmVjdGlvbigkZGlyZWN0aW9uOiBub3JtYWwpIHtcbi8vIG5vcm1hbHxyZXZlcnNlfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWxpbmVzKCRsaW5lczogc2luZ2xlKSB7XG4vLyBzaW5nbGV8bXVsdGlwbGVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkbGluZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBib3gtb3JkaW5hbC1ncm91cCgkaW50OiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1vcmRlcjogJGludDsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1mbGV4KCR2YWx1ZTogMCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleDogJHZhbHVlOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG4vLyBVbmlmaWVkIGF0dHJpYnV0ZXMgZm9yIDIwMDksIDIwMTEsIGFuZCAyMDEyIGZsYXZvdXJzLlxuXG4vLyAyMDA5IC0gZGlzcGxheSAoYm94IHwgaW5saW5lLWJveClcbi8vIDIwMTEgLSBkaXNwbGF5IChmbGV4Ym94IHwgaW5saW5lLWZsZXhib3gpXG4vLyAyMDEyIC0gZGlzcGxheSAoZmxleCB8IGlubGluZS1mbGV4KVxuQG1peGluIGRpc3BsYXkoJHZhbHVlKSB7XG4vLyBmbGV4IHwgaW5saW5lLWZsZXhcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXhcIiB7XG4gICAgLy8gMjAwOVxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIGRpc3BsYXk6IC1tb3otYm94O1xuICAgIGRpc3BsYXk6IGJveDtcblxuICAgIC8vIDIwMTJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgZGlzcGxheTogLW1vei1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyAyMDExIChJRSAxMClcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImlubGluZS1mbGV4XCIge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1ib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWJveDtcblxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIH0gQGVsc2Uge1xuICAgIGRpc3BsYXk6ICR2YWx1ZTtcbiAgfVxufVxuXG4vLyAyMDA5IC0gYm94LWZsZXggKGludGVnZXIpXG4vLyAyMDExIC0gZmxleCAoZGVjaW1hbCB8IHdpZHRoIGRlY2ltYWwpXG4vLyAyMDEyIC0gZmxleCAoaW50ZWdlciBpbnRlZ2VyIHdpZHRoKVxuQG1peGluIGZsZXgoJHZhbHVlKSB7XG5cbiAgLy8gR3JhYiBmbGV4LWdyb3cgZm9yIG9sZGVyIGJyb3dzZXJzLlxuICAkZmxleC1ncm93OiBudGgoJHZhbHVlLCAxKTtcblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkZmxleC1ncm93LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKSwgMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JpZW50ICggaG9yaXpvbnRhbCB8IHZlcnRpY2FsIHwgaW5saW5lLWF4aXMgfCBibG9jay1heGlzKVxuLy8gICAgICAtIGJveC1kaXJlY3Rpb24gKG5vcm1hbCB8IHJldmVyc2UpXG4vLyAyMDExIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlOiByb3cpIHtcblxuICAvLyBBbHQgdmFsdWVzLlxuICAkdmFsdWUtMjAwOTogJHZhbHVlO1xuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICAkZGlyZWN0aW9uOiBub3JtYWw7XG5cbiAgQGlmICR2YWx1ZSA9PSByb3cge1xuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInJvdy1yZXZlcnNlXCIge1xuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IGNvbHVtbiB7XG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImNvbHVtbi1yZXZlcnNlXCIge1xuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkdmFsdWUtMjAwOSwgd2Via2l0IG1veiBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZGlyZWN0aW9uLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWxpbmVzIChzaW5nbGUgfCBtdWx0aXBsZSlcbi8vIDIwMTEgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWU6IG5vd3JhcCkge1xuICAvLyBBbHQgdmFsdWVzXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBub3dyYXAge1xuICAgICRhbHQtdmFsdWU6IHNpbmdsZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gd3JhcCB7XG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwid3JhcC1yZXZlcnNlXCIge1xuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICB9XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXdyYXAsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxuLy8gMjAxMSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxuLy8gMjAxMiAtIGZsZXgtZmxvdyAoZmxleC1kaXJlY3Rpb24gfHwgZmxleC13cmFwKVxuQG1peGluIGZsZXgtZmxvdygkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1mbG93LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JkaW5hbC1ncm91cCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4LW9yZGVyIChpbnRlZ2VyKVxuLy8gMjAxMiAtIG9yZGVyIChpbnRlZ2VyKVxuQG1peGluIG9yZGVyKCRpbnQ6IDApIHtcbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKG9yZGVyLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1vcmRlcjogJGludDtcbn1cblxuLy8gMjAxMiAtIGZsZXgtZ3JvdyAobnVtYmVyKVxuQG1peGluIGZsZXgtZ3JvdygkbnVtYmVyOiAwKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZ3JvdywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcG9zaXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LXNocmluayAobnVtYmVyKVxuQG1peGluIGZsZXgtc2hyaW5rKCRudW1iZXI6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1zaHJpbmssICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LW5lZ2F0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1iYXNpcyAobnVtYmVyKVxuQG1peGluIGZsZXgtYmFzaXMoJHdpZHRoOiBhdXRvKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtYmFzaXMsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6ICR3aWR0aDtcbn1cblxuLy8gMjAwOSAtIGJveC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDExIC0gZmxleC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDEyIC0ganVzdGlmeS1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kKVxuQG1peGluIGp1c3RpZnktY29udGVudCgkdmFsdWU6IGZsZXgtc3RhcnQpIHtcblxuICAvLyBBbHQgdmFsdWVzLlxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xuICAgICRhbHQtdmFsdWU6IGp1c3RpZnk7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGRpc3RyaWJ1dGU7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoanVzdGlmeS1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtcGFjazogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDExIC0gZmxleC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24taXRlbXMgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1pdGVtcygkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG5cbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZW5kO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1pdGVtcywgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWFsaWduOiAkYWx0LXZhbHVlO1xufVxuXG4vLyAyMDExIC0gZmxleC1pdGVtLWFsaWduIChhdXRvIHwgc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tc2VsZiAoYXV0byB8IGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1zZWxmKCR2YWx1ZTogYXV0bykge1xuXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xuICB9XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1zZWxmLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246ICR2YWx1ZS0yMDExO1xufVxuXG4vLyAyMDExIC0gZmxleC1saW5lLXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSB8IGRpc3RyaWJ1dGUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWNvbnRlbnQoJHZhbHVlOiBzdHJldGNoKSB7XG5cbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAkdmFsdWUtMjAxMToganVzdGlmeTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGRpc3RyaWJ1dGU7XG4gIH1cblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiAkdmFsdWUtMjAxMTtcbn1cbiIsIiAubXktY2hhcnQge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gNHB4KTtcbiAgICAgIGJvcmRlci1zaXppbmc6IGJvcmRlci1ib3g7XG4gfVxuXG4gLmNvbnRhaW5lci1jaGFydCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiB9XG5cbiBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAgICAgLm15LWNoYXJ0IHtcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuIH1cbiIsIi5mLWJveCB7XG4gICAgICB3aWR0aDogMzE3cHg7XG4gICAgICBoZWlnaHQ6IDQzMXB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNEOUQ5RDk7XG4gICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAvLyBib3gtc2hhZG93OiAwIDNweCA3cHggcmdiYSgwLDAsMCwwLjIpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4iLCIuZi1idXR0b24ge1xuICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgcGFkZGluZzogMCAzMnB4O1xuICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjb2xvcjogI2ZhZmFmYTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgYm9yZGVyOiAzcHggc29saWQgJHByaW1hcnktY29sb3I7XG4gICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuXG4gICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3RTVEQUY7XG4gICAgICB9XG4gICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGY2N2NhO1xuICAgICAgfVxufVxuZi1idXR0b24uZi1ibG9jayBidXR0b24ge1xuICAgICAgd2lkdGg6IDEwMCU7XG59XG5cbi5mLWJ1dHRvbltkaXNhYmxlZF0ge1xuICAgICAgY29sb3I6IHJnYmEoMjMwLCAyMzAsIDIzMCwgMC43OSk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE1MSwgMTQwLCAxNjYsIDAuNjcpO1xuICAgICAgYm9yZGVyOiAzcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi5mLWJ1dHRvbi1saWdodCB7XG4gICAgICBjb2xvcjogIzk5OTtcbiAgICAgIGJvcmRlcjogM3B4IHNvbGlkICNEOUQ5RDk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xuICAgICAgfVxufVxuIiwiLmYtaHRtbC1jYXJvdXNlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmYtaHRtbC1jYXJvdXNlbF9faXRlbSB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgZWFzZS1pbi1vdXQ7XG5cbiAgLy8gbyB1bHRpbW8gZWxlbWVudG8gZG8gY29udGV1ZG8gdGV4dHVhbCBuw6NvIHByZWNpc2EgZGUgbWFyZ2luLWJvdHRvbVxuICAqOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLmYtaHRtbC1jYXJvdXNlbF9faXRlbS0taGlkZGVuIHtcbiAgb3BhY2l0eTogMDtcbn1cbiIsIiRwcmltYXJ5LWNvbG9yOiByZ2IoMTAzLDU4LDE4Myk7XG5cbi5tZC1vdXRsaW5lZC1pbnB1dC1jb250YWluZXIge1xuXG4gIHdpZHRoOiAxMDAlO1xuXG4gIC5tZC1lcnJvcnMtc3BhY2VyIHtcbiAgICBtaW4taGVpZ2h0OiBhdXRvO1xuICB9XG5cbiAgLm1kLWlucHV0W2Rpc2FibGVkXSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMTgsIDExOCwgMTE4LCAwLjMpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHQtZGFyayhyZ2JhKDIzOSwgMjM5LCAyMzksIDAuMyksIHJnYmEoNTksIDU5LCA1OSwgMC4zKSk7XG4gIH1cblxuICAubWQtaW5wdXQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRwcmltYXJ5LWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgbWluLWhlaWdodDogNTZweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nOiAwIDE2cHggMCAxNnB4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogIzlDQTNBRjtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG5cbiAgJi5tZC1pbnB1dC1pbnZhbGlkIHtcbiAgICAubWQtaW5wdXQge1xuICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiKDIyMSwgNDQsIDApICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgbGFiZWwge1xuICAgICAgY29sb3I6IHJnYigyMjEsIDQ0LCAwKSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gICYubWQtaW5wdXQtdmFsaWQge1xuICAgIGxhYmVsIHtcbiAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAmLm1kLWlucHV0LWZvY3VzZWQge1xuICAgIC5tZC1pbnB1dCB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAkcHJpbWFyeS1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgcGFkZGluZzogMCAxNnB4IDAgMTZweDtcbiAgICB9XG5cbiAgICBsYWJlbCB7XG4gICAgICBjb2xvcjogJHByaW1hcnktY29sb3IgIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmc6IDAgNHB4IDAgNHB4O1xuICAgIH1cbiAgfVxuXG4gIC5sYWJlbC1kZXNhdGl2YWRhIHtcbiAgICBjb2xvcjogcmdiKDE3MCwgMTcwLCAxNzApICFpbXBvcnRhbnQ7XG4gIH1cblxuICAmOm5vdCgubWQtaW5wdXQtaW52YWxpZCkubWQtaW5wdXQtaGFzLXZhbHVlIGxhYmVsIHtcbiAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gIH1cblxuICBsYWJlbCB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICB0b3A6IC0xM3B4O1xuICAgIGxlZnQ6IDEycHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwIDRweCAwIDRweCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB1bnNldCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cbiIsIi5mLXNlcGFyYXRvciB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgd2lkdGg6IDI3NXB4O1xuICAgICAgaGVpZ2h0OiA0cHg7XG5cbiAgICAgIC5mLXNlcGFyYXRvci1ibHVlLTEge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxNjRweDtcbiAgICAgICAgICAgIGhlaWdodDogMHB4O1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkICM1OUM1RDU7XG4gICAgICB9XG5cbiAgICAgIC5mLXNlcGFyYXRvci1ibHVlLTIge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMTAwcHg7XG4gICAgICAgICAgICB3aWR0aDogMTI4cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDBweDtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDRweCBzb2xpZCAjMzk4QkMyO1xuICAgICAgfVxuXG4gICAgICAuZi1zZXBhcmF0b3ItcHVycGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDIwMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDEyMnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAwcHg7XG4gICAgICAgICAgICBib3JkZXItdG9wOiA0cHggc29saWQgIzZBNDg5QjtcbiAgICAgIH1cbn1cbiIsIi5sb2dpbi1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjNGNEY2O1xuICBwYWRkaW5nOiAyNHB4O1xuXG4gIC8vIGVtIHRlbGFzIG1lbm9yZXMsIHBhcmEgZXZpdGFyIGVzcGHDp28gZW0gYnJhbmNvIGV4Y2Vzc2l2bywgZGltaW51aSBvIHBhZGRpbmcuXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gIH1cblxuICAubG9naW4tY29udGFpbmVyLXBhbmVscyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLDAsMCwwLjA1KTtcbiAgICBtYXgtd2lkdGg6IDExMDBweDtcblxuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLy8gcXVlcmVtb3MgcXVlIG8gcGFpbmVsIGRlIGxvZ2luIHRlbmhhIG5vIG3DoXhpbW8gNzUwcHggZGUgYWx0dXJhLCBwYXJhIHF1ZSBuw6NvIGZpcXVlIG11aXRvIGdyYW5kZSBlbSB0ZWxhcyBncmFuZGVzLlxuICAgIC8vIHBvcsOpbSwgc2UgYSB0ZWxhIGZvciBtZW5vciwgcXVlcmVtb3MgcXVlIG8gcGFpbmVsIGRlIGxvZ2luIG9jdXBlIHRvZGEgYSBhbHR1cmEgZGlzcG9uw612ZWwuXG4gICAgbWF4LWhlaWdodDogNzUwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgLmxvZ2luLWxlZnQtY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICBwYWRkaW5nOiA2NHB4O1xuICAgIGNvbG9yOiAjRkZGRkZGO1xuXG4gICAgLmxvZ28tY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IGF1dG87XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiA5OTtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgIC5sb2dpbi1sb2dvIHtcbiAgICAgICAgd2lkdGg6IDE1MHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5keW5hbWljLXRleHQtY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbi10b3A6IDQycHg7XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgICAvLyBib3JkZXIgYm94IHByYSB0b2RvcywgZXZpdGEgcHJvYmxlbWFzIGRlIG92ZXJmbG93IGUgcGFkZGluZy9tYXJnaW4uXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgICAqIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIH1cblxuICAgICAgaW1nIHtcbiAgICAgICAgLy8gbWF4LXdpZHRoOiA0MjBweDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtYXgtaGVpZ2h0OiAyMzBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMCAwIDI1cHggMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI0ZGRkZGRjtcblxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgICAgIC8vIHRlbnRhIGVucXVhZHJhciBhIGltYWdlbSBubyB0b3BvLCBtYXMgc2UgbsOjbyBmb3IgcG9zc8OtdmVsLCBjb3J0YSBvIHJlc3RhbnRlIGRhIGltYWdlbS5cbiAgICAgICAgLy8gbyBjb250ZXVkbyBob3Jpem9udGFsIMOpIHByZXNlcnZhZG8sIG1hcyBvIGNvbnRldWRvIHZlcnRpY2FsIMOpIGNvcnRhZG8uXG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICBvYmplY3QtcG9zaXRpb246IHRvcDtcbiAgICAgIH1cblxuICAgICAgaDEge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgICB9XG5cbiAgICAgIGgyIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmb250LXNpemU6IDMycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgICAgfVxuXG4gICAgICBwIHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBjb2xvcjogI0U1RTdFQjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICAgICAgbWF4LXdpZHRoOiAzNjBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubG9naW4tcmlnaHQtY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiA2NHB4O1xuXG4gICAgLy8gZW0gdGVsYXMgbWVub3Jlcywgb25kZSBvIHBhaW5lbCBkYSBlc3F1ZXJkYSBuw6NvIMOpIHZpc8OtdmVsLCB1c2EgdW0gcGFkZGluZyBtZW5vci5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIHBhZGRpbmc6IDMycHg7XG4gICAgfVxuXG4gICAgLmxvZ28tY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogOTk7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAubG9naW4tbG9nbyB7XG4gICAgICAgIHdpZHRoOiAxNTBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubG9naW4tZm9ybS1jb250YWluZXIge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDM4MHB4O1xuXG4gICAgICBoMiB7XG4gICAgICAgIG1hcmdpbjogMCAwIDhweCAwO1xuICAgICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGNvbG9yOiAjMTExODI3O1xuICAgICAgfVxuXG4gICAgICBwIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMjBweCAwO1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGNvbG9yOiAjMTExODI3O1xuICAgICAgfVxuXG5cbiAgICAgIC5sb2dpbi1mYWlsZWQtZW1haWwge1xuICAgICAgICBjb2xvcjogI2IzMjYxZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcblxuICAgICAgICBtZC1pY29uIHtcbiAgICAgICAgICBjb2xvcjogI2IzMjYxZTtcbiAgICAgICAgICBmb250LXNpemU6IDIxcHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmxvZ2luLXNlcnZlci1lcnJvciB7XG4gICAgICAgIGNvbG9yOiAjYjMyNjFlO1xuICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcblxuICAgICAgICBtZC1pY29uIHtcbiAgICAgICAgICBjb2xvcjogI2IzMjYxZTtcbiAgICAgICAgICBmb250LXNpemU6IDIxcHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmxvZ2luLWlucHV0cy1jb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgbWQtaW5wdXQtY29udGFpbmVyIGxhYmVsOm5vdCgubWQtY29udGFpbmVyLWlnbm9yZSkubWQtcmVxdWlyZWQ6OmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG1kLXByb2dyZXNzLWNpcmN1bGFyLmN1c3RvbS1wcm9ncmVzcyB7XG4gICAgICAgIG1hcmdpbjogMCAxNnB4IDE2cHggMTZweDtcblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICBzdHJva2U6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5sb2dpbi1lbXB0eS1lbWFpbC1tZXNzYWdlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgICAgIGxlZnQ6IDEycHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRUUyRTI7XG4gICAgICAgIGNvbG9yOiAjREMyNjI2O1xuICAgICAgICBwYWRkaW5nOiA2cHggMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNGQ0E1QTU7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggcmdiYSgwLDAsMCwwLjA1KTtcblxuICAgICAgICBtZC1pY29uIHtcbiAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgbWluLXdpZHRoOiAxNnB4O1xuICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICBjb2xvcjogI0RDMjYyNjtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubG9naW4tY29udGludWUtYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIH1cblxuICAgICAgLmxvZ2luLWVtYWlsLXdyYXBwZXItY29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBtZC1pbnB1dC1jb250YWluZXIge1xuICAgICAgICAgIG1hcmdpbjogMTBweCAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5sb2dpbi1hcnJvdy1idXR0b24ge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogLTQ0cHg7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgfVxuXG4gICAgICAubG9naW4tZW1haWwtaW5wdXQtcmVhZG9ubHkge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIG1kLWlucHV0LWNvbnRhaW5lciBsYWJlbDpub3QoLm1kLWNvbnRhaW5lci1pZ25vcmUpLm1kLXJlcXVpcmVkOjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBbZGlzYWJsZWRdIG1kLWlucHV0LWNvbnRhaW5lciAubWQtaW5wdXQge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDExOCwgMTE4LCAxMTgsIDAuMyk7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0LWRhcmsocmdiYSgyMzksIDIzOSwgMjM5LCAwLjMpLCByZ2JhKDU5LCA1OSwgNTksIDAuMykpO1xuICAgICAgfVxuXG4gICAgICBtZC1pbnB1dC1jb250YWluZXIgLm1kLWlucHV0W2Rpc2FibGVkXSB7XG4gICAgICAgIGNvbG9yOiByZ2IoMTcwLCAxNzAsIDE3MCk7XG4gICAgICB9XG5cbiAgICAgIGYtaW5wdXQgbGFiZWwge1xuICAgICAgICBjb2xvcjogcmdiKDE3MCwgMTcwLCAxNzApO1xuICAgICAgfVxuXG4gICAgICAubG9naW4tcGFzc3dvcmQtaW5wdXQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIGYtaW5wdXQge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgbWQtaW5wdXQtY29udGFpbmVyIGxhYmVsOm5vdCgubWQtY29udGFpbmVyLWlnbm9yZSkubWQtcmVxdWlyZWQ6OmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5sb2dpbi1lbnRlci1idXR0b24ge1xuICAgICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmxvZ2luLWZvcmdvdC1wYXNzd29yZCB7XG4gICAgICBtYXJnaW4tdG9wOiAzMnB4O1xuXG4gICAgICBhIHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG59XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */

/*# sourceMappingURL=../maps/styles/app-bc229acc6a.css.map */
