/*!*****************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/_variables.scss ***!
  \*****************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Import all common theme variables*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/deprecated.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2024 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totara.com] for more information.*/
/**/
/* @author Simon Chester <simon.chester@totara.com>*/
/* @module tui*/
/* stylelint-disable tui/no-deprecated-vars */
/* Deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/*!**************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_sizes.scss ***!
  \**************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/*!*******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_typography.scss ***!
  \*******************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author Kevin Hottinger <kevin.hottinger@totara.com>*/
/* @author Simon Chester <simon.chester@totara.com>*/
/* @module tui*/
/**
 * Define font style variables
 *
 * @param {string} $name - font variant name (e.g. h1 or body-sm)
 * @param {number} $size - font size in unitless rem
 * @param {number} $line-height - line height in unitless rem
 * @param {number} $weight -- font weight
 * @param {number} $family -- font family
 */
/**
 * Use font style variables
 *
 * @param {string} $name - font variant name (e.g. h1 or body-sm)
 * @param {number} $weight -- font weight. set to null to not add
 * @param {number} $family -- font family. set to null to not add
 */
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_spacing.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Outside-in spacing: Stack*/
/* Stacks provide spacing between their children.*/
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_borders.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Dave Wallace <dave.wallace@totaralearning.com>*/
/* @module tuickage   tui*/
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_buttons.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tui*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_colors.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Arrows*/
/*!*****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/arrow.scss ***!
  \*****************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Forms*/
/*!*****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/forms.scss ***!
  \*****************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tui*/
/* Avatar*/
/*!******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/avatar.scss ***!
  \******************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Drop down*/
/*!********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/dropdown.scss ***!
  \********************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Data table*/
/*!*********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/datatable.scss ***!
  \*********************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Tabs*/
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/tabs.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Card*/
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/card.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Charts*/
/*!******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/charts.scss ***!
  \******************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Filters*/
/*!*******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/filters.scss ***!
  \*******************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Tags*/
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/tags.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Tags*/
/*!***********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/progressbar.scss ***!
  \***********************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* collapsible*/
/*!***********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/collapsible.scss ***!
  \***********************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* progress tracker*/
/*!***************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/progresstracker.scss ***!
  \***************************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Side panel navigation*/
/*!**************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/side_panel_nav.scss ***!
  \**************************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Toggle buttons*/
/*!******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/toggle.scss ***!
  \******************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Notification toast*/
/*!*****************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/notificationtoast.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_shadows.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/*!***********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_side_panel_nav.scss ***!
  \***********************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/*!*****************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_progress_tracker_nav.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2021 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Dave Wallace <dave.wallace@totaralearning.com>*/
/* @module tuickage   tui*/
/*!**************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_range.scss ***!
  \**************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2022 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Rodney Cruden-Powell <rodney.cruden-powell@totaralearning.com>*/
/* @module tuickage   tui*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_layout.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Simon Chester <simon.chester@totaralearning.com>*/
/* @module tuickage   tui*/
/* Sidebar layout that is responsive based on the size of its container, rather*/
/* than the viewport.*/
/*!********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_breakpoints.scss ***!
  \********************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Media queries breakpoints*/
/* Matches @screen-sm-min*/
/* Matches @screen-md-min*/
/* Matches @screen-lg-min*/
/*!*******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_animations.scss ***!
  \*******************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author Simon Chester <simon.chester@totaralearning.com>*/
/* @module tui*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_mixins.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author Simon Chester <simon.chester@totaralearning.com>*/
/* @module tui*/
/**
 * For adding a fixed sized header image to a card, including optional margin on the outer edges.
 *
 * @deprecated since Totara 19.0
 */
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_modals.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_embeds.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2021 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Simon Chester <simon.chester@totaralearning.com>*/
/* @module tuickage   tui*/
/*!**************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_media.scss ***!
  \**************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2022 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Simon Chester <simon.chester@totaralearning.com>*/
/* @module    tui*/
/* Pick a width % value between small_frac and large_frac equivalent to where*/
/* our available width lies between small_anchor and large_anchor, clamped to*/
/* stay in that range.*/
/* This is overly complicated due to limitations of CSS / calc, but is equivalent to*/
/* width = available_width * lerp(small_frac, large_frac, clamp01(inverse_lerp(small_anchor, large_anchor, available_width)))*/
/* @private INTERNAL FUNCTION, DO NOT USE*/
/*!**************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_forms.scss ***!
  \**************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* This contains the common variable set for form elements,*/
/* allowing form elements to be consistently styled.*/
/* loosely based on a modular scale of (2 * (1.5 ^ n))*/
/* Selectors for form inputs (and similar elements) that should have sizes applied to them.*/
/* If modifying this list in a theme, do it via append() rather than replacing*/
/* the entire list.*/
/* Selectors for inputs that are *replaced elements*.*/
/* The behavior of width: auto differs for replaced elements, so these are set*/
/* to width: 100% to get the "grow to container" behavior.*/
/* https://developer.mozilla.org/en-US/docs/Web/CSS/Replaced_element*/
/* However, this causes an issue in certain contexts - namely if the container*/
/* has a margin. This list exists to enable workarounds using flex at the site*/
/* of use.*/
/* If modifying this list in a theme, do it via append() rather than replacing*/
/* the entire list.*/
/* Don't apply the default input size if the element is within one of these*/
/* selectors.*/
/* (if it's not within a form, it won't be applied either)*/
/* Calculate character-based sizing for inputs.*/
/* Generate sizing class for size*/
/* Default input sizing*/
/* Generate sizing classes for predefined sizes*/
/* Vertical padding of form elements.*/
/* Calculate the remaining available space to meet the target height.*/
/* Must be on a single line otherwise it breaks (for some reason!) so must be ignored by prettier.*/
/* prettier-ignore*/
/* prettier-ignore*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_toggle.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2024 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totara.com] for more information.*/
/**/
/* @author Kevin Hottinger <kevin.hottinger@totara.com>*/
/* @module package tui*/
/* Vertical padding of toggle switch form elements.*/
/* Calculate the remaining available space to meet the target height.*/
/* Must be on a single line otherwise it breaks (for some reason!) so must be ignored by prettier.*/
/* prettier-ignore*/
/*!*******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_separators.scss ***!
  \*******************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2021 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tui*/
/*!*************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_tags.scss ***!
  \*************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_zindex.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Simon Chester <simon.chester@totaralearning.com>*/
/* @module tuickage   tui*/
/*!*****************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/_variables.scss ***!
  \*****************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Import all common theme variables*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/deprecated.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2024 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totara.com] for more information.*/
/**/
/* @author Simon Chester <simon.chester@totara.com>*/
/* @module tui*/
/* stylelint-disable tui/no-deprecated-vars */
/* Deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/* @deprecated since Totara 19.0*/
/*!**************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_sizes.scss ***!
  \**************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/*!*******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_typography.scss ***!
  \*******************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author Kevin Hottinger <kevin.hottinger@totara.com>*/
/* @author Simon Chester <simon.chester@totara.com>*/
/* @module tui*/
/**
 * Define font style variables
 *
 * @param {string} $name - font variant name (e.g. h1 or body-sm)
 * @param {number} $size - font size in unitless rem
 * @param {number} $line-height - line height in unitless rem
 * @param {number} $weight -- font weight
 * @param {number} $family -- font family
 */
/**
 * Use font style variables
 *
 * @param {string} $name - font variant name (e.g. h1 or body-sm)
 * @param {number} $weight -- font weight. set to null to not add
 * @param {number} $family -- font family. set to null to not add
 */
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_spacing.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Outside-in spacing: Stack*/
/* Stacks provide spacing between their children.*/
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_borders.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Dave Wallace <dave.wallace@totaralearning.com>*/
/* @module tuickage   tui*/
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_buttons.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tui*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_colors.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Arrows*/
/*!*****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/arrow.scss ***!
  \*****************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Forms*/
/*!*****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/forms.scss ***!
  \*****************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tui*/
/* Avatar*/
/*!******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/avatar.scss ***!
  \******************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Drop down*/
/*!********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/dropdown.scss ***!
  \********************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Data table*/
/*!*********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/datatable.scss ***!
  \*********************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Tabs*/
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/tabs.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Card*/
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/card.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Charts*/
/*!******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/charts.scss ***!
  \******************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Filters*/
/*!*******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/filters.scss ***!
  \*******************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Tags*/
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/tags.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Tags*/
/*!***********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/progressbar.scss ***!
  \***********************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* collapsible*/
/*!***********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/collapsible.scss ***!
  \***********************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* progress tracker*/
/*!***************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/progresstracker.scss ***!
  \***************************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Side panel navigation*/
/*!**************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/side_panel_nav.scss ***!
  \**************************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Toggle buttons*/
/*!******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/toggle.scss ***!
  \******************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Notification toast*/
/*!*****************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/colors/notificationtoast.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_shadows.scss ***!
  \****************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/*!***********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_side_panel_nav.scss ***!
  \***********************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/*!*****************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_progress_tracker_nav.scss ***!
  \*****************************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2021 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Dave Wallace <dave.wallace@totaralearning.com>*/
/* @module tuickage   tui*/
/*!**************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_range.scss ***!
  \**************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2022 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Rodney Cruden-Powell <rodney.cruden-powell@totaralearning.com>*/
/* @module tuickage   tui*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_layout.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Simon Chester <simon.chester@totaralearning.com>*/
/* @module tuickage   tui*/
/* Sidebar layout that is responsive based on the size of its container, rather*/
/* than the viewport.*/
/*!********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_breakpoints.scss ***!
  \********************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* Media queries breakpoints*/
/* Matches @screen-sm-min*/
/* Matches @screen-md-min*/
/* Matches @screen-lg-min*/
/*!*******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_animations.scss ***!
  \*******************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author Simon Chester <simon.chester@totaralearning.com>*/
/* @module tui*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_mixins.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author Simon Chester <simon.chester@totaralearning.com>*/
/* @module tui*/
/**
 * For adding a fixed sized header image to a card, including optional margin on the outer edges.
 *
 * @deprecated since Totara 19.0
 */
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_modals.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_embeds.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2021 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Simon Chester <simon.chester@totaralearning.com>*/
/* @module tuickage   tui*/
/*!**************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_media.scss ***!
  \**************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2022 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Simon Chester <simon.chester@totaralearning.com>*/
/* @module    tui*/
/* Pick a width % value between small_frac and large_frac equivalent to where*/
/* our available width lies between small_anchor and large_anchor, clamped to*/
/* stay in that range.*/
/* This is overly complicated due to limitations of CSS / calc, but is equivalent to*/
/* width = available_width * lerp(small_frac, large_frac, clamp01(inverse_lerp(small_anchor, large_anchor, available_width)))*/
/* @private INTERNAL FUNCTION, DO NOT USE*/
/*!**************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_forms.scss ***!
  \**************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* This contains the common variable set for form elements,*/
/* allowing form elements to be consistently styled.*/
/* loosely based on a modular scale of (2 * (1.5 ^ n))*/
/* Selectors for form inputs (and similar elements) that should have sizes applied to them.*/
/* If modifying this list in a theme, do it via append() rather than replacing*/
/* the entire list.*/
/* Selectors for inputs that are *replaced elements*.*/
/* The behavior of width: auto differs for replaced elements, so these are set*/
/* to width: 100% to get the "grow to container" behavior.*/
/* https://developer.mozilla.org/en-US/docs/Web/CSS/Replaced_element*/
/* However, this causes an issue in certain contexts - namely if the container*/
/* has a margin. This list exists to enable workarounds using flex at the site*/
/* of use.*/
/* If modifying this list in a theme, do it via append() rather than replacing*/
/* the entire list.*/
/* Don't apply the default input size if the element is within one of these*/
/* selectors.*/
/* (if it's not within a form, it won't be applied either)*/
/* Calculate character-based sizing for inputs.*/
/* Generate sizing class for size*/
/* Default input sizing*/
/* Generate sizing classes for predefined sizes*/
/* Vertical padding of form elements.*/
/* Calculate the remaining available space to meet the target height.*/
/* Must be on a single line otherwise it breaks (for some reason!) so must be ignored by prettier.*/
/* prettier-ignore*/
/* prettier-ignore*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_toggle.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2024 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totara.com] for more information.*/
/**/
/* @author Kevin Hottinger <kevin.hottinger@totara.com>*/
/* @module package tui*/
/* Vertical padding of toggle switch form elements.*/
/* Calculate the remaining available space to meet the target height.*/
/* Must be on a single line otherwise it breaks (for some reason!) so must be ignored by prettier.*/
/* prettier-ignore*/
/*!*******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_separators.scss ***!
  \*******************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2021 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tui*/
/*!*************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_tags.scss ***!
  \*************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/variables/tui_zindex.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Simon Chester <simon.chester@totaralearning.com>*/
/* @module tuickage   tui*/
/*!***************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/theme_ventura/src/global_styles/_variables.scss ***!
  \***************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* This variable file includes special comments with the syntax `theme:var` and*/
/* `theme:derive`.*/
/**/
/* `theme:var` comments tell the build system that this is a configurable*/
/* variable and causes information about it to be exported. This is neccesary*/
/* for it to show up in the theme panel.*/
/**/
/* `theme:derive` comments add information to the entry for a theme:var variable*/
/* telling the theme panel that it is derived from another variable.*/
/* This informatation is used to generate a new value for the variable if the*/
/* value of any variable it is derived from has changed.*/
/*!************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/theme_esor/src/global_styles/_variables.scss ***!
  \************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author    Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tuickage   tui*/
/* This variable file includes special comments with the syntax `theme:var` and*/
/* `theme:derive`.*/
/**/
/* `theme:var` comments tell the build system that this is a configurable*/
/* variable and causes information about it to be exported. This is neccesary*/
/* for it to show up in the theme panel.*/
/**/
/* `theme:derive` comments add information to the entry for a theme:var variable*/
/* telling the theme panel that it is derived from another variable.*/
/* This informatation is used to generate a new value for the variable if the*/
/* value of any variable it is derived from has changed.*/
:root {
  --grid-gutter: var(--gap-5);
  --font-size-1: calc(var(--font-size-base) / 16 * 1);
  --font-size-2: calc(var(--font-size-base) / 16 * 2);
  --font-size-4: calc(var(--font-size-base) / 16 * 4);
  --font-size-8: calc(var(--font-size-base) / 16 * 8);
  --font-size-10: calc(var(--font-size-base) / 16 * 10);
  --font-size-11: calc(var(--font-size-base) / 16 * 11);
  --font-size-12: calc(var(--font-size-base) / 16 * 12);
  --font-size-13: calc(var(--font-size-base) / 16 * 13);
  --font-size-14: calc(var(--font-size-base) / 16 * 14);
  --font-size-15: calc(var(--font-size-base) / 16 * 15);
  --font-size-16: calc(var(--font-size-base) / 16 * 16);
  --font-size-18: calc(var(--font-size-base) / 16 * 18);
  --font-size-20: calc(var(--font-size-base) / 16 * 20);
  --font-size-22: calc(var(--font-size-base) / 16 * 22);
  --font-size-24: calc(var(--font-size-base) / 16 * 24);
  --font-size-30: calc(var(--font-size-base) / 16 * 30);
  --font-size-32: calc(var(--font-size-base) / 16 * 32);
  --font-size-40: calc(var(--font-size-base) / 16 * 40);
  --font-size-48: calc(var(--font-size-base) / 16 * 48);
  --font-size-50: calc(var(--font-size-base) / 16 * 50);
  --font-body-large-line-height: 1.33;
  --font-body-small-line-height: 1.154;
  --font-body-x-small-line-height: 1.25;
  --font-body-xx-small-line-height: 1.1;
  --font-heading-large-line-height: 1.167;
  --font-heading-line-height: 1.333;
  --font-heading-small-line-height: 1.333;
  --font-heading-x-small-line-height: 1.333;
  --font-body-small-size: calc(var(--font-size-base) / 16 * 13);
  --font-body-x-small-size: calc(var(--font-size-base) / 16 * 12);
  --font-body-xx-small-size: calc(var(--font-size-base) / 16 * 11);
  --font-heading-large-size: calc(var(--font-size-base) / 16 * 50);
  --font-heading-size: calc(var(--font-size-base) / 16 * 30);
  --font-heading-small-size: calc(var(--font-size-base) / 16 * 20);
  --font-heading-x-small-size: calc(var(--font-size-base) / 16 * 16);
  --btn-sm-min-height: 1.875rem;
  --btn-min-height: 2.25rem;
  --btn-xs-min-height: 1.25rem;
  --btn-min-width: 72px;
  --btn-bg-color-active: var(--color-neutral-1);
  --btn-bg-color-hover: var(--color-neutral-3);
  --btn-border-color: var(--btn-accent-color);
  --btn-border-color-active: var(--btn-accent-color-active);
  --btn-border-color-disabled: var(--btn-accent-color-disabled);
  --btn-border-color-hover: var(--btn-accent-color-hover);
  --btn-loader-color-disabled: var(--color-neutral-6);
  --btn-text-color-active: var(--btn-accent-color-active);
  --btn-text-color-disabled: var(--btn-accent-color-disabled);
  --btn-text-color-hover: var(--btn-accent-color-hover);
  --btn-prim-accent-color: var(--color-state);
  --btn-prim-accent-color-active: var(--color-state-active);
  --btn-prim-accent-color-hover: var(--color-state-hover);
  --btn-prim-accent-color-disabled: var(--color-state-disabled);
  --btn-prim-bg-color: var(--btn-prim-accent-color);
  --btn-prim-bg-color-active: var(--btn-prim-accent-color-active);
  --btn-prim-bg-color-disabled: var(--btn-prim-accent-color-disabled);
  --btn-prim-bg-color-hover: var(--btn-prim-accent-color-hover);
  --btn-prim-border-color: var(--btn-prim-accent-color);
  --btn-prim-border-color-active: var(--btn-prim-accent-color-active);
  --btn-prim-border-color-disabled: var(--btn-prim-accent-color-disabled);
  --btn-prim-border-color-hover: var(--btn-prim-accent-color-hover);
  --btn-prim-loader-color-disabled: var(--color-neutral-7);
  --btn-prim-text-color: var(--color-neutral-1);
  --btn-prim-text-color-active: var(--color-neutral-1);
  --btn-prim-text-color-disabled: var(--color-neutral-3);
  --btn-prim-text-color-hover: var(--color-neutral-1);
  --btn-alert-bg-color: var(--color-prompt-alert);
  --btn-alert-bg-color-active: var(--color-prompt-alert);
  --btn-alert-bg-color-disabled: var(--color-neutral-3);
  --btn-alert-bg-color-hover: var(--color-prompt-alert);
  --btn-alert-border-color: var(--color-prompt-alert);
  --btn-alert-border-color-active: var(--color-prompt-alert);
  --btn-alert-border-color-disabled: var(--color-state-disabled);
  --btn-alert-border-color-hover: var(--color-prompt-alert);
  --btn-alert-text-color: var(--color-neutral-1);
  --btn-alert-text-color-active: var(--color-neutral-1);
  --btn-alert-text-color-disabled: var(--color-state-disabled);
  --btn-alert-text-color-hover: var(--color-neutral-1);
  --btn-toolbar-bg-color: transparent;
  --btn-toolbar-bg-color-hover: var(--color-neutral-4);
  --btn-toolbar-bg-color-focus: var(--color-neutral-4);
  --btn-toolbar-bg-color-selected: var(--color-state-active);
  --btn-toolbar-text-color: var(--color-neutral-6);
  --btn-toolbar-text-color-selected: var(--color-neutral-1);
}
:root {
  --tui-card-default-width: 15.75rem;
  --tui-card-sm-width: 11.75rem;
}
:root {
  --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    "Helvetica Neue", Arial, sans-serif;
  --font-family-monospace: Menlo, Monaco, Consolas, "Liberation Mono",
    "Courier New", monospace;
  --font-size-base: 1rem;
  --line-height-base: 1rem;
  --icon-size-base: 1rem;
  --label-weight: 501;
  --font-family-body: var(--font-family);
  --font-body-xl-size: calc(var(--font-size-base) * 1.25);
  --font-body-xl-line-height: calc(var(--line-height-base) * 1.75);
  --font-body-xl-weight: 400;
  --font-body-xl-family: var(--font-family-body);
  --font-body-lg-size: calc(var(--font-size-base) * 1);
  --font-body-lg-line-height: calc(var(--line-height-base) * 1.5);
  --font-body-lg-weight: 400;
  --font-body-lg-family: var(--font-family-body);
  --font-body-size: calc(var(--font-size-base) * 0.875);
  --font-body-line-height: calc(var(--line-height-base) * 1.25);
  --font-body-weight: 400;
  --font-body-family: var(--font-family-body);
  --font-body-sm-size: calc(var(--font-size-base) * 0.75);
  --font-body-sm-line-height: calc(var(--line-height-base) * 1.125);
  --font-body-sm-weight: 400;
  --font-body-sm-family: var(--font-family-body);
  --font-body-xs-size: calc(var(--font-size-base) * 0.625);
  --font-body-xs-line-height: calc(var(--line-height-base) * 1);
  --font-body-xs-weight: 400;
  --font-body-xs-family: var(--font-family-body);
  --font-family-heading: var(--font-family);
  --font-h1-size: calc(var(--font-size-base) * 2);
  --font-h1-line-height: calc(var(--line-height-base) * 2.5);
  --font-h1-weight: 600;
  --font-h1-family: var(--font-family-heading);
  --font-h2-size: calc(var(--font-size-base) * 1.5);
  --font-h2-line-height: calc(var(--line-height-base) * 2);
  --font-h2-weight: 600;
  --font-h2-family: var(--font-family-heading);
  --font-h3-size: calc(var(--font-size-base) * 1.25);
  --font-h3-line-height: calc(var(--line-height-base) * 1.75);
  --font-h3-weight: 600;
  --font-h3-family: var(--font-family-heading);
  --font-h4-size: calc(var(--font-size-base) * 1);
  --font-h4-line-height: calc(var(--line-height-base) * 1.5);
  --font-h4-weight: 600;
  --font-h4-family: var(--font-family-heading);
  --font-h5-size: calc(var(--font-size-base) * 0.875);
  --font-h5-line-height: calc(var(--line-height-base) * 1.25);
  --font-h5-weight: 600;
  --font-h5-family: var(--font-family-heading);
  --font-h6-size: calc(var(--font-size-base) * 0.75);
  --font-h6-line-height: calc(var(--line-height-base) * 1);
  --font-h6-weight: 501;
  --font-h6-family: var(--font-family-heading);
  --font-family-display: var(--font-family);
  --font-display-lg-size: calc(var(--font-size-base) * 3);
  --font-display-lg-line-height: calc(var(--line-height-base) * 3.5);
  --font-display-lg-weight: 400;
  --font-display-lg-family: var(--font-family-display);
  --font-display-md-size: calc(var(--font-size-base) * 2.5);
  --font-display-md-line-height: calc(var(--line-height-base) * 3);
  --font-display-md-weight: 400;
  --font-display-md-family: var(--font-family-display);
  --font-display-sm-size: calc(var(--font-size-base) * 2);
  --font-display-sm-line-height: calc(var(--line-height-base) * 2.5);
  --font-display-sm-weight: 400;
  --font-display-sm-family: var(--font-family-display);
  --font-display-xs-size: calc(var(--font-size-base) * 1.5);
  --font-display-xs-line-height: calc(var(--line-height-base) * 2);
  --font-display-xs-weight: 400;
  --font-display-xs-family: var(--font-family-display);
}
:root {
  --gap-base: 0.25rem;
  --gap-1: calc(var(--gap-base) * 1);
  --gap-2: calc(var(--gap-base) * 2);
  --gap-3: calc(var(--gap-base) * 3);
  --gap-4: calc(var(--gap-base) * 4);
  --gap-5: calc(var(--gap-base) * 5);
  --gap-6: calc(var(--gap-base) * 6);
  --gap-7: calc(var(--gap-base) * 7);
  --gap-8: calc(var(--gap-base) * 8);
  --gap-9: calc(var(--gap-base) * 9);
  --gap-10: calc(var(--gap-base) * 10);
  --gap-11: calc(var(--gap-base) * 11);
  --gap-12: calc(var(--gap-base) * 12);
  --gap-page-columns: var(--gap-8);
  --gap-card-grid: var(--gap-4);
  --grid-gutter-vertical: 1.25rem;
  --grid-gutter-horizontal: 1.25rem;
  --grid-maxunits: 12;
  --paragraph-gap: 1rem;
}
:root {
  --border-width-thin: 1px;
  --border-width-normal: 2px;
  --border-width-thick: 3px;
  --border-radius-curved: 12px;
  --border-radius-normal: 6px;
  --border-radius-small: 4px;
  --card-border-radius: var(--border-radius-normal);
  --dropdown-border-radius: var(--border-radius-normal);
  --focus-outline-offset: 1px;
}
:root {
  --btn-shadow: none;
  --btn-shadow-focus: none;
  --btn-shadow-hover: var(--shadow-2);
  --btn-shadow-active: var(--shadow-3);
  --btn-font-size: var(--font-body-size);
  --btn-line-height: var(--font-body-line-height);
  --btn-border-width: 1px;
  --btn-padding-h: var(--gap-3);
  --btn-padding-v: var(--gap-2);
  --btn-radius: 4px;
  --btn-sm-font-size: var(--font-body-sm-size);
  --btn-sm-line-height: var(--font-body-sm-line-height);
  --btn-sm-padding-h: var(--gap-2);
  --btn-sm-padding-v: var(--gap-1);
  --btn-sm-radius: 4px;
  --btn-xs-font-size: var(--font-body-sm-size);
  --btn-xs-line-height: var(--font-body-sm-line-height);
  --btn-xs-padding-h: var(--gap-1);
  --btn-xs-padding-v: 0px;
  --btn-xs-radius: 4px;
}
:root {
  --color-primary: #3a45ac;
  --color-secondary: #007ab8;
  --color-tertiary: #1ea4a9;
  --color-state: #3982ac;
  --color-state-hover: #265773;
  --color-state-focus: #265773;
  --color-state-active: #193a4c;
  --color-state-highlight: #f6f9d7;
  --color-state-highlight-neutral: var(--color-neutral-3);
  --color-state-disabled: var(--color-neutral-5);
  --color-prompt-info: #007ab8;
  --color-prompt-info-bg: #daf3fe;
  --color-prompt-alert: #cc2428;
  --color-prompt-alert-bg: #fee6e6;
  --color-prompt-warning: #b2611f;
  --color-prompt-warning-bg: #f1e2d7;
  --color-prompt-success: #4b7e2b;
  --color-prompt-success-bg: #d8eacd;
  --color-neutral-1: #fff;
  --color-neutral-2: #fafafa;
  --color-neutral-3: #f7f7f7;
  --color-neutral-4: #e6e4e4;
  --color-neutral-5: #c7c7c7;
  --color-neutral-6: #767676;
  --color-neutral-7: #262626;
  --color-chart-background-1: #007ab8;
  --color-chart-transparent-1: rgba(0, 122, 184, 0.38);
  --color-chart-background-2: #da7c2f;
  --color-chart-transparent-2: rgba(218, 124, 47, 0.38);
  --color-chart-background-3: #bf6c78;
  --color-chart-transparent-3: rgba(191, 108, 120, 0.38);
  --color-chart-background-4: #dac725;
  --color-chart-transparent-4: rgba(218, 199, 37, 0.38);
  --color-chart-background-5: #5d5d5d;
  --color-chart-transparent-5: rgba(93, 93, 93, 0.38);
  --color-chart-background-6: #98aada;
  --color-chart-transparent-6: rgba(152, 170, 218, 0.38);
  --color-chart-background-7: #23c1a0;
  --color-chart-transparent-7: rgba(35, 193, 160, 0.38);
  --color-background: var(--color-neutral-1);
  --color-border: var(--color-neutral-5);
  --color-text: var(--color-neutral-7);
  --color-text-disabled: var(--color-neutral-5);
  --color-text-hint: var(--color-neutral-6);
  --link-color: var(--color-state);
  --link-color-hover: var(--color-state-hover);
  --color-backdrop-standard: rgba(0, 0, 0, 0.4);
  --color-backdrop-heavy: rgba(0, 0, 0, 0.8);
  --color-backdrop-contrast: var(--color-neutral-1);
  --nav-bg-color: #fff;
  --nav-text-color: var(--color-text);
}
:root {
  --arrow-bg-color: var(--color-background);
  --arrow-border-color: var(--color-neutral-5);
  --arrow-bg-inverse-color: var(--color-neutral-7);
}
:root {
  --form-radio-dot-color: var(--color-state);
  --form-radio-bg-color: var(--color-neutral-1);
  --form-radio-bg-color-disabled: var(--color-neutral-3);
  --form-radio-bg-color-focus: var(--color-state-highlight-neutral);
  --form-radio-bg-color-hover: var(--color-neutral-1);
  --form-radio-bg-color-active: var(--color-neutral-1);
  --form-radio-border-color: var(--color-neutral-6);
  --form-radio-border-color-disabled: var(--color-state-disabled);
  --form-radio-border-color-focus: var(--color-state-focus);
  --form-radio-border-color-active: var(--color-state-focus);
  --form-checkbox-check-color: var(--color-neutral-1);
  --form-checkbox-check-color-disabled: var(--color-neutral-5);
  --form-checkbox-bg-color: var(--color-neutral-1);
  --form-checkbox-bg-color-disabled: var(--color-neutral-3);
  --form-checkbox-bg-color-active: var(--color-state);
  --form-checkbox-border-color: var(--color-neutral-6);
  --form-checkbox-border-color-disabled: var(--color-state-disabled);
  --form-checkbox-border-color-focus: var(--color-state-focus);
  --form-checkbox-border-color-active: var(--color-state-focus);
  --form-checkbox-border-color-invalid: var(--color-prompt-alert);
  --form-text-color: var(--color-neutral-7);
  --form-input-bg-color: var(--color-neutral-1);
  --form-input-bg-color-disabled: var(--color-neutral-3);
  --form-input-bg-color-focus: var(--form-input-bg-color);
  --form-input-bg-color-invalid-focus: var(--form-input-bg-color);
  --form-input-border-color: var(--color-neutral-6);
  --form-input-border-color-disabled: var(--color-neutral-4);
  --form-input-border-color-focus: var(--color-state);
  --form-input-border-color-invalid: var(--color-prompt-alert);
  --form-input-text-color: var(--color-neutral-7);
  --form-input-text-color-disabled: var(--color-state-disabled);
  --form-input-text-placeholder-color: var(--color-neutral-6);
  --form-details-text-color: var(--color-neutral-7);
  --form-defaults-text-color: var(--color-neutral-7);
  --btn-bg-color: var(--color-neutral-1);
  --btn-bg-color-disabled: var(--color-neutral-3);
  --btn-accent-color: var(--color-state);
  --btn-accent-color-contrast: var(--color-neutral-1);
  --btn-accent-color-active: var(--color-state-active);
  --btn-accent-color-hover: var(--color-state-hover);
  --btn-accent-color-disabled: var(--color-state-disabled);
  --btn-danger-color: var(--color-prompt-alert);
  --btn-danger-color-contrast: var(--color-neutral-1);
  --btn-text-color: var(--btn-accent-color);
  --btn-checkbox-bg-color-selected: var(--color-neutral-3);
  --btn-checkbox-bg-color-hover: var(--color-state-highlight-neutral);
  --btn-checkbox-text-color: var(--color-state);
  --btn-checkbox-text-color-active: var(--color-state-active);
  --btn-checkbox-text-color-focus: var(--color-state-focus);
  --btn-checkbox-text-color-selected: var(--color-neutral-7);
  --form-error-bg-color: var(--color-prompt-alert-bg);
  --form-error-text-color: var(--color-prompt-alert);
}
:root {
  --avatar-border-color: var(--color-primary);
}
:root {
  --dropdown-item-bg-color-hover: var(--color-neutral-3);
  --dropdown-item-bg-color-focus: var(--color-neutral-3);
  --dropdown-item-bg-color-disabled-focus: var(--color-neutral-2);
  --dropdown-item-text-color: var(--color-text);
  --dropdown-item-text-color-hover: var(--color-text);
  --dropdown-item-text-color-focus: var(--color-text);
  --dropdown-item-text-color-disabled: var(--color-text-disabled);
  --dropdown-item-focus-ring-color: var(--color-state);
  --dropdown-menu-bg-color: var(--color-background);
  --dropdown-menu-border-color: var(--color-neutral-5);
}
:root {
  --datatable-bg-archived: var(--color-neutral-2);
  --datatable-cell-header-text-color: var(--color-neutral-7);
  --datatable-expanded-bg-color: var(--color-neutral-1);
  --datatable-expanded-border-color: var(--color-neutral-5);
  --datatable-expanded-text-color: var(--color-neutral-7);
  --datatable-row-bg-color: transparent;
  --datatable-row-bg-color-active: var(--color-neutral-3);
  --datatable-row-bg-color-focus: var(--color-neutral-3);
  --datatable-row-bg-color-odd: var(--color-neutral-2);
  --datatable-row-border-color: var(--color-neutral-5);
  --datatable-row-first-border-color: var(--color-neutral-7);
  --datatable-select-everything-prompt-bg: var(--color-neutral-2);
}
:root {
  --tabs-bg-color: var(--color-neutral-3);
  --tabs-bg-color-selected: var(--color-neutral-1);
  --tabs-bg-color-disabled: var(--color-neutral-3);
  --tabs-bg-color-focus: var(--color-neutral-3);
  --tabs-selected-bar-color: var(--color-primary);
  --tabs-text-color: var(--color-state);
  --tabs-text-color-active: var(--color-state-active);
  --tabs-text-color-disabled: var(--color-state-disabled);
  --tabs-text-color-focus: var(--color-state-focus);
  --tabs-text-color-selected: var(--color-neutral-7);
  --tabs-border-color: var(--color-neutral-5);
  --tabs-border-color-selected: var(--color-neutral-1);
  --tabs-border-color-disabled: var(--color-neutral-4);
}
:root {
  --card-border-color: var(--color-neutral-5);
}
:root {
  --color-chart-doughnut-label: var(--color-neutral-7);
}
:root {
  --filter-bar-border-color: var(--color-neutral-5);
  --filter-search-icon-color: var(--color-neutral-6);
  --filter-search-clear-icon-color: var(--color-neutral-6);
}
:root {
  --tag-bg-color: var(--color-neutral-2);
  --tag-border-color: var(--color-neutral-5);
  --tag-active-color: var(--color-state);
  --tag-button-color: var(--color-neutral-7);
}
:root {
  --progress-value-bg-color: var(--color-secondary);
  --progress-container-bg-color: var(--color-neutral-4);
  --progress-border-color: var(--color-neutral-1);
  --progress-container-text-color: var(--color-neutral-7);
  --progress-value-text-color: var(--color-neutral-1);
}
:root {
  --collapsible-header-bg-color: var(--color-neutral-3);
  --collapsible-header-border-color: var(--color-neutral-3);
}
:root {
  --progresstracker-container-bg-color: var(--color-neutral-1);
  --progresstracker-color-pending: var(--color-neutral-6);
  --progresstracker-color-current: var(--color-prompt-info);
  --progresstracker-color-achieved: var(--color-tertiary);
  --progresstracker-color-complete: var(--color-prompt-warning);
  --progresstracker-color-ready: var(--color-neutral-6);
  --progresstracker-color-ready--inverse: var(--color-neutral-1);
  --progresstracker-color-done: var(--color-prompt-success);
  --progresstracker-color-done--inverse: var(--color-neutral-1);
  --progresstracker-color-locked: var(--color-neutral-6);
  --progresstracker-color-locked--inverse: var(--color-neutral-1);
  --progresstracker-color-optional: var(--color-neutral-6);
  --progresstracker-color-optional--inverse: var(--color-neutral-1);
  --progresstracker-color-selected: var(--color-neutral-6);
  --progresstracker-color-selected--inverse: var(--color-neutral-1);
  --progresstracker-color-invalid: var(--color-prompt-warning);
  --progresstracker-color-invalid--inverse: var(--color-neutral-1);
  --progresstracker-color-view-only: var(--color-neutral-6);
  --progresstracker-color-view-only--inverse: var(--color-neutral-1);
  --progresstracker-color-hidden: var(--color-neutral-6);
  --progresstracker-color-hidden--inverse: var(--color-neutral-1);
}
:root {
  --side-panel-nav-bg-color: var(--color-neutral-3);
  --side-panel-nav-item-bg-color: var(--color-neutral-3);
  --side-panel-nav-item-border-color: var(--color-neutral-3);
  --side-panel-nav-item-text-color: var(--color-neutral-7);
  --side-panel-nav-item-bg-color-focus: var(--color-neutral-4);
  --side-panel-nav-item-border-color-focus: var(--color-neutral-3);
  --side-panel-nav-item-text-color-focus: var(--color-state-focus);
  --side-panel-nav-item-bg-color-selected: var(--color-state-active);
  --side-panel-nav-item-border-color-selected: var(--color-neutral-3);
  --side-panel-nav-item-text-color-selected: var(--color-neutral-1);
}
:root {
  --toggle-bg-color: var(--color-neutral-6);
  --toggle-btn-bg-color: transparent;
  --toggle-btn-bg-color-active: transparent;
  --toggle-btn-bg-color-disabled: transparent;
  --toggle-btn-bg-color-hover: transparent;
  --toggle-btn-bg-color-selected: var(--color-neutral-1);
  --toggle-btn-text-color: var(--color-neutral-1);
  --toggle-btn-text-color-active: var(--color-neutral-1);
  --toggle-btn-text-color-disabled: var(--color-neutral-1);
  --toggle-btn-text-color-hover: var(--color-neutral-1);
  --toggle-btn-text-color-selected: var(--color-neutral-7);
  --form-toggle-dot-color: var(--color-neutral-1);
  --form-toggle-off-bg-color: var(--color-neutral-5);
  --form-toggle-off-bg-color-hover-focus: var(--color-neutral-6);
  --form-toggle-off-bg-color-disabled: var(--color-neutral-4);
  --form-toggle-on-bg-color: var(--color-state);
  --form-toggle-on-bg-color-hover-focus: var(--color-state-hover);
  --form-toggle-on-bg-color-disabled: color-mix(
    in srgb,
    var(--form-toggle-on-bg-color) 60%,
    transparent
  );
  --form-toggle-on-border-color: var(--color-state);
  --form-toggle-on-border-color-hover-focus: var(--color-state-hover);
  --form-toggle-border-color: var(--color-neutral-6);
  --form-toggle-border-color-disabled: var(--color-neutral-5);
  --toggle-btn-text-color-focus: var(--color-neutral-1);
  --toggle-btn-bg-color-focus: transparent;
}
:root {
  --toast-color-text: var(--color-neutral-1);
}
:root {
  --shadow-none: 0 0 0 0 transparent;
  --shadow-2: 0 3px 6px 0 rgba(0, 0, 0, 0.2);
  --shadow-3: 0 6px 6px 0 rgba(0, 0, 0, 0.15);
  --shadow-4: 0 10px 10px 0 rgba(0, 0, 0, 0.3);
  --form-input-shadow-focus: none;
  --form-input-shadow-invalid: 0 0 0 var(--form-input-invalid-shadow-size)
    var(--form-input-border-color-invalid);
  --form-input-shadow-invalid-focus: none;
  --form-range-thumb-shadow: 0 1px 3px rgba(0, 0, 0, 0.6);
}
:root {
  --sidepanel-navigation-item-padding-left: var(--gap-8);
}
:root {
  --progress-tracker-horizontal-size--small: 6.25rem;
  --progress-tracker-horizontal-size--medium: 12.5rem;
  --progress-tracker-horizontal-size--large: 15.625rem;
  --progress-tracker-horizontal-gap--small: var(--gap-2);
  --progress-tracker-horizontal-gap--medium: var(--gap-4);
  --progress-tracker-horizontal-gap--large: var(--gap-6);
  --progress-tracker-vertical-gap--small: var(--gap-2);
  --progress-tracker-vertical-gap--medium: var(--gap-4);
  --progress-tracker-vertical-gap--large: var(--gap-6);
  --progresstracker-full-marker-size: 1.75rem;
  --progresstracker-connector-gap: 0.3125rem;
}
:root {
  --form-range-height: 20px;
  --form-range-track-height: 10px;
  --form-range-thumb-size: 18px;
  --form-range-thumb-margin-top: calc((var(--form-range-track-height) / 2) - (var(--form-range-thumb-size) / 2));
  --form-range-thumb-border-radius: 50%;
}
:root {
  --page-content-padding: calc(var(--gap-base) * 4);
  --page-content-padding-desktop: calc(var(--gap-base) * 4);
}
:root {
  --transition-form-function: linear;
  --transition-form-duration: 0s;
  --transition-modal-function: ease-out;
  --transition-modal-duration: 0.15s;
  --transition-sidepanel-content-function: linear;
  --transition-sidepanel-content-duration: 0.1s;
  --transition-progress-function: ease-out;
  --transition-progress-duration: 0.3s;
  --transition-button-function: ease;
  --transition-button-duration: 0.15s;
  --transition-toggle-function: ease;
  --transition-toggle-duration: 0.2s;
}
:root {
  --modal-container-padding: var(--gap-12);
  --modal-sheet-padding: var(--gap-12);
  --modal-border-radius: 0.75rem;
  --modal-content-outer-padding: var(--gap-6);
  --modal-content-separation: var(--gap-2);
  --modal-content-separation-large: var(--gap-8);
}
:root {
  --embedded-media-max-width: 700px;
}
:root {
  --form-input-height: 2.25rem;
  --form-input-height-large: 2.5rem;
  --form-input-font-size: var(--font-body-size);
  --form-input-font-size-sm: var(--font-body-sm-size);
  --form-input-font-size-lg: var(--font-body-lg-size);
  --form-input-line-height: var(--font-body-line-height);
  --form-input-border-size: 1px;
  --form-input-border-radius: 0.25rem;
  --form-input-invalid-shadow-size: 1px;
  --form-input-limited-width: calc(20 * var(--form-input-font-size));
  --form-notepad-line-height: 1.875rem;
  --form-notepad-line-border: solid 1px;
  --input-set-spacing: var(--gap-2);
  --char-length-scale: 2, 3, 4, 5, 10, 15, 20, 25, 30, 50, 75, 100;
  --radio-label-offset: calc(var(--form-radio-size) * 1.35);
  --form-input-v-padding: var(--gap-2);
}
:root {
  --form-toggle-color: var(--color-neutral-7);
  --form-toggle-dot-size: 1rem;
  --form-toggle-container-width: 2.5rem;
  --form-toggle-container-height: 1.25rem;
  --form-toggle-container-radius: 0.625rem;
  --form-toggle-text-offset: var(--gap-2);
  --form-toggle-dot-offset: 0.125rem;
  --form-toggle-bottom: 1.125rem;
  --form-toggle-focus-border: var(--border-width-normal);
  --form-toggle-focus-gap: 0.0625rem;
  --form-toggle-height: calc(
    var(--form-toggle-container-height) + (var(--form-toggle-focus-border) * 2)
  );
}
:root {
  --separator-dot-gap: 0.53em;
  --separator-dot-size: 0.2em;
  --separator-pipe-gap: 0.53em;
  --separator-pipe-size: 1px;
}
:root {
  --tag-height: 24px;
  --tag-border-radius: 12px;
}
:root {
  --zindex-sticky: 500;
  --zindex-floating-ui: 5000;
  --zindex-dropdown-menu: 10000;
  --zindex-modal: 100050;
  --zindex-modal-backdrop: 100040;
  --zindex-popover: 100050;
  --zindex-loading-page: 100060;
  --zindex-toast: 100070;
  --zindex-error-modal: 100070;
  --zindex-draggable: 100080;
  --zindex-nav-overlay: 110000;
  --zindex-skiplinks: 110050;
}
/*!*********************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./client/component/tui/src/global_styles/static.scss ***!
  \*********************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2020 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totaralearning.com] for more information.*/
/**/
/* @author Kevin Hottinger <kevin.hottinger@totaralearning.com>*/
/* @module tui*/
*, *::before, *::after {
  box-sizing: border-box;
}
html {
  font-size: 100%;
}
body {
  color: var(--color-text);
  font-size: var(--font-body-size);
  font-family: var(--font-family);
  line-height: var(--font-body-line-height);
  background-color: var(--color-background);
}
.tui-root {
  /* container should not exist for layout purposes*/
  display: contents;
}
.tui-sr-only {
  /* The use of '!important' here is an exception and should not be replicated else where */
  /* stylelint-disable declaration-no-important */
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  /* stylelint-enable */
}
/*!************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/styles/typography.scss ***!
  \************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2024 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totara.com] for more information.*/
/**/
/* @author Simon Chester <simon.chester@totara.com>*/
/* @module tui*/
h1, .h1 {
  font-weight: var(--font-h1-weight);
  font-size: var(--font-h1-size);
  font-family: var(--font-h1-family);
  line-height: var(--font-h1-line-height);
  margin: var(--gap-4) 0 var(--gap-5);
}
h2, .h2 {
  font-weight: var(--font-h2-weight);
  font-size: var(--font-h2-size);
  font-family: var(--font-h2-family);
  line-height: var(--font-h2-line-height);
  margin: var(--gap-4) 0 var(--gap-5);
}
h3, .h3 {
  font-weight: var(--font-h3-weight);
  font-size: var(--font-h3-size);
  font-family: var(--font-h3-family);
  line-height: var(--font-h3-line-height);
  margin: var(--gap-4) 0 var(--gap-4);
}
h4, .h4 {
  font-weight: var(--font-h4-weight);
  font-size: var(--font-h4-size);
  font-family: var(--font-h4-family);
  line-height: var(--font-h4-line-height);
  margin: var(--gap-4) 0 var(--gap-4);
}
h5, .h5 {
  font-weight: var(--font-h5-weight);
  font-size: var(--font-h5-size);
  font-family: var(--font-h5-family);
  line-height: var(--font-h5-line-height);
  margin: var(--gap-4) 0 var(--gap-2);
}
h6, .h6 {
  font-weight: var(--font-h6-weight);
  font-size: var(--font-h6-size);
  font-family: var(--font-h6-family);
  line-height: var(--font-h6-line-height);
  margin: var(--gap-4) 0 var(--gap-2);
  color: var(--color-text-hint);
  text-transform: uppercase;
}
.text-h1 {
  font-weight: var(--font-h1-weight);
  font-size: var(--font-h1-size);
  font-family: var(--font-h1-family);
  line-height: var(--font-h1-line-height);
}
.text-h2 {
  font-weight: var(--font-h2-weight);
  font-size: var(--font-h2-size);
  font-family: var(--font-h2-family);
  line-height: var(--font-h2-line-height);
}
.text-h3 {
  font-weight: var(--font-h3-weight);
  font-size: var(--font-h3-size);
  font-family: var(--font-h3-family);
  line-height: var(--font-h3-line-height);
}
.text-h4 {
  font-weight: var(--font-h4-weight);
  font-size: var(--font-h4-size);
  font-family: var(--font-h4-family);
  line-height: var(--font-h4-line-height);
}
.text-h5 {
  font-weight: var(--font-h5-weight);
  font-size: var(--font-h5-size);
  font-family: var(--font-h5-family);
  line-height: var(--font-h5-line-height);
}
.text-h6 {
  font-weight: var(--font-h6-weight);
  font-size: var(--font-h6-size);
  font-family: var(--font-h6-family);
  line-height: var(--font-h6-line-height);
}
.text-display-lg {
  font-weight: var(--font-display-lg-weight);
  font-size: var(--font-display-lg-size);
  font-family: var(--font-display-lg-family);
  line-height: var(--font-display-lg-line-height);
}
.text-display-md {
  font-weight: var(--font-display-md-weight);
  font-size: var(--font-display-md-size);
  font-family: var(--font-display-md-family);
  line-height: var(--font-display-md-line-height);
}
.text-display-sm {
  font-weight: var(--font-display-sm-weight);
  font-size: var(--font-display-sm-size);
  font-family: var(--font-display-sm-family);
  line-height: var(--font-display-sm-line-height);
}
.text-display-xs {
  font-weight: var(--font-display-xs-weight);
  font-size: var(--font-display-xs-size);
  font-family: var(--font-display-xs-family);
  line-height: var(--font-display-xs-line-height);
}
.text-body-xl {
  font-weight: var(--font-body-xl-weight);
  font-size: var(--font-body-xl-size);
  font-family: var(--font-body-xl-family);
  line-height: var(--font-body-xl-line-height);
}
.text-body-lg {
  font-weight: var(--font-body-lg-weight);
  font-size: var(--font-body-lg-size);
  font-family: var(--font-body-lg-family);
  line-height: var(--font-body-lg-line-height);
}
.text-body {
  font-weight: var(--font-body-weight);
  font-size: var(--font-body-size);
  font-family: var(--font-body-family);
  line-height: var(--font-body-line-height);
}
.text-body-sm {
  font-weight: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
}
.text-body-xs {
  font-weight: var(--font-body-xs-weight);
  font-size: var(--font-body-xs-size);
  font-family: var(--font-body-xs-family);
  line-height: var(--font-body-xs-line-height);
}
/*!**************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/styles/rich-content.scss ***!
  \**************************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2024 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totara.com] for more information.*/
/**/
/* @author Simon Chester <simon.chester@totara.com>*/
/* @module tui*/
/* rendered editor content*/
.tui-rendered {
  font-weight: var(--font-body-weight);
  font-size: var(--font-body-size);
  font-family: var(--font-body-family);
  line-height: var(--font-body-line-height);
  word-break: break-word;
}
.tui-rendered__block {
  margin-bottom: var(--paragraph-gap);
}
.tui-rendered__embedContainer {
  max-width: var(--embedded-media-max-width);
}
/*!*******************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./client/component/tui/src/global_styles/styles/icons.scss ***!
  \*******************************************************************************************************************************************************************************************************************/
/* This file is part of Totara Enterprise Extensions.*/
/**/
/* Copyright (C) 2024 onwards Totara Learning Solutions LTD*/
/**/
/* Totara Enterprise Extensions is provided only to Totara*/
/* Learning Solutions LTD's customers and partners, pursuant to*/
/* the terms and conditions of a separate agreement with Totara*/
/* Learning Solutions LTD or its affiliate.*/
/**/
/* If you do not have an agreement with Totara Learning Solutions*/
/* LTD, you may not access, use, modify, or distribute this software.*/
/* Please contact [licensing@totara.com] for more information.*/
/**/
/* @author Simon Chester <simon.chester@totara.com>*/
/* @module tui*/
/* Color state for the icons.*/
.tui-icon--disabled {
  color: var(--color-neutral-2);
}
.tui-icon--action {
  color: var(--color-state);
}
.tui-icon--info {
  color: var(--color-prompt-info);
}
.tui-icon--alert {
  color: var(--color-prompt-alert);
}
.tui-icon--warning {
  color: var(--color-prompt-warning);
}
.tui-icon--success {
  color: var(--color-prompt-success);
}
.tui-icon--dimmed {
  color: var(--color-neutral-6);
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/adder/Adder.vue?vue&type=style&index=0&id=3c08ae1e&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-adder {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  height: 31.25rem;
}
.tui-adder__notices {
  margin-bottom: var(--gap-6);
}
.tui-adder__tabs {
  flex-grow: 1;
  min-height: 0;
}
.tui-adder__tabPanel {
  display: flex;
  flex-direction: column;
}
.tui-adder__list {
  flex-grow: 1;
  height: 316px;
  overflow-y: auto;
}
.tui-adder__list-loading {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  min-height: 50px;
}
.tui-adder__list-loadMore {
  margin: var(--gap-4) 0 var(--gap-4);
  text-align: center;
}
.tui-adder__list::before {
  display: block;
  height: var(--gap-4);
  content: "";
}
.tui-adder__footer {
  display: flex;
  flex-wrap: wrap;
  border-top: var(--border-width-normal) solid var(--color-neutral-5);
}
.tui-adder__footer > * {
  margin-top: var(--gap-6);
}
.tui-adder__summary {
  display: flex;
  align-items: center;
  font-weight: var(--label-weight);
}
.tui-adder__actions {
  display: flex;
  margin-left: auto;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/adder/HierarchicalParentButton.vue?vue&type=style&index=0&id=163da645&lang=scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-hierarchicalParentButton {
  display: flex;
  align-items: center;
  padding: var(--gap-4) 0 0;
}
.tui-hierarchicalParentButton__backArrow {
  text-align: start;
}
@media screen and (min-width: 600px) {
  .tui-hierarchicalParentButton__backArrow {
    text-align: center;
  }
}
.tui-hierarchicalParentButton__label {
  margin-left: var(--gap-2);
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/avatar/Avatar.vue?vue&type=style&index=0&id=43b5fd20&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************/
:root {
  --avatar-border-radius: 50%;
  --avatar-large-width: 185px;
  --avatar-large-height: 185px;
  --avatar-large-padding: 5px;
  --avatar-medium-width: 105px;
  --avatar-medium-height: 105px;
  --avatar-medium-padding: 3px;
  --avatar-small-width: 50px;
  --avatar-small-height: 50px;
  --avatar-small-padding: 2px;
  --avatar-xsmall-width: 38px;
  --avatar-xsmall-height: 38px;
  --avatar-xsmall-padding: 1px;
  --avatar-xxsmall-width: 24px;
  --avatar-xxsmall-height: 24px;
  --avatar-xxsmall-padding: 1px;
}
.tui-avatar {
  border: var(--border-width-normal) solid var(--avatar-border-color);
  border-radius: var(--avatar-border-radius);
}
.tui-avatar--large {
  width: var(--avatar-large-width);
  height: var(--avatar-large-height);
  padding: var(--avatar-large-padding);
}
.tui-avatar--medium {
  width: var(--avatar-medium-width);
  height: var(--avatar-medium-height);
  padding: var(--avatar-medium-padding);
}
.tui-avatar--small {
  width: var(--avatar-small-width);
  height: var(--avatar-small-height);
  padding: var(--avatar-small-padding);
}
.tui-avatar--xsmall {
  width: var(--avatar-xsmall-width);
  height: var(--avatar-xsmall-height);
  padding: var(--avatar-xsmall-padding);
}
.tui-avatar--xxsmall {
  width: var(--avatar-xxsmall-width);
  height: var(--avatar-xxsmall-height);
  padding: var(--avatar-xxsmall-padding);
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/basket/Basket.vue?vue&type=style&index=0&id=fe5b2f00&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-basket {
  font-weight: var(--font-body-weight);
  font-size: var(--font-body-size);
  font-family: var(--font-body-family);
  line-height: var(--font-body-line-height);
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  background-color: var(--color-neutral-3);
  border: var(--border-width-thin) solid var(--color-neutral-5);
}
@media (min-width: 768px) {
  .tui-basket {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}
.tui-basket__status, .tui-basket__actions {
  display: flex;
  flex-shrink: 0;
  flex-wrap: wrap;
  align-items: center;
  padding: var(--gap-2) var(--gap-3);
}
.tui-basket__status > *, .tui-basket__actions > * {
  margin-top: var(--gap-2);
  margin-left: var(--gap-4);
}
@media (min-width: 600px) {
  .tui-basket__status > *, .tui-basket__actions > * {
    margin-top: 0;
    margin-left: 0;
  }
  .tui-basket__status > .tui-btn--variant-link, .tui-basket__actions > .tui-btn--variant-link {
    padding: var(--gap-1);
  }
  .tui-basket__status > * + *, .tui-basket__actions > * + * {
    margin-left: var(--gap-2);
  }
  .tui-basket--wideGap .tui-basket__status > * + *, .tui-basket--wideGap .tui-basket__actions > * + * {
    margin-left: var(--gap-4);
  }
}
.tui-basket__selected {
  font-weight: bold;
}
.tui-basket__selectedCount {
  font-size: calc(var(--font-size-base) / 16 * 18);
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/buttons/Button.vue?vue&type=style&index=0&id=79c0243f&lang=scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-btn {
  /* local CSS variables*/
  --tui-btn-color: var(--btn-accent-color);
  --tui-btn-color-hover: var(--btn-accent-color-hover);
  --tui-btn-color-active: var(--btn-accent-color-active);
  --tui-btn-color-contrast: var(--btn-accent-color-contrast);
  --tui-btn-shadow: none;
  --tui-btn-shadow-hover: var(--btn-shadow-hover);
  --tui-btn-shadow-active: var(--btn-shadow-active);
  --tui-btn-content-height: var(--btn-line-height);
  --tui-btn-padding-h: calc(var(--btn-padding-h) - var(--btn-border-width));
  --tui-btn-padding-v: calc(var(--btn-padding-v) - var(--btn-border-width));
  --tui-btn-font-size: var(--btn-font-size);
  --tui-btn-line-height: var(--btn-line-height);
  --tui-btn-min-height: calc(
    var(--tui-btn-line-height) +
      (var(--tui-btn-padding-v) + var(--btn-border-width)) * 2
  );
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: var(--tui-btn-min-height);
  max-width: 100%;
  min-height: var(--tui-btn-min-height);
  padding: var(--tui-btn-padding-v) var(--tui-btn-padding-h);
  color: var(--tui-btn-color);
  font-size: var(--tui-btn-font-size);
  line-height: var(--tui-btn-line-height);
  overflow-wrap: break-word;
  background: var(--btn-bg-color);
  border: var(--btn-border-width) solid;
  border-color: var(--tui-btn-color);
  border-radius: var(--btn-radius);
  cursor: pointer;
  transition: background-color var(--transition-button-duration) var(--transition-button-function), border-color var(--transition-button-duration) var(--transition-button-function), box-shadow var(--transition-button-duration) var(--transition-button-function);
  /* compat for old ButtonIcon "transparent" style*/
}
.tui-btn:is(a) {
  text-decoration: none;
}
.tui-btn:is(a):hover, .tui-btn:is(a):focus {
  color: var(--tui-btn-color);
}
.tui-btn__wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(var(--gap-base) * 2);
}
.tui-btn__content {
  display: flex;
  align-items: center;
  justify-content: center;
}
.tui-btn:focus-visible {
  outline: 2px solid var(--color-state-focus);
  outline-offset: var(--focus-outline-offset);
}
.tui-btn--color-danger {
  --tui-btn-color: var(--btn-danger-color);
  --tui-btn-color-hover: var(--btn-danger-color);
  --tui-btn-color-active: var(--btn-danger-color);
  --tui-btn-color-contrast: var(--btn-danger-color-contrast);
}
.tui-btn:hover {
  --tui-btn-color: var(--tui-btn-color-hover);
  box-shadow: var(--btn-shadow-hover);
}
.tui-btn:active {
  --tui-btn-color: var(--tui-btn-color-active);
  box-shadow: var(--btn-shadow-active);
}
.tui-btn--size-sm {
  --tui-btn-font-size: var(--btn-sm-font-size);
  --tui-btn-line-height: var(--btn-sm-line-height);
  --tui-btn-padding-h: calc(
      var(--btn-sm-padding-h) - var(--btn-border-width)
    );
  --tui-btn-padding-v: calc(
      var(--btn-sm-padding-v) - var(--btn-border-width)
    );
  border-radius: var(--btn-sm-radius);
}
.tui-btn--size-sm .tui-btn__wrap {
  gap: calc(var(--gap-base) * 1);
}
.tui-btn--size-xs {
  --tui-btn-font-size: var(--btn-xs-font-size);
  --tui-btn-line-height: var(--btn-xs-line-height);
  --tui-btn-padding-h: calc(
      var(--btn-xs-padding-h) - var(--btn-border-width)
    );
  --tui-btn-padding-v: calc(
      var(--btn-xs-padding-v) - var(--btn-border-width)
    );
  border-radius: var(--btn-xs-radius);
}
.tui-btn--size-xs .tui-btn__wrap {
  gap: calc(var(--gap-base) * 0.75);
}
.tui-btn--variant-default.tui-btn--disabled {
  background-color: var(--btn-bg-color-disabled);
}
.tui-btn--variant-primary {
  color: var(--tui-btn-color-contrast);
  background-color: var(--tui-btn-color);
}
.tui-btn--variant-primary:is(a):hover, .tui-btn--variant-primary:is(a):focus {
  color: var(--tui-btn-color-contrast);
}
.tui-btn--variant-stealth {
  background-color: transparent;
  border-color: transparent;
  box-shadow: none;
}
.tui-btn--variant-stealth:hover {
  background-color: rgba(0, 0, 0, 0.05);
  box-shadow: none;
}
.tui-btn--variant-stealth:active {
  background-color: rgba(0, 0, 0, 0.07);
  box-shadow: none;
}
.tui-btn--variant-stealth.tui-btn--disabled {
  background-color: transparent;
}
.tui-btn--variant-link {
  --tui-btn-color: var(--link-color);
  --tui-btn-color-hover: var(--link-color);
  --tui-btn-color-active: var(--link-color);
  --tui-btn-color-contrast: var(--color-neutral-7);
  --tui-btn-padding-v: 0;
  padding: 0;
  line-height: 1;
  background: transparent;
  border: none;
  border-radius: 0;
}
.tui-btn--variant-link:hover, .tui-btn--variant-link:active {
  box-shadow: none;
}
.tui-btn--legacyTransparentPadding {
  padding: 0 var(--gap-1);
}
.tui-btn--shape-pill {
  border-radius: var(--tui-btn-min-height);
}
.tui-btn--shape-circle {
  width: var(--tui-btn-min-height);
  height: var(--tui-btn-min-height);
  padding: var(--tui-btn-padding-v) 0;
  border-radius: var(--tui-btn-min-height);
}
.tui-btn--disabled, .tui-btn--disabled:hover, .tui-btn--disabled:active {
  --tui-btn-color: var(--btn-accent-color-disabled);
  box-shadow: none;
}
.tui-btn--loading .tui-btn__content, .tui-btn--loading .tui-btn__iconBefore, .tui-btn--loading .tui-btn__iconAfter {
  visibility: hidden;
}
.tui-btn__loading {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--btn-loader-color-disabled);
}
.tui-btn__iconBefore {
  display: flex;
  align-items: center;
  justify-content: center;
}
.tui-btn__iconAfter {
  display: flex;
  align-items: center;
  justify-content: center;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/buttons/ButtonGroup.vue?vue&type=style&index=0&id=378af030&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-formBtnGroup {
  display: flex;
}
.tui-formBtnGroup .tui-btn {
  min-width: 4rem;
}
.tui-formBtnGroup .tui-btn--size-sm {
  min-width: 3rem;
}
.tui-formBtnGroup > :not(:first-child) {
  margin: auto 0 auto var(--gap-4);
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/buttons/InfoIconButton.vue?vue&type=style&index=0&id=4f804634&lang=scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-infoIconButton.tui-btn {
  margin: 0 0.25rem;
  vertical-align: -0.125em;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/buttons/LabelledButtonTrigger.vue?vue&type=style&index=0&id=afa4805c&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-labelledButtonTrigger {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
}
.tui-labelledButtonTrigger__label {
  color: var(--color-state);
}
.tui-labelledButtonTrigger__label:hover {
  text-decoration: underline;
  cursor: pointer;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/card/ActionCard.vue?vue&type=style&index=0&id=347073d6&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-actionCard {
  flex-direction: column;
  padding: var(--gap-4);
}
.tui-actionCard__body {
  display: flex;
  flex-grow: 1;
  flex-shrink: 1;
  flex-wrap: wrap;
  align-items: center;
}
.tui-actionCard__action {
  display: flex;
  flex-shrink: 0;
  align-items: normal;
  padding: var(--gap-4) 0 0;
}
.tui-actionCard--noPadding {
  padding: 0;
}
.tui-actionCard--noWrap {
  flex-direction: row;
}
.tui-actionCard--noWrap .tui-actionCard__action {
  flex-direction: row;
  padding: 0;
}
.tui-actionCard--shaded {
  background: var(--color-neutral-3);
}
@media screen and (min-width: 768px) {
  .tui-actionCard {
    flex-direction: row;
  }
  .tui-actionCard--stacked {
    flex-direction: column;
  }
  .tui-actionCard:not(.tui-actionCard--stacked) .tui-actionCard__action {
    align-items: center;
    padding: 0 0 0 var(--gap-4);
  }
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/card/Card.vue?vue&type=style&index=0&id=38dd2d00&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-card {
  position: relative;
  display: flex;
  border: 1px solid var(--card-border-color);
  border-radius: var(--card-border-radius);
  outline: none;
}
.tui-card__link {
  position: absolute;
  width: 100%;
  height: 100%;
}
.tui-card--noBorder {
  border: none;
}
.tui-card--noBorder:focus, .tui-card--noBorder:hover {
  border: none;
}
.tui-card--hasHoverShadow:focus, .tui-card--hasHoverShadow:hover {
  box-shadow: var(--shadow-2);
}
.tui-card--hasShadow {
  box-shadow: var(--shadow-2);
}
.tui-card--clickable {
  transition: box-shadow var(--transition-form-function) var(--transition-form-duration);
}
.tui-card--clickable.tui-focusWithin {
  box-shadow: var(--shadow-2);
}
.tui-card--clickable:hover {
  box-shadow: var(--shadow-2);
  cursor: pointer;
}
.tui-card--clickable:focus {
  outline: 2px solid var(--color-state-focus);
  outline-offset: var(--focus-outline-offset);
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/card/CardScroller.vue?vue&type=style&index=0&id=6aabc64c&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-cardScroller {
  display: flex;
  flex-direction: column;
}
.tui-cardScroller__titleRow {
  display: flex;
  gap: var(--gap-2);
  align-items: flex-end;
  justify-content: space-between;
  padding-bottom: var(--gap-3);
  border-bottom: var(--border-width-normal) solid var(--color-neutral-4);
}
.tui-cardScroller__title {
  font-weight: var(--font-h3-weight);
  font-size: var(--font-h3-size);
  font-family: var(--font-h3-family);
  line-height: var(--font-h3-line-height);
  display: flex;
  gap: 0.375rem;
  align-items: center;
  padding-bottom: var(--gap-1);
  color: inherit;
  font-weight: 500;
  overflow-wrap: anywhere;
  /* Dity trick to override the block header styling*/
  /**/
  /* TODO: A better solution is to remove the ".block .content h2" styles from blocks.scss assuming they're not needed*/
  /* This would require a thorough test of all the blocks to make sure it's safe to remove those*/
}
.tui-cardScroller__title:hover, .tui-cardScroller__title:focus {
  color: inherit;
}
.tui-cardScroller__title:focus-visible {
  outline: 2px solid var(--color-state-focus);
  outline-offset: var(--focus-outline-offset);
}
.tui-cardScroller__title-header.tui-cardScroller__title-header.tui-cardScroller__title-header {
  margin: 0;
  font-size: var(--font-h3-size);
}
.tui-cardScroller__titleIcon {
  flex-shrink: 0;
  margin-top: 0.2em;
  font-size: calc(var(--font-size-base) / 16 * 12);
  transition: transform var(--transition-button-duration) var(--transition-button-function);
}
.tui-cardScroller__title:hover .tui-cardScroller__titleIcon {
  transform: translateX(0.1875rem);
}
.tui-cardScroller__titleControls {
  flex-shrink: 0;
}
.tui-cardScroller__navButton-icon {
  color: var(--color-text);
}
.tui-cardScroller__navButton-icon--disabled {
  color: var(--color-state-disabled);
}
.tui-cardScroller__cardsBox {
  padding-top: var(--gap-4);
}
.tui-cardScroller--variant-boxed .tui-cardScroller__cardsBox {
  padding: calc(var(--gap-1) * 5.5);
  background: var(--color-neutral-3);
  border-bottom-right-radius: 0.5rem;
  border-bottom-left-radius: 0.5rem;
}
.tui-cardScroller__cardsContainer:has(.tui-cardScroller__cards--transition-enter-active, .tui-cardScroller__cards--transition-leave-active) {
  position: relative;
  /* temporarily expand bounds while we're applying hidden overflow to avoid cutting off shadow*/
  margin: calc(var(--gap-4) * -1);
  padding: var(--gap-4);
  overflow: hidden;
}
.tui-cardScroller__cards {
  position: relative;
  display: flex;
  flex-direction: row;
  gap: var(--gap-4);
}
.tui-cardScroller__cards--transition-enter-active, .tui-cardScroller__cards--transition-leave-active {
  transition: all 0.15s cubic-bezier(0, 0.1, 0, 1);
}
@media (prefers-reduced-motion) {
  .tui-cardScroller__cards--transition-enter-active, .tui-cardScroller__cards--transition-leave-active {
    transition: none;
  }
}
.tui-cardScroller__cards--transition-enter-from {
  transform: translateX(calc(100% + var(--gap-6)));
}
.tui-cardScroller__cards--transition-leave-to {
  transform: translateX(calc(-100% - var(--gap-6)));
}
.tui-cardScroller__cards--transition-leave-active {
  position: absolute;
}
.tui-cardScroller__cards > * {
  flex-basis: 0;
}
.tui-cardScroller--dir-back .tui-cardScroller__cards--transition-enter-from {
  transform: translateX(-100%);
}
.tui-cardScroller--dir-back .tui-cardScroller__cards--transition-leave-to {
  transform: translateX(100%);
}
.tui-cardScroller__cards--measurer {
  overflow-x: hidden;
}
.tui-cardScroller--expandToFill .tui-cardScroller__cards--display > * {
  flex-grow: 1;
}
.tui-cardScroller__cards-loading {
  display: flex;
  flex: 1;
  align-items: center;
  justify-content: center;
  min-height: 6.25rem;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/card/LearningCard.vue?vue&type=style&index=0&id=31eceabe&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-learningCard {
  --tui-learningCard-background-gradient: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0) 10%,
    rgba(0, 0, 0, 0.4) 40%,
    var(--color-neutral-7) 80%
  );
  position: relative;
  display: flex;
  flex-direction: column;
  margin: calc((var(--gap-1) * 1.5) * -1);
  padding: calc(var(--gap-1) * 1.5);
  overflow-wrap: break-word;
  border-radius: calc(var(--card-border-radius) * 2);
  outline: none;
  isolation: isolate;
  transition: box-shadow 0.3s ease-in-out;
}
@media (hover: none) {
  .tui-learningCard .tui-learningCard__actionWrapper {
    padding-bottom: var(--gap-1);
    padding-left: var(--gap-1);
    opacity: 1;
  }
}
.tui-learningCard:hover {
  z-index: 1;
  box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.15);
}
.tui-learningCard:hover .tui-learningCard__actionWrapper, .tui-learningCard:focus-within .tui-learningCard__actionWrapper {
  padding-bottom: var(--gap-1);
  padding-left: var(--gap-1);
  opacity: 1;
}
.tui-learningCard--variant-hero .tui-learningCard__image {
  border-radius: var(--card-border-radius);
}
.tui-learningCard--variant-grey-body .tui-learningCard__image {
  border-top-left-radius: var(--card-border-radius);
  border-top-right-radius: var(--card-border-radius);
}
.tui-learningCard--variant-grey-body .tui-learningCard__body {
  border-bottom-right-radius: var(--card-border-radius);
  border-bottom-left-radius: var(--card-border-radius);
  background: var(--color-neutral-2);
}
.tui-learningCard--variant-background .tui-learningCard__image {
  border-radius: var(--card-border-radius);
}
.tui-learningCard--variant-background .tui-learningCard__body {
  color: var(--color-neutral-1);
}
.tui-learningCard--variant-background .tui-learningCard__footer {
  border-bottom-right-radius: var(--card-border-radius);
  border-bottom-left-radius: var(--card-border-radius);
  color: var(--color-neutral-1);
  background: var(--color-neutral-7);
}
.tui-learningCard__popFront {
  position: relative;
  z-index: 2;
}
.tui-learningCard__link {
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: var(--card-border-radius);
}
.tui-learningCard__link:focus-visible {
  outline: 2px solid var(--color-state-focus);
  outline-offset: var(--focus-outline-offset);
  outline-offset: var(--gap-2);
}
.tui-learningCard--size-sm {
  min-height: 12.5rem;
}
.tui-learningCard--size-default {
  min-height: 19.5rem;
}
.tui-learningCard__background {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  width: 100%;
  height: 100%;
  color: inherit;
  border-radius: var(--card-border-radius);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}
.tui-learningCard__background--default {
  background-color: var(--color-neutral-2);
}
.tui-learningCard__mediaContainer {
  position: relative;
}
.tui-learningCard__mediaContainer--aspect-ratio {
  aspect-ratio: 1.7777777778;
}
.tui-learningCard__image {
  display: flex;
  width: 100%;
  height: 100%;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}
.tui-learningCard__image--background-default {
  background-color: var(--color-primary);
}
.tui-learningCard__overlayWrapper {
  display: flex;
  flex-direction: column;
  width: 100%;
}
.tui-learningCard__mediaOverlayTop {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-height: 3.5rem;
  padding: var(--gap-3);
}
.tui-learningCard__heroContainer {
  display: flex;
  min-width: 3.625rem;
  margin-right: var(--gap-4);
}
.tui-learningCard__heroIconWrapper {
  margin-right: var(--gap-1);
}
.tui-learningCard__heroLabelWrapper {
  display: flex;
  align-items: center;
  height: 1.25rem;
  padding: var(--gap-2);
  overflow: hidden;
  color: var(--color-neutral-1);
  background-color: var(--color-neutral-7);
  border-radius: 1.25rem;
  font-weight: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
}
.tui-learningCard__hero-label {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-weight: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
}
.tui-learningCard__actionContainer {
  display: flex;
  margin-left: auto;
}
.tui-learningCard__actionWrapper {
  opacity: 0;
}
.tui-learningCard__actionWrapper--persistent {
  padding-bottom: var(--gap-1);
  padding-left: var(--gap-1);
  opacity: 1;
}
.tui-learningCard__action-trigger, .tui-learningCard__action-item {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: calc(var(--gap-1) * 1.5);
  color: var(--color-neutral-7);
  background: var(--color-neutral-2);
  border: 0;
  border-radius: 1.25rem;
}
.tui-learningCard__action-trigger:hover, .tui-learningCard__action-item:hover {
  color: var(--color-state-hover);
  background: var(--color-neutral-1);
  box-shadow: var(--btn-shadow-hover);
}
.tui-learningCard__action-trigger--persistent, .tui-learningCard__action-item--persistent {
  display: flex;
}
.tui-learningCard__mediaOverlayCentre {
  display: flex;
  flex-basis: 100%;
  padding: var(--gap-3);
}
.tui-learningCard__mediaOverlayBottom {
  margin-top: auto;
  padding: var(--gap-3);
}
.tui-learningCard__body, .tui-learningCard__footer {
  padding: var(--gap-3);
}
.tui-learningCard__title {
  display: -webkit-box;
  margin: 0 0 var(--gap-1) 0;
  overflow: hidden;
  font-weight: 501;
  font-size: calc(var(--font-size-base) / 16 * 16);
  line-height: calc(var(--line-height-base) / 16 * 24);
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  text-overflow: ellipsis;
}
.tui-learningCard__body {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/collapsible/Collapsible.vue?vue&type=style&index=0&id=57953554&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-collapsible__header {
  display: flex;
  background: var(--collapsible-header-bg-color);
  border: var(--border-width-thin) solid var(--collapsible-header-border-color);
}
.tui-collapsible__header-heading {
  display: flex;
  flex-grow: 1;
  margin: 0;
}
.tui-collapsible__header-button {
  display: flex;
  flex-grow: 1;
  margin: 0;
  padding: var(--gap-2) var(--gap-2) var(--gap-2) 0;
  overflow-wrap: break-word;
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
}
.tui-collapsible__header-button--excludeHeaderPadding {
  padding: 0;
}
.tui-collapsible__header-button:not(.tui-collapsible__header-button--hideFocus):focus-visible {
  outline: 2px solid var(--color-state-focus);
  outline-offset: var(--focus-outline-offset);
}
.tui-collapsible__header-icon {
  flex-shrink: 0;
  margin: 0 var(--gap-4);
  margin-top: calc((var(--font-h4-line-height) - 0.875rem) / 2);
  color: var(--color-state);
  font-size: 0.875rem;
}
.tui-collapsible__header-text {
  font-weight: var(--font-h4-weight);
  font-size: var(--font-h4-size);
  font-family: var(--font-h4-family);
  line-height: var(--font-h4-line-height);
  position: relative;
  margin: 0;
}
.tui-collapsible__header-sideContent {
  display: flex;
  flex-shrink: 0;
  padding: var(--gap-2);
}
.tui-collapsible__content {
  /* line up with text of header*/
}
.tui-collapsible__content > .tui-formRowStack {
  margin-top: var(--gap-4);
}
.tui-collapsible__content--indented {
  padding-left: var(--gap-12);
}
.tui-collapsible--minimal .tui-collapsible__header {
  background: transparent;
  border-color: transparent;
}
.tui-collapsible--largePadding .tui-collapsible__header-button {
  padding: var(--gap-5) var(--gap-2) var(--gap-5) var(--gap-1);
}
.tui-collapsible--largePadding .tui-collapsible__header-sideContent {
  padding: var(--gap-2) var(--gap-4);
}
.tui-collapsible--largePadding .tui-collapsible__content {
  padding: var(--gap-3);
  padding-top: 0;
}
.tui-collapsible--largePadding .tui-collapsible__content--indented {
  padding-left: calc(var(--gap-12) + var(--gap-1));
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/collapsible/CollapsibleGroupToggle.vue?vue&type=style&index=0&id=1f95262d&lang=scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-collapsibleGroupToggle {
  display: flex;
}
.tui-collapsibleGroupToggle--alignEnd .tui-collapsibleGroupToggle__button {
  margin-left: auto;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/collapsible/HideShow.vue?vue&type=style&index=0&id=21100b43&lang=scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-hideShow {
  display: flex;
  flex-direction: column;
  background: var(--color-neutral-1);
}
.tui-hideShow__content {
  display: none;
}
.tui-hideShow__content--show {
  display: block;
  outline: none;
}
.tui-hideShow__toggle {
  display: flex;
  padding: var(--gap-2) 0;
}
.tui-hideShow__toggle--narrowTrigger {
  padding: 0;
}
.tui-hideShow__toggle--sticky {
  position: sticky;
  top: 0;
  z-index: 1;
  background: inherit;
}
@media screen and (min-width: 768px) {
  .tui-hideShow--mobile > .tui-hideShow__toggle {
    display: none;
  }
  .tui-hideShow--mobile > .tui-hideShow__content {
    display: block;
  }
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/datatable/AdvancedTableSelect.vue?vue&type=style&index=0&id=3cb16dce&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************/
:root {
  --advanced-select-dropdown-trigger-width: 44px;
  --advanced-select-dropdown-trigger-width-large: 52px;
  --advanced-select-dropdown-trigger-height: 28px;
  --advanced-select-dropdown-trigger-height-large: 34px;
  --advanced-select-border-radius: var(--border-radius-small);
  --advanced-select-outline-width: var(--border-width-normal);
  --advanced-select-caret-top-offset: 1px;
  --advanced-select-caret-left-offset: calc(var(--gap-1) * -1);
  --advanced-select-caret-color: var(--color-neutral-7);
  --advanced-select-caret-icon-margin-left-stacked: 25px;
  --advanced-select-caret-left-stacked: -30px;
  --advanced-select-checkbox-padding-top: 6px;
  --advanced-select-checkbox-padding-bottom: 6px;
  --advanced-select-checkbox-padding-left: 5px;
}
.tui-advancedTableSelect__dropdownTrigger {
  display: flex;
  width: var(--advanced-select-dropdown-trigger-width);
  height: var(--advanced-select-dropdown-trigger-height);
  margin-right: var(--gap-1);
  /* Grey background*/
  /* The green focus outline*/
}
.tui-advancedTableSelect__dropdownTrigger--large {
  width: var(--advanced-select-dropdown-trigger-width-large);
  height: var(--advanced-select-dropdown-trigger-height-large);
}
.tui-advancedTableSelect__dropdownTrigger-checkbox {
  padding: var(--advanced-select-checkbox-padding-top) 0 var(--advanced-select-checkbox-padding-bottom) var(--advanced-select-checkbox-padding-left);
}
.tui-advancedTableSelect__dropdownTrigger-button {
  top: var(--advanced-select-caret-top-offset);
  left: var(--advanced-select-caret-left-offset);
  outline: none;
}
.tui-advancedTableSelect__dropdownTrigger-button:focus, .tui-advancedTableSelect__dropdownTrigger-button:hover, .tui-advancedTableSelect__dropdownTrigger-button:active, .tui-advancedTableSelect__dropdownTrigger-button:active:hover, .tui-advancedTableSelect__dropdownTrigger-button:active:focus {
  outline: none;
}
.tui-advancedTableSelect__dropdownTrigger-button-icon {
  color: var(--advanced-select-caret-color);
}
.tui-advancedTableSelect__dropdownTrigger-button-icon--stacked {
  margin-left: var(--advanced-select-caret-icon-margin-left-stacked);
}
.tui-advancedTableSelect__dropdownTrigger-button--stacked {
  left: var(--advanced-select-caret-left-stacked);
}
.tui-advancedTableSelect__dropdownTrigger:focus, .tui-advancedTableSelect__dropdownTrigger:active, .tui-advancedTableSelect__dropdownTrigger:hover, .tui-advancedTableSelect__dropdownTrigger--isOpen {
  background: var(--color-neutral-4);
  border-radius: var(--advanced-select-border-radius);
}
.tui-advancedTableSelect__dropdownTrigger:focus, .tui-advancedTableSelect__dropdownTrigger:active {
  outline: var(--advanced-select-outline-width) solid var(--color-state-focus);
  outline-offset: var(--advanced-select-outline-width);
}
.tui-advancedTableSelect__loader {
  width: var(--form-checkbox-size);
  height: var(--form-checkbox-size);
  margin-right: var(--gap-5);
  margin-left: var(--gap-1);
}
.tui-advancedTableSelect__loader--large {
  width: var(--form-checkbox-size-large);
  height: var(--form-checkbox-size-large);
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/datatable/Cell.vue?vue&type=style&index=0&id=29383a6c&lang=scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-dataTableCell, .tui-dataTableHeaderCell {
  display: flex;
  flex-basis: 0;
  flex-direction: column;
  flex-grow: 1;
  /* ensure excessively long words don't push out cell width */
  min-width: 0;
  /* ensure excessively long words don't overflow */
  word-wrap: break-word;
}
.tui-dataTableCell__label {
  font-weight: var(--label-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
  display: none;
  margin-top: var(--gap-2);
  padding: var(--gap-1) 0 var(--gap-2);
}
.tui-dataTableCell--stacked .tui-dataTableCell__label {
  display: inline-block;
}
.tui-dataTableCell--repeatedHeader .tui-dataTableCell__content {
  /* The use of '!important' here is an exception and should not be replicated else where */
  /* stylelint-disable declaration-no-important */
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  /* stylelint-enable */
}
.tui-dataTableCell--size_1 {
  flex-grow: 1;
}
.tui-dataTableCell--size_2 {
  flex-grow: 2;
}
.tui-dataTableCell--size_3 {
  flex-grow: 3;
}
.tui-dataTableCell--size_4 {
  flex-grow: 4;
}
.tui-dataTableCell--size_5 {
  flex-grow: 5;
}
.tui-dataTableCell--size_6 {
  flex-grow: 6;
}
.tui-dataTableCell--size_7 {
  flex-grow: 7;
}
.tui-dataTableCell--size_8 {
  flex-grow: 8;
}
.tui-dataTableCell--size_9 {
  flex-grow: 9;
}
.tui-dataTableCell--size_10 {
  flex-grow: 10;
}
.tui-dataTableCell--size_11 {
  flex-grow: 11;
}
.tui-dataTableCell--size_12 {
  flex-grow: 12;
}
.tui-dataTableCell--size_13 {
  flex-grow: 13;
}
.tui-dataTableCell--size_14 {
  flex-grow: 14;
}
.tui-dataTableCell--size_15 {
  flex-grow: 15;
}
.tui-dataTableCell--size_16 {
  flex-grow: 16;
}
.tui-dataTableCell--align-center {
  align-items: center;
}
.tui-dataTableCell--align-end {
  align-items: flex-end;
}
.tui-dataTableCell--heavy {
  font-weight: bold;
}
.tui-dataTableCell--valign-center {
  justify-content: center;
}
.tui-dataTableCell--valign-end {
  justify-content: flex-end;
}
.tui-dataTableCell--stacked {
  flex-basis: auto;
  align-items: initial;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/datatable/ExpandCell.vue?vue&type=style&index=0&id=241365a6&lang=scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-dataTableExpandCell {
  display: flex;
  order: 0;
  width: var(--gap-9);
  margin: 0;
}
.tui-dataTableExpandCell .tui-btn {
  margin: 0 auto;
}
.tui-dataTableExpandCell.tui-dataTableExpandCell--header {
  margin-left: 0;
}
.tui-dataTableExpandCell--stacked {
  order: 1;
  width: 100%;
  margin: var(--gap-2) 0;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/datatable/ExpandedRow.vue?vue&type=style&index=0&id=512f64c7&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-dataTableExpandableRow {
  position: relative;
  margin: 0 0 var(--gap-2) calc(0px - var(--border-width-thin));
  color: var(--datatable-expanded-text-color);
  background: var(--datatable-expanded-bg-color);
  border: var(--border-width-thin) solid var(--datatable-expanded-border-color);
  border-top: none;
  box-shadow: var(--shadow-2);
}
.tui-dataTableExpandableRow--stealth {
  border: none;
  box-shadow: none;
}
.tui-dataTableExpandableRow--stealth__content {
  padding: 0;
}
.tui-dataTableExpandableRow__content {
  padding: var(--gap-3);
  background: var(--datatable-expanded-bg-color);
}
.tui-dataTableExpandableRow--indented {
  padding-left: var(--gap-11);
}
.tui-dataTableExpandableRow--stacked {
  border-top: none;
}
.tui-dataTableExpandableRow--stacked.tui-dataTableExpandableRow--indented {
  padding-left: 0;
}
.tui-dataTableExpandableRow--indented .tui-dataTableExpandableRow__content {
  padding: var(--gap-3) 0 var(--gap-3) var(--gap-3);
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/datatable/HeaderCell.vue?vue&type=style&index=0&id=333c72ce&lang=scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-dataTableHeaderCell {
  /* stylelint-disable-next-line tui/at-extend-only-placeholders*/
  display: flex;
  color: var(--datatable-cell-header-text-color);
  font-weight: bold;
}
.tui-dataTableHeaderCell--stacked {
  display: none;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/datatable/HeaderRow.vue?vue&type=style&index=0&id=430073f3&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-dataTableRowHeader {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
  padding: var(--gap-3) var(--gap-1);
}
.tui-dataTableRowHeader--stacked {
  display: block;
  padding: 0;
}
.tui-dataTableRowHeader--stacked.tui-dataTableRowHeader--advancedSelectEnabled {
  padding: var(--gap-2) 0;
}
.tui-dataTableRowHeader--stackedGap {
  margin-top: var(--gap-2);
}
.tui-dataTableRowHeader--thin {
  padding: 0 var(--gap-1) var(--gap-2);
}
.tui-dataTableRowHeader--empty {
  display: none;
}
.tui-dataTableRowHeader > * + * {
  margin-left: var(--gap-4);
}
.tui-dataTableRowHeader--indented {
  padding-left: var(--gap-11);
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/datatable/Row.vue?vue&type=style&index=0&id=6e72b9c0&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-dataTableRow {
  position: relative;
  display: flex;
  flex-direction: row;
  padding: var(--gap-3) var(--gap-1);
  background: var(--datatable-row-bg-color);
  border-top: 1px solid var(--datatable-row-border-color);
  /* don't show hover background when another item is being dragged over it*/
}
.tui-dataTableRow > * + * {
  padding-left: var(--gap-4);
}
.tui-dataTableRow:first-child {
  border-top: var(--border-width-normal) solid var(--datatable-row-first-border-color);
}
.tui-dataTableRow:last-child {
  border-bottom: 1px solid var(--datatable-row-border-color);
}
.tui-dataTableRow.tui-focusWithin, .tui-dataTableRow:active, .tui-dataTableRow:hover {
  background: var(--datatable-row-bg-color-focus);
}
.tui-dataTableRow--indented {
  padding-left: var(--gap-11);
}
.tui-dataTableRow--stealth {
  box-shadow: none;
}
.tui-dataTableRow--borderTopFirstOff:first-child {
  border-top: none;
}
.tui-dataTableRow--borderTopThin:first-child {
  border-top-width: var(--border-width-thin);
}
.tui-dataTableRow--borderBottomLastOff:last-child {
  border-bottom: none;
}
.tui-dataTableRow--borderSeparatorOff:not(:first-child) {
  border-top: none;
}
.tui-dataTableRow--selected {
  background: var(--datatable-row-bg-color-active);
}
.tui-dataTableRow--selected:hover {
  background: var(--datatable-row-bg-color-focus);
}
.tui-dataTableRow--colorOdd:not(.tui-dataTableRow--selected):nth-child(odd) {
  background: var(--datatable-row-bg-color-odd);
}
.tui-dataTableRow--colorOdd:not(.tui-dataTableRow--selected):nth-child(odd).tui-focusWithin, .tui-dataTableRow--colorOdd:not(.tui-dataTableRow--selected):nth-child(odd):hover {
  background: var(--datatable-row-bg-color-focus);
}
.tui-dataTableRow--hoverOff.tui-focusWithin, .tui-dataTableRow--hoverOff:active, .tui-dataTableRow--hoverOff:hover {
  background: var(--datatable-row-bg-color);
}
.tui-dataTableRow--hoverOff.tui-dataTableRow--colorOdd:nth-child(odd).tui-focusWithin, .tui-dataTableRow--hoverOff.tui-dataTableRow--colorOdd:nth-child(odd):hover {
  background: var(--datatable-row-bg-color-odd);
}
.tui-dataTableRow--inGroup {
  border-top: none;
}
.tui-dataTableRow--inGroup:first-child {
  border-top: none;
}
.tui-dataTableRow--inGroup:last-child {
  border-bottom: none;
}
.tui-dataTableRow--disabled {
  color: var(--color-neutral-6);
}
[data-tui-droppable-any-active] .tui-dataTableRow:hover {
  background: var(--datatable-row-bg-color);
}
.tui-dataTableRow--draggable {
  /* apply a background so you don't see through the row when dragging*/
  /* (default is transparent)*/
  background: var(--color-background);
  -webkit-user-select: none;
  user-select: none;
}
.tui-dataTableRow--draggable.tui-focusWithin, .tui-dataTableRow--draggable:active, .tui-dataTableRow--draggable:hover {
  background: var(--color-background);
}
.tui-dataTableRow--draggable > .tui-dataTableCell, .tui-dataTableRow--draggable > .tui-dataTableHeaderCell {
  pointer-events: none;
}
.tui-dataTableRow--dragging {
  box-shadow: var(--shadow-3);
}
.tui-dataTableRow--expanded {
  margin-left: calc(0px - var(--border-width-thin));
  background-color: var(--datatable-expanded-bg-color);
  border: var(--border-width-thin) solid var(--datatable-expanded-border-color);
  border-bottom: none;
  box-shadow: var(--shadow-2);
}
.tui-dataTableRow--stealthExpanded {
  border-right: none;
  border-left: none;
  box-shadow: none;
}
.tui-dataTableRow--stacked {
  flex-direction: column;
  padding: var(--gap-3) 0;
}
.tui-dataTableRow--stacked > * + * {
  padding-left: 0;
}
.tui-dataTableRow--stacked:first-child {
  border-top: var(--border-width-normal) solid var(--datatable-row-first-border-color);
}
.tui-dataTableRow--stacked:last-child {
  border-bottom: 1px solid var(--datatable-row-border-color);
}
.tui-dataTableRow--stacked.tui-dataTableRow--borderBottomLastOff:last-child {
  border-bottom: none;
}
.tui-dataTableRow--stacked.tui-dataTableRow--borderTopThin:first-child {
  border-top-width: var(--border-width-thin);
}
.tui-dataTableRow--stacked.tui-dataTableRow--borderTopFirstOff:first-child {
  border-top: none;
}
.tui-dataTableRow--stacked.tui-dataTableRow--inGroup {
  border-top: 1px solid var(--datatable-row-border-color);
}
.tui-dataTableRow--stacked.tui-dataTableRow--inGroup:first-child {
  border-top: none;
}
.tui-dataTableRow--stacked.tui-dataTableRow--inGroup:last-child {
  border-bottom: none;
}
.tui-dataTableRow--stacked.tui-dataTableRow--inGroup:nth-child(odd) {
  background: none;
}
.tui-dataTableRow--stacked.tui-dataTableRow--inGroup:hover {
  background: none;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/datatable/RowGroup.vue?vue&type=style&index=0&id=ff62b962&lang=scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-dataTableRowGroup {
  padding: 0;
  border-top: 2px solid var(--datatable-row-first-border-color);
}
.tui-dataTableRowGroup--stacked {
  padding: 0 var(--gap-2);
}
.tui-dataTableRowGroup + .tui-dataTableRowGroup {
  border-top: 1px solid var(--datatable-row-border-color);
}
.tui-dataTableRowGroup:last-child {
  border-bottom: 1px solid var(--datatable-row-border-color);
}
.tui-dataTableRowGroup.tui-focusWithin, .tui-dataTableRowGroup:active, .tui-dataTableRowGroup:hover {
  background: var(--datatable-row-bg-color-focus);
}
.tui-dataTableRowGroup--selected {
  background: var(--datatable-row-bg-color-active);
}
.tui-dataTableRowGroup--selected:hover {
  background: var(--datatable-row-bg-color-focus);
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/datatable/SelectEveryRowToggle.vue?vue&type=style&index=0&id=78879799&lang=scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-dataTableSelectEveryRowToggle {
  padding: var(--gap-2);
  background-color: var(--datatable-select-everything-prompt-bg);
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/datatable/SelectRowCell.vue?vue&type=style&index=0&id=ff9e45b4&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-dataTableSelectRowCell {
  display: flex;
  flex-direction: column;
}
.tui-dataTableSelectRowCell--advancedSelectEnabled {
  padding-right: var(--gap-5);
  padding-left: calc(var(--gap-1) + 1px);
}
.tui-dataTableSelectRowCell--hidden {
  visibility: hidden;
}
.tui-dataTableSelectRowCell__loader {
  width: var(--form-checkbox-size);
  height: var(--form-checkbox-size);
}
.tui-dataTableSelectRowCell__loader--large {
  width: var(--form-checkbox-size-large);
  height: var(--form-checkbox-size-large);
}
.tui-dataTableSelectRowCell--stacked.tui-dataTableSelectRowCell--hidden {
  height: 0;
}
.tui-dataTableSelectRowCell--valign-start {
  justify-content: flex-start;
}
.tui-dataTableSelectRowCell--valign-center {
  justify-content: center;
}
.tui-dataTableSelectRowCell--valign-end {
  justify-content: flex-end;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/datatable/SelectVisibleRowsCell.vue?vue&type=style&index=0&id=7b660db7&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-dataTableSelectVisibleRowsCell {
  display: flex;
}
.tui-dataTableSelectVisibleRowsCell--hidden {
  visibility: hidden;
}
.tui-dataTableSelectVisibleRowsCell__loader {
  width: var(--form-checkbox-size);
  height: var(--form-checkbox-size);
}
.tui-dataTableSelectVisibleRowsCell__loader--large {
  width: var(--form-checkbox-size-large);
  height: var(--form-checkbox-size-large);
}
.tui-dataTableSelectVisibleRowsCell--stacked {
  margin: var(--gap-2) 0;
}
.tui-dataTableSelectVisibleRowsCell__label {
  font-weight: var(--label-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
  display: none;
  padding: 0 0 var(--gap-1) var(--gap-1);
}
.tui-dataTableSelectVisibleRowsCell__label--stacked {
  display: inline-block;
}
.tui-dataTableSelectVisibleRowsCell__label--large {
  padding: var(--gap-1) 0 var(--gap-1) var(--gap-2);
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/datatable/Table.vue?vue&type=style&index=0&id=28bdc634&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-dataTable--archived {
  background: var(--datatable-bg-archived);
}
.tui-dataTable__row-move-cell {
  flex-basis: var(--gap-5);
  flex-grow: 0;
}
.tui-dataTable__row-move-menu {
  position: absolute;
  top: 0;
  left: var(--gap-8);
  background: var(--color-background);
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/decor/AndBox.vue?vue&type=style&index=0&id=40e459dd&lang=scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-andBox {
  /* stylelint-disable-next-line tui/at-extend-only-placeholders*/
}
.tui-andBox__text {
  /* stylelint-disable-next-line tui/at-extend-only-placeholders*/
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/decor/Arrow.vue?vue&type=style&index=0&id=2e24c330&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-arrow {
  position: absolute;
  pointer-events: none;
}
.tui-arrow--normal.tui-arrow--top, .tui-arrow--normal.tui-arrow--bottom {
  /*!rtl:ignore*/
  left: 50%;
  width: 20px;
  height: 20px;
  /*!rtl:ignore*/
  margin-left: -10px;
}
.tui-arrow--normal.tui-arrow--top {
  top: -20px;
}
.tui-arrow--normal.tui-arrow--bottom {
  bottom: -20px;
}
.tui-arrow--normal.tui-arrow--left, .tui-arrow--normal.tui-arrow--right {
  top: 50%;
  width: 20px;
  height: 20px;
  margin-top: -10px;
}
.tui-arrow--normal.tui-arrow--left {
  left: -20px;
}
.tui-arrow--normal.tui-arrow--right {
  right: -20px;
}
.tui-arrow--normal.tui-arrow::before {
  position: absolute;
  display: block;
  border: 10px solid transparent;
  content: "";
}
.tui-arrow--normal.tui-arrow--top::before {
  top: 0;
  left: 0;
}
.tui-arrow--normal.tui-arrow--bottom::before {
  bottom: 0;
  left: 0;
}
.tui-arrow--normal.tui-arrow--left::before {
  top: 0;
  left: 0;
}
.tui-arrow--normal.tui-arrow--right::before {
  top: 0;
  right: 0;
}
.tui-arrow--normal.tui-arrow::after {
  position: absolute;
  display: block;
  border: 8px solid transparent;
  content: "";
}
.tui-arrow--normal.tui-arrow--top::after {
  top: 4px;
  left: 2px;
}
.tui-arrow--normal.tui-arrow--bottom::after {
  bottom: 4px;
  left: 2px;
}
.tui-arrow--normal.tui-arrow--left::after {
  top: 2px;
  left: 4px;
}
.tui-arrow--normal.tui-arrow--right::after {
  top: 2px;
  right: 4px;
}
.tui-arrow--large.tui-arrow--top, .tui-arrow--large.tui-arrow--bottom {
  /*!rtl:ignore*/
  left: 50%;
  width: 28px;
  height: 28px;
  /*!rtl:ignore*/
  margin-left: -14px;
}
.tui-arrow--large.tui-arrow--top {
  top: -28px;
}
.tui-arrow--large.tui-arrow--bottom {
  bottom: -28px;
}
.tui-arrow--large.tui-arrow--left, .tui-arrow--large.tui-arrow--right {
  top: 50%;
  width: 28px;
  height: 28px;
  margin-top: -14px;
}
.tui-arrow--large.tui-arrow--left {
  left: -28px;
}
.tui-arrow--large.tui-arrow--right {
  right: -28px;
}
.tui-arrow--large.tui-arrow::before {
  position: absolute;
  display: block;
  border: 14px solid transparent;
  content: "";
}
.tui-arrow--large.tui-arrow--top::before {
  top: 0;
  left: 0;
}
.tui-arrow--large.tui-arrow--bottom::before {
  bottom: 0;
  left: 0;
}
.tui-arrow--large.tui-arrow--left::before {
  top: 0;
  left: 0;
}
.tui-arrow--large.tui-arrow--right::before {
  top: 0;
  right: 0;
}
.tui-arrow--large.tui-arrow::after {
  position: absolute;
  display: block;
  border: 12px solid transparent;
  content: "";
}
.tui-arrow--large.tui-arrow--top::after {
  top: 4px;
  left: 2px;
}
.tui-arrow--large.tui-arrow--bottom::after {
  bottom: 4px;
  left: 2px;
}
.tui-arrow--large.tui-arrow--left::after {
  top: 2px;
  left: 4px;
}
.tui-arrow--large.tui-arrow--right::after {
  top: 2px;
  right: 4px;
}
.tui-arrow--normal.tui-arrow__variant--default.tui-arrow--top::before, .tui-arrow--large.tui-arrow__variant--default.tui-arrow--top::before {
  border-bottom-color: var(--arrow-border-color);
}
.tui-arrow--normal.tui-arrow__variant--default.tui-arrow--bottom::before, .tui-arrow--large.tui-arrow__variant--default.tui-arrow--bottom::before {
  border-top-color: var(--arrow-border-color);
}
.tui-arrow--normal.tui-arrow__variant--default.tui-arrow--left::before, .tui-arrow--large.tui-arrow__variant--default.tui-arrow--left::before {
  border-right-color: var(--arrow-border-color);
}
.tui-arrow--normal.tui-arrow__variant--default.tui-arrow--right::before, .tui-arrow--large.tui-arrow__variant--default.tui-arrow--right::before {
  border-left-color: var(--arrow-border-color);
}
.tui-arrow--normal.tui-arrow__variant--default.tui-arrow--top::after, .tui-arrow--large.tui-arrow__variant--default.tui-arrow--top::after {
  border-bottom-color: var(--arrow-bg-color);
}
.tui-arrow--normal.tui-arrow__variant--default.tui-arrow--bottom::after, .tui-arrow--large.tui-arrow__variant--default.tui-arrow--bottom::after {
  border-top-color: var(--arrow-bg-color);
}
.tui-arrow--normal.tui-arrow__variant--default.tui-arrow--left::after, .tui-arrow--large.tui-arrow__variant--default.tui-arrow--left::after {
  border-right-color: var(--arrow-bg-color);
}
.tui-arrow--normal.tui-arrow__variant--default.tui-arrow--right::after, .tui-arrow--large.tui-arrow__variant--default.tui-arrow--right::after {
  border-left-color: var(--arrow-bg-color);
}
.tui-arrow--normal.tui-arrow__variant--inverse.tui-arrow--top::before, .tui-arrow--large.tui-arrow__variant--inverse.tui-arrow--top::before {
  border-bottom-color: var(--arrow-bg-inverse-color);
}
.tui-arrow--normal.tui-arrow__variant--inverse.tui-arrow--bottom::before, .tui-arrow--large.tui-arrow__variant--inverse.tui-arrow--bottom::before {
  border-top-color: var(--arrow-bg-inverse-color);
}
.tui-arrow--normal.tui-arrow__variant--inverse.tui-arrow--left::before, .tui-arrow--large.tui-arrow__variant--inverse.tui-arrow--left::before {
  border-right-color: var(--arrow-bg-inverse-color);
}
.tui-arrow--normal.tui-arrow__variant--inverse.tui-arrow--right::before, .tui-arrow--large.tui-arrow__variant--inverse.tui-arrow--right::before {
  border-left-color: var(--arrow-bg-inverse-color);
}
.tui-arrow--normal.tui-arrow__variant--inverse.tui-arrow--top::after, .tui-arrow--large.tui-arrow__variant--inverse.tui-arrow--top::after {
  border-bottom-color: var(--arrow-bg-inverse-color);
}
.tui-arrow--normal.tui-arrow__variant--inverse.tui-arrow--bottom::after, .tui-arrow--large.tui-arrow__variant--inverse.tui-arrow--bottom::after {
  border-top-color: var(--arrow-bg-inverse-color);
}
.tui-arrow--normal.tui-arrow__variant--inverse.tui-arrow--left::after, .tui-arrow--large.tui-arrow__variant--inverse.tui-arrow--left::after {
  border-right-color: var(--arrow-bg-inverse-color);
}
.tui-arrow--normal.tui-arrow__variant--inverse.tui-arrow--right::after, .tui-arrow--large.tui-arrow__variant--inverse.tui-arrow--right::after {
  border-left-color: var(--arrow-bg-inverse-color);
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/decor/Caret.vue?vue&type=style&index=0&id=5f7ee9aa&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-caret {
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 2px;
  vertical-align: middle;
  border-top: 4px solid;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/decor/OrBox.vue?vue&type=style&index=0&id=5ec5d08f&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-orBox, .tui-andBox {
  display: inline-flex;
  margin: 0 auto;
  border: var(--border-width-thin) solid var(--color-neutral-6);
  border-radius: 6px;
}
.tui-orBox__text, .tui-andBox__text {
  font-weight: bold;
  font-size: var(--font-body-size);
  font-family: var(--font-body-family);
  line-height: var(--font-body-line-height);
  margin: 0;
  padding: var(--gap-2) var(--gap-4);
  text-transform: uppercase;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/decor/Separator.vue?vue&type=style&index=0&id=6f5d448c&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-separator {
  margin: var(--gap-4) 0;
  /* simple implementation using a horizontal rule element*/
  /* alternative implementation with wrapper markup to center slotted content*/
  /* horizontal rule visible only to screen readers, the visual lines added with*/
  /* pseudo selectors*/
}
.tui-separator--spread {
  margin: var(--gap-8) 0;
}
.tui-separator-rule {
  height: var(--border-width-thin);
  line-height: var(--border-width-thin);
  background-color: var(--color-neutral-5);
  border: none;
}
.tui-separator-rule.tui-separator--thick {
  height: var(--border-width-thick);
  line-height: var(--border-width-thick);
}
.tui-separator-rule.tui-separator--normal {
  height: var(--border-width-normal);
  line-height: var(--border-width-normal);
}
.tui-separator--wrapped {
  display: flex;
  align-items: center;
}
.tui-separator--wrapped .tui-separator-content {
  margin: 0 var(--gap-4);
  white-space: nowrap;
  text-align: center;
}
.tui-separator--wrapped:before, .tui-separator--wrapped:after {
  width: 50%;
  height: var(--border-width-thin);
  line-height: var(--border-width-thin);
  background-color: var(--color-neutral-5);
  content: "";
}
.tui-separator--wrapped.tui-separator--thick:before, .tui-separator--wrapped.tui-separator--thick:after {
  height: var(--border-width-thick);
  line-height: var(--border-width-thick);
}
.tui-separator--wrapped.tui-separator--normal:before, .tui-separator--wrapped.tui-separator--normal:after {
  height: var(--border-width-normal);
  line-height: var(--border-width-normal);
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/dev/performance/Performance.vue?vue&type=style&index=0&id=72a21f28&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-performance__summary {
  list-style: none;
}
.tui-performance__container {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
}
.tui-performance__wrapper {
  margin-right: var(--gap-4);
  margin-bottom: var(--gap-4);
  border: 1px solid var(--color-neutral-5);
  border-radius: 3px;
}
.tui-performance__wrapper > * {
  padding-right: var(--gap-2);
  padding-left: var(--gap-2);
}
.tui-performance__wrapper > *:first-child {
  font-weight: bold;
}
.tui-performance__wrapper > *:not(:first-child) {
  background: var(--color-chart-transparent-3);
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/drag_drop/Draggable.vue?vue&type=style&index=0&id=86fd50ae&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
[data-tui-draggable][data-animated] {
  transition: transform 0.25s;
}
[data-tui-draggable][data-dragging] {
  position: fixed;
  z-index: var(--zindex-draggable);
  -webkit-user-select: none;
  user-select: none;
  /* required so droppable can get mouse events*/
  pointer-events: none;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/drag_drop/DraggableMoveMenu.vue?vue&type=style&index=0&id=7ebf9799&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-draggableMoveMenu__button:not(:focus):not([aria-expanded="true"]) {
  /* The use of '!important' here is an exception and should not be replicated else where */
  /* stylelint-disable declaration-no-important */
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  /* stylelint-enable */
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/drag_drop/Droppable.vue?vue&type=style&index=0&id=a4000152&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-droppable__dropLine {
  z-index: var(--zindex-draggable);
  background: var(--color-secondary);
  pointer-events: none;
}
.tui-droppable__dropLine--vertical {
  height: var(--border-width-normal);
  margin-top: calc(var(--border-width-normal) * -0.5);
}
.tui-droppable__dropLine--horizontal {
  width: var(--border-width-normal);
  margin-left: calc(var(--border-width-normal) * -0.5);
}
[data-tui-droppable-location-indicator] {
  background-color: var(--color-neutral-5);
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/dropdown/Dropdown.vue?vue&type=style&index=0&id=6a2eebc0&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-dropdown__menu {
  z-index: var(--zindex-dropdown-menu);
  min-width: 9.375rem;
  max-width: 20rem;
  max-height: 40vh;
  padding: calc(max(var(--gap-2), var(--dropdown-border-radius))) 0;
  overflow-y: auto;
  background-color: var(--dropdown-menu-bg-color);
  background-clip: padding-box;
  border: var(--border-width-thin) solid var(--dropdown-menu-border-color);
  border-radius: var(--dropdown-border-radius);
  box-shadow: var(--shadow-2);
}
.tui-dropdown--separator .tui-dropdown__menu {
  padding: 0;
}
.tui-dropdown--flexibleWidth .tui-dropdown__menu {
  min-width: 0;
  max-width: none;
}
.tui-dropdown--fixedWidth .tui-dropdown__menu {
  width: 20rem;
}
.tui-dropdown__content {
  display: flex;
  flex-direction: column;
}
.tui-dropdown__content--separator > *:first-child {
  border-top-left-radius: calc(var(--dropdown-border-radius) - var(--border-width-thin));
  border-top-right-radius: calc(var(--dropdown-border-radius) - var(--border-width-thin));
}
.tui-dropdown__content--separator > *:last-child {
  border-bottom-right-radius: calc(var(--dropdown-border-radius) - var(--border-width-thin));
  border-bottom-left-radius: calc(var(--dropdown-border-radius) - var(--border-width-thin));
}
.tui-dropdown__content--separator > * + *, .tui-dropdown__content--separator > * + .tui-dropdownButton, .tui-dropdown__content--separator > * + .tui-dropdownButton:hover, .tui-dropdown__content--separator > * + .tui-dropdownButton:focus, .tui-dropdown__content--separator > * + .tui-dropdownButton:active, .tui-dropdown__content--separator > * + .tui-dropdownButton:focus:active {
  /* work around specificity issues with button*/
  border-top: var(--border-width-thin) solid var(--dropdown-menu-border-color);
}
.tui-dropdown--fixedHeight .tui-dropdown__content {
  height: 100%;
}
.tui-dropdown--fixedHeight .tui-dropdown__menu {
  height: 38vh;
  overflow-y: visible;
}
.tui-dropdown--disabled {
  cursor: not-allowed;
}
.tui-dropdown--disabled .tui-dropdown__trigger {
  pointer-events: none;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/dropdown/DropdownButton.vue?vue&type=style&index=0&id=a778431c&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* override <button> styles*/
.tui-dropdownButton {
  color: var(--dropdown-item-text-color);
  text-align: left;
  background-color: transparent;
  border: none;
  border-radius: 0;
}
.tui-dropdownButton:hover, .tui-dropdownButton:focus, .tui-dropdownButton:active, .tui-dropdownButton:focus:active {
  border-color: transparent;
  box-shadow: none;
}
/* tui-dropdownButton styles*/
.tui-dropdownButton {
  font-weight: var(--font-body-weight);
  font-size: var(--font-body-size);
  font-family: var(--font-body-family);
  line-height: var(--font-body-line-height);
  padding: var(--gap-2) var(--gap-4);
  overflow: hidden;
  line-height: 1.4;
  text-overflow: ellipsis;
}
.tui-dropdownButton:focus {
  color: var(--dropdown-item-text-color);
  text-decoration: none;
  background-color: transparent;
  outline: 0;
}
.tui-dropdownButton:hover, .tui-dropdownButton:active, .tui-dropdownButton:focus:active {
  color: var(--dropdown-item-text-color-hover);
  text-decoration: none;
  background-color: var(--dropdown-item-bg-color-hover);
  outline: 0;
}
.tui-dropdownButton:focus-visible {
  color: var(--dropdown-item-text-color-focus);
  background-color: var(--dropdown-item-bg-color-focus);
  outline: 2px solid var(--dropdown-item-focus-ring-color);
  outline-offset: -3px;
}
.tui-dropdownButton--disabled, .tui-dropdownButton--disabled:hover, .tui-dropdownButton--disabled:focus {
  color: var(--dropdown-item-text-color-disabled);
  background-color: transparent;
  cursor: not-allowed;
}
.tui-dropdownButton--disabled:active {
  pointer-events: none;
}
.tui-dropdownButton--noPadding {
  padding: 0;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/dropdown/DropdownGroup.vue?vue&type=style&index=0&id=38cc0eef&lang=scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-dropdownGroup__header {
  padding: var(--gap-2) var(--gap-4);
  font-weight: bold;
}
.tui-dropdownGroup__items {
  display: flex;
  flex-direction: column;
}
.tui-dropdownGroup__items > * {
  padding-left: var(--gap-7);
}
.tui-dropdownGroup--separator .tui-dropdownGroup__items > * {
  border-top: var(--border-width-thin) solid var(--dropdown-menu-border-color);
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/dropdown/DropdownItem.vue?vue&type=style&index=0&id=2183a3d3&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-dropdownItem {
  font-weight: var(--font-body-weight);
  font-size: var(--font-body-size);
  font-family: var(--font-body-family);
  line-height: var(--font-body-line-height);
  display: block;
  width: 100%;
  padding: var(--gap-2) var(--gap-4);
  overflow: hidden;
  color: var(--dropdown-item-text-color);
  line-height: 1.4;
  white-space: nowrap;
  text-overflow: ellipsis;
  cursor: pointer;
}
.tui-dropdownItem:focus {
  color: var(--dropdown-item-text-color);
  text-decoration: none;
  outline: none;
}
.tui-dropdownItem:hover {
  color: var(--dropdown-item-text-color-hover);
  text-decoration: none;
  background-color: var(--dropdown-item-bg-color-hover);
}
.tui-dropdownItem:focus-visible {
  color: var(--dropdown-item-text-color-focus);
  background-color: var(--dropdown-item-bg-color-focus);
  outline: 2px solid var(--dropdown-item-focus-ring-color);
  outline-offset: -3px;
}
.tui-dropdownItem--disabled, .tui-dropdownItem--disabled:hover, .tui-dropdownItem--disabled:focus {
  color: var(--dropdown-item-text-color-disabled);
  background-color: transparent;
  cursor: not-allowed;
}
.tui-dropdownItem--disabled:focus {
  background-color: var(--dropdown-item-bg-color-disabled-focus);
}
.tui-dropdownItem--disabled:active {
  pointer-events: none;
}
.tui-dropdownItem--noPadding {
  padding: 0;
}
.tui-dropdownItem--selected {
  color: var(--color-neutral-1);
  background: var(--color-state-active);
}
.tui-dropdownItem--selected:focus, .tui-dropdownItem--selected:hover, .tui-dropdownItem--selected:active {
  color: var(--color-neutral-1);
  background: var(--color-state-active);
}
.tui-dropdownItem--selected:focus-visible {
  outline-color: var(--color-neutral-1);
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/editor/EditorLoading.vue?vue&type=style&index=0&id=a0c7cea8&lang=scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-editorLoading {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  background-color: var(--form-input-bg-color);
  border: var(--border-width-thin) solid var(--color-neutral-5);
  border-radius: var(--form-input-border-radius);
  /* inner must be separate for intrinsic height to work*/
}
.tui-editorLoading__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  /* similar to default Weka height*/
  height: calc(5.9375rem);
}
.tui-editorLoading--compact .tui-editorLoading__inner {
  /* similar to default Weka height with compact on*/
  height: calc(3.875rem);
}
.tui-editorLoading__spinner {
  color: var(--color-neutral-5);
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/editor/EditorTextarea.vue?vue&type=style&index=0&id=7b3914fa&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-editorTextarea {
  display: flex;
  flex-direction: column;
  /* expand to full width if in horizontal flex*/
  width: 100%;
  /* needed a more specific selector to override tui-select { flex-grow: 1; }*/
}
.tui-editorTextarea > :first-child {
  flex-grow: 0;
}
.tui-editorTextarea__textarea {
  /* stretch child input to be full height if the editor is given a specific height*/
  flex-grow: 1;
  margin-top: var(--gap-1);
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/embeds/ResponsiveEmbedIframe.vue?vue&type=style&index=0&id=4789f933&lang=scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-responsiveEmbedIframe {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  overflow: hidden;
}
.tui-responsiveEmbedIframe::before {
  display: block;
  content: "";
}
.tui-responsiveEmbedIframe__item {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/errors/ErrorModal.vue?vue&type=style&index=0&id=a91f810c&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-errorModal__detailsToggle {
  display: block;
  margin-top: var(--gap-4);
  text-decoration: none;
}
.tui-errorModal__detailsToggle:hover, .tui-errorModal__detailsToggle:focus {
  text-decoration: none;
}
.tui-errorModal__buttons {
  display: flex;
  justify-content: space-between;
  width: 100%;
}
.tui-errorModal__navButtons {
  display: flex;
  align-items: center;
}
.tui-errorModal__navButtons > * + * {
  margin-left: var(--gap-4);
}
.tui-errorModal__details {
  margin-top: var(--gap-3);
}
.tui-errorModal__label {
  font-weight: var(--font-h4-weight);
  font-size: var(--font-h4-size);
  font-family: var(--font-h4-family);
  line-height: var(--font-h4-line-height);
}
.tui-errorModal__context {
  color: var(--color-text-hint);
}
.tui-errorModal__extraInfo {
  white-space: pre-wrap;
}
.tui-errorModal__stackPre {
  margin: var(--gap-2) 0 0 0;
  padding: var(--gap-4);
  color: var(--color-neutral-7);
  word-break: break-word;
  background-color: var(--color-neutral-3);
  border-radius: 4px;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/errors/ErrorPageRender.vue?vue&type=style&index=0&id=bf256cf0&lang=scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-errorDisplay {
  padding: var(--gap-8);
  background: var(--color-neutral-3);
  border-radius: 4px;
}
.tui-errorDisplay__title {
  margin-top: 0;
}
.tui-errorDisplay__buttons {
  margin-bottom: var(--gap-4);
}
.tui-errorDisplay__buttons:last-child {
  margin-bottom: 0;
}
.tui-errorDisplay__detailsToggle {
  text-decoration: none;
}
.tui-errorDisplay__detailsToggle:hover, .tui-errorDisplay__detailsToggle:focus {
  text-decoration: none;
}
.tui-errorDisplay__detailsPre {
  margin-top: var(--gap-2);
  margin-bottom: 0;
  padding: var(--gap-4);
  background-color: var(--color-neutral-1);
  border-radius: 4px;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/errors/SessionExpiredModal.vue?vue&type=style&index=0&id=03876ace&lang=scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-sesskeyExpired__button {
  margin-top: var(--gap-6);
  margin-left: auto;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/file/FileCard.vue?vue&type=style&index=0&id=094cb030&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-fileCard {
  position: relative;
  display: flex;
  align-items: center;
  min-width: 0;
  padding: var(--gap-2);
  white-space: normal;
  border: var(--border-width-thin) solid var(--color-neutral-5);
  border-radius: var(--card-border-radius);
  isolation: isolate;
}
.tui-fileCard:hover {
  border-color: var(--color-state-hover);
  box-shadow: var(--shadow-2);
}
.tui-fileCard--focus {
  outline: 2px solid var(--color-state-focus);
  outline-offset: var(--focus-outline-offset);
}
.tui-fileCard__info {
  flex: 1;
  flex-direction: column;
  overflow: hidden;
}
.tui-fileCard__fileSize {
  display: flex;
  gap: var(--gap-1);
  align-items: center;
  margin: 0;
  color: var(--color-neutral-6);
  font-size: calc(var(--font-size-base) / 16 * 11);
  white-space: nowrap;
}
.tui-fileCard__fileSize-icon {
  font-size: calc(var(--font-size-base) / 16 * 12);
}
.tui-fileCard__filename {
  display: flex;
}
.tui-fileCard__filename, .tui-fileCard__filename:link, .tui-fileCard__filename:hover, .tui-fileCard__filename:active, .tui-fileCard__filename:visited {
  color: var(--color-neutral-7);
  text-decoration: none;
  outline: none;
}
.tui-fileCard__filename-text {
  margin: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.tui-fileCard__filename-ext {
  flex-shrink: 0;
}
.tui-fileCard__filename:after {
  position: absolute;
  inset: 0;
  content: "";
}
.tui-fileCard__icon {
  flex-shrink: 0;
  width: 2rem;
  margin-right: var(--gap-2);
  color: var(--color-neutral-7);
}
.tui-fileCard--downloadable {
  cursor: pointer;
}
.tui-fileCard__actions {
  z-index: 1;
  padding-left: var(--gap-4);
}
.tui-fileCard__download {
  z-index: 1;
  display: flex;
  margin-left: var(--gap-4);
  padding: var(--gap-2);
  color: var(--color-state);
  border-radius: var(--btn-sm-radius);
}
.tui-fileCard__download:focus {
  outline: 2px solid var(--color-state-focus);
  outline-offset: var(--focus-outline-offset);
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/filters/ButtonFilter.vue?vue&type=style&index=0&id=7f4c955d&lang=scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-buttonFilter.tui-buttonFilter--stacked {
  text-align: right;
}
.tui-buttonFilter.tui-buttonFilter--stacked > * {
  margin-top: var(--gap-4);
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/filters/FilterBar.vue?vue&type=style&index=0&id=112a05f8&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-filterBar {
  display: flex;
  flex-direction: column;
}
.tui-filterBar--hasTop {
  padding-top: var(--gap-4);
  border-top: var(--border-width-thin) solid var(--filter-bar-border-color);
}
.tui-filterBar--hasBottom {
  padding-bottom: var(--gap-4);
  border-bottom: var(--border-width-thin) solid var(--filter-bar-border-color);
}
.tui-filterBar__heading {
  /* The use of '!important' here is an exception and should not be replicated else where */
  /* stylelint-disable declaration-no-important */
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  /* stylelint-enable */
}
.tui-filterBar__toggle {
  display: flex;
  justify-content: center;
}
.tui-filterBar__toggle-btn {
  margin: var(--gap-2) 0;
}
.tui-filterBar__filters {
  display: flex;
  flex-grow: 1;
}
.tui-filterBar__filters-left, .tui-filterBar__filters-right {
  display: flex;
  flex-shrink: 0;
}
.tui-filterBar__filters-left > *, .tui-filterBar__filters-right > * {
  flex-shrink: 0;
  margin-left: var(--gap-4);
}
.tui-filterBar__filters-left > * + *, .tui-filterBar__filters-right > * + * {
  margin-left: var(--gap-4);
}
.tui-filterBar__filters--stacked .tui-filterBar__filters-left, .tui-filterBar__filters--stacked .tui-filterBar__filters-right {
  flex-direction: column;
  margin-left: 0;
  border-left: none;
}
.tui-filterBar__filters--stacked .tui-filterBar__filters-left .tui-formLabel, .tui-filterBar__filters--stacked .tui-filterBar__filters-right .tui-formLabel {
  font-weight: var(--label-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
}
.tui-filterBar__filters--stacked .tui-filterBar__filters-left > *, .tui-filterBar__filters--stacked .tui-filterBar__filters-right > * {
  margin-left: 0;
  padding-left: 0;
}
.tui-filterBar__filters--stacked .tui-filterBar__filters-left > :first-child, .tui-filterBar__filters--stacked .tui-filterBar__filters-right > :first-child {
  border-left: none;
}
.tui-filterBar__filters-right {
  justify-content: flex-start;
}
.tui-filterBar__filters-right > :first-child {
  border-left: var(--border-width-thin) solid var(--color-neutral-5);
}
.tui-filterBar__filters-right > * {
  padding-left: var(--gap-4);
}
.tui-filterBar__filters--stacked {
  flex-direction: column;
}
.tui-filterBar__reset {
  margin-left: var(--gap-4);
}
.tui-filterBar__reset-stacked {
  margin-top: var(--gap-4);
  padding-top: var(--gap-4);
  padding-bottom: var(--gap-4);
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/filters/FilterBarArea.vue?vue&type=style&index=0&id=f21707b6&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-filterBarArea {
  display: flex;
  flex-direction: column;
}
.tui-filterBarArea__bar {
  display: flex;
  flex-direction: column;
}
.tui-filterBarArea__bar--horizontal {
  flex-direction: row;
}
.tui-filterBarArea__bar--hasTop {
  padding-top: var(--gap-4);
  border-top: var(--border-width-thin) solid var(--filter-bar-border-color);
}
.tui-filterBarArea__bar--hasBottom {
  padding-bottom: var(--gap-4);
  border-bottom: var(--border-width-thin) solid var(--filter-bar-border-color);
}
.tui-filterBarArea__bar-toggle {
  display: flex;
  margin: auto;
}
.tui-filterBarArea__bar-resetButton {
  display: flex;
  align-items: flex-start;
  margin-top: var(--gap-4);
}
.tui-filterBarArea__bar-stackedFilters {
  display: flex;
  flex-direction: column;
  gap: var(--gap-4);
  margin-top: var(--gap-4);
  padding: 0 var(--gap-4);
}
.tui-filterBarArea__bar-barFilters {
  display: flex;
  gap: var(--gap-4);
}
.tui-filterBarArea__bar-extraFilters {
  display: flex;
  flex-grow: 1;
  align-items: center;
  justify-content: flex-end;
  height: var(--form-input-height);
  margin-top: auto;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/filters/FilterBarAreaPopover.vue?vue&type=style&index=0&id=2b06a720&lang=scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-filterBarAreaPopover {
  white-space: nowrap;
}
.tui-filterBarAreaPopover__content {
  display: flex;
  flex-direction: column;
  gap: var(--gap-4);
  padding: 0 var(--gap-1) var(--gap-1) var(--gap-1);
}
.tui-filterBarAreaPopover__buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  padding-top: var(--gap-4);
  padding-bottom: var(--gap-1);
}
.tui-filterBarAreaPopover__buttons::before {
  position: absolute;
  left: 0;
  width: 100%;
  border-top: var(--border-width-thin) solid var(--filter-bar-border-color);
  content: "";
}
.tui-filterBarAreaPopover__buttons-reset {
  display: flex;
  flex-grow: 1;
  padding: var(--gap-5) var(--gap-1) 0;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/filters/FilterSidePanel.vue?vue&type=style&index=0&id=bbc80bdc&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-filterSidePanel {
  display: block;
}
.tui-filterSidePanel__header {
  font-weight: var(--font-h3-weight);
  font-size: var(--font-h3-size);
  font-family: var(--font-h3-family);
  line-height: var(--font-h3-line-height);
  min-width: 0;
  margin: 0 var(--gap-2) 0 0;
}
.tui-filterSidePanel__heading {
  display: flex;
  padding-bottom: var(--gap-2);
  border-bottom: var(--border-width-normal) solid var(--color-neutral-7);
}
.tui-filterSidePanel__instructions, .tui-filterSidePanel__status {
  /* The use of '!important' here is an exception and should not be replicated else where */
  /* stylelint-disable declaration-no-important */
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  /* stylelint-enable */
}
.tui-filterSidePanel .tui-filterSidePanel__clearBtn {
  flex-shrink: 0;
  margin-left: auto;
}
.tui-filterSidePanel.tui-filterSidePanel > * + * {
  margin-top: var(--gap-4);
}
.tui-filterSidePanel.tui-filterSidePanel .tui-fieldset__legend, .tui-filterSidePanel.tui-filterSidePanel .tui-formLabel {
  font-weight: var(--label-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/filters/MultiSelectCheckboxFilter.vue?vue&type=style&index=0&id=6c9437e6&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-multiSelectCheckboxFilter {
  display: flex;
  flex-direction: column;
  gap: var(--gap-2);
}
.tui-multiSelectCheckboxFilter__items {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  gap: var(--gap-4) 0;
  white-space: normal;
}
@media (min-width: 600px) {
  .tui-multiSelectCheckboxFilter__items--hasColumns {
    flex-direction: row;
    flex-wrap: wrap;
    gap: var(--gap-4);
  }
  .tui-multiSelectCheckboxFilter__items-item--twoColumn {
    width: 47%;
    overflow-wrap: break-word;
  }
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/filters/MultiSelectFilter.vue?vue&type=style&index=0&id=ac42042c&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-multiSelectFilter > * + * {
  margin-top: var(--gap-1);
}
.tui-multiSelectFilter__collapsible {
  margin: 0;
}
.tui-multiSelectFilter__collapsible-collapsed > * {
  margin-top: var(--gap-1);
}
.tui-multiSelectFilter__collapsible-toggle {
  margin-left: var(--gap-1);
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/filters/SearchFilter.vue?vue&type=style&index=0&id=6219b853&lang=scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-searchFilter {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
}
.tui-searchFilter input.tui-formInput {
  flex-grow: 0;
}
.tui-searchFilter .tui-formLabel {
  margin: auto var(--gap-3) auto 0;
}
.tui-searchFilter__group {
  position: relative;
  display: flex;
  flex-grow: 1;
  margin-top: 0;
  margin-bottom: auto;
}
.tui-searchFilter__group--stacked {
  margin-top: var(--gap-1);
}
.tui-searchFilter__group-icon {
  position: absolute;
  left: var(--gap-2);
  display: flex;
  align-items: center;
  height: 100%;
  color: var(--filter-search-icon-color);
}
.tui-searchFilter__group-icon .fa-search {
  margin: auto 0;
}
.tui-searchFilter__group-clearContainer {
  position: absolute;
  right: 0;
  height: 100%;
}
.tui-searchFilter__search {
  /* disable the default clear (x) action in IE*/
}
.tui-searchFilter__search::-ms-clear {
  display: none;
}
.tui-searchFilter__removeIcon {
  color: var(--filter-search-clear-icon-color);
}
.tui-searchFilter--stacked {
  flex-direction: column;
  align-items: stretch;
}
.tui-searchFilter--stacked .tui-formLabel {
  margin: var(--gap-1) 0;
}
.tui-searchFilter--barFilter {
  flex-direction: column;
  gap: var(--gap-1);
  align-items: stretch;
  margin-top: auto;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/filters/SelectFilter.vue?vue&type=style&index=0&id=169b22b2&lang=scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-selectFilter {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
}
.tui-selectFilter .tui-formLabel {
  margin: auto var(--gap-3) auto 0;
}
.tui-selectFilter .tui-select {
  width: auto;
  max-width: 250px;
}
.tui-selectFilter--stacked {
  flex-direction: column;
  align-items: stretch;
}
.tui-selectFilter--stacked .tui-formLabel {
  margin: var(--gap-1) 0 0;
}
.tui-selectFilter--stacked .tui-select {
  max-width: initial;
  margin-top: var(--gap-1);
}
.tui-selectFilter--barFilter {
  flex-direction: column;
  gap: var(--gap-1);
  align-items: stretch;
  max-width: 250px;
  margin-top: auto;
}
.tui-selectFilter--barFilter.tui-selectFilter--stacked {
  max-width: initial;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/filters/SortBar.vue?vue&type=style&index=0&id=40dc4b5c&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-sortBar {
  display: flex;
  flex-flow: row wrap;
  gap: var(--gap-3) var(--gap-6);
  align-items: center;
  justify-content: space-between;
}
.tui-sortBar__start {
  display: flex;
  gap: var(--gap-2);
  align-items: center;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/Checkbox.vue?vue&type=style&index=0&id=66569f7f&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************/
:root {
  /* Size of checkbox*/
  --form-checkbox-size: var(--form-input-font-size);
  --form-checkbox-size-large: calc(var(--form-input-font-size) * 1.333);
  --checkbox-check-width: 0.125rem;
}
.tui-checkbox {
  position: relative;
  display: flex;
  min-height: calc(var(--form-checkbox-size) + 2px);
}
.tui-checkbox--large {
  min-height: calc(var(--form-checkbox-size-large) + 2px);
}
.tui-checkbox__input {
  position: absolute;
  opacity: 0;
}
.tui-checkbox__label {
  position: relative;
  margin: 0;
  padding-left: calc(var(--form-checkbox-size) * 1.5);
  font-weight: normal;
  font-size: var(--form-input-font-size);
  line-height: 1;
  overflow-wrap: break-word;
}
.tui-checkbox--large .tui-checkbox__label {
  padding-left: calc(var(--form-checkbox-size-large) * 1.5);
}
.tui-checkbox__label--noOffset {
  padding-left: var(--form-checkbox-size);
}
.tui-checkbox--large .tui-checkbox__label--noOffset {
  padding-left: var(--form-checkbox-size-large);
}
.tui-checkbox__label::before {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: var(--form-checkbox-size);
  height: var(--form-checkbox-size);
  margin-top: 1px;
  background: var(--form-checkbox-bg-color);
  border: var(--form-input-border-size) solid var(--form-checkbox-border-color);
  border-radius: var(--form-input-border-radius);
  transition: border var(--transition-form-function) var(--transition-form-duration), box-shadow var(--transition-form-function) var(--transition-form-duration);
  content: "";
  pointer-events: none;
}
.tui-checkbox--large .tui-checkbox__label::before {
  width: var(--form-checkbox-size-large);
  height: var(--form-checkbox-size-large);
}
.tui-contextInvalid .tui-checkbox__label::before {
  border-color: var(--form-input-border-color-invalid);
  box-shadow: var(--shadow-none), var(--form-input-shadow-invalid);
}
.tui-checkbox__input:disabled ~ .tui-checkbox__label {
  color: var(--form-input-text-color-disabled);
}
.tui-checkbox__input:disabled ~ .tui-checkbox__label--disabledReadable {
  color: var(--form-input-text-color);
}
.tui-checkbox__input:focus-visible ~ .tui-checkbox__label::before {
  outline: 2px solid var(--color-state-focus);
  outline-offset: var(--focus-outline-offset);
  border: var(--form-input-border-size) solid var(--form-checkbox-border-color-focus);
  box-shadow: var(--form-input-shadow-focus);
}
.tui-contextInvalid .tui-checkbox__input:focus-visible ~ .tui-checkbox__label::before {
  border-color: var(--form-input-border-color-invalid);
  outline-color: var(--form-input-border-color-invalid);
  box-shadow: var(--shadow-none), var(--form-input-shadow-invalid-focus);
}
.tui-checkbox__input:disabled:checked ~ .tui-checkbox__label::before, .tui-checkbox__input:disabled ~ .tui-checkbox__label::before {
  background: var(--form-checkbox-bg-color-disabled);
  border: var(--form-input-border-size) solid;
  border-color: var(--form-checkbox-border-color-disabled);
  box-shadow: none;
}
.tui-checkbox__input ~ .tui-checkbox__label::after {
  /* construct a check mark out of two sides of a rotated box*/
  position: absolute;
  top: calc(0.35 * var(--form-checkbox-size));
  left: calc(0.21 * var(--form-checkbox-size));
  display: block;
  width: calc(0.6 * var(--form-checkbox-size));
  height: calc(0.35 * var(--form-checkbox-size));
  border-color: var(--form-checkbox-check-color);
  border-style: solid;
  /*!rtl:ignore*/
  border-width: 0 0 var(--checkbox-check-width) var(--checkbox-check-width);
  transform: rotate(-45deg);
  opacity: 0;
  transition: opacity var(--transition-form-function) var(--transition-form-duration);
  content: "";
  pointer-events: none;
}
.tui-checkbox--large .tui-checkbox__input ~ .tui-checkbox__label::after {
  top: calc(0.3 * var(--form-checkbox-size-large));
  left: calc(0.22 * var(--form-checkbox-size-large));
  width: calc(0.6 * var(--form-checkbox-size-large));
  height: calc(0.32 * var(--form-checkbox-size-large));
}
.tui-checkbox__input:disabled:checked ~ .tui-checkbox__label::after, .tui-checkbox__input:disabled ~ .tui-checkbox__label::after {
  border-color: var(--form-checkbox-check-color-disabled);
}
.tui-checkbox__input:checked ~ .tui-checkbox__label::before {
  background: var(--form-checkbox-bg-color-active);
  border-color: var(--form-checkbox-border-color-active);
}
.tui-checkbox__input:checked ~ .tui-checkbox__label::after {
  opacity: 1;
}
@media print {
  /* IE11 & Edge support*/
  .tui-checkbox__input:checked ~ .tui-checkbox__label::before {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .ie .tui-checkbox__input:checked ~ .tui-checkbox__label::before, .msedge .tui-checkbox__input:checked ~ .tui-checkbox__label::before {
    border: solid var(--form-checkbox-bg-color-active);
    border-width: 0 var(--form-checkbox-size) 0 0;
  }
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/CheckboxButton.vue?vue&type=style&index=0&id=017e3091&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-checkboxButton {
  position: relative;
  display: flex;
}
.tui-checkboxButton__input {
  position: absolute;
  opacity: 0;
}
.tui-checkboxButton__label {
  display: flex;
  flex-grow: 1;
  margin: 0;
  padding: var(--gap-1);
  color: var(--btn-checkbox-text-color);
  font-weight: normal;
  cursor: pointer;
}
.tui-checkboxButton__label:hover {
  color: var(--btn-checkbox-text-color-focus);
  background: var(--btn-checkbox-bg-color-hover);
}
.tui-checkboxButton__label:active:hover, .tui-checkboxButton__label:active {
  color: var(--btn-checkbox-text-color-active);
}
.tui-checkboxButton__deselectIcon {
  margin: auto 0 auto auto;
  color: var(--btn-checkbox-text-color-selected);
  visibility: hidden;
}
.tui-checkboxButton__input:checked ~ .tui-checkboxButton__label {
  color: var(--btn-checkbox-text-color-selected);
  background: var(--btn-checkbox-bg-color-selected);
}
.tui-checkboxButton__input:checked ~ .tui-checkboxButton__label .tui-checkboxButton__deselectIcon {
  visibility: visible;
}
.tui-checkboxButton__input:checked ~ .tui-checkboxButton__label:hover {
  color: var(--btn-checkbox-text-color-focus);
  background: var(--btn-checkbox-bg-color-hover);
}
.tui-checkboxButton__input:checked ~ .tui-checkboxButton__label:hover .tui-checkboxButton__deselectIcon {
  color: var(--btn-checkbox-text-color-focus);
  visibility: visible;
}
.tui-checkboxButton__input:checked ~ .tui-checkboxButton__label:active:hover, .tui-checkboxButton__input:checked ~ .tui-checkboxButton__label:active {
  color: var(--btn-checkbox-text-color-active);
  background: var(--btn-checkbox-bg-color-hover);
}
.tui-checkboxButton__input:checked ~ .tui-checkboxButton__label:active:hover .tui-checkboxButton__deselectIcon, .tui-checkboxButton__input:checked ~ .tui-checkboxButton__label:active .tui-checkboxButton__deselectIcon {
  color: var(--btn-checkbox-text-color-active);
  visibility: visible;
}
.tui-checkboxButton__input:focus-visible ~ .tui-checkboxButton__label {
  outline: 2px solid var(--color-state-focus);
  outline-offset: var(--focus-outline-offset);
}
.tui-checkboxButton__input:focus-visible:checked ~ .tui-checkboxButton__label {
  outline: 2px solid var(--color-state-focus);
  outline-offset: var(--focus-outline-offset);
}
.tui-checkboxButton__input:focus-visible:checked ~ .tui-checkboxButton__label .tui-checkboxButton__deselectIcon {
  color: var(--btn-checkbox-text-color-selected);
  visibility: visible;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/CheckboxGroup.vue?vue&type=style&index=0&id=09ff7cf0&lang=scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************/
:root {
  --form-checkbox-group-padding: var(--gap-2);
  --form-checkbox-group-spacing-v: var(--gap-4);
  --form-checkbox-group-spacing-h: var(--gap-4);
}
.tui-checkboxGroup {
  display: flex;
  flex-direction: column;
  padding: var(--form-checkbox-group-padding) 0;
}
.tui-checkboxGroup > * + * {
  margin-top: var(--form-checkbox-group-spacing-v);
}
@media screen and (min-width: 768px) {
  .tui-checkboxGroup--horizontal {
    flex-direction: row;
    flex-wrap: wrap;
    /* stylelint-disable length-zero-no-unit*/
    /* prettier-ignore*/
    margin-top: calc(0px - var(--form-checkbox-group-spacing-v) + var(--form-checkbox-group-padding));
    padding-top: 0;
  }
  .tui-checkboxGroup--horizontal > * {
    margin-top: var(--form-checkbox-group-spacing-v);
    margin-right: var(--form-checkbox-group-spacing-h);
  }
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/DateSelector.vue?vue&type=style&index=0&id=6207732e&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-dateSelector {
  display: flex;
  flex-flow: column;
  gap: var(--gap-2);
  max-width: 21.875rem;
  font-size: var(--form-input-font-size);
}
.tui-dateSelector__date {
  display: flex;
  gap: var(--gap-2);
  /* set ratio and intrinsic width for each field*/
}
.tui-dateSelector__date-day {
  flex: 6;
  width: calc(var(--gap-10) + 1.5em);
}
.tui-dateSelector__date-month {
  flex: 12;
  width: calc(var(--gap-10) + 6em);
}
.tui-dateSelector__date-year {
  flex: 8;
  width: calc(var(--gap-10) + 3em);
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/FieldError.vue?vue&type=style&index=0&id=2b3ceb2c&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-formFieldError {
  /* offset the extra red shadow on invalid elements + we want the error*/
  /* message to be spaced 1px away*/
  margin-top: calc(var(--form-input-invalid-shadow-size) + 1px);
}
.tui-formFieldError__inner {
  font-weight: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
  display: inline-flex;
  align-items: center;
  padding: 0.375rem 0.5rem;
  color: var(--form-error-text-color);
  background: var(--form-error-bg-color);
}
.tui-formFieldError__dismiss {
  margin-left: var(--gap-1);
  padding: 0;
  color: inherit;
  opacity: 0.7;
}
.tui-formFieldError__dismiss:hover:active, .tui-formFieldError__dismiss:active, .tui-formFieldError__dismiss:hover, .tui-formFieldError__dismiss:focus {
  color: inherit;
  opacity: 1;
}
.tui-formFieldError__dismiss-icon {
  position: relative;
  top: -1px;
  font-weight: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/FieldGroup.vue?vue&type=style&index=0&id=7e589b61&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-formFieldGroup {
  flex-grow: 1;
  width: 100%;
  min-width: 0;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/Fieldset.vue?vue&type=style&index=0&id=38ddeb38&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.tui-fieldset__legend {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  color: var(--form-text-color);
  font-size: calc(var(--font-size-base) / 16 * 18);
  line-height: inherit;
  border: none;
}
.tui-fieldset--hidden {
  /* The use of '!important' here is an exception and should not be replicated else where */
  /* stylelint-disable declaration-no-important */
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  /* stylelint-enable */
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/FilterFieldset.vue?vue&type=style&index=0&id=5303aa08&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-filterFieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.tui-filterFieldset__content {
  margin-top: var(--gap-2);
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/Form.vue?vue&type=style&index=0&id=63bfcc00&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-form > * + * {
  margin-top: var(--gap-8);
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/FormRow.vue?vue&type=style&index=0&id=6e2506ea&lang=scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-formRow {
  display: flex;
  flex-flow: column;
}
.tui-formRow > .tui-formRow__desc {
  min-width: 0;
  padding-top: var(--gap-1);
  padding-right: var(--gap-2);
  text-align: left;
  overflow-wrap: break-word;
}
.tui-formRow > .tui-formRow__action {
  display: flex;
  max-width: 44.5rem;
}
.tui-formRow > .tui-formRow__action--isStacked {
  display: block;
}
.tui-formRow > .tui-formRow__action--isStacked > * + * {
  margin-top: var(--gap-2);
}
.tui-formRow--fullWidth > .tui-formRow__action {
  max-width: none;
}
.tui-form--vertical > .tui-formRow__desc, .tui-formRow--vertical > .tui-formRow__desc, .tui-formRow--emptyDesc > .tui-formRow__desc {
  padding: 0;
}
.tui-form--vertical .tui-formRow__action, .tui-formRow--vertical .tui-formRow__action {
  margin-top: var(--gap-1);
}
.tui-formRow--emptyDesc .tui-formRow__action {
  margin-top: 0;
}
.tui-form--horizontal .tui-formRow:not(.tui-formRow--vertical) {
  /* width of the sidebar*/
  /* width of the content*/
  /* size of the gutter between sidebar and content*/
  /* selector for child sidebar element*/
  /* selector for child content element*/
}
.tui-form--horizontal .tui-formRow:not(.tui-formRow--vertical) {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: var(--gap-1);
}
.tui-form--horizontal .tui-formRow:not(.tui-formRow--vertical) > .tui-formRow__desc {
  flex-basis: 13.75rem;
  flex-grow: 0;
}
.tui-form--horizontal .tui-formRow:not(.tui-formRow--vertical) > .tui-formRow__action {
  flex-basis: 0;
  /* Set a really high flex-grow value so it takes up all the available*/
  /* space. This will squish the sidebar down to its intrinsic width*/
  /* (or flex-basis, if set).*/
  flex-grow: 999;
  /* This element cannot shrink beyond min-width, so it will wrap on to the*/
  /* next line (switch to vertical).*/
  min-width: calc(60% - var(--gap-1));
}
.tui-form--horizontal .tui-formRow:not(.tui-formRow--vertical) > .tui-formRow__desc {
  padding-top: calc((var(--form-input-height) - var(--form-input-line-height)) / 2);
}
.tui-form--horizontal .tui-formRow:not(.tui-formRow--vertical).tui-formRow--contentType-other > .tui-formRow__action {
  padding-top: calc((var(--form-input-height) - var(--form-input-line-height)) / 2);
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/FormRowDefaults.vue?vue&type=style&index=0&id=5669625c&lang=scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-formRow__defaults {
  color: var(--form-defaults-text-color);
  font-weight: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/FormRowDetails.vue?vue&type=style&index=0&id=593de728&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-formRow__details {
  color: var(--form-details-text-color);
  font-weight: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/FormRowStack.vue?vue&type=style&index=0&id=27dac024&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-formRowStack > * + * {
  margin-top: var(--gap-8);
}
.tui-formRowStack--spacing-large > * + * {
  margin-top: var(--gap-8);
}
.tui-formRowStack--spacing-medium > * + * {
  margin-top: var(--gap-6);
}
.tui-formRowStack--spacing-small > * + * {
  margin-top: var(--gap-4);
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/HelpIcon.vue?vue&type=style&index=0&id=6c0dd796&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-formHelpIcon {
  display: inline-block;
}
.tui-formHelpIcon__icon {
  padding: 0;
  color: var(--color-state);
}
.tui-formHelpIcon__desc {
  /* aria-describedby still works even if the target element is display: none*/
  /* https://developer.paciellogroup.com/blog/2015/05/short-note-on-aria-labelledby-and-aria-describedby/*/
  display: none;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/ImageUpload.vue?vue&type=style&index=0&id=3dd68ab0&lang=scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-formImageUpload {
  color: var(--form-input-text-color);
  font-size: var(--form-input-font-size);
  line-height: 1;
  background: var(--form-input-bg-color);
}
.tui-formImageUpload__actions {
  display: flex;
  padding: var(--gap-2);
  background: var(--color-neutral-3);
  border-color: var(--form-input-border-color);
  border-top: var(--form-input-border-size) solid;
  border-right: var(--form-input-border-size) solid;
  border-left: var(--form-input-border-size) solid;
}
.tui-formImageUpload__deleteButton {
  margin-left: auto;
}
.tui-formImageUpload__filearea {
  padding: var(--gap-2);
  border: var(--form-input-border-size) solid;
  border-color: var(--form-input-border-color);
}
.tui-formImageUpload--highlight .tui-formImageUpload__filearea {
  background: var(--form-input-bg-color-focus);
  border-color: var(--form-input-border-color-focus);
  outline: none;
  box-shadow: var(--form-input-shadow-focus);
}
.tui-formImageUpload--isError .tui-formImageUpload__filearea {
  border-color: var(--form-input-border-color-invalid);
  box-shadow: var(--form-input-shadow-invalid);
}
.tui-formImageUpload__display .tui-responsiveImage {
  max-height: 15.625rem;
}
.tui-formImageUpload__progress {
  padding: var(--gap-2);
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/Input.vue?vue&type=style&index=0&id=1b396584&lang=scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-formInput {
  display: block;
  flex-grow: 1;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: var(--form-input-height);
  padding: calc((var(--form-input-height) - var(--form-input-line-height) - (var(--form-input-border-size) * 2)) / 2) var(--gap-3);
  color: var(--form-input-text-color);
  font-size: var(--form-input-font-size);
  line-height: var(--form-input-line-height);
  background: var(--form-input-bg-color);
  border: var(--form-input-border-size) solid var(--form-input-border-color);
  border-radius: var(--form-input-border-radius);
  /* Set a custom size for inputs in a limited form*/
}
.tui-formInput[type="search"] {
  border-radius: var(--form-input-border-radius);
  -webkit-appearance: none;
  appearance: none;
}
.tui-formInput--charLength-2 {
  max-width: calc(2 * var(--form-input-font-size));
}
.tui-formInput--charLength-3 {
  max-width: calc(3 * var(--form-input-font-size));
}
.tui-formInput--charLength-4 {
  max-width: calc(4 * var(--form-input-font-size));
}
.tui-formInput--charLength-5 {
  max-width: calc(5 * var(--form-input-font-size));
}
.tui-formInput--charLength-10 {
  max-width: calc(10 * var(--form-input-font-size));
}
.tui-formInput--charLength-15 {
  max-width: calc(15 * var(--form-input-font-size));
}
.tui-formInput--charLength-20 {
  max-width: calc(20 * var(--form-input-font-size));
}
.tui-formInput--charLength-25 {
  max-width: calc(25 * var(--form-input-font-size));
}
.tui-formInput--charLength-30 {
  max-width: calc(30 * var(--form-input-font-size));
}
.tui-formInput--charLength-50 {
  max-width: calc(50 * var(--form-input-font-size));
}
.tui-formInput--charLength-75 {
  max-width: calc(75 * var(--form-input-font-size));
}
.tui-formInput--charLength-100 {
  max-width: calc(100 * var(--form-input-font-size));
}
.tui-form--inputWidth-limited .tui-formInput:not(.tui-input--customSize) {
  max-width: var(--form-input-limited-width);
}
.tui-form--inputWidth-limited .tui-inputSet--split .tui-formInput:not(.tui-input--customSize) {
  max-width: none;
}
.tui-formInput::placeholder {
  color: var(--form-input-text-placeholder-color);
}
.tui-contextInvalid .tui-formInput {
  border-color: var(--form-input-border-color-invalid);
  box-shadow: var(--form-input-shadow-invalid);
}
.tui-formInput--size-large {
  height: var(--form-input-height-large);
  /* prettier-ignore */
  padding: calc((var(--form-input-height-large) - 1em - (var(--form-input-border-size) * 2)) / 2);
  font-size: var(--form-input-font-size-lg);
}
.tui-formInput:focus {
  background: var(--form-input-bg-color-focus);
  border: var(--form-input-border-size) solid var(--form-input-border-color-focus);
  outline: none;
  box-shadow: var(--form-input-shadow-focus);
  outline: 2px solid var(--color-state-focus);
  outline-offset: var(--focus-outline-offset);
}
.tui-contextInvalid .tui-formInput:focus {
  background: var(--form-input-bg-color-invalid-focus);
  border-color: var(--form-input-border-color-invalid);
  outline-color: var(--form-input-border-color-invalid);
  box-shadow: var(--form-input-shadow-invalid-focus);
}
.tui-formInput--preIcon {
  padding-left: var(--gap-8);
}
.tui-formInput--postIcon {
  padding-right: var(--gap-8);
}
.tui-formInput[readonly] {
  color: var(--form-input-text-color);
  background: var(--form-input-bg-color);
  border-color: var(--form-input-border-color);
}
.tui-formInput[readonly]::placeholder {
  color: var(--form-input-text-placeholder-color);
}
.tui-formInput[disabled] {
  color: var(--form-input-text-color-disabled);
  background: var(--form-input-bg-color-disabled);
  border-color: var(--form-input-border-color-disabled);
}
.tui-formInput[disabled]::placeholder {
  color: var(--form-input-text-color-disabled);
}
.tui-formInput--transparent, .tui-formInput--transparent:focus, .tui-formInput--transparent:focus-visible, .tui-formInput--transparent[readonly], .tui-formInput--transparent[disabled], .tui-contextInvalid .tui-formInput--transparent, .tui-contextInvalid .tui-formInput--transparent:focus {
  background-color: transparent;
  border: none;
  border-radius: 0;
  outline: none;
  box-shadow: none;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/InputColor.vue?vue&type=style&index=0&id=703bb575&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-inputColor {
  position: relative;
  /* Set a custom size for inputs in a limited form*/
  /* visually hide the colour Input control*/
  /* quite acute box model and positioning values to make sure they scale with*/
  /* associated text Input values*/
}
.tui-inputColor--charLength-2 {
  max-width: calc(2 * var(--form-input-font-size));
}
.tui-inputColor--charLength-3 {
  max-width: calc(3 * var(--form-input-font-size));
}
.tui-inputColor--charLength-4 {
  max-width: calc(4 * var(--form-input-font-size));
}
.tui-inputColor--charLength-5 {
  max-width: calc(5 * var(--form-input-font-size));
}
.tui-inputColor--charLength-10 {
  max-width: calc(10 * var(--form-input-font-size));
}
.tui-inputColor--charLength-15 {
  max-width: calc(15 * var(--form-input-font-size));
}
.tui-inputColor--charLength-20 {
  max-width: calc(20 * var(--form-input-font-size));
}
.tui-inputColor--charLength-25 {
  max-width: calc(25 * var(--form-input-font-size));
}
.tui-inputColor--charLength-30 {
  max-width: calc(30 * var(--form-input-font-size));
}
.tui-inputColor--charLength-50 {
  max-width: calc(50 * var(--form-input-font-size));
}
.tui-inputColor--charLength-75 {
  max-width: calc(75 * var(--form-input-font-size));
}
.tui-inputColor--charLength-100 {
  max-width: calc(100 * var(--form-input-font-size));
}
.tui-form--inputWidth-limited .tui-inputColor:not(.tui-input--customSize) {
  max-width: var(--form-input-limited-width);
}
.tui-form--inputWidth-limited .tui-inputSet--split .tui-inputColor:not(.tui-input--customSize) {
  max-width: none;
}
.tui-inputColor .tui-inputColor__picker[type="color"] {
  position: absolute;
  width: calc(var(--gap-8) + var(--gap-2));
  opacity: 0;
}
.tui-inputColor .tui-inputColor__picker[type="color"][disabled] {
  cursor: not-allowed;
}
.tui-inputColor__colorBlock {
  position: absolute;
  /* prettier-ignore*/
  top: calc(0.25rem + var(--form-input-border-size));
  left: calc(0.25rem + var(--form-input-border-size));
  width: var(--gap-8);
  /* prettier-ignore*/
  height: calc(100% - 0.5rem - var(--form-input-border-size) * 2);
  border-radius: var(--border-radius-small);
}
.tui-inputColor__colorBlock--disabled {
  cursor: not-allowed;
}
.tui-inputColor .tui-inputColor__input[type="text"] {
  padding-left: calc(var(--gap-8) + 0.5rem + var(
          --form-input-border-size
        ) + var(--gap-1));
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/InputCurrency.vue?vue&type=style&index=0&id=7b181aef&lang=scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-formInputCurrency {
  display: flex;
  flex-grow: 1;
  align-items: center;
  width: 100%;
  min-width: 0;
  /* Set a custom size for inputs in a limited form*/
}
.tui-formInputCurrency--charLength-2 {
  max-width: calc(2 * var(--form-input-font-size));
}
.tui-formInputCurrency--charLength-3 {
  max-width: calc(3 * var(--form-input-font-size));
}
.tui-formInputCurrency--charLength-4 {
  max-width: calc(4 * var(--form-input-font-size));
}
.tui-formInputCurrency--charLength-5 {
  max-width: calc(5 * var(--form-input-font-size));
}
.tui-formInputCurrency--charLength-10 {
  max-width: calc(10 * var(--form-input-font-size));
}
.tui-formInputCurrency--charLength-15 {
  max-width: calc(15 * var(--form-input-font-size));
}
.tui-formInputCurrency--charLength-20 {
  max-width: calc(20 * var(--form-input-font-size));
}
.tui-formInputCurrency--charLength-25 {
  max-width: calc(25 * var(--form-input-font-size));
}
.tui-formInputCurrency--charLength-30 {
  max-width: calc(30 * var(--form-input-font-size));
}
.tui-formInputCurrency--charLength-50 {
  max-width: calc(50 * var(--form-input-font-size));
}
.tui-formInputCurrency--charLength-75 {
  max-width: calc(75 * var(--form-input-font-size));
}
.tui-formInputCurrency--charLength-100 {
  max-width: calc(100 * var(--form-input-font-size));
}
.tui-form--inputWidth-limited .tui-formInputCurrency:not(.tui-input--customSize) {
  max-width: var(--form-input-limited-width);
}
.tui-form--inputWidth-limited .tui-inputSet--split .tui-formInputCurrency:not(.tui-input--customSize) {
  max-width: none;
}
.tui-formInputCurrency__symbol {
  font-weight: var(--label-weight);
  font-size: var(--form-input-font-size);
}
.tui-formInputCurrency__symbol:first-child {
  margin-right: var(--gap-1);
}
.tui-formInputCurrency__symbol:last-child {
  margin-left: var(--gap-1);
}
.tui-formInputCurrency--size-large .tui-formInputCurrency__symbol {
  font-size: var(--form-input-font-size-lg);
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/InputGroup.vue?vue&type=style&index=0&id=bc76e2de&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-inputGroup {
  display: flex;
  flex-direction: row;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: var(--form-input-height);
  color: var(--form-input-text-color);
  font-size: var(--form-input-font-size);
  line-height: 1;
  background: var(--form-input-bg-color);
  border: var(--form-input-border-size) solid var(--form-input-border-color);
  border-radius: var(--form-input-border-radius);
  /* Set a custom size for inputs in a limited form*/
}
.tui-inputGroup--charLength-2 {
  max-width: calc(2 * var(--form-input-font-size));
}
.tui-inputGroup--charLength-3 {
  max-width: calc(3 * var(--form-input-font-size));
}
.tui-inputGroup--charLength-4 {
  max-width: calc(4 * var(--form-input-font-size));
}
.tui-inputGroup--charLength-5 {
  max-width: calc(5 * var(--form-input-font-size));
}
.tui-inputGroup--charLength-10 {
  max-width: calc(10 * var(--form-input-font-size));
}
.tui-inputGroup--charLength-15 {
  max-width: calc(15 * var(--form-input-font-size));
}
.tui-inputGroup--charLength-20 {
  max-width: calc(20 * var(--form-input-font-size));
}
.tui-inputGroup--charLength-25 {
  max-width: calc(25 * var(--form-input-font-size));
}
.tui-inputGroup--charLength-30 {
  max-width: calc(30 * var(--form-input-font-size));
}
.tui-inputGroup--charLength-50 {
  max-width: calc(50 * var(--form-input-font-size));
}
.tui-inputGroup--charLength-75 {
  max-width: calc(75 * var(--form-input-font-size));
}
.tui-inputGroup--charLength-100 {
  max-width: calc(100 * var(--form-input-font-size));
}
.tui-form--inputWidth-limited .tui-inputGroup:not(.tui-input--customSize) {
  max-width: var(--form-input-limited-width);
}
.tui-form--inputWidth-limited .tui-inputSet--split .tui-inputGroup:not(.tui-input--customSize) {
  max-width: none;
}
.tui-contextInvalid .tui-inputGroup {
  border-color: var(--form-input-border-color-invalid);
  box-shadow: var(--form-input-shadow-invalid);
}
.tui-inputGroup--hasFocus {
  background: var(--form-input-bg-color-focus);
  border: var(--form-input-border-size) solid;
  border-color: var(--form-input-border-color-focus);
  box-shadow: var(--form-input-shadow-focus);
  outline: 2px solid var(--color-state-focus);
  outline-offset: var(--focus-outline-offset);
}
.tui-contextInvalid .tui-inputGroup--hasFocus {
  background: var(--form-input-bg-color-invalid-focus);
  border-color: var(--form-input-border-color-invalid);
  outline-color: var(--form-input-border-color-invalid);
  box-shadow: var(--form-input-shadow-invalid-focus);
}
.tui-inputGroup--disabled {
  color: var(--form-input-text-color-disabled);
  background: var(--form-input-bg-color-disabled);
  border-color: var(--form-input-border-color-disabled);
}
.tui-inputGroup--disabled::placeholder {
  color: var(--form-input-text-color-disabled);
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/InputGroupButton.vue?vue&type=style&index=0&id=3ea5ebba&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-inputGroupButton {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  padding: 0 var(--gap-2);
  color: var(--color-state);
  font-size: var(--form-input-font-size);
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
}
.tui-inputGroupButton:focus-visible {
  color: var(--color-state-focus);
  outline: 2px solid var(--color-state-focus);
  outline-offset: var(--focus-outline-offset);
  outline-offset: calc(var(--form-input-border-size) + var(--focus-outline-offset));
}
.tui-inputGroupButton:hover {
  color: var(--color-state-hover);
}
.tui-inputGroupButton:active {
  color: var(--color-state-active);
}
.tui-inputGroupButton[disabled] {
  color: var(--color-state-disabled);
  cursor: default;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/InputGroupInput.vue?vue&type=style&index=0&id=c46e262e&lang=scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* Reset*/
.tui-inputGroupInput, input[type].tui-inputGroupInput {
  display: inline-block;
  width: auto;
  max-width: none;
  height: auto;
  max-height: none;
  margin: 0;
  padding: 1px;
  color: black;
  font-size: inherit;
  line-height: inherit;
  letter-spacing: normal;
  text-align: start;
  text-transform: none;
  text-indent: 0;
  text-shadow: none;
  word-spacing: normal;
  background-color: white;
  border-color: #dadada;
  border-style: inset;
  border-width: 2px;
  border-radius: 0;
  border-image-source: none;
  border-image-slice: 100%;
  border-image-width: 1;
  border-image-outset: 0;
  border-image-repeat: stretch;
  border-spacing: 0;
  box-shadow: none;
  cursor: text;
  transition-delay: 0s;
  transition-timing-function: ease;
  transition-duration: 0s;
  transition-property: all;
  text-rendering: auto;
}
.tui-inputGroupInput[disabled], input[type].tui-inputGroupInput[disabled] {
  color: #3d444b;
  background: #dadada;
  cursor: default;
}
.tui-inputGroupInput:focus, input[type].tui-inputGroupInput:focus {
  border-color: #dadada;
  outline-width: 3px;
  outline-style: auto;
  outline-color: Highlight;
  outline-color: -webkit-focus-ring-color;
  outline-offset: -2px;
  box-shadow: none;
  -moz-user-focus: normal;
}
.tui-inputGroupInput::placeholder, input[type].tui-inputGroupInput::placeholder {
  color: #a9a9a9;
  opacity: 1;
}
.tui-inputGroupInput, input[type].tui-inputGroupInput {
  display: block;
  flex-grow: 1;
  box-sizing: border-box;
  min-width: 0;
  padding: 0 var(--gap-2);
  color: var(--form-input-text-color);
  font-size: var(--form-input-font-size);
  line-height: 1;
  background: transparent;
  border: none;
}
.tui-inputGroupInput::placeholder, input[type].tui-inputGroupInput::placeholder {
  color: var(--form-input-text-placeholder-color);
}
.tui-inputGroupInput:focus, input[type].tui-inputGroupInput:focus {
  background-color: transparent;
  border: none;
  outline: none;
  box-shadow: none;
}
.tui-inputGroupInput[disabled], input[type].tui-inputGroupInput[disabled] {
  color: var(--form-input-text-color-disabled);
  background: transparent;
}
.tui-inputGroupInput[disabled]::placeholder, input[type].tui-inputGroupInput[disabled]::placeholder {
  color: var(--form-input-text-color-disabled);
}
.tui-inputGroupInput[readonly], input[type].tui-inputGroupInput[readonly] {
  background: transparent;
}
.tui-inputGroupInput--monospaceFont, input[type].tui-inputGroupInput--monospaceFont {
  font-family: var(--font-family-monospace);
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/InputSet.vue?vue&type=style&index=0&id=79f8a174&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-inputSet {
  display: flex;
  flex: 1;
  gap: var(--input-set-spacing);
  /* Set a custom size for inputs in a limited form*/
  /* need to specify .tui-formInput here too for specificity reasons*/
  /* need to specify .tui-formInput here too for specificity reasons*/
  /* need to specify .tui-formInput here too for specificity reasons*/
  /* need to specify .tui-formInput here too for specificity reasons*/
  /* need to specify .tui-formInput here too for specificity reasons*/
  /* need to specify .tui-formInput here too for specificity reasons*/
  /* need to specify .tui-formInput here too for specificity reasons*/
  /* need to specify .tui-formInput here too for specificity reasons*/
  /* need to specify .tui-formInput here too for specificity reasons*/
  /* need to specify .tui-formInput here too for specificity reasons*/
  /* need to specify .tui-formInput here too for specificity reasons*/
  /* need to specify .tui-formInput here too for specificity reasons*/
}
.tui-inputSet--charLength-2 {
  max-width: calc(2 * var(--form-input-font-size));
}
.tui-inputSet--charLength-3 {
  max-width: calc(3 * var(--form-input-font-size));
}
.tui-inputSet--charLength-4 {
  max-width: calc(4 * var(--form-input-font-size));
}
.tui-inputSet--charLength-5 {
  max-width: calc(5 * var(--form-input-font-size));
}
.tui-inputSet--charLength-10 {
  max-width: calc(10 * var(--form-input-font-size));
}
.tui-inputSet--charLength-15 {
  max-width: calc(15 * var(--form-input-font-size));
}
.tui-inputSet--charLength-20 {
  max-width: calc(20 * var(--form-input-font-size));
}
.tui-inputSet--charLength-25 {
  max-width: calc(25 * var(--form-input-font-size));
}
.tui-inputSet--charLength-30 {
  max-width: calc(30 * var(--form-input-font-size));
}
.tui-inputSet--charLength-50 {
  max-width: calc(50 * var(--form-input-font-size));
}
.tui-inputSet--charLength-75 {
  max-width: calc(75 * var(--form-input-font-size));
}
.tui-inputSet--charLength-100 {
  max-width: calc(100 * var(--form-input-font-size));
}
.tui-form--inputWidth-limited .tui-inputSet:not(.tui-input--customSize) {
  max-width: var(--form-input-limited-width);
}
.tui-form--inputWidth-limited .tui-inputSet--split .tui-inputSet:not(.tui-input--customSize) {
  max-width: none;
}
.tui-inputSet--v {
  flex-direction: column;
}
.tui-inputSet--h {
  flex-direction: row;
  flex-wrap: wrap;
}
.tui-inputSet > .tui-formLabel {
  padding: 0;
}
.tui-inputSet > {
  /* replaced input elements have their width set to 100% normally as*/
  /* `width: auto` doesn't fill the container like it does on divs*/
}
.tui-inputSet > input[type].tui-formInput, .tui-inputSet > .tui-formTextarea, .tui-inputSet > .tui-range, .tui-inputSet > .tui-select {
  width: auto;
}
.tui-inputSet--split > * {
  flex-basis: 0;
  flex-grow: 1;
  width: auto;
}
.tui-inputSet--stackBelow-2 > *, .tui-inputSet--stackBelow-2 > .tui-formInput {
  /* This triggers the children to switch to being vertically stacked below a*/
  /* certain width.*/
  /* It works like this:*/
  /* Above the specified width, (width - 100%) evaluates to a large*/
  /* negative flex basis, and is therefore ignored.*/
  /* Below the specified width, (width - 100%) evaluates to a large*/
  /* positve flex basis, and forces each item to take up its own line.*/
  /* Magic!*/
  /* prettier-ignore*/
  flex-basis: calc((calc(2 * var(--form-input-font-size)) - 100%) * 999);
}
.tui-inputSet--stackBelow-3 > *, .tui-inputSet--stackBelow-3 > .tui-formInput {
  /* This triggers the children to switch to being vertically stacked below a*/
  /* certain width.*/
  /* It works like this:*/
  /* Above the specified width, (width - 100%) evaluates to a large*/
  /* negative flex basis, and is therefore ignored.*/
  /* Below the specified width, (width - 100%) evaluates to a large*/
  /* positve flex basis, and forces each item to take up its own line.*/
  /* Magic!*/
  /* prettier-ignore*/
  flex-basis: calc((calc(3 * var(--form-input-font-size)) - 100%) * 999);
}
.tui-inputSet--stackBelow-4 > *, .tui-inputSet--stackBelow-4 > .tui-formInput {
  /* This triggers the children to switch to being vertically stacked below a*/
  /* certain width.*/
  /* It works like this:*/
  /* Above the specified width, (width - 100%) evaluates to a large*/
  /* negative flex basis, and is therefore ignored.*/
  /* Below the specified width, (width - 100%) evaluates to a large*/
  /* positve flex basis, and forces each item to take up its own line.*/
  /* Magic!*/
  /* prettier-ignore*/
  flex-basis: calc((calc(4 * var(--form-input-font-size)) - 100%) * 999);
}
.tui-inputSet--stackBelow-5 > *, .tui-inputSet--stackBelow-5 > .tui-formInput {
  /* This triggers the children to switch to being vertically stacked below a*/
  /* certain width.*/
  /* It works like this:*/
  /* Above the specified width, (width - 100%) evaluates to a large*/
  /* negative flex basis, and is therefore ignored.*/
  /* Below the specified width, (width - 100%) evaluates to a large*/
  /* positve flex basis, and forces each item to take up its own line.*/
  /* Magic!*/
  /* prettier-ignore*/
  flex-basis: calc((calc(5 * var(--form-input-font-size)) - 100%) * 999);
}
.tui-inputSet--stackBelow-10 > *, .tui-inputSet--stackBelow-10 > .tui-formInput {
  /* This triggers the children to switch to being vertically stacked below a*/
  /* certain width.*/
  /* It works like this:*/
  /* Above the specified width, (width - 100%) evaluates to a large*/
  /* negative flex basis, and is therefore ignored.*/
  /* Below the specified width, (width - 100%) evaluates to a large*/
  /* positve flex basis, and forces each item to take up its own line.*/
  /* Magic!*/
  /* prettier-ignore*/
  flex-basis: calc((calc(10 * var(--form-input-font-size)) - 100%) * 999);
}
.tui-inputSet--stackBelow-15 > *, .tui-inputSet--stackBelow-15 > .tui-formInput {
  /* This triggers the children to switch to being vertically stacked below a*/
  /* certain width.*/
  /* It works like this:*/
  /* Above the specified width, (width - 100%) evaluates to a large*/
  /* negative flex basis, and is therefore ignored.*/
  /* Below the specified width, (width - 100%) evaluates to a large*/
  /* positve flex basis, and forces each item to take up its own line.*/
  /* Magic!*/
  /* prettier-ignore*/
  flex-basis: calc((calc(15 * var(--form-input-font-size)) - 100%) * 999);
}
.tui-inputSet--stackBelow-20 > *, .tui-inputSet--stackBelow-20 > .tui-formInput {
  /* This triggers the children to switch to being vertically stacked below a*/
  /* certain width.*/
  /* It works like this:*/
  /* Above the specified width, (width - 100%) evaluates to a large*/
  /* negative flex basis, and is therefore ignored.*/
  /* Below the specified width, (width - 100%) evaluates to a large*/
  /* positve flex basis, and forces each item to take up its own line.*/
  /* Magic!*/
  /* prettier-ignore*/
  flex-basis: calc((calc(20 * var(--form-input-font-size)) - 100%) * 999);
}
.tui-inputSet--stackBelow-25 > *, .tui-inputSet--stackBelow-25 > .tui-formInput {
  /* This triggers the children to switch to being vertically stacked below a*/
  /* certain width.*/
  /* It works like this:*/
  /* Above the specified width, (width - 100%) evaluates to a large*/
  /* negative flex basis, and is therefore ignored.*/
  /* Below the specified width, (width - 100%) evaluates to a large*/
  /* positve flex basis, and forces each item to take up its own line.*/
  /* Magic!*/
  /* prettier-ignore*/
  flex-basis: calc((calc(25 * var(--form-input-font-size)) - 100%) * 999);
}
.tui-inputSet--stackBelow-30 > *, .tui-inputSet--stackBelow-30 > .tui-formInput {
  /* This triggers the children to switch to being vertically stacked below a*/
  /* certain width.*/
  /* It works like this:*/
  /* Above the specified width, (width - 100%) evaluates to a large*/
  /* negative flex basis, and is therefore ignored.*/
  /* Below the specified width, (width - 100%) evaluates to a large*/
  /* positve flex basis, and forces each item to take up its own line.*/
  /* Magic!*/
  /* prettier-ignore*/
  flex-basis: calc((calc(30 * var(--form-input-font-size)) - 100%) * 999);
}
.tui-inputSet--stackBelow-50 > *, .tui-inputSet--stackBelow-50 > .tui-formInput {
  /* This triggers the children to switch to being vertically stacked below a*/
  /* certain width.*/
  /* It works like this:*/
  /* Above the specified width, (width - 100%) evaluates to a large*/
  /* negative flex basis, and is therefore ignored.*/
  /* Below the specified width, (width - 100%) evaluates to a large*/
  /* positve flex basis, and forces each item to take up its own line.*/
  /* Magic!*/
  /* prettier-ignore*/
  flex-basis: calc((calc(50 * var(--form-input-font-size)) - 100%) * 999);
}
.tui-inputSet--stackBelow-75 > *, .tui-inputSet--stackBelow-75 > .tui-formInput {
  /* This triggers the children to switch to being vertically stacked below a*/
  /* certain width.*/
  /* It works like this:*/
  /* Above the specified width, (width - 100%) evaluates to a large*/
  /* negative flex basis, and is therefore ignored.*/
  /* Below the specified width, (width - 100%) evaluates to a large*/
  /* positve flex basis, and forces each item to take up its own line.*/
  /* Magic!*/
  /* prettier-ignore*/
  flex-basis: calc((calc(75 * var(--form-input-font-size)) - 100%) * 999);
}
.tui-inputSet--stackBelow-100 > *, .tui-inputSet--stackBelow-100 > .tui-formInput {
  /* This triggers the children to switch to being vertically stacked below a*/
  /* certain width.*/
  /* It works like this:*/
  /* Above the specified width, (width - 100%) evaluates to a large*/
  /* negative flex basis, and is therefore ignored.*/
  /* Below the specified width, (width - 100%) evaluates to a large*/
  /* positve flex basis, and forces each item to take up its own line.*/
  /* Magic!*/
  /* prettier-ignore*/
  flex-basis: calc((calc(100 * var(--form-input-font-size)) - 100%) * 999);
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/InputSetCol.vue?vue&type=style&index=0&id=36c75f9c&lang=scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-inputSetCol {
  flex-basis: 0;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/InputSizedText.vue?vue&type=style&index=0&id=043dca3c&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-formInputSizedText {
  padding: calc((var(--form-input-height) - var(--form-input-line-height)) / 2) 0;
  line-height: var(--form-input-line-height);
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/Label.vue?vue&type=style&index=0&id=686bcf68&lang=scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-formLabel {
  font-weight: var(--label-weight);
  font-size: var(--font-body-size);
  font-family: var(--font-body-family);
  line-height: var(--font-body-line-height);
  min-width: 0;
  margin: 0;
  padding: 0 var(--gap-1) 0 0;
}
legend.tui-formLabel {
  width: auto;
  margin: 0;
  padding: 0 var(--gap-1) 0 0;
  color: inherit;
  border: none;
}
.tui-formLabel--inline {
  display: inline;
}
.tui-formLabel--hidden {
  /* The use of '!important' here is an exception and should not be replicated else where */
  /* stylelint-disable declaration-no-important */
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  /* stylelint-enable */
}
.tui-formLabel--subfield {
  font-weight: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
  color: var(--color-neutral-6);
}
.tui-formLabel__required {
  color: var(--color-prompt-alert);
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/NotepadLines.vue?vue&type=style&index=0&id=18209c5a&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-notepadLines {
  /* Set a custom size for inputs in a limited form*/
}
.tui-notepadLines--charLength-2 {
  max-width: calc(2 * var(--form-input-font-size));
}
.tui-notepadLines--charLength-3 {
  max-width: calc(3 * var(--form-input-font-size));
}
.tui-notepadLines--charLength-4 {
  max-width: calc(4 * var(--form-input-font-size));
}
.tui-notepadLines--charLength-5 {
  max-width: calc(5 * var(--form-input-font-size));
}
.tui-notepadLines--charLength-10 {
  max-width: calc(10 * var(--form-input-font-size));
}
.tui-notepadLines--charLength-15 {
  max-width: calc(15 * var(--form-input-font-size));
}
.tui-notepadLines--charLength-20 {
  max-width: calc(20 * var(--form-input-font-size));
}
.tui-notepadLines--charLength-25 {
  max-width: calc(25 * var(--form-input-font-size));
}
.tui-notepadLines--charLength-30 {
  max-width: calc(30 * var(--form-input-font-size));
}
.tui-notepadLines--charLength-50 {
  max-width: calc(50 * var(--form-input-font-size));
}
.tui-notepadLines--charLength-75 {
  max-width: calc(75 * var(--form-input-font-size));
}
.tui-notepadLines--charLength-100 {
  max-width: calc(100 * var(--form-input-font-size));
}
.tui-form--inputWidth-limited .tui-notepadLines:not(.tui-input--customSize) {
  max-width: var(--form-input-limited-width);
}
.tui-form--inputWidth-limited .tui-inputSet--split .tui-notepadLines:not(.tui-input--customSize) {
  max-width: none;
}
.tui-notepadLines__line {
  height: var(--form-notepad-line-height);
  border-bottom: var(--form-notepad-line-border);
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/Radio.vue?vue&type=style&index=0&id=52d088ef&lang=scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************/
:root {
  /* Size of radio circle*/
  --form-radio-size: calc(var(--font-size-base) / 16 * 16);
  /* Size of radio inner dot*/
  --form-radio-dot-size: calc(var(--form-radio-size) / 2);
  /* Offset to center dot*/
  --radio-dot-offset: calc(var(--form-radio-size) / 4);
}
.tui-radio {
  position: relative;
  display: inline-flex;
}
.tui-radio__input {
  position: absolute;
  opacity: 0;
}
.tui-radio__label {
  position: relative;
  margin: 0;
  padding-left: var(--radio-label-offset);
  font-weight: normal;
  font-size: var(--form-input-font-size);
  line-height: var(--form-input-line-height);
}
.tui-radio__label::before {
  position: absolute;
  top: calc(50% - var(--form-radio-size) / 2);
  left: 0;
  display: block;
  width: var(--form-radio-size);
  height: var(--form-radio-size);
  background: var(--form-radio-bg-color);
  border: var(--form-input-border-size) solid;
  border-color: var(--form-radio-border-color);
  border-radius: 50%;
  transition: border var(--transition-form-function) var(--transition-form-duration), box-shadow var(--transition-form-function) var(--transition-form-duration);
  content: "";
  pointer-events: none;
}
.tui-contextInvalid .tui-radio__label::before {
  border-color: var(--form-input-border-color-invalid);
  box-shadow: var(--shadow-none), var(--form-input-shadow-invalid);
}
.tui-radio__input:disabled ~ .tui-radio__label {
  color: var(--form-input-text-color-disabled);
}
.tui-radio__input:hover ~ .tui-radio__label::before {
  background: var(--form-radio-bg-color-hover);
}
.tui-radio__input:focus-visible ~ .tui-radio__label::before {
  background: var(--form-radio-bg-color-focus);
  outline: 2px solid var(--color-state-focus);
  outline-offset: var(--focus-outline-offset);
}
.tui-contextInvalid .tui-radio__input:focus-visible ~ .tui-radio__label::before {
  outline-color: var(--form-input-border-color-invalid);
}
.tui-radio__input:hover ~ .tui-radio__label::before, .tui-radio__input:focus-visible ~ .tui-radio__label::before {
  border: var(--form-input-border-size) solid;
  border-color: var(--form-radio-border-color-focus);
  box-shadow: var(--form-input-shadow-focus);
}
.tui-contextInvalid .tui-radio__input:hover ~ .tui-radio__label::before, .tui-contextInvalid .tui-radio__input:focus-visible ~ .tui-radio__label::before {
  border-color: var(--form-input-border-color-invalid);
  box-shadow: var(--shadow-none), var(--form-input-shadow-invalid-focus);
}
.tui-radio__input:active:focus ~ .tui-radio__label::before, .tui-radio__input:active:hover ~ .tui-radio__label::before, .tui-radio__input:active ~ .tui-radio__label::before {
  background: var(--form-radio-bg-color-active);
  border: var(--form-input-border-size) solid;
  border-color: var(--form-radio-border-color-active);
  box-shadow: var(--form-input-shadow-focus);
}
.tui-contextInvalid .tui-radio__input:active:focus ~ .tui-radio__label::before, .tui-contextInvalid .tui-radio__input:active:hover ~ .tui-radio__label::before, .tui-contextInvalid .tui-radio__input:active ~ .tui-radio__label::before {
  border-color: var(--form-input-border-color-invalid);
  box-shadow: var(--shadow-none), var(--form-input-shadow-invalid-focus);
}
.tui-radio__input:disabled:active ~ .tui-radio__label::before, .tui-radio__input:disabled ~ .tui-radio__label::before {
  background: var(--form-radio-bg-color-disabled);
  border: var(--form-input-border-size) solid;
  border-color: var(--form-radio-border-color-disabled);
  box-shadow: none;
}
.tui-radio__input ~ .tui-radio__label::after {
  position: absolute;
  top: calc(50% - var(--form-radio-dot-size) / 2);
  left: var(--radio-dot-offset);
  display: block;
  width: var(--form-radio-dot-size);
  height: var(--form-radio-dot-size);
  background-color: var(--form-radio-dot-color);
  border-radius: 50%;
  opacity: 0;
  transition: opacity var(--transition-form-function) var(--transition-form-duration);
  content: "";
  pointer-events: none;
}
.tui-radio__input:disabled ~ .tui-radio__label::after {
  background-color: var(--form-input-text-color-disabled);
}
.tui-radio__input:checked ~ .tui-radio__label::after {
  opacity: 1;
}
@media print {
  /* IE11 & Edge support*/
  .tui-radio__input ~ .tui-radio__label::after {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .ie .tui-radio__input ~ .tui-radio__label::after, .msedge .tui-radio__input ~ .tui-radio__label::after {
    border: 4px solid var(--form-radio-dot-color);
  }
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/RadioDateRangeInput.vue?vue&type=style&index=0&id=2d44f22a&lang=scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-radioDateRangeInput {
  display: flex;
}
.tui-radioDateRangeInput > * + * {
  margin-left: var(--gap-2);
}
.tui-radioDateRangeInput__number {
  display: flex;
  width: 3.75rem;
}
.tui-radioDateRangeInput__type {
  display: flex;
  width: 7.5rem;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/RadioGroup.vue?vue&type=style&index=0&id=596df980&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-radioGroup {
  display: flex;
  flex-direction: column;
  gap: var(--gap-2) var(--gap-4);
  padding: calc((var(--form-input-height) - var(--form-input-line-height)) / 2) 0;
}
.tui-radioGroup--inputSizedOptions > * {
  align-items: center;
  min-height: var(--form-input-height);
}
.tui-radioGroup--noPaddingTop {
  padding-top: 0;
}
@media screen and (min-width: 768px) {
  .tui-radioGroup--horizontal {
    flex-direction: row;
    flex-wrap: wrap;
  }
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/RadioNumberInput.vue?vue&type=style&index=0&id=e7575d7c&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-radioNumberInput {
  display: flex;
  /* Use same indentation as radio for nicer wrapping*/
  margin-left: var(--radio-label-offset);
}
.tui-radioNumberInput__number {
  display: flex;
  width: 3.75rem;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/RadioWithInput.vue?vue&type=style&index=0&id=4032e2b6&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-radioWithInput {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
}
.tui-radioWithInput > * + * {
  /* Use same indentation as radio for nicer wrapping*/
  margin-left: var(--radio-label-offset);
}
.tui-radioWithInput__radio {
  margin: var(--gap-2) 0;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/Range.vue?vue&type=style&index=0&id=5fd83d31&lang=scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-range {
  flex: auto;
  flex-direction: column;
}
.tui-range__labels {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: var(--gap-1);
}
.tui-range__lowLabel, .tui-range__highLabel {
  font-weight: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
  flex-basis: 40%;
  color: var(--color-neutral-6);
}
.tui-range__lowLabel {
  text-align: left;
}
.tui-range__highLabel {
  text-align: right;
}
.tui-range__input {
  height: var(--form-range-height);
  padding: 0;
  outline: none;
  -webkit-appearance: none;
  /* Track styles */
  /* Thumb styles */
}
.tui-range__input:disabled {
  background-color: transparent;
}
.tui-range__input:focus-visible {
  outline: 2px solid var(--color-state-focus);
  outline-offset: var(--focus-outline-offset);
}
.tui-range__input::-moz-focus-outer {
  border: 0;
}
.tui-range__input::-webkit-slider-runnable-track {
  height: var(--form-range-track-height);
  background: var(--color-neutral-4);
  border-radius: var(--border-radius-small);
  cursor: pointer;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}
.tui-range__input:focus::-webkit-slider-runnable-track {
  background: var(--color-neutral-4);
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}
.tui-range__input::-moz-range-track {
  height: var(--form-range-track-height);
  background: var(--color-neutral-4);
  border-radius: var(--border-radius-small);
  cursor: pointer;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}
.tui-range__input::-ms-track {
  height: var(--form-range-track-height);
  background: var(--color-neutral-4);
  border-radius: var(--border-radius-small);
  cursor: pointer;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
  color: transparent;
  /* Remove default tick marks */
  background: transparent;
  /* Replace bg colour from the track with ms-fill-lower and ms-fill-upper */
  border-color: transparent;
  /* Thumb can not overlay track so we add invisible border */
}
.tui-range__input::-ms-fill-upper, .tui-range__input::-ms-fill-lower {
  background: var(--color-neutral-4);
  border-radius: var(--border-radius-small);
}
.tui-range__input:focus::-ms-fill-upper, .tui-range__input:focus::-ms-fill-lower {
  background: var(--color-neutral-4);
}
.tui-range__input::-webkit-slider-thumb {
  width: var(--form-range-thumb-size);
  height: var(--form-range-thumb-size);
  background: var(--color-neutral-5);
  border: none;
  border-radius: var(--form-range-thumb-border-radius);
  box-shadow: var(--form-range-thumb-shadow);
  cursor: pointer;
  margin-top: var(--form-range-thumb-margin-top);
  -webkit-appearance: none;
}
.tui-range__input::-moz-range-thumb {
  width: var(--form-range-thumb-size);
  height: var(--form-range-thumb-size);
  background: var(--color-neutral-5);
  border: none;
  border-radius: var(--form-range-thumb-border-radius);
  box-shadow: var(--form-range-thumb-shadow);
  cursor: pointer;
}
.tui-range__input::-ms-thumb {
  width: var(--form-range-thumb-size);
  height: var(--form-range-thumb-size);
  background: var(--color-neutral-5);
  border: none;
  border-radius: var(--form-range-thumb-border-radius);
  box-shadow: var(--form-range-thumb-shadow);
  cursor: pointer;
}
.tui-range__input.tui-range__input--selected::-webkit-slider-thumb {
  background: var(--color-state);
}
.tui-range__input.tui-range__input--selected::-moz-range-thumb {
  background: var(--color-state);
}
.tui-range__input.tui-range__input--selected::-ms-thumb {
  background: var(--color-state);
}
.tui-range__input.tui-range__input--noThumb::-webkit-slider-thumb {
  display: none;
}
.tui-range__input.tui-range__input--noThumb::-moz-range-thumb {
  /* Display none does not work.*/
  opacity: 0;
}
.tui-range__input.tui-range__input--noThumb::-ms-thumb {
  display: none;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/Repeater.vue?vue&type=style&index=0&id=5ac158c4&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-repeater {
  display: block;
  flex-grow: 1;
  width: 100%;
  min-width: 0;
}
.tui-repeater > * + * {
  margin-top: var(--gap-3);
}
.tui-repeater__row, .tui-repeater__headerRow {
  display: flex;
  align-items: flex-start;
}
.tui-repeater__headerRow + .tui-repeater__row {
  margin-top: var(--gap-2);
}
.tui-repeater__row + .tui-repeater__afterRow {
  margin-top: var(--gap-4);
}
.tui-repeater__afterRow + .tui-repeater__row {
  margin-top: var(--gap-8);
}
.tui-repeater__afterRow + .tui-repeater__headerRow {
  margin-top: var(--gap-4);
}
.tui-repeater--noSpacing > * {
  margin: 0;
}
.tui-repeater__headerRow .tui-repeater__delete {
  height: 1px;
  min-height: 1px;
  overflow: hidden;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/SearchBox.vue?vue&type=style&index=0&id=b0d57c12&lang=scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-searchBox {
  position: relative;
  display: flex;
  border-radius: var(--form-input-border-radius);
  isolation: isolate;
  /* contain z indexes*/
  /* So that the search button matches the format of the input that is next to it*/
}
.tui-searchBox__inputWrapper {
  position: relative;
  display: flex;
  flex-grow: 1;
  /* Set a custom size for inputs in a limited form*/
}
.tui-searchBox__inputWrapper--charLength-2 {
  max-width: calc(2 * var(--form-input-font-size));
}
.tui-searchBox__inputWrapper--charLength-3 {
  max-width: calc(3 * var(--form-input-font-size));
}
.tui-searchBox__inputWrapper--charLength-4 {
  max-width: calc(4 * var(--form-input-font-size));
}
.tui-searchBox__inputWrapper--charLength-5 {
  max-width: calc(5 * var(--form-input-font-size));
}
.tui-searchBox__inputWrapper--charLength-10 {
  max-width: calc(10 * var(--form-input-font-size));
}
.tui-searchBox__inputWrapper--charLength-15 {
  max-width: calc(15 * var(--form-input-font-size));
}
.tui-searchBox__inputWrapper--charLength-20 {
  max-width: calc(20 * var(--form-input-font-size));
}
.tui-searchBox__inputWrapper--charLength-25 {
  max-width: calc(25 * var(--form-input-font-size));
}
.tui-searchBox__inputWrapper--charLength-30 {
  max-width: calc(30 * var(--form-input-font-size));
}
.tui-searchBox__inputWrapper--charLength-50 {
  max-width: calc(50 * var(--form-input-font-size));
}
.tui-searchBox__inputWrapper--charLength-75 {
  max-width: calc(75 * var(--form-input-font-size));
}
.tui-searchBox__inputWrapper--charLength-100 {
  max-width: calc(100 * var(--form-input-font-size));
}
.tui-form--inputWidth-limited .tui-searchBox__inputWrapper:not(.tui-input--customSize) {
  max-width: var(--form-input-limited-width);
}
.tui-form--inputWidth-limited .tui-inputSet--split .tui-searchBox__inputWrapper:not(.tui-input--customSize) {
  max-width: none;
}
.tui-searchBox__search[type="search"] {
  border-radius: 0;
  border-top-left-radius: var(--form-input-border-radius);
  border-bottom-left-radius: var(--form-input-border-radius);
  /* disable the default clear (x) action in IE*/
}
.tui-searchBox__search[type="search"]:focus {
  z-index: 1;
}
.tui-searchBox__search[type="search"]::-ms-clear {
  display: none;
}
.tui-searchBox .tui-formLabel {
  margin-right: var(--gap-2);
}
.tui-searchBox__clearContainer {
  position: absolute;
  right: 0;
  height: 100%;
}
.tui-searchBox__removeIcon {
  color: var(--filter-search-clear-icon-color);
}
.tui-searchBox__button {
  margin-left: calc(var(--form-input-border-size) * -1);
  border-radius: 0;
  border-top-right-radius: var(--form-input-border-radius);
  border-bottom-right-radius: var(--form-input-border-radius);
}
.tui-searchBox__button:focus {
  z-index: 1;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/Select.vue?vue&type=style&index=0&id=b1686590&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************/
:root {
  --select-icon-size: var(--gap-1);
}
.tui-select {
  position: relative;
  display: flex;
  flex-grow: 1;
  width: 100%;
  min-width: 0;
  height: var(--form-input-height);
  border-radius: var(--form-input-border-radius);
  /* Set a custom size for inputs in a limited form*/
}
.tui-select--charLength-2 {
  max-width: calc(2 * var(--form-input-font-size));
}
.tui-select--charLength-3 {
  max-width: calc(3 * var(--form-input-font-size));
}
.tui-select--charLength-4 {
  max-width: calc(4 * var(--form-input-font-size));
}
.tui-select--charLength-5 {
  max-width: calc(5 * var(--form-input-font-size));
}
.tui-select--charLength-10 {
  max-width: calc(10 * var(--form-input-font-size));
}
.tui-select--charLength-15 {
  max-width: calc(15 * var(--form-input-font-size));
}
.tui-select--charLength-20 {
  max-width: calc(20 * var(--form-input-font-size));
}
.tui-select--charLength-25 {
  max-width: calc(25 * var(--form-input-font-size));
}
.tui-select--charLength-30 {
  max-width: calc(30 * var(--form-input-font-size));
}
.tui-select--charLength-50 {
  max-width: calc(50 * var(--form-input-font-size));
}
.tui-select--charLength-75 {
  max-width: calc(75 * var(--form-input-font-size));
}
.tui-select--charLength-100 {
  max-width: calc(100 * var(--form-input-font-size));
}
.tui-form--inputWidth-limited .tui-select:not(.tui-input--customSize) {
  max-width: var(--form-input-limited-width);
}
.tui-form--inputWidth-limited .tui-inputSet--split .tui-select:not(.tui-input--customSize) {
  max-width: none;
}
.tui-select::after {
  position: absolute;
  top: calc((var(--form-input-height) - var(--select-icon-size)) / 2);
  right: calc((var(--form-input-height) - var(--select-icon-size) * 2) / 2);
  display: block;
  width: 0;
  height: 0;
  border: var(--select-icon-size) solid transparent;
  border-top-color: var(--form-input-text-color);
  content: "";
  pointer-events: none;
}
.tui-select--disabled::after {
  border-top-color: var(--form-input-text-color-disabled);
}
.tui-select--multiple::after {
  display: none;
}
.tui-select--large {
  height: var(--form-input-height-large);
}
.tui-select--large::after {
  top: calc((var(--form-input-height-large) - var(--select-icon-size)) / 2);
  /* prettier-ignore*/
  right: calc((var(--form-input-height-large) - var(--select-icon-size) * 2) / 2);
}
.tui-select__input {
  flex-grow: 1;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  padding: 0 var(--gap-7) 0 var(--gap-3);
  color: var(--form-input-text-color);
  font-size: var(--form-input-font-size);
  background: var(--form-input-bg-color);
  border: var(--form-input-border-size) solid;
  border-color: var(--form-input-border-color);
  border-radius: var(--form-input-border-radius);
  -webkit-appearance: none;
  appearance: none;
  /* Drop select outline*/
  /* appearance: none; equivalent for IE*/
  /* prevent weird styling after selecting value*/
}
.tui-select__input[multiple] {
  height: auto;
}
.tui-select__input[disabled] {
  color: var(--form-input-text-color-disabled);
  background: var(--form-input-bg-color-disabled);
  border-color: var(--form-input-border-color-disabled);
}
.tui-select__input:focus {
  background: var(--form-input-bg-color-focus);
  border: var(--form-input-border-size) solid;
  border-color: var(--form-input-border-color-focus);
  box-shadow: var(--form-input-shadow-focus);
  outline: 2px solid var(--color-state-focus);
  outline-offset: var(--focus-outline-offset);
}
.tui-contextInvalid .tui-select__input:focus {
  background: var(--form-input-bg-color-invalid-focus);
  border-color: var(--form-input-border-color-invalid);
  outline-color: var(--form-input-border-color-invalid);
  box-shadow: var(--form-input-shadow-invalid-focus);
}
.tui-select__input:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 #000;
}
.tui-select__input::-ms-expand {
  display: none;
}
.tui-select__input::-ms-value {
  color: inherit;
  background-color: transparent;
}
.tui-contextInvalid .tui-select__input {
  border-color: var(--form-input-border-color-invalid);
  box-shadow: var(--form-input-shadow-invalid);
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/form/Textarea.vue?vue&type=style&index=0&id=51b6a776&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-formTextarea {
  display: block;
  flex-grow: 1;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  max-height: 100%;
  padding: calc((var(--form-input-height) - var(--form-input-line-height) - (var(--form-input-border-size) * 2)) / 2) var(--gap-3);
  overflow: auto;
  color: var(--form-input-text-color);
  font-size: var(--form-input-font-size);
  font-family: inherit;
  line-height: var(--form-input-line-height);
  border: var(--form-input-border-size) solid var(--form-input-border-color);
  border-radius: var(--form-input-border-radius);
  resize: none;
  /* Set a custom size for inputs in a limited form*/
}
.tui-formTextarea--charLength-2 {
  max-width: calc(2 * var(--form-input-font-size));
}
.tui-formTextarea--charLength-3 {
  max-width: calc(3 * var(--form-input-font-size));
}
.tui-formTextarea--charLength-4 {
  max-width: calc(4 * var(--form-input-font-size));
}
.tui-formTextarea--charLength-5 {
  max-width: calc(5 * var(--form-input-font-size));
}
.tui-formTextarea--charLength-10 {
  max-width: calc(10 * var(--form-input-font-size));
}
.tui-formTextarea--charLength-15 {
  max-width: calc(15 * var(--form-input-font-size));
}
.tui-formTextarea--charLength-20 {
  max-width: calc(20 * var(--form-input-font-size));
}
.tui-formTextarea--charLength-25 {
  max-width: calc(25 * var(--form-input-font-size));
}
.tui-formTextarea--charLength-30 {
  max-width: calc(30 * var(--form-input-font-size));
}
.tui-formTextarea--charLength-50 {
  max-width: calc(50 * var(--form-input-font-size));
}
.tui-formTextarea--charLength-75 {
  max-width: calc(75 * var(--form-input-font-size));
}
.tui-formTextarea--charLength-100 {
  max-width: calc(100 * var(--form-input-font-size));
}
.tui-form--inputWidth-limited .tui-formTextarea:not(.tui-input--customSize) {
  max-width: var(--form-input-limited-width);
}
.tui-form--inputWidth-limited .tui-inputSet--split .tui-formTextarea:not(.tui-input--customSize) {
  max-width: none;
}
.tui-formTextarea::placeholder {
  color: var(--form-input-text-placeholder-color);
}
.tui-contextInvalid .tui-formTextarea {
  border-color: var(--form-input-border-color-invalid);
  box-shadow: var(--form-input-shadow-invalid);
}
.tui-formTextarea:focus {
  background: var(--form-input-bg-color-focus);
  border: var(--form-input-border-size) solid var(--form-input-border-color-focus);
  box-shadow: var(--form-input-shadow-focus);
  outline: 2px solid var(--color-state-focus);
  outline-offset: var(--focus-outline-offset);
}
.tui-contextInvalid .tui-formTextarea:focus {
  background: var(--form-input-bg-color-invalid-focus);
  border-color: var(--form-input-border-color-invalid);
  outline-color: var(--form-input-border-color-invalid);
  box-shadow: var(--form-input-shadow-invalid-focus);
}
.tui-formTextarea[disabled] {
  color: var(--form-input-text-color-disabled);
  background: var(--form-input-bg-color-disabled);
  border-color: var(--form-input-border-color-disabled);
}
.tui-formTextarea[disabled]::placeholder {
  color: var(--form-input-text-color-disabled);
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/grid/Grid.vue?vue&type=style&index=0&id=105b8980&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************/
/* Grid styles*/
.tui-grid {
  display: flex;
  flex-grow: 1;
  /* in case nested inside a parent grid cell*/
  max-width: 100%;
  /* main Grid modifiers applied based on supplied prop values*/
  /* content-containing elements*/
  /* horizontal grid*/
  /* vertical grid*/
  /* all zero unit GridItems should not show any gutters or content*/
  /* switch to stacked display at an container-based pixel width breakpoint*/
  /* value (class is conditionally applied during Grid render())*/
}
.tui-grid--wrapped {
  flex-wrap: wrap;
}
.tui-grid-item {
  flex-grow: 0;
  /* by default we want item size to respect unit-based calculations*/
  flex-shrink: 1;
  /* by default we want to auto-adjust for gutters*/
  min-width: 0;
  /* allows flex items to shrink below their minimum content size*/
  margin: 0;
  padding: 0;
  /* Grid item modifiers based on supplied prop values*/
}
.tui-grid-item--grow {
  flex-grow: 1;
}
.tui-grid-item--no-shrink {
  flex-shrink: 0;
}
.tui-grid-item--overflow {
  overflow: auto;
}
.tui-grid--horizontal {
  flex-direction: row;
}
.tui-grid--horizontal-gap > .tui-grid-item {
  /* because we use transparent borders for gutters but don't want that*/
  /* counting as visible item width*/
  box-sizing: content-box;
  background-clip: padding-box;
  border-left-color: transparent;
  border-left-style: solid;
  /* `border-left-width` is set using inline styles via GridItem*/
}
.tui-grid--vertical {
  flex-direction: column;
}
.tui-grid--vertical-gap > .tui-grid-item {
  /* because we use transparent borders for gutters but don't want that*/
  /* counting as visible item width*/
  box-sizing: content-box;
  background-clip: padding-box;
  border-top-color: transparent;
  border-top-style: solid;
  /* `border-top-width` is set using inline styles via GridItem*/
}
.tui-grid--wrapped-gap .tui-grid-item--wrapped {
  border-top-color: transparent;
  border-top-style: solid;
}
.tui-grid--vertical .tui-grid-item--no-units, .tui-grid--horizontal .tui-grid-item--no-units {
  overflow: hidden;
}
.tui-grid--stacked {
  display: block;
}
.tui-grid--stacked > .tui-grid-item {
  flex-basis: auto;
}
.tui-grid--stacked-gap > .tui-grid-item {
  /* because we use transparent borders for gutters but don't want that*/
  /* counting as visible item width*/
  box-sizing: content-box;
  background-clip: padding-box;
  border-top-color: transparent;
  border-top-style: solid;
  /* `border-top-width` is set using inline styles via GridItem*/
}
.tui-grid--list {
  margin: 0;
  padding: 0;
  list-style-type: none;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/icons/Loading.vue?vue&type=style&index=0&id=0c872958&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-iconLoading {
  animation: tui-iconLoading-spin 1s steps(12, end) infinite;
}
@keyframes tui-iconLoading-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/icons/implementation/SvgIconWrap.vue?vue&type=style&index=0&id=123d075e&lang=scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-svgIcon {
  /* same as the bootstrap icons default css*/
  /* better alignment in most cases than vertical-align: middle*/
  vertical-align: text-bottom;
}
.tui-svgIcon--size-100 {
  font-size: calc(var(--icon-size-base) * 0.875);
}
.tui-svgIcon--size-200 {
  font-size: var(--icon-size-base);
}
.tui-svgIcon--size-300 {
  font-size: calc(var(--icon-size-base) * 1.25);
}
.tui-svgIcon--size-400 {
  font-size: calc(var(--icon-size-base) * 1.5);
}
.tui-svgIcon--size-500 {
  font-size: calc(var(--icon-size-base) * 1.75);
}
.tui-svgIcon--size-600 {
  font-size: calc(var(--icon-size-base) * 2);
}
.tui-svgIcon--size-700 {
  font-size: calc(var(--icon-size-base) * 2.375);
}
.tui-svgIcon--state-info {
  color: var(--color-prompt-info);
}
.tui-svgIcon--state-alert {
  color: var(--color-prompt-alert);
}
.tui-svgIcon--state-warning {
  color: var(--color-prompt-warning);
}
.tui-svgIcon--state-success {
  color: var(--color-prompt-success);
}
.tui-svgIcon--state-dimmed {
  color: var(--color-neutral-6);
}
.dir-rtl .tui-svgIcon--flipRtl {
  transform: scale(-1, 1);
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/images/ResponsiveImage.vue?vue&type=style&index=0&id=3d972422&lang=scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-responsiveImage {
  display: block;
  max-width: 100%;
  height: auto;
}
.tui-responsiveImage--grow {
  width: 100%;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/json_editor/nodes/AttachmentNodeCollection.vue?vue&type=style&index=0&id=48ac722a&lang=scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-attachmentNodeCollection {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(15.625rem, 100%), 1fr));
  gap: var(--gap-2);
  padding: var(--gap-1) 0;
  white-space: normal;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/json_editor/nodes/AudioBlock.vue?vue&type=style&index=0&id=c5f78602&lang=scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-audioBlock {
  margin: var(--gap-8) 0;
}
.tui-audioBlock__actionsWrapper {
  display: flex;
  justify-content: flex-end;
  margin-top: var(--gap-2);
}
.tui-audioBlock__viewTranscript {
  margin-right: auto;
}
.tui-audioBlock__transcriptContent {
  height: 37.5rem;
  white-space: pre-line;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/json_editor/nodes/Emoji.vue?vue&type=style&index=0&id=3bacc64e&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-emoji {
  display: inline-block;
  font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort;
  white-space: normal;
  text-decoration: none;
  font-variant-emoji: emoji;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/json_editor/nodes/Hashtag.vue?vue&type=style&index=0&id=6c18f2d4&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-hashtag {
  display: inline-block;
  white-space: normal;
}
.tui-hashtag__text {
  color: var(--color-state);
}
.tui-hashtag__text:hover {
  /* Hover state, for now we keep the same color.*/
  color: var(--color-state);
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/json_editor/nodes/ImageBlock.vue?vue&type=style&index=0&id=6c1d951a&lang=scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-imageBlock {
  margin: 0 0 var(--paragraph-gap) 0;
}
.tui-imageBlock--displaySize-large {
  /* IE11 does not support the responsive sizes, so specify a fixed fallback*/
  width: 100%;
  width: 100%;
}
.tui-imageBlock--displaySize-medium {
  /* IE11 does not support the responsive sizes, so specify a fixed fallback*/
  width: 66%;
  width: calc(max(min(calc(min(max(calc((69.375% + 91.875px) * 0.8), 240px), 80%)), 462px), 66%));
}
.tui-imageBlock--displaySize-small {
  /* IE11 does not support the responsive sizes, so specify a fixed fallback*/
  width: 33%;
  width: calc(max(min(calc(min(max(calc((40.5% + 178.5px) * 0.5), 150px), 50%)), 231px), 33%));
}
figure > .tui-imageBlock {
  margin-bottom: var(--gap-1);
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/json_editor/nodes/LinkBlock.vue?vue&type=style&index=0&id=37dca03b&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-linkBlock {
  position: relative;
  display: flex;
  max-width: 17.875rem;
  height: calc(4.75rem + 2px);
  font-size: calc(var(--font-size-base) / 16 * 13);
  line-height: 1.15;
  white-space: normal;
  border: 1px solid var(--card-border-color);
  border-radius: 4px;
  transition: box-shadow var(--transition-form-function) var(--transition-form-duration);
}
.tui-linkBlock:hover {
  box-shadow: var(--shadow-2);
}
.tui-linkBlock__image {
  flex-shrink: 0;
  order: 2;
  width: 3.75rem;
  height: 3.75rem;
  margin: var(--gap-2);
  background-position: center;
  background-size: cover;
  border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
}
.tui-linkBlock__image > img {
  width: 100%;
}
.tui-linkBlock__summary {
  flex-grow: 1;
  order: 1;
  padding: var(--gap-2);
  overflow: hidden;
}
.tui-linkBlock__site {
  margin-bottom: 0.1875rem;
  font-weight: bold;
  font-size: calc(var(--font-size-base) / 16 * 12);
  line-height: 1.15;
}
.tui-linkBlock__title {
  margin-bottom: 0.1875rem;
  color: var(--color-state);
  font-weight: bold;
}
.tui-linkBlock__description {
  /* show a max of 2 lines*/
  height: calc(calc(var(--font-size-base) / 16 * 13) * 2 * 1.15);
  overflow: hidden;
}
.tui-linkBlock__linkOnly {
  /* show a max of 4 lines*/
  height: calc(calc(var(--font-size-base) / 16 * 13) * 4 * 1.12);
  margin-top: 0.125rem;
  overflow: hidden;
  color: var(--color-state);
  font-weight: bold;
  font-size: calc(var(--font-size-base) / 16 * 13);
  line-height: 1.15;
}
.tui-linkBlock__overlayLink {
  position: absolute;
  inset: -1px;
  /* -1px to account for border*/
  border-radius: inherit;
}
.tui-linkBlock__overlayLink:focus {
  outline: 2px solid var(--color-state-focus);
  outline-offset: var(--focus-outline-offset);
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/json_editor/nodes/Mention.vue?vue&type=style&index=0&id=1d5fd41c&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-mention {
  display: inline-block;
  white-space: normal;
}
.tui-mention__displayName {
  color: var(--color-state);
}
.tui-mention__displayName:hover {
  /* Hover state, for now we keep the same color.*/
  color: var(--color-state);
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/json_editor/nodes/VideoBlock.vue?vue&type=style&index=0&id=bb02a40c&lang=scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-videoBlock {
  display: flex;
  width: 100%;
  max-width: var(--embedded-media-max-width);
  margin: var(--gap-8) 0;
}
.tui-videoBlock .video-js .vjs-control {
  white-space: nowrap;
}
/* Ensure the controls aren't incorrectly reversed in RTL*/
[dir="rtl"] .tui-videoBlock .video-js .vjs-progress-holder .vjs-play-progress, [dir="rtl"] .tui-videoBlock .video-js .vjs-progress-holder .vjs-load-progress, [dir="rtl"] .tui-videoBlock .video-js .vjs-progress-holder .vjs-load-progress div, [dir="rtl"] .tui-videoBlock .video-js .vjs-volume-level {
  /*!rtl:ignore*/
  right: auto;
  /*!rtl:ignore*/
  left: 0;
}
[dir="rtl"] .tui-videoBlock .video-js .vjs-play-progress:before, [dir="rtl"] .tui-videoBlock .video-js .vjs-slider-horizontal .vjs-volume-level:before {
  /*!rtl:ignore*/
  right: -0.5em;
  /*!rtl:ignore*/
  left: auto;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/layouts/LayoutOneColumn.vue?vue&type=style&index=0&id=bff3e3c6&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-layoutOneColumn {
  font-weight: var(--font-body-weight);
  font-size: var(--font-body-size);
  font-family: var(--font-body-family);
  line-height: var(--font-body-line-height);
  margin-top: var(--gap-2);
}
.tui-layoutOneColumn > * + * {
  margin-top: var(--gap-6);
}
.tui-layoutOneColumn__heading > * + * {
  margin-top: var(--gap-2);
}
.tui-layoutOneColumn__heading-sub {
  margin-top: var(--gap-1);
}
.tui-layoutOneColumn--flush {
  margin-top: var(--gap-12);
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/layouts/PageBackLink.vue?vue&type=style&index=0&id=57e08d75&lang=scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-pageBackLink {
  display: inline-flex;
  align-items: center;
}
.tui-pageBackLink__icon {
  margin-right: var(--gap-1);
  /* Negative Offset to left align arrow with page content*/
  margin-left: -0.19em;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/layouts/PageHeading.vue?vue&type=style&index=0&id=47420e3e&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-pageHeading {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: var(--gap-3);
  align-items: flex-start;
}
.tui-pageHeading__title {
  font-weight: var(--font-h1-weight);
  font-size: var(--font-h1-size);
  font-family: var(--font-h1-family);
  line-height: var(--font-h1-line-height);
  flex-grow: 1;
  min-width: 0;
  margin: 0;
  overflow-wrap: break-word;
}
.tui-pageHeading__title--small {
  font-weight: var(--font-h2-weight);
  font-size: var(--font-h2-size);
  font-family: var(--font-h2-family);
  line-height: var(--font-h2-line-height);
}
.tui-pageHeading__title--smallOnMob {
  font-weight: var(--font-h2-weight);
  font-size: var(--font-h2-size);
  font-family: var(--font-h2-family);
  line-height: var(--font-h2-line-height);
}
.tui-pageHeading__buttons {
  display: flex;
  flex-shrink: 0;
  flex-wrap: wrap;
  gap: var(--gap-3);
  max-width: 100%;
}
@media (min-width: 768px) {
  .tui-pageHeading__buttons > * {
    margin-top: 0;
  }
  .tui-pageHeading__title--smallOnMob {
    font-weight: var(--font-h1-weight);
    font-size: var(--font-h1-size);
    font-family: var(--font-h1-family);
    line-height: var(--font-h1-line-height);
  }
}
@media (min-width: 992px) {
  .tui-pageHeading {
    flex-wrap: nowrap;
  }
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/links/SkipToContent.vue?vue&type=style&index=0&id=154f558c&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-skipToContent {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  border: 0;
  clip: rect(0, 0, 0, 0);
}
.tui-skipToContent:focus {
  position: static;
  display: block;
  width: auto;
  height: auto;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/loading/ComponentLoading.vue?vue&type=style&index=0&id=bfbbf21e&lang=scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-componentLoading {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--gap-3);
  color: var(--color-neutral-6);
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/loading/Loader.vue?vue&type=style&index=0&id=3cb8e005&lang=scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-loader {
  position: relative;
  /* Don't show nested loaders*/
  /* If no slot content (e.g. initial load)*/
}
.tui-loader--active > * .tui-loader__overlay {
  display: none;
}
.tui-loader__empty {
  min-height: var(--gap-8);
}
.tui-loader__overlay {
  position: absolute;
  top: 0;
  /*!rtl:ignore*/
  left: 0;
  width: 100%;
  height: 100%;
}
.tui-loader--fullpage .tui-loader__overlay {
  position: fixed;
  z-index: var(--zindex-loading-page);
}
.tui-loader__overlay-positioner {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  background: var(--color-background);
  opacity: 0.85;
  content: "";
}
.tui-loader__display {
  position: sticky;
  top: var(--gap-6);
  bottom: var(--gap-6);
  color: var(--color-neutral-6);
  font-size: calc(var(--font-size-base) / 16 * 15);
}
.tui-loader__display .fa-spinner {
  position: relative;
  top: -1px;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/loading/SkeletonContent.vue?vue&type=style&index=0&id=6b64466a&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************/
:root {
  /* Background colour of skeleton area*/
  /* Should have at least 3:1 contrast ratio*/
  /* https://www.w3.org/WAI/WCAG21/Understanding/non-text-contrast.html*/
  /* Future option https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-contrast*/
  --skeleton-content-background: #949494;
  /* Background colour of skeleton area when under a loading overlay*/
  --skeleton-content-overlay-background: var(--color-neutral-5);
  /* Colour of shimmer*/
  --skeleton-content-shimmer-color: #aaa;
  /* Colour of shimmer when under a loading overlay*/
  --skeleton-content-shimmer-overlay-color: #e6e5e5;
  /* Border radius for skeleton content*/
  --skeleton-content-border-radius: var(--border-radius-small);
}
.tui-skeletonContent {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: var(--skeleton-content-background);
  border-radius: var(--skeleton-content-border-radius);
  /* Set a custom size for inputs in a limited form*/
}
.tui-skeletonContent--charLength-2 {
  max-width: calc(2 * var(--form-input-font-size));
}
.tui-skeletonContent--charLength-3 {
  max-width: calc(3 * var(--form-input-font-size));
}
.tui-skeletonContent--charLength-4 {
  max-width: calc(4 * var(--form-input-font-size));
}
.tui-skeletonContent--charLength-5 {
  max-width: calc(5 * var(--form-input-font-size));
}
.tui-skeletonContent--charLength-10 {
  max-width: calc(10 * var(--form-input-font-size));
}
.tui-skeletonContent--charLength-15 {
  max-width: calc(15 * var(--form-input-font-size));
}
.tui-skeletonContent--charLength-20 {
  max-width: calc(20 * var(--form-input-font-size));
}
.tui-skeletonContent--charLength-25 {
  max-width: calc(25 * var(--form-input-font-size));
}
.tui-skeletonContent--charLength-30 {
  max-width: calc(30 * var(--form-input-font-size));
}
.tui-skeletonContent--charLength-50 {
  max-width: calc(50 * var(--form-input-font-size));
}
.tui-skeletonContent--charLength-75 {
  max-width: calc(75 * var(--form-input-font-size));
}
.tui-skeletonContent--charLength-100 {
  max-width: calc(100 * var(--form-input-font-size));
}
.tui-form--inputWidth-limited .tui-skeletonContent:not(.tui-input--customSize) {
  max-width: var(--form-input-limited-width);
}
.tui-form--inputWidth-limited .tui-inputSet--split .tui-skeletonContent:not(.tui-input--customSize) {
  max-width: none;
}
.tui-skeletonContent--hasOverlay {
  background: var(--skeleton-content-overlay-background);
}
.tui-skeletonContent--shimmer {
  background: linear-gradient(-55deg, var(--skeleton-content-background) 0%, var(--skeleton-content-background) 35%, var(--skeleton-content-shimmer-color) 50%, var(--skeleton-content-background) 58%, var(--skeleton-content-background) 100%);
  background-size: 1000px 100%;
  background-attachment: fixed;
  animation: tui-skeletonShimmer 3s linear infinite;
}
@media (prefers-reduced-motion) {
  .tui-skeletonContent--shimmer {
    animation: none;
  }
}
@keyframes tui-skeletonShimmer {
  0% {
    /*!rtl:ignore*/
    background-position: 0 0;
  }
  100% {
    /*!rtl:ignore*/
    background-position: 1000px 0;
  }
}
.tui-skeletonContent--hasOverlay.tui-skeletonContent--shimmer {
  background: linear-gradient(-55deg, var(--skeleton-content-overlay-background) 0%, var(--skeleton-content-overlay-background) 35%, var(--skeleton-content-shimmer-overlay-color) 50%, var(--skeleton-content-overlay-background) 58%, var(--skeleton-content-overlay-background) 100%);
  background-size: 1000px 100%;
  background-attachment: fixed;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/lozenge/Lozenge.vue?vue&type=style&index=0&id=faf15c04&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-lozenge {
  display: inline-flex;
  padding: 3px var(--gap-2) 3px;
  color: var(--color-neutral-1);
  font-weight: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
  font-weight: bold;
  line-height: 1;
  background: var(--color-prompt-info);
  border-radius: var(--border-radius-small);
}
.tui-lozenge--alert {
  background: var(--color-prompt-alert);
}
.tui-lozenge--success {
  background: var(--color-prompt-success);
}
.tui-lozenge--warning {
  background: var(--color-prompt-warning);
}
.tui-lozenge--neutral {
  background: var(--color-neutral-6);
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/modal/Modal.vue?vue&type=style&index=0&id=251e81c8&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-modal-wrap {
  position: fixed;
  top: 0;
  left: 0;
  z-index: var(--zindex-modal);
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow: hidden;
  outline: none;
}
.tui-modal-wrap__backdrop {
  position: absolute;
  inset: 0;
  display: none;
}
.tui-modal-wrap--shade .tui-modal-wrap__backdrop {
  display: block;
  background-color: var(--color-backdrop-standard);
}
.tui-modal-wrap--shade.tui-modal-wrap--type-sheet .tui-modal-wrap__backdrop {
  background-color: var(--color-backdrop-heavy);
}
.tui-modal-wrap--shade.tui-modal-wrap--animated .tui-modal-wrap__backdrop {
  opacity: 0;
  transition: opacity var(--transition-modal-function) var(--transition-modal-duration);
}
.tui-modal-wrap--shade.tui-modal-wrap--animated.tui-modal-wrap--in .tui-modal-wrap__backdrop {
  opacity: 1;
}
.tui-modal {
  position: fixed;
  top: 0;
  left: 0;
  z-index: var(--zindex-modal);
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow: hidden;
  outline: none;
}
.tui-modal--animated .tui-modal__inner {
  transform: translateY(100vh);
  transition: transform var(--transition-modal-function) var(--transition-modal-duration), opacity var(--transition-modal-function) var(--transition-modal-duration);
}
.tui-modal--animated.tui-modal--in .tui-modal__inner {
  transform: translateY(0);
}
.tui-modal--error {
  z-index: var(--zindex-error-modal);
}
.tui-modal.tui-modal--type-sheet .tui-modal__inner {
  overflow: auto;
}
.tui-modal--shade.tui-modal--animated.tui-modal--in {
  opacity: 1;
}
.tui-modal__pad {
  width: 100%;
  height: 100%;
  padding: 0;
}
.tui-modal__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  margin: auto;
  color: var(--color-text);
  background-color: var(--color-background);
  box-shadow: var(--shadow-4);
}
.tui-modal__header {
  display: flex;
  flex-shrink: 0;
}
.tui-modal__close, .tui-modal__outsideClose {
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  padding: var(--gap-4);
  font-size: calc(var(--font-size-base) / 16 * 18);
}
.tui-modal__outsideClose {
  display: none;
  color: var(--color-backdrop-contrast);
}
.tui-modal__outsideClose:hover, .tui-modal__outsideClose:focus {
  color: var(--color-backdrop-contrast);
  opacity: 0.8;
}
.has-tui-modal {
  overflow: hidden;
}
@media (min-width: 768px) {
  .tui-modal--type-sheet.tui-modal--animated .tui-modal__inner {
    transform: scale(0.9);
    opacity: 0;
  }
  .tui-modal--type-sheet.tui-modal--animated.tui-modal--in .tui-modal__inner {
    transform: none;
    opacity: 1;
  }
  .tui-modal--type-sheet.tui-modal--animated .tui-modal__outsideClose {
    opacity: 0;
    transition: opacity var(--transition-modal-function) var(--transition-modal-duration);
  }
  .tui-modal--type-sheet.tui-modal--animated.tui-modal--in .tui-modal__outsideClose {
    opacity: 1;
  }
  .tui-modal--type-sheet.tui-modal--animated.tui-modal--in .tui-modal__outsideClose:hover, .tui-modal--type-sheet.tui-modal--animated.tui-modal--in .tui-modal__outsideClose:focus {
    opacity: 0.8;
  }
  .tui-modal--type-sheet .tui-modal__pad {
    padding: var(--modal-sheet-padding);
  }
  .tui-modal--type-sheet .tui-modal__inner {
    border-radius: var(--modal-border-radius);
  }
  .tui-modal--type-sheet .tui-modal__close {
    display: none;
  }
  .tui-modal--type-sheet .tui-modal__outsideClose {
    display: flex;
  }
}
@media (min-width: 475px) {
  .tui-modal--type-normal.tui-modal--size-small {
    overflow-y: auto;
    /* a separate __pad element is required as flexbox centering with*/
    /* `margin-top/bottom: auto;` and padding on the parent are not compatible*/
  }
  .tui-modal--type-normal.tui-modal--size-small.tui-modal--always-scroll {
    overflow-y: scroll;
  }
  .tui-modal--type-normal.tui-modal--size-small.tui-modal--animated .tui-modal__inner {
    transform: scale(0.9);
    opacity: 0;
  }
  .tui-modal--type-normal.tui-modal--size-small.tui-modal--animated.tui-modal--in .tui-modal__inner {
    transform: none;
    opacity: 1;
  }
  .tui-modal--type-normal.tui-modal--size-small .tui-modal__pad {
    height: auto;
    margin: auto;
    padding: var(--modal-container-padding) 0;
  }
  .tui-modal--type-normal.tui-modal--size-small .tui-modal__inner {
    width: 400px;
    height: auto;
    border-radius: var(--modal-border-radius);
  }
  .tui-modal--type-normal.tui-modal--size-small .tui-modal__close {
    display: none;
  }
  .tui-modal--type-normal.tui-modal--size-small .tui-modal__outsideClose {
    display: flex;
  }
}
@media (min-width: 475px) and (min-width: 533.3333333333px) {
  .tui-modal--type-drawer.tui-modal--size-small.tui-modal--animated .tui-modal__inner {
    transform: translateX(400px);
  }
  .dir-rtl .tui-modal--type-drawer.tui-modal--size-small.tui-modal--animated .tui-modal__inner {
    transform: translateX(-400px);
  }
  .tui-modal--type-drawer.tui-modal--size-small.tui-modal--animated.tui-modal--in .tui-modal__inner {
    transform: none;
  }
  .tui-modal--type-drawer.tui-modal--size-small .tui-modal__pad {
    width: 100%;
    height: 100%;
    padding: 0;
  }
  .tui-modal--type-drawer.tui-modal--size-small .tui-modal__inner {
    width: 400px;
    height: 100%;
    margin: 0;
    margin-left: auto;
    border-left: var(--border-width-thin) solid var(--color-neutral-5);
  }
  .tui-modal--type-drawer.tui-modal--size-small.tui-modal--shade .tui-modal__inner {
    border: none;
    box-shadow: var(--shadow-4);
  }
}
@media (min-width: 635px) {
  .tui-modal--type-normal.tui-modal--size-normal {
    overflow-y: auto;
    /* a separate __pad element is required as flexbox centering with*/
    /* `margin-top/bottom: auto;` and padding on the parent are not compatible*/
  }
  .tui-modal--type-normal.tui-modal--size-normal.tui-modal--always-scroll {
    overflow-y: scroll;
  }
  .tui-modal--type-normal.tui-modal--size-normal.tui-modal--animated .tui-modal__inner {
    transform: scale(0.9);
    opacity: 0;
  }
  .tui-modal--type-normal.tui-modal--size-normal.tui-modal--animated.tui-modal--in .tui-modal__inner {
    transform: none;
    opacity: 1;
  }
  .tui-modal--type-normal.tui-modal--size-normal .tui-modal__pad {
    height: auto;
    margin: auto;
    padding: var(--modal-container-padding) 0;
  }
  .tui-modal--type-normal.tui-modal--size-normal .tui-modal__inner {
    width: 560px;
    height: auto;
    border-radius: var(--modal-border-radius);
  }
  .tui-modal--type-normal.tui-modal--size-normal .tui-modal__close {
    display: none;
  }
  .tui-modal--type-normal.tui-modal--size-normal .tui-modal__outsideClose {
    display: flex;
  }
}
@media (min-width: 635px) and (min-width: 746.6666666667px) {
  .tui-modal--type-drawer.tui-modal--size-normal.tui-modal--animated .tui-modal__inner {
    transform: translateX(560px);
  }
  .dir-rtl .tui-modal--type-drawer.tui-modal--size-normal.tui-modal--animated .tui-modal__inner {
    transform: translateX(-560px);
  }
  .tui-modal--type-drawer.tui-modal--size-normal.tui-modal--animated.tui-modal--in .tui-modal__inner {
    transform: none;
  }
  .tui-modal--type-drawer.tui-modal--size-normal .tui-modal__pad {
    width: 100%;
    height: 100%;
    padding: 0;
  }
  .tui-modal--type-drawer.tui-modal--size-normal .tui-modal__inner {
    width: 560px;
    height: 100%;
    margin: 0;
    margin-left: auto;
    border-left: var(--border-width-thin) solid var(--color-neutral-5);
  }
  .tui-modal--type-drawer.tui-modal--size-normal.tui-modal--shade .tui-modal__inner {
    border: none;
    box-shadow: var(--shadow-4);
  }
}
@media (min-width: 875px) {
  .tui-modal--type-normal.tui-modal--size-large {
    overflow-y: auto;
    /* a separate __pad element is required as flexbox centering with*/
    /* `margin-top/bottom: auto;` and padding on the parent are not compatible*/
  }
  .tui-modal--type-normal.tui-modal--size-large.tui-modal--always-scroll {
    overflow-y: scroll;
  }
  .tui-modal--type-normal.tui-modal--size-large.tui-modal--animated .tui-modal__inner {
    transform: scale(0.9);
    opacity: 0;
  }
  .tui-modal--type-normal.tui-modal--size-large.tui-modal--animated.tui-modal--in .tui-modal__inner {
    transform: none;
    opacity: 1;
  }
  .tui-modal--type-normal.tui-modal--size-large .tui-modal__pad {
    height: auto;
    margin: auto;
    padding: var(--modal-container-padding) 0;
  }
  .tui-modal--type-normal.tui-modal--size-large .tui-modal__inner {
    width: 800px;
    height: auto;
    border-radius: var(--modal-border-radius);
  }
  .tui-modal--type-normal.tui-modal--size-large .tui-modal__close {
    display: none;
  }
  .tui-modal--type-normal.tui-modal--size-large .tui-modal__outsideClose {
    display: flex;
  }
}
@media (min-width: 875px) and (min-width: 1066.6666666667px) {
  .tui-modal--type-drawer.tui-modal--size-large.tui-modal--animated .tui-modal__inner {
    transform: translateX(800px);
  }
  .dir-rtl .tui-modal--type-drawer.tui-modal--size-large.tui-modal--animated .tui-modal__inner {
    transform: translateX(-800px);
  }
  .tui-modal--type-drawer.tui-modal--size-large.tui-modal--animated.tui-modal--in .tui-modal__inner {
    transform: none;
  }
  .tui-modal--type-drawer.tui-modal--size-large .tui-modal__pad {
    width: 100%;
    height: 100%;
    padding: 0;
  }
  .tui-modal--type-drawer.tui-modal--size-large .tui-modal__inner {
    width: 800px;
    height: 100%;
    margin: 0;
    margin-left: auto;
    border-left: var(--border-width-thin) solid var(--color-neutral-5);
  }
  .tui-modal--type-drawer.tui-modal--size-large.tui-modal--shade .tui-modal__inner {
    border: none;
    box-shadow: var(--shadow-4);
  }
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/modal/ModalContent.vue?vue&type=style&index=0&id=b87b7d26&lang=scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-modalContent {
  font-weight: var(--font-body-weight);
  font-size: var(--font-body-size);
  font-family: var(--font-body-family);
  line-height: var(--font-body-line-height);
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  min-height: 0;
}
.tui-modalContent__header {
  display: flex;
  flex-shrink: 0;
  align-items: flex-start;
  padding: var(--modal-content-outer-padding);
  padding-bottom: var(--gap-4);
}
.tui-modalContent__header--noBottomPadding {
  padding-bottom: 0;
}
.tui-modalContent__header-title {
  font-weight: var(--font-h3-weight);
  font-size: var(--font-h3-size);
  font-family: var(--font-h3-family);
  line-height: var(--font-h3-line-height);
  flex-grow: 1;
  overflow: hidden;
  font-weight: 500;
}
.tui-modalContent__header-title--sronly {
  /* The use of '!important' here is an exception and should not be replicated else where */
  /* stylelint-disable declaration-no-important */
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  /* stylelint-enable */
}
.tui-modalContent__header-title--small {
  font-weight: var(--font-h4-weight);
  font-size: var(--font-h4-size);
  font-family: var(--font-h4-family);
  line-height: var(--font-h4-line-height);
}
.tui-modalContent__header-buttons {
  display: flex;
  margin-left: auto;
}
.tui-modalContent__content {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  min-height: 0;
  padding: var(--gap-2) var(--modal-content-outer-padding);
  overflow-y: auto;
}
.tui-modalContent__content--noTopPadding {
  padding-top: 0;
}
.tui-modalContent--noContentPadding .tui-modalContent__content {
  padding: 0;
}
.tui-modalContent__footer {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  padding: var(--modal-content-outer-padding);
  padding-top: var(--gap-4);
}
.tui-modalContent__footer-buttons {
  margin-left: auto;
}
.tui-modalContent > :last-child {
  padding-bottom: var(--modal-content-outer-padding);
}
.tui-modalContent--noContentPadding > :last-child {
  padding-bottom: 0;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/modal/ModalHeaderButton.vue?vue&type=style&index=0&id=5e144ddb&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-modalHeaderButton {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  color: var(--color-neutral-6);
  border-radius: var(--border-radius-small);
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
}
.tui-modalHeaderButton:hover, .tui-modalHeaderButton:focus, .tui-modalHeaderButton:active {
  color: var(--color-neutral-7);
  background: var(--color-neutral-3);
}
.tui-modalHeaderButton:focus-visible {
  outline: 2px solid var(--color-state-focus);
  outline-offset: var(--focus-outline-offset);
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/notifications/NotificationBanner.vue?vue&type=style&index=0&id=b8712f06&lang=scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-notificationBanner {
  font-weight: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
  display: flex;
  background-color: var(--color-background);
  border: var(--border-width-thin) solid var(--color-prompt-info);
  border-radius: var(--border-radius-small);
}
.tui-notificationBanner__icon {
  display: flex;
  padding: var(--gap-4);
  color: var(--color-neutral-1);
  background: var(--color-prompt-info);
  /* -1px to avoid issue with razor thin white line between icon container and notification border*/
  /* prettier-ignore*/
  border-top-left-radius: calc(var(--border-radius-small) - var(--border-width-thin) - 1px);
  /* prettier-ignore*/
  border-bottom-left-radius: calc(var(--border-radius-small) - var(--border-width-thin) - 1px);
}
.tui-notificationBanner__body {
  flex-grow: 1;
}
.tui-notificationBanner__message {
  display: flex;
  flex: 1;
  align-items: center;
  padding: var(--gap-3);
}
.tui-notificationBanner__message--inline {
  display: inline;
}
.tui-notificationBanner__dismiss {
  display: flex;
}
.tui-notificationBanner__dismiss_button {
  color: var(--color-neutral-6);
}
.tui-notificationBanner--success {
  border-color: var(--color-prompt-success);
}
.tui-notificationBanner--success .tui-notificationBanner__icon {
  background: var(--color-prompt-success);
}
.tui-notificationBanner--warning {
  border-color: var(--color-prompt-warning);
}
.tui-notificationBanner--warning .tui-notificationBanner__icon {
  background: var(--color-prompt-warning);
}
.tui-notificationBanner--error {
  border-color: var(--color-prompt-alert);
}
.tui-notificationBanner--error .tui-notificationBanner__icon {
  background: var(--color-prompt-alert);
}
@media screen and (min-width: 768px) {
  .tui-notificationBanner {
    font-weight: var(--font-body-weight);
    font-size: var(--font-body-size);
    font-family: var(--font-body-family);
    line-height: var(--font-body-line-height);
    border-radius: var(--border-radius-normal);
  }
  .tui-notificationBanner__icon {
    /* -1px to avoid issue with razor thin white line between icon container and notification border*/
    /* prettier-ignore*/
    border-top-left-radius: calc(var(--border-radius-normal) - var(--border-width-thin) - 1px);
    /* prettier-ignore*/
    border-bottom-left-radius: calc(var(--border-radius-normal) - var(--border-width-thin) - 1px);
  }
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/notifications/NotificationToast.vue?vue&type=style&index=0&id=56679534&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-notificationToast {
  font-weight: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
  display: flex;
  color: var(--toast-color-text);
  background-color: var(--color-prompt-success);
  border-radius: var(--border-radius-small);
  box-shadow: var(--shadow-3);
}
.tui-notificationToast__icon {
  display: flex;
  align-items: center;
  padding: var(--gap-4) 0 var(--gap-4) var(--gap-4);
  color: var(--color-neutral-1);
  background: var(--color-prompt-success);
  /* -1px to avoid isue with razor thin white line between icon container and notification border*/
  /* prettier-ignore*/
  border-top-left-radius: calc(var(--border-radius-small) - var(--border-width-thin) - 1px);
  /* prettier-ignore*/
  border-bottom-left-radius: calc(var(--border-radius-small) - var(--border-width-thin) - 1px);
}
.tui-notificationToast__message {
  display: flex;
  flex: 1;
  align-items: center;
  padding: var(--gap-4) var(--gap-2);
}
.tui-notificationToast__dismiss {
  display: flex;
}
.tui-notificationToast__dismiss_button {
  color: var(--color-neutral-3);
}
.tui-notificationToast__dismiss_button:hover {
  color: var(--color-neutral-1);
}
.tui-notificationToast--error {
  background: var(--color-prompt-alert);
}
.tui-notificationToast--error .tui-notificationToast__icon {
  background: var(--color-prompt-alert);
}
@media screen and (min-width: 768px) {
  .tui-notificationToast {
    font-weight: var(--font-body-weight);
    font-size: var(--font-body-size);
    font-family: var(--font-body-family);
    line-height: var(--font-body-line-height);
    color: var(--toast-color-text);
    border-radius: var(--border-radius-normal);
  }
  .tui-notificationToast__icon {
    /* -1px to avoid isue with razor thin white line between icon container and notification border*/
    /* prettier-ignore*/
    border-top-left-radius: calc(var(--border-radius-normal) - var(--border-width-thin) - 1px);
    /* prettier-ignore*/
    border-bottom-left-radius: calc(var(--border-radius-normal) - var(--border-width-thin) - 1px);
  }
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/notifications/ToastContainer.vue?vue&type=style&index=0&id=9b77ffc0&lang=scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-toastContainer {
  position: fixed;
  top: var(--gap-6);
  right: 0;
  left: 0;
  z-index: var(--zindex-toast);
  display: flex;
  justify-content: center;
  pointer-events: none;
}
.tui-toastContainer__inner {
  position: relative;
  flex-basis: 300px;
  pointer-events: auto;
}
.tui-toastContainer__item-transition-enter-active, .tui-toastContainer__item-transition-leave-active {
  transition: all 0.15s ease-out;
}
.tui-toastContainer__item-transition-enter, .tui-toastContainer__item-transition-leave-to {
  opacity: 0;
}
.tui-toastContainer__item-transition-leave-active {
  position: absolute;
  right: 0;
  left: 0;
  opacity: 0;
}
@media screen and (min-width: 768px) {
  .tui-toastContainer__inner {
    flex-basis: 500px;
  }
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/overflow_container/OverflowContainer.vue?vue&type=style&index=0&id=628441da&lang=scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-overflowContainer__container {
  display: flex;
}
.tui-overflowContainer__container > * + * {
  margin-left: var(--gap-4);
}
.tui-overflowContainer--wide .tui-overflowContainer__container > * + * {
  margin-left: var(--gap-6);
}
.tui-overflowContainer__containerItem {
  display: flex;
  flex-basis: 200px;
  flex-direction: column;
  flex-grow: 1;
  flex-shrink: 1;
  min-width: 198px;
  max-width: 248px;
}
.tui-overflowContainer__containerItem > * {
  flex-grow: 1;
}
.tui-overflowContainer__containerItem--post {
  color: var(--color-state);
}
.tui-overflowContainer__containerItem--post .tui-overflowContainer__containerItem-viewAll {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  margin: auto 0;
  text-align: center;
  background-color: var(--color-neutral-3);
}
.tui-overflowContainer__containerItem--post .tui-overflowContainer__containerItem-viewAll--only {
  min-height: 200px;
}
.tui-overflowContainer__containerItem--post .tui-overflowContainer__containerItem-viewAllIcon {
  display: block;
  width: 48px;
  height: 48px;
  margin: auto auto 0 auto;
  padding: 10px;
  font-size: calc(var(--font-size-base) / 16 * 24);
  border: var(--border-width-thin) solid var(--color-state);
  border-radius: 50%;
}
.tui-overflowContainer__containerItem--post .tui-overflowContainer__containerItem-viewAllAction {
  margin: var(--gap-2) 0 auto;
}
.tui-overflowContainer__containerItem--post .tui-overflowContainer__containerItem-link {
  outline: 0;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/paging/Paging.vue?vue&type=style&index=0&id=10fbddc0&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-paging {
  display: flex;
  flex-wrap: wrap;
}
.tui-paging__perPage {
  position: relative;
  display: flex;
  flex-direction: row;
  flex-grow: 1;
  flex-shrink: 0;
  align-items: center;
  margin: auto 0;
}
.tui-paging__perPage-label {
  margin: auto var(--gap-3) auto 0;
}
.tui-paging__perPage-select {
  flex: 4.375rem 0 0;
}
.tui-paging__selector {
  display: flex;
  flex-shrink: 0;
  margin: auto 0;
}
.tui-paging__selector-number {
  min-width: 40px;
  min-height: 40px;
  margin: auto 0;
  padding: var(--gap-4);
}
.tui-paging__selector-number--current {
  font-weight: bold;
}
.tui-paging__direct {
  position: relative;
  display: flex;
  flex-direction: row;
  flex-shrink: 0;
  align-items: center;
  margin: auto 0;
  padding-left: var(--gap-4);
  border-left: var(--border-width-thin) solid var(--color-neutral-5);
}
.tui-paging--narrow .tui-paging__direct {
  padding-left: 0;
  border-left: none;
}
.tui-paging__direct-label {
  margin: auto var(--gap-2) auto 0;
}
.tui-paging__direct .tui-paging__direct-page[type] {
  margin: auto var(--gap-1) auto 0;
}
.tui-paging__loading {
  width: 100%;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/popover/Popover.vue?vue&type=style&index=0&id=738d09e8&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-popover__wrap--valign-center {
  display: flex;
  align-items: center;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/popover/PopoverFrame.vue?vue&type=style&index=0&id=662b5d71&lang=scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-popoverFrame {
  font-weight: var(--font-body-weight);
  font-size: var(--font-body-size);
  font-family: var(--font-body-family);
  line-height: var(--font-body-line-height);
  position: relative;
  max-width: 300px;
  /* margin must be equal on all 4 sides, and must not change with position*/
  margin: 10px;
  padding: var(--gap-4);
  background: var(--color-background);
  background-clip: padding-box;
  box-shadow: var(--shadow-3);
}
.tui-popoverFrame::before {
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
  box-shadow: 0 0 0 1px var(--color-neutral-5);
  content: "";
}
.tui-popoverFrame--size-sm {
  width: 250px;
  max-width: none;
}
.tui-popoverFrame--size-md {
  width: 300px;
  max-width: none;
}
.tui-popoverFrame--size-lg {
  width: 95vw;
  max-width: none;
}
@media (min-width: 600px) {
  .tui-popoverFrame--size-lg {
    width: 560px;
  }
}
.tui-popoverFrame--slim {
  padding: var(--gap-2);
}
.tui-popoverFrame__close {
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  padding: calc(0.875rem - 0.1em) calc(0.875rem - 0.3em);
}
.tui-popoverFrame__title {
  font-weight: var(--font-h4-weight);
  font-size: var(--font-h4-size);
  font-family: var(--font-h4-family);
  line-height: var(--font-h4-line-height);
  padding-top: var(--gap-2);
  padding-right: var(--gap-4);
}
.tui-popoverFrame__content {
  max-height: 80vh;
  margin-top: var(--gap-4);
  padding: 0 var(--gap-4) var(--gap-2) 0;
  overflow: auto;
}
.tui-popoverFrame__content img {
  max-width: 100%;
}
.tui-popoverFrame__content--slim, .tui-popoverFrame__content--noPadding {
  padding: 0;
}
.tui-popoverFrame__title + .tui-popoverFrame__content, .tui-popoverFrame .tui-popoverFrame__content--nonClosable {
  padding-right: 0;
}
.tui-popoverFrame__buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  padding-top: var(--gap-1);
  padding-bottom: var(--gap-3);
}
.tui-popoverFrame__buttons > * {
  margin-top: var(--gap-2);
}
.tui-popoverFrame__buttons > * + * {
  margin-left: var(--gap-4);
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/popover/PopoverPositioner.vue?vue&type=style&index=0&id=b17aea7c&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-popoverPositioner {
  /* note: position: absolute + z-index triggers a new stacking context*/
  /* this allows us to escape from overflow: hidden.*/
  /* because stacking contexts can be nested, this will still work correctly*/
  /* even inside modals, which have a higher z-index*/
  position: absolute;
  top: 0;
  /*!rtl:ignore*/
  left: 0;
  z-index: var(--zindex-popover);
  width: auto;
  font-weight: var(--font-body-weight);
  font-size: var(--font-body-size);
  font-family: var(--font-body-family);
  line-height: var(--font-body-line-height);
}
.tui-popoverPositioner--fixed {
  position: fixed;
}
.tui-popoverPositioner--transition-default {
  transition: opacity 0.2s;
}
.tui-popoverPositioner--transition-default-enter, .tui-popoverPositioner--transition-default-leave-to {
  opacity: 0;
}
.tui-popoverPositioner--transition-dropdown {
  transition: opacity 0s;
}
.tui-popoverPositioner--transition-dropdown-enter, .tui-popoverPositioner--transition-dropdown-leave-to {
  opacity: 0;
}
.tui-popoverPositioner--transition-dropdown-leave-to {
  transition: opacity 0.15s;
}
.tui-modal--animated .tui-popoverPositioner {
  display: none;
}
.tui-modal--animated.tui-modal--in .tui-popoverPositioner {
  display: block;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/popover/Tooltip.vue?vue&type=style&index=0&id=2a61e52c&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-tooltip__body {
  position: relative;
  width: -webkit-max-content;
  width: max-content;
  max-width: 80vw;
  margin: 10px;
  /* arrow size*/
  padding: calc(var(--gap-base) * 2) calc(var(--gap-base) * 3);
  color: var(--color-neutral-1);
  overflow-wrap: break-word;
  background: var(--color-neutral-7);
  border-radius: var(--border-radius-small);
  /* switch when 300px would be 80% of the viewport (80vw) to avoid jump*/
}
@media (min-width: 23.4375rem) {
  .tui-tooltip__body {
    max-width: 18.75rem;
  }
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/profile/MiniProfileCard.vue?vue&type=style&index=0&id=2f64db6d&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-miniProfileCard {
  /* The parent who uses this card decides the width/height.*/
  display: flex;
  align-items: flex-start;
  padding: var(--gap-2);
  outline: none;
}
.tui-miniProfileCard--no-avatar {
  padding-left: var(--gap-4);
}
.tui-miniProfileCard--no-dropdown {
  padding-right: var(--gap-4);
}
.tui-miniProfileCard--no-padding {
  /* Reset padding to zero.*/
  padding: 0;
}
.tui-miniProfileCard--border {
  border: var(--border-width-thin) solid var(--color-neutral-5);
  border-radius: var(--border-radius-normal);
}
.tui-miniProfileCard--hasShadow {
  box-shadow: var(--shadow-2);
}
.tui-miniProfileCard__avatar {
  margin-right: var(--gap-2);
}
.tui-miniProfileCard--horizontal {
  align-items: center;
}
.tui-miniProfileCard__description {
  display: flex;
  flex: 1;
  flex-direction: column;
  overflow: hidden;
}
.tui-miniProfileCard__description--horizontal {
  flex-direction: row;
  justify-content: space-between;
}
.tui-miniProfileCard__description--horizontal > * + * {
  padding-left: var(--gap-4);
}
.tui-miniProfileCard__description--horizontalItems-1 > * {
  width: 100%;
}
.tui-miniProfileCard__description--horizontalItems-2 > * {
  width: 50%;
}
.tui-miniProfileCard__description--horizontalItems-3 > * {
  width: 33%;
}
.tui-miniProfileCard__description--horizontalItems-4 > * {
  width: 25%;
}
.tui-miniProfileCard__row {
  display: flex;
  align-items: center;
}
.tui-miniProfileCard__row-text {
  font-weight: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
  margin: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.tui-miniProfileCard__row-text--bold {
  font-weight: bold;
}
.tui-miniProfileCard__row-link {
  font-weight: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
  margin: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.tui-miniProfileCard__row-link--bold {
  font-weight: bold;
}
.tui-miniProfileCard__row--withGap {
  margin-bottom: var(--gap-1);
}
.tui-miniProfileCard__dropDown {
  margin-left: var(--gap-4);
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/progress/Progress.vue?vue&type=style&index=0&id=5dba2cc0&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-progress {
  display: flex;
  height: 0.875rem;
  font-size: 0.6875rem;
  line-height: 0.875rem;
  background-color: var(--progress-container-bg-color);
}
.tui-progress--chrome {
  border: 1px solid var(--progress-border-color);
  border-radius: var(--gap-2);
}
.tui-progress--small {
  height: 0.75rem;
  line-height: 0.625rem;
}
.tui-progress--x-small {
  height: 0.375rem;
}
.tui-progress--hideBackground {
  background: none;
}
.tui-progress__bar {
  display: flex;
  justify-content: flex-end;
  background-color: var(--progress-value-bg-color);
  transition: width var(--transition-progress-function) var(--transition-progress-duration);
}
.tui-progress--chrome .tui-progress__bar {
  border-radius: var(--gap-2);
}
.tui-progress__label {
  padding: 0 var(--gap-1);
  opacity: 0;
}
.tui-progress__label--inside {
  color: var(--progress-value-text-color);
  opacity: 1;
  transition: opacity var(--transition-progress-function) var(--transition-progress-duration);
}
.tui-progress__label--outside {
  color: var(--progress-container-text-color);
  opacity: 1;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/progresstracker/ProgressTracker.vue?vue&type=style&index=0&id=36823c78&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-progressTrackerItems {
  display: flex;
  justify-content: center;
  margin: 0;
  list-style: none;
  /* Line styles*/
}
.tui-progressTrackerItems > * + *.tui-progressTrackerItem .tui-progressTrackerItem__content::before {
  position: absolute;
  top: 14px;
  left: -50%;
  display: block;
  width: 100%;
  border-style: solid;
  border-width: var(--border-width-thin) 0 0 0;
  content: "";
}
.tui-progressTrackerItems > * + *.tui-progressTrackerItem--pending .tui-progressTrackerItem__content::before {
  border-color: var(--progresstracker-color-pending);
  border-style: dotted;
}
.tui-progressTrackerItems > * + *.tui-progressTrackerItem--complete .tui-progressTrackerItem__content::before {
  top: 13px;
  border-color: var(--progresstracker-color-complete);
  border-width: var(--border-width-thick) 0 0 0;
}
.tui-progressTrackerItems > * + *.tui-progressTrackerItem--achieved .tui-progressTrackerItem__content::before {
  top: 13px;
  border-color: var(--progresstracker-color-achieved);
  border-width: var(--border-width-thick) 0 0 0;
}
.tui-progressTrackerItems--vertical > * + *.tui-progressTrackerItem .tui-progressTrackerItem__content::before {
  top: -50%;
  left: 13px;
  width: 0;
  height: 100%;
  border-width: 0 0 0 var(--border-width-thick);
}
.tui-progressTrackerItems .tui-progressTrackerItem {
  position: relative;
  flex-shrink: 0;
  /* Spacing after for overflow detector*/
}
.tui-progressTrackerItems .tui-progressTrackerItem--small {
  width: 100px;
}
.tui-progressTrackerItems .tui-progressTrackerItem--medium {
  width: 200px;
}
.tui-progressTrackerItems .tui-progressTrackerItem--large {
  width: 250px;
}
.tui-progressTrackerItems .tui-progressTrackerItem__content {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}
.tui-progressTrackerItems .tui-progressTrackerItem__label {
  position: relative;
  width: 100%;
  margin: 0 auto;
  padding: var(--gap-2);
  text-align: center;
}
.tui-progressTrackerItems .tui-progressTrackerItem__label-current .tui-btn {
  color: var(--color-state-active);
  font-weight: bold;
}
.tui-progressTrackerItems .tui-progressTrackerItem__status, .tui-progressTrackerItems .tui-progressTrackerItem__target {
  /* The use of '!important' here is an exception and should not be replicated else where */
  /* stylelint-disable declaration-no-important */
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  /* stylelint-enable */
}
.tui-progressTrackerItems .tui-progressTrackerItem :last-child--small {
  width: 200px;
  padding-right: 100px;
}
.tui-progressTrackerItems .tui-progressTrackerItem :last-child--medium {
  width: 400px;
  padding-right: 200px;
}
.tui-progressTrackerItems .tui-progressTrackerItem :last-child--large {
  width: 500px;
  padding-right: 250px;
}
.tui-progressTrackerItems--vertical {
  flex-direction: column;
}
.tui-progressTrackerItems--vertical .tui-progressTrackerItem {
  width: auto;
  height: 80px;
}
.tui-progressTrackerItems--vertical .tui-progressTrackerItem__content {
  flex-direction: row;
  height: 100%;
}
.tui-progressTrackerItems--vertical .tui-progressTrackerItem__label {
  margin: 0;
  padding: var(--gap-1) var(--gap-2);
  text-align: left;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/progresstracker/ProgressTrackerButton.vue?vue&type=style&index=0&id=f517226c&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-progressTrackerButton {
  display: flex;
  gap: var(--gap-2);
  justify-content: start;
  width: 100%;
  padding: var(--gap-2);
  color: var(--color-state);
  line-height: var(--font-body-line-height);
  text-align: left;
  overflow-wrap: break-word;
  background: transparent;
  border: none;
}
.tui-progressTrackerButton:focus-visible {
  outline: 2px solid var(--color-state-focus);
  outline-offset: var(--focus-outline-offset);
}
.tui-progressTrackerButton:hover {
  color: var(--color-state);
  background: var(--color-state-highlight-neutral);
}
.tui-progressTrackerButton--selected {
  color: var(--color-neutral-1);
  background: var(--color-state-active);
  border-color: var(--color-neutral-3);
}
.tui-progressTrackerButton--selected:hover, .tui-progressTrackerButton--selected:focus {
  color: var(--color-neutral-1);
  background: var(--color-state-active);
  border-color: var(--color-neutral-3);
}
.tui-progressTrackerButton__required {
  color: var(--color-prompt-alert);
}
.tui-progressTrackerButton__required--selected {
  color: var(--color-neutral-1);
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/progresstracker/ProgressTrackerCircle.vue?vue&type=style&index=0&id=2ddf0568&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-progressTrackerCircle__outer {
  z-index: 2;
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: calc(var(--gap-7) + 1px);
  height: calc(var(--gap-7) + 1px);
  border: var(--border-width-normal) transparent dotted;
  border-radius: 50%;
  /* Pending target*/
  /* Achieved target*/
}
.tui-progressTrackerCircle__outer.tui-progressTrackerCircle--pending.tui-progressTrackerCircle__outer.tui-progressTrackerCircle--target {
  border-color: var(--progresstracker-color-pending);
}
.tui-progressTrackerCircle__outer.tui-progressTrackerCircle--target.tui-progressTrackerCircle__outer.tui-progressTrackerCircle--achieved {
  background: var(--progresstracker-container-bg-color);
  border-color: var(--progresstracker-color-achieved);
  border-style: solid;
}
.tui-progressTrackerCircle__middle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(var(--gap-4) + 1px);
  height: calc(var(--gap-4) + 1px);
  background: transparent;
  border: var(--border-width-thin) solid transparent;
  border-radius: 50%;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
  /* Pending*/
  /* Pending target*/
  /* Complete*/
  /* Achieved*/
}
.tui-progressTrackerCircle--pending .tui-progressTrackerCircle__middle {
  background: var(--progresstracker-color-pending);
}
.tui-progressTrackerCircle--pending.tui-progressTrackerCircle--target .tui-progressTrackerCircle__middle {
  background: transparent;
}
.tui-progressTrackerCircle--complete .tui-progressTrackerCircle__middle {
  background: var(--progresstracker-color-complete);
}
.tui-progressTrackerCircle--achieved .tui-progressTrackerCircle__middle {
  background: var(--progresstracker-color-achieved);
}
.tui-progressTrackerCircle__inner {
  width: calc(var(--gap-2) + 1px);
  height: calc(var(--gap-2) + 1px);
  background: var(--progresstracker-container-bg-color);
  border: var(--border-width-thin) solid var(--progresstracker-container-bg-color);
  border-radius: 50%;
  /* Pending*/
  /* Pending target*/
  /* Achieved*/
}
.tui-progressTrackerCircle--pending .tui-progressTrackerCircle__inner {
  border-color: var(--progresstracker-container-bg-color);
}
.tui-progressTrackerCircle--pending.tui-progressTrackerCircle--target .tui-progressTrackerCircle__inner {
  border-color: var(--progresstracker-color-pending);
}
.tui-progressTrackerCircle--achieved .tui-progressTrackerCircle__inner {
  border-color: var(--progresstracker-container-bg-color);
}
.ie .tui-progressTrackerCircle--achieved .tui-progressTrackerCircle__middle, .msedge .tui-progressTrackerCircle--achieved .tui-progressTrackerCircle__middle {
  border: var(--gap-1) solid var(--progresstracker-color-achieved);
}
.ie .tui-progressTrackerCircle--complete .tui-progressTrackerCircle__middle, .msedge .tui-progressTrackerCircle--complete .tui-progressTrackerCircle__middle {
  border: var(--gap-1) solid var(--progresstracker-color-complete);
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/progresstracker/ProgressTrackerNav.vue?vue&type=style&index=0&id=92b9578a&lang=scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-progressTrackerNav__items {
  display: flex;
  justify-content: center;
  margin: 0;
  list-style: none;
}
.tui-progressTrackerNav--vertical .tui-progressTrackerNav__items {
  flex-direction: column;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/progresstracker/ProgressTrackerNavCircleAchievement.vue?vue&type=style&index=0&id=72809bf4&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-progressTrackerNavCircleAchievement {
  /* states*/
}
.tui-progressTrackerNavCircleAchievement__outer {
  z-index: 2;
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: var(--progresstracker-full-marker-size);
  height: var(--progresstracker-full-marker-size);
  border: var(--border-width-normal) transparent dotted;
  border-radius: 50%;
  /**
     * states
     **/
}
.tui-progressTrackerNavCircleAchievement__outer.tui-progressTrackerNavCircleAchievement--pending.tui-progressTrackerNavCircleAchievement__outer.tui-progressTrackerNavCircleAchievement--target {
  border-color: var(--progresstracker-color-pending);
}
.tui-progressTrackerNavCircleAchievement__outer.tui-progressTrackerNavCircleAchievement--target.tui-progressTrackerNavCircleAchievement__outer.tui-progressTrackerNavCircleAchievement--achieved {
  background: var(--progresstracker-container-bg-color);
  border-color: var(--progresstracker-color-achieved);
  border-style: solid;
}
.tui-progressTrackerNavCircleAchievement__middle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(calc(var(--progresstracker-full-marker-size) / 2) + var(--gap-1));
  height: calc(calc(var(--progresstracker-full-marker-size) / 2) + var(--gap-1));
  background: transparent;
  border: var(--border-width-thin) solid transparent;
  border-radius: 50%;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
  /**
     * states
     **/
}
.tui-progressTrackerNavCircleAchievement--pending .tui-progressTrackerNavCircleAchievement__middle {
  background: var(--progresstracker-color-pending);
}
.tui-progressTrackerNavCircleAchievement--pending.tui-progressTrackerNavCircleAchievement--target .tui-progressTrackerNavCircleAchievement__middle {
  background: transparent;
}
.tui-progressTrackerNavCircleAchievement--complete .tui-progressTrackerNavCircleAchievement__middle {
  background: var(--progresstracker-color-complete);
}
.tui-progressTrackerNavCircleAchievement--achieved .tui-progressTrackerNavCircleAchievement__middle {
  background: var(--progresstracker-color-achieved);
}
.tui-progressTrackerNavCircleAchievement__inner {
  display: flex;
  align-items: center;
  width: calc(calc(var(--progresstracker-full-marker-size) / 4) +
        var(--border-width-thin));
  height: calc(calc(var(--progresstracker-full-marker-size) / 4) +
        var(--border-width-thin));
  background: var(--progresstracker-container-bg-color);
  border: var(--border-width-thin) solid var(--progresstracker-container-bg-color);
  border-radius: 50%;
  /**
     * states
     **/
}
.tui-progressTrackerNavCircleAchievement--pending .tui-progressTrackerNavCircleAchievement__inner {
  border-color: var(--progresstracker-container-bg-color);
}
.tui-progressTrackerNavCircleAchievement--pending.tui-progressTrackerNavCircleAchievement--target .tui-progressTrackerNavCircleAchievement__inner {
  border-color: var(--progresstracker-color-pending);
}
.tui-progressTrackerNavCircleAchievement--achieved .tui-progressTrackerNavCircleAchievement__inner {
  border-color: var(--progresstracker-container-bg-color);
}
.tui-progressTrackerNavCircleAchievement__label {
  /* The use of '!important' here is an exception and should not be replicated else where */
  /* stylelint-disable declaration-no-important */
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  /* stylelint-enable */
}
.ie .tui-progressTrackerCircle--achieved .tui-progressTrackerCircle__middle, .msedge .tui-progressTrackerCircle--achieved .tui-progressTrackerCircle__middle {
  border: var(--gap-1) solid var(--progresstracker-color-achieved);
}
.ie .tui-progressTrackerCircle--complete .tui-progressTrackerCircle__middle, .msedge .tui-progressTrackerCircle--complete .tui-progressTrackerCircle__middle {
  border: var(--gap-1) solid var(--progresstracker-color-complete);
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/progresstracker/ProgressTrackerNavCircleWorkflow.vue?vue&type=style&index=0&id=0abd304a&lang=scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-progressTrackerNavCircleWorkflow {
  /* states*/
}
.tui-progressTrackerNavCircleWorkflow__outer {
  z-index: 2;
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: var(--progresstracker-full-marker-size);
  height: var(--progresstracker-full-marker-size);
  border: var(--border-width-normal) transparent none;
  border-radius: 50%;
  /**
     * states
     **/
}
.tui-progressTrackerNavCircleWorkflow__outer.tui-progressTrackerNavCircleWorkflow--selected {
  border-color: var(--progresstracker-color-selected);
  border-style: solid;
}
.tui-progressTrackerNavCircleWorkflow__outer.tui-progressTrackerNavCircleWorkflow--ready {
  border-color: var(--progresstracker-color-ready);
}
.tui-progressTrackerNavCircleWorkflow__outer.tui-progressTrackerNavCircleWorkflow--locked {
  border-color: var(--progresstracker-color-locked);
}
.tui-progressTrackerNavCircleWorkflow__outer.tui-progressTrackerNavCircleWorkflow--done {
  border-color: var(--progresstracker-color-done);
}
.tui-progressTrackerNavCircleWorkflow__outer.tui-progressTrackerNavCircleWorkflow--optional {
  border-color: var(--progresstracker-color-optional);
}
.tui-progressTrackerNavCircleWorkflow__outer.tui-progressTrackerNavCircleWorkflow--invalid {
  border-color: var(--progresstracker-color-invalid);
}
.tui-progressTrackerNavCircleWorkflow__outer.tui-progressTrackerNavCircleWorkflow--hidden {
  border-style: none;
}
.tui-progressTrackerNavCircleWorkflow__middle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(var(--progresstracker-full-marker-size) - var(--gap-2));
  height: calc(var(--progresstracker-full-marker-size) - var(--gap-2));
  background-color: transparent;
  border: var(--border-width-thin) none transparent;
  border-radius: 50%;
  /**
     * states
     **/
}
.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__middle {
  background: var(--progresstracker-color-selected);
  border-color: var(--progresstracker-color-selected);
}
.tui-progressTrackerNavCircleWorkflow--ready .tui-progressTrackerNavCircleWorkflow__middle {
  background: var(--progresstracker-color-ready--inverse);
  border-color: var(--progresstracker-color-ready);
  border-style: solid;
}
.tui-progressTrackerNavCircleWorkflow--locked .tui-progressTrackerNavCircleWorkflow__middle {
  background: var(--progresstracker-color-locked--inverse);
  border-color: var(--progresstracker-color-locked);
  border-style: solid;
}
.tui-progressTrackerNavCircleWorkflow--done .tui-progressTrackerNavCircleWorkflow__middle {
  background: var(--progresstracker-color-done);
  border-color: var(--progresstracker-color-done);
}
.tui-progressTrackerNavCircleWorkflow--optional .tui-progressTrackerNavCircleWorkflow__middle {
  background: var(--progresstracker-color-optional--inverse);
  border-color: var(--progresstracker-color-optional);
  border-style: dashed;
}
.tui-progressTrackerNavCircleWorkflow--invalid .tui-progressTrackerNavCircleWorkflow__middle {
  background: var(--progresstracker-color-invalid);
  border-color: var(--progresstracker-color-invalid);
}
.tui-progressTrackerNavCircleWorkflow--view-only .tui-progressTrackerNavCircleWorkflow__middle {
  background: var(--progresstracker-color-view-only--inverse);
  border-color: var(--progresstracker-color-view-only);
  border-style: solid;
}
.tui-progressTrackerNavCircleWorkflow--hidden .tui-progressTrackerNavCircleWorkflow__middle {
  background: var(--progresstracker-color-hidden--inverse);
  border-color: var(--progresstracker-color-hidden--inverse);
}
.tui-progressTrackerNavCircleWorkflow--ready.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__middle {
  background: var(--progresstracker-color-ready);
}
.tui-progressTrackerNavCircleWorkflow--locked.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__middle {
  background: var(--progresstracker-color-locked);
}
.tui-progressTrackerNavCircleWorkflow--done.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__middle {
  background: var(--progresstracker-color-done);
}
.tui-progressTrackerNavCircleWorkflow--optional.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__middle {
  background: var(--progresstracker-color-optional);
  border-color: var(--progresstracker-container-bg-color);
  border-style: dashed;
}
.tui-progressTrackerNavCircleWorkflow--view-only.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__middle {
  background: var(--progresstracker-color-view-only);
}
.tui-progressTrackerNavCircleWorkflow--hidden.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__middle {
  background: var(--progresstracker-color-hidden--inverse);
  border-color: var(--progresstracker-color-hidden--inverse);
}
.tui-progressTrackerNavCircleWorkflow--invalid.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__middle {
  background: var(--progresstracker-color-invalid);
  border-color: var(--progresstracker-color-invalid);
}
.tui-progressTrackerNavCircleWorkflow__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--gap-5);
  height: var(--gap-5);
  border-radius: 50%;
  /**
     * states
     **/
}
.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__inner {
  color: var(--progresstracker-color-selected--inverse);
}
.tui-progressTrackerNavCircleWorkflow--ready .tui-progressTrackerNavCircleWorkflow__inner {
  color: var(--progresstracker-color-ready);
}
.tui-progressTrackerNavCircleWorkflow--locked .tui-progressTrackerNavCircleWorkflow__inner {
  color: var(--progresstracker-color-locked);
}
.tui-progressTrackerNavCircleWorkflow--done .tui-progressTrackerNavCircleWorkflow__inner {
  color: var(--progresstracker-color-done--inverse);
}
.tui-progressTrackerNavCircleWorkflow--optional .tui-progressTrackerNavCircleWorkflow__inner {
  color: var(--progresstracker-color-optional);
}
.tui-progressTrackerNavCircleWorkflow--invalid .tui-progressTrackerNavCircleWorkflow__inner {
  color: var(--progresstracker-color-invalid--inverse);
}
.tui-progressTrackerNavCircleWorkflow--view-only .tui-progressTrackerNavCircleWorkflow__inner {
  color: var(--progresstracker-color-view-only);
}
.tui-progressTrackerNavCircleWorkflow--hidden .tui-progressTrackerNavCircleWorkflow__inner {
  color: var(--progresstracker-color-hidden);
}
.tui-progressTrackerNavCircleWorkflow--ready.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__inner {
  color: var(--progresstracker-color-ready--inverse);
}
.tui-progressTrackerNavCircleWorkflow--locked.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__inner {
  color: var(--progresstracker-color-locked--inverse);
}
.tui-progressTrackerNavCircleWorkflow--done.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__inner {
  color: var(--progresstracker-color-done--inverse);
}
.tui-progressTrackerNavCircleWorkflow--optional.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__inner {
  color: var(--progresstracker-color-optional--inverse);
}
.tui-progressTrackerNavCircleWorkflow--view-only.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__inner {
  color: var(--progresstracker-color-view-only--inverse);
}
.tui-progressTrackerNavCircleWorkflow--hidden.tui-progressTrackerNavCircleWorkflow--selected .tui-progressTrackerNavCircleWorkflow__inner {
  color: var(--progresstracker-color-hidden);
}
.tui-progressTrackerNavCircleWorkflow__icon--locked {
  width: 0.75rem;
  height: 0.75rem;
  margin-bottom: 2px;
}
.tui-progressTrackerNavCircleWorkflow__icon--done {
  width: 1rem;
  height: 1rem;
  margin-top: 2px;
}
.tui-progressTrackerNavCircleWorkflow__icon--invalid {
  width: 0.875rem;
  height: 0.875rem;
  margin-bottom: 3px;
}
.tui-progressTrackerNavCircleWorkflow__icon--hidden {
  width: 1.25rem;
  height: 1.25rem;
}
.tui-progressTrackerNavCircleWorkflow__label {
  /* The use of '!important' here is an exception and should not be replicated else where */
  /* stylelint-disable declaration-no-important */
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  /* stylelint-enable */
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/progresstracker/ProgressTrackerNavItem.vue?vue&type=style&index=0&id=7f742f24&lang=scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
  * Connector lines
  **/
.tui-progressTrackerNav__itemContentWrapper:before {
  position: absolute;
  display: block;
  border-color: var(--progresstracker-color-pending);
  border-style: dotted;
  content: "";
}
.tui-progressTrackerNav--vertical .tui-progressTrackerNav__itemContentWrapper:before {
  top: calc(var(--progresstracker-full-marker-size) + var(--border-width-normal));
  /* nested calc() will get botched by RTLCSS processing if it is broken down onto multiple lines */
  /* prettier-ignore */
  left: calc(calc(var(--progresstracker-full-marker-size) / 2) - calc(var(--border-width-normal) / 2));
  width: var(--border-width-normal);
  /* prettier-ignore */
  height: calc(100% - calc( var(--progresstracker-full-marker-size) + calc(var(--border-width-normal) * 2) ));
  border-width: 0 0 0 var(--border-width-normal);
}
.tui-progressTrackerNav--horizontal .tui-progressTrackerNav__itemContentWrapper:before {
  /* nested calc() will get botched by RTLCSS processing if it is broken down onto multiple lines */
  /* prettier-ignore */
  top: calc(calc(var(--progresstracker-full-marker-size) / 2) - calc(var(--border-width-normal) / 2));
  /* prettier-ignore */
  left: calc(50% + calc(var(--progresstracker-full-marker-size) / 2) + var(--progresstracker-connector-gap) - var(--border-width-normal));
  /* prettier-ignore */
  width: calc(100% - calc( var(--progresstracker-full-marker-size) + calc(var(--progresstracker-connector-gap)) + var(--border-width-normal)));
  height: var(--border-width-normal);
  border-width: var(--border-width-normal) 0 0 0;
}
/**
  * Connector line modifiers
  **/
.tui-progressTrackerNav__connector {
  /* item states related to Achievement*/
}
.tui-progressTrackerNav__connector--pending {
  /* this is the default state if no state Array is passed into the item*/
}
.tui-progressTrackerNav__connector--pending .tui-progressTrackerNav__itemContentWrapper:before {
  border-color: var(--progresstracker-color-pending);
}
.tui-progressTrackerNav__connector--complete .tui-progressTrackerNav__itemContentWrapper:before {
  border-color: var(--progresstracker-color-complete);
  border-style: solid;
}
.tui-progressTrackerNav__connector--achieved .tui-progressTrackerNav__itemContentWrapper:before {
  border-color: var(--progresstracker-color-achieved);
  border-style: solid;
}
/**
 * Items and their content
 **/
.tui-progressTrackerNav__item {
  position: relative;
  flex-shrink: 0;
  /**
    * Connector gap adjustment for large item markers
    **/
}
.tui-progressTrackerNav__item:last-child .tui-progressTrackerNav__itemContentWrapper:before {
  display: none;
}
.tui-progressTrackerNav__item--selected .tui-progressTrackerNav__itemContentWrapper:after, .tui-progressTrackerNav__item--target .tui-progressTrackerNav__itemContentWrapper:after {
  position: absolute;
  display: block;
  /* nested calc() will get botched by RTLCSS processing if it is broken down onto multiple lines */
  /* prettier-ignore */
  width: calc(var(--progresstracker-full-marker-size) + calc(var(--progresstracker-connector-gap) * 2));
  /* prettier-ignore */
  height: calc(var(--progresstracker-full-marker-size) + calc(var(--progresstracker-connector-gap) * 2));
  border-color: var(--progresstracker-container-bg-color);
  border-style: solid;
  border-width: var(--progresstracker-connector-gap);
  border-radius: 50%;
  content: "";
}
.tui-progressTrackerNav--horizontal .tui-progressTrackerNav__item--selected .tui-progressTrackerNav__itemContentWrapper:after, .tui-progressTrackerNav--horizontal .tui-progressTrackerNav__item--target .tui-progressTrackerNav__itemContentWrapper:after {
  top: calc(var(--progresstracker-connector-gap) * -1);
  left: calc(50% - calc(var(--progresstracker-full-marker-size) / 2) - var(--progresstracker-connector-gap));
}
.tui-progressTrackerNav--vertical .tui-progressTrackerNav__item--selected .tui-progressTrackerNav__itemContentWrapper:after, .tui-progressTrackerNav--vertical .tui-progressTrackerNav__item--target .tui-progressTrackerNav__itemContentWrapper:after {
  top: calc(var(--progresstracker-connector-gap) * -1);
  left: calc(var(--progresstracker-connector-gap) * -1);
}
.tui-progressTrackerNav__itemContentWrapper {
  position: relative;
  display: flex;
}
.tui-progressTrackerNav--vertical .tui-progressTrackerNav__itemContentWrapper {
  flex-direction: row;
  align-items: stretch;
  height: 100%;
}
.tui-progressTrackerNav--horizontal .tui-progressTrackerNav__itemContentWrapper {
  flex-direction: column;
  align-items: center;
}
.tui-progressTrackerNav__itemContent {
  display: flex;
  flex-direction: column;
}
.tui-progressTrackerNav__itemContent--full-width {
  width: 100%;
}
.tui-progressTrackerNav__itemContent--overflow-hidden {
  overflow: hidden;
}
.tui-progressTrackerNav--vertical .tui-progressTrackerNav__itemContent {
  padding-left: var(--gap-2);
  /**
      * variable width and gap sizes based on supplied props
      **/
}
.tui-progressTrackerNav--vertical .tui-progressTrackerNav__itemContent--gap-small {
  padding-bottom: var(--gap-2);
}
.tui-progressTrackerNav--vertical .tui-progressTrackerNav__itemContent--gap-medium {
  padding-bottom: var(--gap-5);
}
.tui-progressTrackerNav--vertical .tui-progressTrackerNav__itemContent--gap-large {
  padding-bottom: var(--gap-7);
}
.tui-progressTrackerNav--horizontal .tui-progressTrackerNav__itemContent {
  align-items: center;
  /**
        * variable width and gap sizes based on supplied props
        **/
}
.tui-progressTrackerNav--horizontal .tui-progressTrackerNav__itemContent--gap-small {
  padding-right: var(--progress-tracker-horizontal-gap--small);
  padding-left: var(--progress-tracker-horizontal-gap--small);
}
.tui-progressTrackerNav--horizontal .tui-progressTrackerNav__itemContent--size-small {
  width: var(--progress-tracker-horizontal-size--small);
}
.tui-progressTrackerNav--horizontal .tui-progressTrackerNav__itemContent--gap-medium {
  padding-right: var(--progress-tracker-horizontal-gap--medium);
  padding-left: var(--progress-tracker-horizontal-gap--medium);
}
.tui-progressTrackerNav--horizontal .tui-progressTrackerNav__itemContent--size-medium {
  width: var(--progress-tracker-horizontal-size--medium);
}
.tui-progressTrackerNav--horizontal .tui-progressTrackerNav__itemContent--gap-large {
  padding-right: var(--progress-tracker-horizontal-gap--large);
  padding-left: var(--progress-tracker-horizontal-gap--large);
}
.tui-progressTrackerNav--horizontal .tui-progressTrackerNav__itemContent--size-large {
  width: var(--progress-tracker-horizontal-size--large);
}
.tui-progressTrackerNav__itemLabel {
  position: relative;
  width: 100%;
  margin: 0;
  padding-top: var(--gap-1);
  padding-bottom: var(--gap-1);
}
.tui-progressTrackerNav--horizontal .tui-progressTrackerNav__itemLabel {
  text-align: center;
}
.tui-progressTrackerNav__itemLabel--current .tui-btn {
  color: var(--color-state-active);
  font-weight: bold;
}
.tui-progressTrackerNav__itemStatus {
  /* The use of '!important' here is an exception and should not be replicated else where */
  /* stylelint-disable declaration-no-important */
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  /* stylelint-enable */
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/settings_navigation/SettingsNavigation.vue?vue&type=style&index=0&id=9e7713d6&lang=scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************/
:root {
  --settings-navigation-spacing: var(--gap-2);
  --settings-navigation-tree-width: 340px;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/settings_navigation/SettingsNavigationTree.vue?vue&type=style&index=0&id=a9436f5a&lang=scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-settingsNavigationTree {
  -webkit-hyphens: none;
  hyphens: none;
}
.tui-settingsNavigationTree__settingsItem {
  width: 100%;
  color: var(--color-neutral-6);
}
.tui-settingsNavigationTree__label {
  padding: var(--gap-2) var(--gap-4);
  line-height: 1.4;
  cursor: default;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/sidepanel/SidePanel.vue?vue&type=style&index=0&id=39af4fbc&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
:root {
  --tui-sidepanel-button-width: 30px;
  --tui-sidepanel-button-height: 66px;
  --tui-sidepanel-border-width: 1px;
}
.tui-sidePanel {
  display: flex;
  flex-direction: column;
  /* inner content alignment*/
  /**
   * A wrapper for content container, which helps with transitions on width
   * while overflowing content is still visible, and providing whitespace
   * between content and the edges of the SidePanel
   **/
  /**
   * Transitioned container for arbitrary SidePanel content
   **/
}
.tui-sidePanel--displayChrome {
  display: flex;
  align-items: flex-start;
  height: 100%;
}
.tui-sidePanel--rtl, .dir-rtl .tui-sidePanel--ltr .tui-sidePanel {
  justify-content: flex-end;
}
.tui-sidePanel--ltr, .dir-rtl .tui-sidePanel--rtl .tui-sidePanel {
  justify-content: flex-start;
}
.tui-sidePanel--sticky {
  position: sticky;
  top: 0;
  max-height: 100vh;
  overflow: hidden;
}
.tui-sidePanel--sticky.tui-sidePanel--closed {
  overflow: visible;
}
.tui-sidePanel__inner {
  /* we have to cut off overflow during these states otherwise we'll bump*/
  /* page scrollbars, or a containing element scrollbars*/
}
.tui-sidePanel--displayChrome .tui-sidePanel__inner {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  flex-shrink: 1;
  width: 100%;
  background-color: var(--color-neutral-3);
  border-radius: var(--border-radius-curved);
}
.tui-sidePanel--flush .tui-sidePanel__inner {
  border-top: none;
  border-bottom: none;
}
.tui-sidePanel--open.tui-sidePanel--overflows .tui-sidePanel__inner {
  overflow-y: auto;
}
.tui-sidePanel--closed .tui-sidePanel__inner {
  max-width: 1px;
  padding-right: 0;
  padding-left: 0;
  border-left: 0;
}
.tui-sidePanel--closed .tui-sidePanel__inner, .tui-sidePanel--closing .tui-sidePanel__inner, .tui-sidePanel--opening .tui-sidePanel__inner {
  overflow: hidden;
}
.tui-sidePanel--displayChrome .tui-sidePanel__content {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  overflow: hidden;
}
.tui-sidePanel--closed .tui-sidePanel__content, .tui-sidePanel--closing .tui-sidePanel__content {
  opacity: 0;
}
.tui-sidePanel--closed .tui-sidePanel__content {
  height: 0;
  visibility: hidden;
}
.tui-sidePanel--open .tui-sidePanel__content, .tui-sidePanel--opening .tui-sidePanel__content {
  opacity: 1;
}
.tui-sidePanel--animated .tui-sidePanel__content {
  transition: opacity var(--transition-sidepanel-content-duration) var(--transition-sidepanel-content-function);
}
.tui-sidePanel--open.tui-sidePanel--overflows .tui-sidePanel__content {
  overflow-y: auto;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/sidepanel/SidePanelNav.vue?vue&type=style&index=0&id=51184a77&lang=scss ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-sidePanelNav {
  padding: var(--gap-4) 0;
  background: var(--side-panel-nav-bg-color);
}
.tui-sidePanelNav > * + * {
  margin-top: var(--gap-7);
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/sidepanel/SidePanelNavButtonItem.vue?vue&type=style&index=0&id=78d0febc&lang=scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-sidePanelNavButtonItem {
  position: relative;
  display: flex;
  align-items: center;
  color: var(--side-panel-nav-item-text-color);
  background: var(--side-panel-nav-item-bg-color);
  border-color: var(--side-panel-nav-item-border-color);
  /* Item li*/
  /* Item link*/
}
.tui-sidePanelNavButtonItem.tui-focusWithin, .tui-sidePanelNavButtonItem:hover {
  color: var(--side-panel-nav-item-text-color-focus);
  background: var(--side-panel-nav-item-bg-color-focus);
  border-color: var(--side-panel-nav-item-border-color-focus);
}
.tui-sidePanelNavButtonItem__side {
  margin-left: auto;
  padding-right: var(--gap-4);
}
.tui-sidePanelNavButtonItem__notificationDot {
  position: absolute;
  /* The same as padding left of actioin plus another tui-gap-4 to make sure there is a padding between*/
  /* the action link and the dot.*/
  width: var(--sidepanel-navigation-item-padding-left);
  pointer-events: none;
}
.tui-sidePanelNavButtonItem__notificationDot-inner {
  display: block;
  width: 0.375rem;
  height: 0.375rem;
  margin-left: var(--gap-3);
  background-color: var(--color-prompt-alert);
  border-radius: 100%;
}
.tui-sidePanelNavButtonItem__action {
  flex-grow: 1;
  justify-content: start;
  padding: var(--gap-2) var(--gap-4);
  padding-left: var(--sidepanel-navigation-item-padding-left);
  color: inherit;
  text-align: left;
  -ms-word-break: break-all;
  word-break: break-word;
}
.tui-sidePanelNavButtonItem__action:hover, .tui-sidePanelNavButtonItem__action:focus, .tui-sidePanelNavButtonItem__action:focus:hover {
  color: inherit;
}
.tui-sidePanelNavButtonItem--active {
  color: var(--side-panel-nav-item-text-color-selected);
  background: var(--side-panel-nav-item-bg-color-selected);
  border-color: var(--side-panel-nav-item-border-color-selected);
}
.tui-sidePanelNavButtonItem--active.tui-focusWithin, .tui-sidePanelNavButtonItem--active:hover {
  color: var(--side-panel-nav-item-text-color-selected);
  background: var(--side-panel-nav-item-bg-color-selected);
  border-color: var(--side-panel-nav-item-border-color-selected);
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/sidepanel/SidePanelNavGroup.vue?vue&type=style&index=0&id=6ee9ecf8&lang=scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-sidePanelNavGroup > * + * {
  margin-top: var(--gap-2);
}
.tui-sidePanelNavGroup__heading {
  display: flex;
  align-items: center;
  padding: 0 var(--gap-4);
  padding-left: var(--sidepanel-navigation-item-padding-left);
}
.tui-sidePanelNavGroup__heading-title {
  font-weight: var(--font-h4-weight);
  font-size: var(--font-h4-size);
  font-family: var(--font-h4-family);
  line-height: var(--font-h4-line-height);
  margin: 0;
}
.tui-sidePanelNavGroup__heading-side {
  margin-left: auto;
  padding-left: var(--gap-2);
}
.tui-sidePanelNavGroup__items {
  margin-left: 0;
  list-style: none;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/sidepanel/SidePanelNavLinkItem.vue?vue&type=style&index=0&id=4c78f978&lang=scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-sidePanelNavLinkItem {
  position: relative;
  display: flex;
  align-items: center;
  color: var(--side-panel-nav-item-text-color);
  background: var(--side-panel-nav-item-bg-color);
  border-color: var(--side-panel-nav-item-border-color);
  /* Item li*/
  /* Item link*/
}
.tui-sidePanelNavLinkItem.tui-focusWithin, .tui-sidePanelNavLinkItem:hover {
  color: var(--side-panel-nav-item-text-color-focus);
  background: var(--side-panel-nav-item-bg-color-focus);
  border-color: var(--side-panel-nav-item-border-color-focus);
}
.tui-sidePanelNavLinkItem__side {
  margin-left: auto;
  padding-right: var(--gap-4);
}
.tui-sidePanelNavLinkItem__notificationDot {
  position: absolute;
  /* The same as padding left of actioin plus another tui-gap-4 to make sure there is a padding between*/
  /* the action link and the dot.*/
  width: var(--sidepanel-navigation-item-padding-left);
  pointer-events: none;
}
.tui-sidePanelNavLinkItem__notificationDot-inner {
  display: block;
  width: 0.375rem;
  height: 0.375rem;
  margin-left: var(--gap-3);
  background-color: var(--color-prompt-alert);
  border-radius: 100%;
}
.tui-sidePanelNavLinkItem__action {
  flex-grow: 1;
  padding: var(--gap-2) var(--gap-4);
  padding-left: var(--sidepanel-navigation-item-padding-left);
  color: inherit;
  line-height: 1;
  -ms-word-break: break-all;
  word-break: break-word;
}
.tui-sidePanelNavLinkItem__action:hover, .tui-sidePanelNavLinkItem__action:focus, .tui-sidePanelNavLinkItem__action:focus:hover {
  color: inherit;
}
.tui-sidePanelNavLinkItem--active {
  color: var(--side-panel-nav-item-text-color-selected);
  background: var(--side-panel-nav-item-bg-color-selected);
  border-color: var(--side-panel-nav-item-border-color-selected);
}
.tui-sidePanelNavLinkItem--active.tui-focusWithin, .tui-sidePanelNavLinkItem--active:hover {
  color: var(--side-panel-nav-item-text-color-selected);
  background: var(--side-panel-nav-item-bg-color-selected);
  border-color: var(--side-panel-nav-item-border-color-selected);
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/tabs/TabBar.vue?vue&type=style&index=0&id=5adfef00&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************/
:root {
  --tab-border-width: 1px;
  /* Tab inner horizontal padding*/
  --tab-h-padding: var(--gap-4);
  /* Tab inner vertical padding*/
  --tab-v-padding: var(--gap-2);
  /* Size of Highlight*/
  --tab-highlight-height: var(--gap-1);
  /* Add extra spacing for drop shadow to be displayed*/
  --tab-shadow-offset: var(--gap-3);
  /* Tab small version inner horizontal padding*/
  --tab-small-h-padding: var(--gap-4);
  /* Tab small version inner vertical padding*/
  --tab-small-v-padding: var(--gap-2);
}
.tui-tabBar {
  display: flex;
  align-items: flex-end;
  margin: 0;
  padding: 0;
}
.tui-tabBar--horizontal {
  border-bottom: var(--tab-border-width) solid;
  border-bottom-color: var(--tabs-border-color);
}
.tui-tabBar--vertical {
  flex-direction: column;
  align-items: stretch;
  border-right: var(--tab-border-width) solid;
  border-right-color: var(--tabs-border-color);
}
.tui-tabBar__tab {
  display: block;
  overflow: hidden;
  pointer-events: none;
}
.tui-tabBar--horizontal .tui-tabBar__tab {
  margin: calc(var(--tab-shadow-offset) * -1);
  margin-bottom: calc(var(--tab-border-width) * -1);
  padding: var(--tab-shadow-offset);
  padding-bottom: var(--tab-border-width);
}
.tui-tabBar--vertical .tui-tabBar__tab {
  max-width: 220px;
  margin-right: calc(var(--tab-border-width) * -1);
  margin-bottom: calc(var(--tab-shadow-offset) * -1);
  padding-right: var(--tab-border-width);
  padding-bottom: var(--tab-shadow-offset);
}
.tui-tabBar__tab--hidden {
  display: none;
}
a.tui-tabBar__link {
  display: flex;
  padding: var(--tab-v-padding) var(--tab-h-padding);
  color: var(--tabs-text-color);
  text-decoration: none;
  border: var(--tab-border-width) solid;
  border-color: transparent;
  pointer-events: auto;
}
a.tui-tabBar__link:hover {
  color: var(--tabs-text-color-focus);
  background: var(--tabs-bg-color-focus);
}
a.tui-tabBar__link:focus-visible {
  color: var(--tabs-text-color-focus);
  background: var(--tabs-bg-color-focus);
  outline: 2px solid var(--color-state-focus);
  outline-offset: calc((var(--tab-border-width) + 4px) * -1);
}
a.tui-tabBar__link:active, a.tui-tabBar__link:active:focus, a.tui-tabBar__link:active:hover {
  color: var(--tabs-text-color-active);
  outline: none;
}
.tui-tabBar--horizontal a.tui-tabBar__link {
  margin-top: var(--tab-highlight-height);
  /* overlap edges to avoid double border*/
  margin-right: calc(var(--tab-border-width) * -1);
  border-bottom: none;
}
.tui-tabBar--vertical a.tui-tabBar__link {
  /* overlap edges to avoid double border*/
  margin-bottom: calc(var(--tab-border-width) * -1);
  margin-left: var(--tab-highlight-height);
  border-right: none;
}
.tui-tabBar__tab--disabled a.tui-tabBar__link {
  color: var(--tabs-text-color-disabled);
  cursor: default;
  pointer-events: none;
}
.tui-tabBar__tab--active a.tui-tabBar__link {
  position: relative;
  color: var(--tabs-text-color-selected);
  background: var(--tabs-bg-color-selected);
}
.tui-tabBar--horizontal .tui-tabBar__tab--active a.tui-tabBar__link {
  top: var(--tab-border-width);
  padding-top: calc(var(--tab-v-padding) - var(--tab-border-width));
  padding-bottom: calc(var(--tab-v-padding) + var(--tab-border-width));
  border-color: var(--tabs-border-color);
  box-shadow: var(--shadow-3);
}
.tui-tabBar--vertical .tui-tabBar__tab--active a.tui-tabBar__link {
  left: var(--tab-border-width);
  padding-right: calc(var(--tab-v-padding) + var(--tab-border-width));
  padding-left: calc(var(--tab-h-padding) - var(--tab-border-width));
  border-color: var(--tabs-border-color);
  box-shadow: var(--shadow-2);
}
.tui-tabBar__tab--active a.tui-tabBar__link::after {
  position: absolute;
  background: var(--tabs-selected-bar-color);
  content: "";
}
.tui-tabBar--horizontal .tui-tabBar__tab--active a.tui-tabBar__link::after {
  top: calc(var(--tab-highlight-height) * -1);
  right: 0;
  left: calc(var(--tab-border-width) * -1);
  width: calc(100% + (var(--tab-border-width) * 2));
  height: var(--tab-highlight-height);
  border-radius: var(--border-radius-small) var(--border-radius-small) 0 0;
}
.tui-tabBar--vertical .tui-tabBar__tab--active a.tui-tabBar__link::after {
  top: calc(var(--tab-border-width) * -1);
  bottom: 0;
  left: calc(var(--tab-highlight-height) * -1);
  width: var(--tab-highlight-height);
  height: calc(100% + (var(--tab-border-width) * 2));
  border-radius: var(--border-radius-small) 0 0 var(--border-radius-small);
}
.tui-tabBar__tabLabel {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.tui-tabBar__tabLabelExtra {
  display: flex;
  align-items: center;
  margin-left: var(--gap-2);
}
.tui-tabBar__selector {
  display: block;
}
.tui-tabBar {
  /* Small tab*/
  /* Active small tab*/
  /* Disabled small tab*/
}
.tui-tabBar--horizontal .tui-tabBar__tab--small .tui-tabBar__link {
  font-weight: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
  padding: var(--tab-small-v-padding) var(--tab-small-h-padding);
}
.tui-tabBar--horizontal .tui-tabBar__tab--active.tui-tabBar__tab--small .tui-tabBar__link {
  padding-top: calc(var(--tab-small-v-padding) - var(--tab-border-width));
  /* prettier-ignore*/
  padding-bottom: calc(var(--tab-small-v-padding) + var(--tab-border-width));
  color: var(--tabs-text-color-selected);
}
.tui-tabBar--horizontal .tui-tabBar__tab--disabled.tui-tabBar__tab--small .tui-tabBar__link {
  color: var(--tabs-text-color-disabled);
  cursor: default;
  pointer-events: none;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/tabs/Tabs.vue?vue&type=style&index=0&id=f07dc380&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-tabs--fill {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  height: 100%;
}
.tui-tabs--vertical {
  display: flex;
  flex-direction: row;
}
.tui-tabs--fill > .tui-tabs__panels {
  flex-grow: 1;
  min-height: 0;
}
.tui-tabs--fill > .tui-tabs__panels > .tui-tabContent {
  height: 100%;
}
.tui-tabs--horizontal .tui-tabContent {
  padding-top: var(--gap-4);
}
.tui-tabs--horizontal.tui-tabs--contentSpacing-large .tui-tabContent {
  padding-top: var(--gap-8);
}
.tui-tabs--vertical .tui-tabContent {
  padding-left: var(--gap-4);
}
.tui-tabs--vertical.tui-tabs--contentSpacing-large .tui-tabContent {
  padding-left: var(--gap-8);
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/tag/Tag.vue?vue&type=style&index=0&id=574bed14&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-tag {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  height: var(--tag-height);
  white-space: nowrap;
  background-color: var(--tag-bg-color);
  border: var(--border-width-thin) solid var(--tag-border-color);
  border-radius: var(--tag-border-radius);
}
.tui-tag--noBorder {
  border: none;
}
.tui-tag--large {
  height: auto;
  border-radius: 100px;
  /* suitably large to make it rounded*/
}
.tui-tag--bold {
  font-weight: bold;
}
.tui-tag__content {
  display: flex;
  padding: 0 var(--gap-2);
  font-size: calc(var(--font-size-base) / 16 * 13);
}
.tui-tag--large .tui-tag__content {
  padding: var(--gap-2) var(--gap-3);
  font-size: calc(var(--font-size-base) / 16 * 15);
}
.tui-tag--withButton .tui-tag__content {
  padding-right: 0;
  color: var(--tag-button-color);
}
.tui-tag__contentLabel {
  padding-right: var(--gap-1);
  font-weight: normal;
}
.tui-tag--primary {
  text-transform: uppercase;
  background-color: var(--color-state);
}
.tui-tag--primary .tui-tag__content {
  color: var(--color-neutral-1);
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/tag/TagList.vue?vue&type=style&index=0&id=16df0034&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-tagList {
  display: flex;
  min-width: 14.375rem;
  min-height: var(--form-input-height);
  color: var(--form-input-text-color);
  font-size: var(--form-input-font-size);
  background: var(--form-input-bg-color);
  border: var(--form-input-border-size) solid var(--form-input-border-color);
  border-radius: var(--form-input-border-radius);
}
.tui-contextInvalid .tui-tagList {
  border-color: var(--form-input-border-color-invalid);
  box-shadow: var(--form-input-shadow-invalid);
}
.tui-tagList--hasFocus {
  outline: 2px solid var(--color-state-focus);
  outline-offset: var(--focus-outline-offset);
}
.tui-contextInvalid .tui-tagList--hasFocus {
  background: var(--form-input-bg-color-invalid-focus);
  border-color: var(--form-input-border-color-invalid);
  outline-color: var(--form-input-border-color-invalid);
  box-shadow: var(--form-input-shadow-invalid-focus);
}
.tui-tagList__tags {
  display: flex;
  flex: auto;
  align-items: center;
  min-width: 0;
}
.tui-tagList__tagItems {
  display: flex;
  flex-grow: 1;
  gap: var(--gap-1);
  align-items: center;
  min-width: 0;
  padding: calc((calc(var(--form-input-height) - (var(--form-input-border-size) * 2)) - var(--tag-height)) / 2) var(--gap-2);
}
.tui-tagList__tagItems--open {
  flex-wrap: wrap;
}
.tui-tagList__tagItem {
  display: flex;
  flex-shrink: 0;
  align-items: center;
}
.tui-tagList__suffix {
  font-weight: var(--font-body-sm-weight);
  font-size: var(--font-body-sm-size);
  font-family: var(--font-body-sm-family);
  line-height: var(--font-body-sm-line-height);
  flex-shrink: 0;
  padding-right: var(--gap-2);
  padding-left: var(--gap-1);
  color: var(--color-state);
  white-space: nowrap;
}
.tui-tagList__suffix:hover {
  cursor: pointer;
}
.tui-tagList__input {
  flex-grow: 1;
  height: var(--tag-height);
  background: transparent;
  border: none;
}
.tui-tagList__input:focus {
  outline: none;
}
.tui-tagList__expandArrow {
  position: relative;
  width: calc(var(--form-input-height) - (var(--form-input-border-size) * 2));
  height: calc(var(--form-input-height) - (var(--form-input-border-size) * 2));
  background: none;
  border: none;
}
.tui-tagList__expandArrow::after {
  position: absolute;
  top: calc((calc(var(--form-input-height) - (var(--form-input-border-size) * 2)) - var(--select-icon-size)) / 2);
  right: calc((calc(var(--form-input-height) - (var(--form-input-border-size) * 2)) - var(--select-icon-size) * 2) / 2);
  display: block;
  width: 0;
  height: 0;
  border: var(--select-icon-size) solid transparent;
  border-top-color: var(--form-input-text-color);
  content: "";
  pointer-events: none;
}
.tui-tagList__caret {
  fill: var(--color-neutral-7);
}
.tui-tagList__loading {
  margin: var(--gap-4);
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/theme_settings/SettingsFormBrand.vue?vue&type=style&index=0&id=b6b1916e&lang=scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-settingsFormBrand__testEmailInfoButton {
  align-self: center;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/toggle/ToggleButton.vue?vue&type=style&index=0&id=77a0e912&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-toggleBtn {
  position: relative;
  display: inline-block;
  flex-shrink: 0;
  min-width: var(--gap-12);
  max-width: 100%;
  height: var(--form-input-height);
  padding: 0 var(--gap-2);
  color: var(--toggle-btn-text-color);
  font-size: var(--form-input-font-size);
  line-height: 1.2;
  background: var(--toggle-btn-bg-color);
  border: none;
  border-radius: calc(var(--btn-radius) - 1px);
}
.tui-toggleBtn:focus, .tui-toggleBtn:active:focus {
  color: var(--toggle-btn-text-color);
  text-decoration: none;
  background: var(--toggle-btn-bg-color);
  outline: none;
  box-shadow: none;
}
.tui-toggleBtn:hover {
  color: var(--toggle-btn-text-color-focus);
  text-decoration: none;
  background: var(--toggle-btn-bg-color-focus);
  box-shadow: none;
}
.tui-toggleBtn:active, .tui-toggleBtn:active:focus, .tui-toggleBtn:active:hover {
  color: var(--toggle-btn-text-color-active);
  text-decoration: none;
  background: var(--toggle-btn-bg-color-active);
  border: none;
  box-shadow: none;
}
.tui-toggleBtn:focus-visible {
  outline: 2px solid var(--toggle-btn-text-color-active);
  outline-offset: -3px;
}
.tui-toggleBtn[disabled] {
  color: var(--toggle-btn-text-color-disabled);
  background: var(--toggle-btn-bg-color-disabled);
  cursor: default;
}
.tui-toggleBtn[disabled]:focus, .tui-toggleBtn[disabled]:hover, .tui-toggleBtn[disabled]:active, .tui-toggleBtn[disabled]:active:focus, .tui-toggleBtn[disabled]:active:hover {
  color: var(--toggle-btn-text-color-disabled);
  background: var(--toggle-btn-bg-color-disabled);
}
.tui-toggleBtn--selected {
  cursor: default;
}
.tui-toggleBtn--selected, .tui-toggleBtn--selected:focus, .tui-toggleBtn--selected:hover, .tui-toggleBtn--selected:active, .tui-toggleBtn--selected:active:focus, .tui-toggleBtn--selected:active:hover {
  color: var(--toggle-btn-text-color-selected);
  background: var(--toggle-btn-bg-color-selected);
}
.tui-toggleBtn--selected:focus {
  outline: none;
}
.tui-toggleBtn--selected:focus-visible {
  outline: 2px solid var(--toggle-btn-text-color-selected);
  outline-offset: -3px;
}
.tui-toggleBtn[disabled].tui-toggleBtn--selected {
  color: var(--toggle-btn-text-color-selected);
  background: var(--toggle-btn-bg-color-selected);
}
.tui-toggleBtn[disabled].tui-toggleBtn--selected:focus, .tui-toggleBtn[disabled].tui-toggleBtn--selected:hover, .tui-toggleBtn[disabled].tui-toggleBtn--selected:active, .tui-toggleBtn[disabled].tui-toggleBtn--selected:active:focus, .tui-toggleBtn[disabled].tui-toggleBtn--selected:active:hover {
  color: var(--toggle-btn-text-color-selected);
  background: var(--toggle-btn-bg-color-selected);
}
.tui-toggleBtn--hasText {
  min-width: 70px;
}
.tui-toggleBtn--hasText .tui-toggleBtn__icon {
  font-size: calc(var(--font-size-base) / 16 * 14);
}
.tui-toggleBtn--large {
  min-width: 6.25rem;
  min-height: 2.875rem;
}
.tui-toggleBtn--large .tui-toggleBtn__content {
  flex-direction: column;
}
.tui-toggleBtn--large .tui-toggleBtn__content > * + * {
  margin-top: var(--gap-1);
}
.tui-toggleBtn__content {
  display: inline-flex;
  align-items: center;
}
.tui-toggleBtn__icon {
  position: relative;
  top: 1px;
  display: flex;
  flex-shrink: 0;
  font-size: calc(var(--font-size-base) / 16 * 15);
}
.tui-toggleBtn__text {
  padding: 0 var(--gap-1);
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/toggle/ToggleSet.vue?vue&type=style&index=0&id=00a09ab2&lang=scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-toggleSet {
  display: inline-flex;
  max-width: 100%;
  padding: 1px;
  background: var(--toggle-bg-color);
  border-radius: var(--btn-radius);
}
.tui-toggleSet--disabled {
  opacity: 0.4;
}
.tui-toggleSet--select {
  width: 100%;
  background: transparent;
}
.tui-toggleSet--large {
  padding: 2px;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/toggle/ToggleSwitch.vue?vue&type=style&index=0&id=4d8ea814&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-toggleSwitch {
  display: flex;
  align-items: center;
  /* toggle size and shape*/
  /* toggled off, via the button*/
  /* toggled on*/
  /* toggled on, via the button*/
  /* toggle on the left, text on the right*/
}
.tui-toggleSwitch__btn {
  display: inline-block;
  padding: 0;
  color: var(--form-toggle-color);
  line-height: 1;
  background: transparent;
  border: none;
}
.tui-toggleSwitch__btn:focus, .tui-toggleSwitch__btn:active:focus {
  color: var(--form-toggle-color);
  outline: none;
}
.tui-toggleSwitch__btn:hover {
  color: var(--form-toggle-color);
}
.tui-toggleSwitch__btn[disabled] {
  color: initial;
}
.tui-toggleSwitch__btn[disabled]:hover {
  color: initial;
}
.tui-toggleSwitch__btn[disabled]:hover, .tui-toggleSwitch__btn[disabled]:active:hover {
  color: initial;
}
.tui-toggleSwitch__btn-text {
  position: relative;
}
.tui-toggleSwitch__ui {
  position: relative;
  width: var(--form-toggle-container-width);
  margin-left: var(--form-toggle-text-offset);
  /* prettier-ignore*/
  padding: calc(var(--form-toggle-focus-gap) + var(--form-toggle-focus-border));
  /* the toggle background*/
  /* the toggle dot*/
  /* toggled off*/
  /* the toggle background*/
  /* the toggle dot*/
}
.tui-toggleSwitch__ui--toggleOnly {
  margin-left: calc(-1 * (var(--form-toggle-focus-gap) + var(--form-toggle-focus-border)));
}
.tui-toggleSwitch__ui:before {
  display: block;
  height: var(--form-toggle-container-height);
  border-radius: var(--form-toggle-container-radius);
  transition: background-color var(--transition-button-duration) var(--transition-button-function), border-color var(--transition-button-duration) var(--transition-button-function);
  content: "";
}
.tui-contextInvalid .tui-toggleSwitch__ui:before {
  box-shadow: 0 0 0 2px var(--form-input-border-color-invalid);
}
.tui-toggleSwitch__ui:after {
  position: absolute;
  /* prettier-ignore*/
  top: calc(var(--form-toggle-dot-offset) + calc(var(--form-toggle-focus-gap) + var(--form-toggle-focus-border)));
  /* prettier-ignore*/
  left: calc(var(--form-toggle-dot-offset) + calc(var(--form-toggle-focus-gap) + var(--form-toggle-focus-border)));
  display: block;
  width: var(--form-toggle-dot-size);
  height: var(--form-toggle-dot-size);
  border-radius: 50%;
  box-shadow: var(--shadow-2);
  content: "";
}
.tui-toggleSwitch__ui:hover, .tui-toggleSwitch__ui:focus {
  cursor: pointer;
}
.tui-toggleSwitch__ui:before {
  background-color: var(--form-toggle-off-bg-color);
  border: var(--form-input-border-size) solid;
  border-color: var(--form-toggle-border-color);
}
.tui-toggleSwitch__ui:after {
  background-color: var(--form-toggle-dot-color);
}
.tui-toggleSwitch__ui:hover:before, .tui-toggleSwitch__ui:focus:before {
  background-color: var(--form-toggle-off-bg-color-hover-focus);
}
.tui-toggleSwitch__ui[data-disabled] {
  cursor: default;
}
.tui-toggleSwitch__ui[data-disabled]:before {
  background-color: var(--form-toggle-off-bg-color-disabled);
  border-color: var(--form-toggle-border-color-disabled);
}
.tui-toggleSwitch__btn:hover ~ .tui-toggleSwitch__ui, .tui-toggleSwitch__btn:focus ~ .tui-toggleSwitch__ui {
  padding: var(--form-toggle-focus-gap);
  border: var(--form-toggle-focus-border) solid transparent;
  /* prettier-ignore*/
  border-radius: calc(calc(var(--form-toggle-container-radius) + var(--form-toggle-focus-gap)) + var(--form-toggle-focus-border));
}
.tui-toggleSwitch__btn:hover ~ .tui-toggleSwitch__ui:after, .tui-toggleSwitch__btn:focus ~ .tui-toggleSwitch__ui:after {
  /* prettier-ignore*/
  top: calc(var(--form-toggle-dot-offset) + var(--form-toggle-focus-gap));
  /* prettier-ignore*/
  left: calc(var(--form-toggle-dot-offset) + var(--form-toggle-focus-gap));
}
.tui-toggleSwitch__btn:focus ~ .tui-toggleSwitch__ui {
  border: var(--form-toggle-focus-border) solid var(--color-state);
}
.tui-toggleSwitch__btn[aria-pressed] ~ .tui-toggleSwitch__ui {
  /* the dot*/
  /* the toggle background*/
}
.tui-toggleSwitch__btn[aria-pressed] ~ .tui-toggleSwitch__ui:after {
  /* prettier-ignore*/
  right: calc(var(--form-toggle-dot-offset) + calc(var(--form-toggle-focus-gap) + var(--form-toggle-focus-border)));
  left: auto;
}
.tui-toggleSwitch__btn[aria-pressed] ~ .tui-toggleSwitch__ui:before {
  background-color: var(--form-toggle-on-bg-color);
  border-color: var(--form-toggle-on-border-color);
}
.tui-toggleSwitch__btn[aria-pressed] ~ .tui-toggleSwitch__ui:hover:before, .tui-toggleSwitch__btn[aria-pressed] ~ .tui-toggleSwitch__ui:focus:before {
  background-color: var(--form-toggle-on-bg-color-hover-focus);
}
.tui-toggleSwitch__btn[aria-pressed] ~ .tui-toggleSwitch__ui[data-disabled]:before {
  background-color: var(--form-toggle-on-bg-color-disabled);
  border-color: var(--form-toggle-border-color-disabled);
}
.tui-toggleSwitch__btn[aria-pressed]:hover ~ .tui-toggleSwitch__ui:after, .tui-toggleSwitch__btn[aria-pressed]:focus ~ .tui-toggleSwitch__ui:after {
  /* prettier-ignore*/
  right: calc(var(--form-toggle-dot-offset) + var(--form-toggle-focus-gap));
}
.tui-toggleSwitch--left .tui-toggleSwitch__ui {
  order: 1;
  margin-right: var(--form-toggle-text-offset);
  margin-left: 0;
}
.tui-toggleSwitch--left .tui-toggleSwitch__btn {
  order: 2;
}
.tui-toggleSwitch--left .tui-toggleSwitch__icon {
  order: 3;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/tree/Tree.vue?vue&type=style&index=0&id=164b9b80&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-tree {
  list-style: none;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/tree/TreeNode.vue?vue&type=style&index=0&id=28e55f62&lang=scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-treeNode {
  position: relative;
  width: 100%;
}
.tui-treeNode--top {
  padding: var(--gap-1) 0;
}
.tui-treeNode:not(.tui-treeNode--top) {
  padding-left: var(--gap-6);
}
.tui-treeNode--separator:after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  border-bottom: var(--border-width-thin) solid var(--color-neutral-5);
  content: "";
}
.tui-treeNode__trigger {
  display: flex;
  align-items: center;
  padding: 0 var(--gap-1);
}
.tui-treeNode__bar {
  display: flex;
  width: 100%;
  min-width: 0;
}
.tui-treeNode__bar-btn {
  flex-grow: 1;
  line-height: 1.2;
  text-align: left;
  -ms-word-break: break-all;
  word-break: break-word;
}
.tui-treeNode__bar-label, .tui-treeNode__bar-link {
  flex-grow: 1;
  margin: 0;
  -ms-word-break: break-all;
  word-break: break-word;
  -webkit-hyphens: none;
  hyphens: none;
}
.tui-treeNode__bar-label {
  font-weight: var(--font-body-weight);
  font-size: var(--font-body-size);
  font-family: var(--font-body-family);
  line-height: var(--font-body-line-height);
}
.tui-treeNode__bar-link:focus, .tui-treeNode__bar-link:hover {
  text-decoration: none;
}
.tui-treeNode__bar-side {
  flex-shrink: 0;
  margin-left: auto;
}
.tui-treeNode__child {
  margin: 0;
  padding-top: var(--gap-2);
  list-style: none;
}
.tui-treeNode--noPadding {
  padding: 0;
}
.tui-treeNode--noPadding .tui-treeNode__child {
  padding: 0;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/treeview/TreeView.vue?vue&type=style&index=0&id=ba657300&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-treeView {
  display: flex;
  flex-direction: column;
  gap: var(--border-width-normal);
  margin-left: 0;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/treeview/TreeViewNode.vue?vue&type=style&index=0&id=7a9758bc&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-treeViewNode {
  display: flex;
  flex-direction: column;
  gap: var(--border-width-normal);
  list-style: none;
  border-radius: var(--border-radius-small);
}
.tui-treeViewNode:focus-visible {
  outline: 2px solid var(--color-state-focus);
  outline-offset: var(--focus-outline-offset);
}
.tui-treeViewNode__item {
  display: flex;
  gap: calc(var(--gap-base) * 1);
  align-items: center;
  min-height: 2rem;
  padding: calc(var(--gap-base) * 1) calc(var(--gap-base) * 2) calc(var(--gap-base) * 1) calc(var(--gap-base) * 9);
  overflow-wrap: anywhere;
  border-radius: var(--border-radius-small);
  -webkit-user-select: none;
  user-select: none;
}
.tui-treeViewNode__item:hover {
  background-color: var(--color-neutral-3);
}
.tui-treeViewNode__item--selectable {
  cursor: pointer;
}
.tui-treeViewNode__item--hasChildren {
  padding: calc(var(--gap-base) * 1) calc(var(--gap-base) * 2) calc(var(--gap-base) * 1) calc(var(--gap-base) * 2);
  cursor: pointer;
}
.tui-treeViewNode__item--selected {
  color: var(--color-neutral-1);
  background-color: var(--color-state);
}
.tui-treeViewNode__item--selected:hover {
  background-color: var(--color-state);
}
.tui-treeViewNode__item-children {
  display: flex;
  flex-direction: column;
  gap: var(--border-width-normal);
  margin-left: calc(var(--gap-base) * 4);
}
.tui-treeViewNode__item-icon {
  pointer-events: none;
}
.tui-treeViewNode__item-toggle {
  align-self: start;
  min-width: 1.5rem;
  min-height: 1.5rem;
}
.tui-treeViewNode__item--selected .tui-treeViewNode__item-toggle {
  color: var(--color-neutral-1);
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/components/uniform/FormField.vue?vue&type=style&index=0&id=32cf50e8&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-formField {
  flex-grow: 1;
  width: 100%;
  min-width: 0;
  /* Set a custom size for inputs in a limited form*/
}
.tui-formField--charLength-2 {
  max-width: calc(2 * var(--form-input-font-size));
}
.tui-formField--charLength-3 {
  max-width: calc(3 * var(--form-input-font-size));
}
.tui-formField--charLength-4 {
  max-width: calc(4 * var(--form-input-font-size));
}
.tui-formField--charLength-5 {
  max-width: calc(5 * var(--form-input-font-size));
}
.tui-formField--charLength-10 {
  max-width: calc(10 * var(--form-input-font-size));
}
.tui-formField--charLength-15 {
  max-width: calc(15 * var(--form-input-font-size));
}
.tui-formField--charLength-20 {
  max-width: calc(20 * var(--form-input-font-size));
}
.tui-formField--charLength-25 {
  max-width: calc(25 * var(--form-input-font-size));
}
.tui-formField--charLength-30 {
  max-width: calc(30 * var(--form-input-font-size));
}
.tui-formField--charLength-50 {
  max-width: calc(50 * var(--form-input-font-size));
}
.tui-formField--charLength-75 {
  max-width: calc(75 * var(--form-input-font-size));
}
.tui-formField--charLength-100 {
  max-width: calc(100 * var(--form-input-font-size));
}
.tui-form--inputWidth-limited .tui-formField:not(.tui-input--customSize) {
  max-width: var(--form-input-limited-width);
}
.tui-form--inputWidth-limited .tui-inputSet--split .tui-formField:not(.tui-input--customSize) {
  max-width: none;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/pages/ThemeSettings.vue?vue&type=style&index=0&id=8034da32&lang=scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-themeSettings__content {
  margin-top: var(--gap-8);
}
.tui-themeSettings__forms > * + * {
  margin-top: var(--gap-8);
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./client/tooling/webpack/css_raw_loader.js??clonedRuleSet-778.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-778.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./client/component/tui/src/pages/ThemeTenants.vue?vue&type=style&index=0&id=9ed04016&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************/
.tui-themeTenants__content {
  margin-top: var(--gap-8);
}
.tui-themeTenants__section + .tui-themeTenants__section {
  margin-top: var(--gap-12);
}
.tui-themeTenants__section > * + * {
  margin-top: var(--gap-4);
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhdGEvdG90YXJhbGVhcm4vZXNvci5ldWxhci5vcmcvaHR0cGRvY3MvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvZGVwcmVjYXRlZC5kZXZlbG9wbWVudC5zY3NzIiwiZGF0YS90b3RhcmFsZWFybi9lc29yLmV1bGFyLm9yZy9odHRwZG9jcy9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy90dWlfc2l6ZXMuZGV2ZWxvcG1lbnQuc2NzcyIsImRhdGEvdG90YXJhbGVhcm4vZXNvci5ldWxhci5vcmcvaHR0cGRvY3MvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX3R5cG9ncmFwaHkuZGV2ZWxvcG1lbnQuc2NzcyIsImRhdGEvdG90YXJhbGVhcm4vZXNvci5ldWxhci5vcmcvaHR0cGRvY3MvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX3NwYWNpbmcuZGV2ZWxvcG1lbnQuc2NzcyIsImRhdGEvdG90YXJhbGVhcm4vZXNvci5ldWxhci5vcmcvaHR0cGRvY3MvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX2JvcmRlcnMuZGV2ZWxvcG1lbnQuc2NzcyIsImRhdGEvdG90YXJhbGVhcm4vZXNvci5ldWxhci5vcmcvaHR0cGRvY3MvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX2J1dHRvbnMuZGV2ZWxvcG1lbnQuc2NzcyIsImRhdGEvdG90YXJhbGVhcm4vZXNvci5ldWxhci5vcmcvaHR0cGRvY3MvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX2NvbG9ycy5kZXZlbG9wbWVudC5zY3NzIiwiZGF0YS90b3RhcmFsZWFybi9lc29yLmV1bGFyLm9yZy9odHRwZG9jcy9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9jb2xvcnMvYXJyb3cuZGV2ZWxvcG1lbnQuc2NzcyIsImRhdGEvdG90YXJhbGVhcm4vZXNvci5ldWxhci5vcmcvaHR0cGRvY3MvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL2Zvcm1zLmRldmVsb3BtZW50LnNjc3MiLCJkYXRhL3RvdGFyYWxlYXJuL2Vzb3IuZXVsYXIub3JnL2h0dHBkb2NzL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL2NvbG9ycy9hdmF0YXIuZGV2ZWxvcG1lbnQuc2NzcyIsImRhdGEvdG90YXJhbGVhcm4vZXNvci5ldWxhci5vcmcvaHR0cGRvY3MvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL2Ryb3Bkb3duLmRldmVsb3BtZW50LnNjc3MiLCJkYXRhL3RvdGFyYWxlYXJuL2Vzb3IuZXVsYXIub3JnL2h0dHBkb2NzL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL2NvbG9ycy9kYXRhdGFibGUuZGV2ZWxvcG1lbnQuc2NzcyIsImRhdGEvdG90YXJhbGVhcm4vZXNvci5ldWxhci5vcmcvaHR0cGRvY3MvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL3RhYnMuZGV2ZWxvcG1lbnQuc2NzcyIsImRhdGEvdG90YXJhbGVhcm4vZXNvci5ldWxhci5vcmcvaHR0cGRvY3MvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL2NhcmQuZGV2ZWxvcG1lbnQuc2NzcyIsImRhdGEvdG90YXJhbGVhcm4vZXNvci5ldWxhci5vcmcvaHR0cGRvY3MvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL2NoYXJ0cy5kZXZlbG9wbWVudC5zY3NzIiwiZGF0YS90b3RhcmFsZWFybi9lc29yLmV1bGFyLm9yZy9odHRwZG9jcy9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9jb2xvcnMvZmlsdGVycy5kZXZlbG9wbWVudC5zY3NzIiwiZGF0YS90b3RhcmFsZWFybi9lc29yLmV1bGFyLm9yZy9odHRwZG9jcy9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9jb2xvcnMvdGFncy5kZXZlbG9wbWVudC5zY3NzIiwiZGF0YS90b3RhcmFsZWFybi9lc29yLmV1bGFyLm9yZy9odHRwZG9jcy9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9jb2xvcnMvcHJvZ3Jlc3NiYXIuZGV2ZWxvcG1lbnQuc2NzcyIsImRhdGEvdG90YXJhbGVhcm4vZXNvci5ldWxhci5vcmcvaHR0cGRvY3MvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL2NvbGxhcHNpYmxlLmRldmVsb3BtZW50LnNjc3MiLCJkYXRhL3RvdGFyYWxlYXJuL2Vzb3IuZXVsYXIub3JnL2h0dHBkb2NzL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL2NvbG9ycy9wcm9ncmVzc3RyYWNrZXIuZGV2ZWxvcG1lbnQuc2NzcyIsImRhdGEvdG90YXJhbGVhcm4vZXNvci5ldWxhci5vcmcvaHR0cGRvY3MvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL3NpZGVfcGFuZWxfbmF2LmRldmVsb3BtZW50LnNjc3MiLCJkYXRhL3RvdGFyYWxlYXJuL2Vzb3IuZXVsYXIub3JnL2h0dHBkb2NzL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL2NvbG9ycy90b2dnbGUuZGV2ZWxvcG1lbnQuc2NzcyIsImRhdGEvdG90YXJhbGVhcm4vZXNvci5ldWxhci5vcmcvaHR0cGRvY3MvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL25vdGlmaWNhdGlvbnRvYXN0LmRldmVsb3BtZW50LnNjc3MiLCJkYXRhL3RvdGFyYWxlYXJuL2Vzb3IuZXVsYXIub3JnL2h0dHBkb2NzL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9zaGFkb3dzLmRldmVsb3BtZW50LnNjc3MiLCJkYXRhL3RvdGFyYWxlYXJuL2Vzb3IuZXVsYXIub3JnL2h0dHBkb2NzL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9zaWRlX3BhbmVsX25hdi5kZXZlbG9wbWVudC5zY3NzIiwiZGF0YS90b3RhcmFsZWFybi9lc29yLmV1bGFyLm9yZy9odHRwZG9jcy9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy90dWlfcHJvZ3Jlc3NfdHJhY2tlcl9uYXYuZGV2ZWxvcG1lbnQuc2NzcyIsImRhdGEvdG90YXJhbGVhcm4vZXNvci5ldWxhci5vcmcvaHR0cGRvY3MvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX3JhbmdlLmRldmVsb3BtZW50LnNjc3MiLCJkYXRhL3RvdGFyYWxlYXJuL2Vzb3IuZXVsYXIub3JnL2h0dHBkb2NzL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9sYXlvdXQuZGV2ZWxvcG1lbnQuc2NzcyIsImRhdGEvdG90YXJhbGVhcm4vZXNvci5ldWxhci5vcmcvaHR0cGRvY3MvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX2FuaW1hdGlvbnMuZGV2ZWxvcG1lbnQuc2NzcyIsImRhdGEvdG90YXJhbGVhcm4vZXNvci5ldWxhci5vcmcvaHR0cGRvY3MvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX21vZGFscy5kZXZlbG9wbWVudC5zY3NzIiwiZGF0YS90b3RhcmFsZWFybi9lc29yLmV1bGFyLm9yZy9odHRwZG9jcy9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy90dWlfZW1iZWRzLmRldmVsb3BtZW50LnNjc3MiLCJkYXRhL3RvdGFyYWxlYXJuL2Vzb3IuZXVsYXIub3JnL2h0dHBkb2NzL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9mb3Jtcy5kZXZlbG9wbWVudC5zY3NzIiwiZGF0YS90b3RhcmFsZWFybi9lc29yLmV1bGFyLm9yZy9odHRwZG9jcy9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy90dWlfdG9nZ2xlLmRldmVsb3BtZW50LnNjc3MiLCJkYXRhL3RvdGFyYWxlYXJuL2Vzb3IuZXVsYXIub3JnL2h0dHBkb2NzL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9zZXBhcmF0b3JzLmRldmVsb3BtZW50LnNjc3MiLCJkYXRhL3RvdGFyYWxlYXJuL2Vzb3IuZXVsYXIub3JnL2h0dHBkb2NzL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV90YWdzLmRldmVsb3BtZW50LnNjc3MiLCJkYXRhL3RvdGFyYWxlYXJuL2Vzb3IuZXVsYXIub3JnL2h0dHBkb2NzL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV96aW5kZXguZGV2ZWxvcG1lbnQuc2NzcyIsImRhdGEvdG90YXJhbGVhcm4vZXNvci5ldWxhci5vcmcvaHR0cGRvY3MvY2xpZW50L2NvbXBvbmVudC90dWkvYnVpbGQvdHVpX2J1bmRsZS5kZXZlbG9wbWVudC5zY3NzIiwiZGF0YS90b3RhcmFsZWFybi9lc29yLmV1bGFyLm9yZy9odHRwZG9jcy9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3N0eWxlcy90eXBvZ3JhcGh5LmRldmVsb3BtZW50LnNjc3MiLCJkYXRhL3RvdGFyYWxlYXJuL2Vzb3IuZXVsYXIub3JnL2h0dHBkb2NzL2NsaWVudC9jb21wb25lbnQvdHVpL2J1aWxkL2dsb2JhbF9zdHlsZXMvc3R5bGVzL3JpY2gtY29udGVudC5kZXZlbG9wbWVudC5zY3NzIiwiZGF0YS90b3RhcmFsZWFybi9lc29yLmV1bGFyLm9yZy9odHRwZG9jcy9jbGllbnQvY29tcG9uZW50L3R1aS9idWlsZC9nbG9iYWxfc3R5bGVzL3N0eWxlcy9pY29ucy5kZXZlbG9wbWVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNEQTtBQUFBO0FBQUE7QUFBQTtBQzJDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQzNDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNKQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNBQTtBQUFBO0FBQUE7QUNBQTtBQUFBO0FBQUE7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNBQTtBQUFBO0FBQUE7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FDQUE7QUFBQTtBQUFBO0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQUFBO0FDYUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ2JBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNBQTtBQUFBO0FBQUE7QUN3RkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FDaEZBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ1JBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQUFBO0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0FBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdkJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUEyQkU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3hERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNQQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7Ozs7QUhRRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFTRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTs7OztBQVFGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQW1CQTtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBVUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRRTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0U7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFBQTtBQU9OO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTs7OztBQVFGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUEwQ0U7QUFBQTtBQUFBO0FBRUU7QUFBQTtBQUFBO0FBTUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFNRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlFO0FBQUE7QUFBQTtBQU9GO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFFO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBT0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBUUY7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBOzs7O0FBU0E7QUFBQTtBQUFBO0FBQUE7Ozs7QUFTRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBRUU7QUFBQTtBQUFBO0FBQUE7Ozs7QUFVSjtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFLRjtBQUNFO0FBQUE7QUFBQTtBQUVFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFVSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9FO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFFRTtBQUFBO0FBQUE7QUFNRjtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBOzs7O0FBUUY7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFNRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFFRTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9JO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQVlGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXdDRTtBQUNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9GO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1GO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVFO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQVdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFTRTtBQUFBO0FBQUE7QUFBQTtBQU1KO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRjtBQUFBO0FBQUE7QUFDRTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFJRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBOzs7O0FBU0o7QUFBQTtBQUFBO0FBRUU7QUFBQTtBQUFBOzs7O0FBUUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUVFO0FBQUE7QUFBQTtBQUFBO0FBTUY7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTSjtBQUVJO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBOzs7O0FBU0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF3QkU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUVFO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQU1GO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFRRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFBQTs7OztBQVVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBOzs7O0FBU0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUU7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQVVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNFO0FBQUE7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7Ozs7QUFRRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7Ozs7QUFRRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9FO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBOzs7O0FBUUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUU7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBUUY7QUFBQTtBQUFBO0FBU0U7QUFBQTtBQUFBO0FBT0o7QUFBQTtBQUFBO0FBRUU7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFPRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRjtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTs7OztBQVNKO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBOzs7O0FBU0o7QUFBQTtBQUFBO0FBQUE7Ozs7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFBQTtBQU1GO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTs7OztBQVNKO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBQUE7QUFNRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUU7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBOzs7O0FBVUY7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFXRjtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7Ozs7QUE4RkY7QUFBQTtBQUFBO0FBQUE7QUFwRkU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBdEJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBMURBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQXRCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQVVJO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQVRBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQVRBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQVRBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTs7OztBQWlETjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQWNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQVdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUU7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQVNGO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTs7OztBQVlGO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBOzs7O0FBV0o7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQWNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQU1KO0FBQUE7QUFBQTs7OztBQVFFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQWFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBTUY7QUFBQTtBQUFBO0FBRUU7QUFBQTtBQUFBOzs7OztBQVVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUU7QUFBQTtBQUFBO0FBQUE7O0FBVUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBOzs7O0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTs7OztBQVVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7Ozs7QUFTSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7Ozs7QUFRRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9FO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFVRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9FO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBZUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQU1GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBakNyOEVBO0FBQUE7QUFBQTtBaUMyOEVBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFhRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBTUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFhQTtBQUFBO0FBQUE7QUFBQTs7OztBQVNGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXRTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNFO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUVFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUU7QUFBQTtBQUFBO0FBQUE7Ozs7QUFVRjtBQUFBO0FBQUE7QUFFRTtBQUFBO0FBQUE7Ozs7QUFTSjtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFNSjtBQUFBO0FBQUE7QUFHRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFHRTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBV0o7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQWNKO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBV0o7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFTRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTRjtBQUdNO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBYU47QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUk7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBOzs7O0FBU0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUU7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUU7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9GO0FBQUE7QUFBQTtBQUVFO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBV0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUU7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBTUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7Ozs7QUFRRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9FO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFVRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFFRTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFtQkU7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQU9KO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFtQkU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUY7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBRUk7QUFBQTtBQUFBO0FBQUE7QUFVRTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBV047QUFBQTtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNFO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBTUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFBQTtBQU1GO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBQUE7QUFPSjtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBQUE7Ozs7QUFVSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBakM5ekdFO0FBQUE7QUFBQTtBaUNzMEdGO0FBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFFO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFVSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9FO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7Ozs7QUFVSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQVdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFRRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7Ozs7QWpDejhHQTtBQUFBO0FBQUE7Ozs7QWlDdzlHRjtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QWpDeCtHRjtBQUFBO0FBQUE7QWlDKytHQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBVHBoSEU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUU7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBU2doSEY7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBOzs7O0FBUUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBakN0aUhFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBaUNpa0hGO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQVVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUlGO0FBQUE7QUFBQTs7OztBQVFGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBTDluSEE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FLMG5IRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBa0JGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FMcHRIRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUsrc0hGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFPRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVFO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFZRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FMbHdIRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUsrdkhGO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBOzs7O0FBUUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FMaHlIRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUtveUhGO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9FO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7Ozs7QUFTSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTs7Ozs7QUFVRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFxQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7QUFBQTtBQUFBO0FBQUE7QUFNRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFhRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTs7OztBQXdCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUxoL0hFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBSzIrSEY7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUE1Q0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBMkRGO0FBQUE7QUFBQTs7OztBQU9BO0FBQUE7QUFBQTtBQUFBOzs7O0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7Ozs7QUFRRjtBQUFBO0FBQUE7QUw5a0lFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBS3FrSUY7QUFBQTtBQUFBO0FBQUE7Ozs7QUFTRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFrQkU7QUFBQTtBQUFBO0FBQUE7QUFPSjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUFBO0FBTUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUU7QUFBQTtBQUFBO0FBQUE7QUFNRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0JBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFFSTtBQUFBO0FBQUE7QUFBQTtBQVVFO0FBQUE7QUFBQTtBQUFBOzs7O0FBVU47QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTs7OztBQVNGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9JO0FBQUE7QUFBQTtBQUFBO0FBTUY7QUFBQTtBQUFBO0FBS0Y7QUFDRTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBU0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUFBOzs7O0FBU0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBOzs7O0FBUUY7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBOzs7O0FBVU47QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUU7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBVUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBTHQrSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FLaStJRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUU7QUFBQTtBQUFBOzs7O0FBU0o7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUw3aEpFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBSzRoSkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWVFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0Y7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBOzs7O0FBVUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FMMW9KRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUtpcEpGO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBOzs7OztBQXNCSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRRTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFNRjtBQUFBO0FBQUE7QUEzQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBb0RBO0FBQUE7QUFBQTtBQXBEQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUE0REE7QUFBQTtBQUFBO0FBQUE7QUFRRTtBQUFBO0FBQUE7QUFPRjtBQUFBO0FBQUE7QUFHRTtBQUFBO0FBQUE7QUE5RUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBdUZBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFVRjtBQUFBO0FBQUE7QUFJQTtBQUNFO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBOzs7O0FBUUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1JO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQU1KO0FBQUE7QUFBQTs7OztBQU9BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7Ozs7QUFRRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQWFBO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTs7OztBQVNGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBYUE7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFHRTtBQUFBO0FBQUE7QUFBQTs7OztBQVVKO0FBQUE7QUFBQTtBQUlJO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFKO0FBQUE7QUFBQTs7OztBQU9BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXRTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBQUE7Ozs7QUFTSjtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUFBOzs7O0FBVUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBOztBQVNJO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQWNOO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FqQ2puS0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FpQzBuS0U7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBOzs7O0FBUUY7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBVUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9FO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0Y7QUFHTTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9OO0FBQ0U7QUFBQTtBQUFBO0FBQUE7Ozs7QUFRRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQVdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBV0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRRTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFhRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9FO0FBQUE7QUFBQTtBQUFBOzs7O0FBVUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0JBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUxueUtFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBS215S0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtGO0FBQ0U7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0o7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQWdCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTs7OztBQWFGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBT047QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYUk7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFNSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFPRjtBQUFBO0FBQUE7QUFJQTtBQUdNO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBUUo7QUFDRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFNSjtBQUdNO0FBQUE7QUFBQTtBQUVFO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUExRU47QUFDRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFNSjtBQUdNO0FBQUE7QUFBQTtBQUVFO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUExRU47QUFDRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFNSjtBQUdNO0FBQUE7QUFBQTtBQUVFO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFnQlI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTtBQU1GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTs7OztBQVNKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUU7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTs7OztBQW9CRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFHRTtBQUFBO0FBQUE7QUFoREE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSkE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSkE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBc0RKO0FBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBeUJKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFhQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFHRTtBQUFBO0FBQUE7QUFHRTtBQUFBO0FBQUE7QUE3Q0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBa0RKO0FBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFhSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTSjtBQUVJO0FBQUE7QUFBQTtBQUFBOzs7O0FBVUY7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBTUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0U7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUk7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFFO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBOzs7O0FBV1I7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUU7QUFBQTtBQUFBO0FBTUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVRTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTs7OztBQVdJO0FBQUE7QUFBQTtBQUFBOzs7O0FBV047QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQU1GO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBOzs7O0FBU0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFhRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7Ozs7QUFRRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYUU7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQVNKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBTUo7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9FO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBOzs7O0FBUUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFJRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFlSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNNO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUU7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV047QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRSTtBQUFBO0FBQUE7QUFBQTtBQU9KO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFPSjtBQUFBO0FBQUE7QUFHRTtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQVlOO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYUU7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUY7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBOzs7O0FBZUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZRTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFhRTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNFO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQVNFO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTs7OztBQVVOO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTs7OztBQVFGO0FBQUE7QUFBQTtBQVFFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFjRTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBbUJFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFtQkU7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFJO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTs7OztBQVVOO0FBQUE7QUFBQTtBQVdFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFlRTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0U7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFNRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUU7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7O0FBZUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFnQkY7QUFBQTtBQUFBO0FBRUU7QUFBQTtBQUFBO0FBRUU7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTs7OztBQVdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0k7QUFBQTtBQUFBO0FBVUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWNFO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFRTjtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQU1GO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUU7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUU7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBTUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFBQTtBQU9KO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFRRjtBQUFBO0FBQUE7QUFBQTs7OztBQVFBO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBVUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBO0FBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUFXQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTs7OztBQVNKO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBOzs7O0FBUUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9FO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVFO0FBQUE7QUFBQTtBQU9GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0FBYUY7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQU1GO0FBQUE7QUFBQTtBQUFBOzs7O0FBU0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9FO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTRTtBQUFBO0FBQUE7QUFPRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQVlKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWdCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTRTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdFO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPTTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7QUFpQko7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQU9GO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTs7OztBQVFGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUU7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTs7OztBQVFGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYUU7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRRTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9FO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBOzs7O0FBUUY7QUFBQTtBQUFBOzs7O0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUFBO0FBVUY7QUFBQTtBQUFBO0FBR0U7QUFBQTtBQUFBO0FBQUE7QUFVQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQU1GO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBQUE7QUFVRjtBQUFBO0FBQUE7QUFHRTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQU1KO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7Ozs7QUFRRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9FO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBOzs7O0FBUUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFFO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBRUU7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBTUY7QUFBQTtBQUFBO0FBTUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVRTtBQUFBO0FBQUE7QUFNRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWNBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFNRTtBQUFBO0FBQUE7QUFLRjtBQUFBO0FBQUE7QUFFRTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1FO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNKO0FBQUE7QUFBQTtBQU1GO0FBQUE7QUFBQTtBQUFBO0FBRUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFZRTtBQUFBO0FBQUE7QUFBQTtBQVVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7Ozs7QUFTSjtBQUFBO0FBQUE7Ozs7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUdFO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtFO0FBQUE7QUFBQTtBQU1GO0FBQUE7QUFBQTtBQUFBO0FBTUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUVFO0FBQUE7QUFBQTs7OztBQVNKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7OztBQVVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0U7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0U7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTtBQUtGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRjtBQUFBO0FBQUE7Ozs7QUFRRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUwvbVJFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUlFO0FBQUE7QUFBQTs7OztBSyttUkY7QUFBQTtBQUFBO0FqQy9vUkE7QUFBQTtBQUFBOzs7O0FpQzRwUkE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FqQ2hxUkE7QUFBQTtBQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9kZXByZWNhdGVkLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyNCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYS5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yIFNpbW9uIENoZXN0ZXIgPHNpbW9uLmNoZXN0ZXJAdG90YXJhLmNvbT4qL1xuLyogQG1vZHVsZSB0dWkqL1xuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSB0dWkvbm8tZGVwcmVjYXRlZC12YXJzICovXG5cbi8qIERlcHJlY2F0ZWQgc2luY2UgVG90YXJhIDE5LjAqL1xuJHR1aS1nYXA6IHJlbS1weCg0KTtcblxuOnJvb3Qge1xuICAvKiBEZXByZWNhdGVkIHNpbmNlIFRvdGFyYSAxOC4wKi9cbiAgLS1ncmlkLWd1dHRlcjogdmFyKC0tZ2FwLTUpO1xuXG4gIC8qIERlcHJlY2F0ZWQgc2luY2UgVG90YXJhIDE5LjAqL1xuICAtLWZvbnQtc2l6ZS0xOiBjYWxjKHZhcigtLWZvbnQtc2l6ZS1iYXNlKSAvIDE2ICogMSk7XG4gIC0tZm9udC1zaXplLTI6IGNhbGModmFyKC0tZm9udC1zaXplLWJhc2UpIC8gMTYgKiAyKTtcbiAgLS1mb250LXNpemUtNDogY2FsYyh2YXIoLS1mb250LXNpemUtYmFzZSkgLyAxNiAqIDQpO1xuICAtLWZvbnQtc2l6ZS04OiBjYWxjKHZhcigtLWZvbnQtc2l6ZS1iYXNlKSAvIDE2ICogOCk7XG4gIC0tZm9udC1zaXplLTEwOiBjYWxjKHZhcigtLWZvbnQtc2l6ZS1iYXNlKSAvIDE2ICogMTApO1xuICAtLWZvbnQtc2l6ZS0xMTogY2FsYyh2YXIoLS1mb250LXNpemUtYmFzZSkgLyAxNiAqIDExKTtcbiAgLS1mb250LXNpemUtMTI6IGNhbGModmFyKC0tZm9udC1zaXplLWJhc2UpIC8gMTYgKiAxMik7XG4gIC0tZm9udC1zaXplLTEzOiBjYWxjKHZhcigtLWZvbnQtc2l6ZS1iYXNlKSAvIDE2ICogMTMpO1xuICAtLWZvbnQtc2l6ZS0xNDogY2FsYyh2YXIoLS1mb250LXNpemUtYmFzZSkgLyAxNiAqIDE0KTtcbiAgLS1mb250LXNpemUtMTU6IGNhbGModmFyKC0tZm9udC1zaXplLWJhc2UpIC8gMTYgKiAxNSk7XG4gIC0tZm9udC1zaXplLTE2OiBjYWxjKHZhcigtLWZvbnQtc2l6ZS1iYXNlKSAvIDE2ICogMTYpO1xuICAtLWZvbnQtc2l6ZS0xODogY2FsYyh2YXIoLS1mb250LXNpemUtYmFzZSkgLyAxNiAqIDE4KTtcbiAgLS1mb250LXNpemUtMjA6IGNhbGModmFyKC0tZm9udC1zaXplLWJhc2UpIC8gMTYgKiAyMCk7XG4gIC0tZm9udC1zaXplLTIyOiBjYWxjKHZhcigtLWZvbnQtc2l6ZS1iYXNlKSAvIDE2ICogMjIpO1xuICAtLWZvbnQtc2l6ZS0yNDogY2FsYyh2YXIoLS1mb250LXNpemUtYmFzZSkgLyAxNiAqIDI0KTtcbiAgLS1mb250LXNpemUtMzA6IGNhbGModmFyKC0tZm9udC1zaXplLWJhc2UpIC8gMTYgKiAzMCk7XG4gIC0tZm9udC1zaXplLTMyOiBjYWxjKHZhcigtLWZvbnQtc2l6ZS1iYXNlKSAvIDE2ICogMzIpO1xuICAtLWZvbnQtc2l6ZS00MDogY2FsYyh2YXIoLS1mb250LXNpemUtYmFzZSkgLyAxNiAqIDQwKTtcbiAgLS1mb250LXNpemUtNDg6IGNhbGModmFyKC0tZm9udC1zaXplLWJhc2UpIC8gMTYgKiA0OCk7XG4gIC0tZm9udC1zaXplLTUwOiBjYWxjKHZhcigtLWZvbnQtc2l6ZS1iYXNlKSAvIDE2ICogNTApO1xuICAtLWZvbnQtYm9keS1sYXJnZS1saW5lLWhlaWdodDogMS4zMztcbiAgLS1mb250LWJvZHktc21hbGwtbGluZS1oZWlnaHQ6IDEuMTU0O1xuICAtLWZvbnQtYm9keS14LXNtYWxsLWxpbmUtaGVpZ2h0OiAxLjI1O1xuICAtLWZvbnQtYm9keS14eC1zbWFsbC1saW5lLWhlaWdodDogMS4xO1xuICAtLWZvbnQtaGVhZGluZy1sYXJnZS1saW5lLWhlaWdodDogMS4xNjc7XG4gIC0tZm9udC1oZWFkaW5nLWxpbmUtaGVpZ2h0OiAxLjMzMztcbiAgLS1mb250LWhlYWRpbmctc21hbGwtbGluZS1oZWlnaHQ6IDEuMzMzO1xuICAtLWZvbnQtaGVhZGluZy14LXNtYWxsLWxpbmUtaGVpZ2h0OiAxLjMzMztcbiAgLS1mb250LWJvZHktc21hbGwtc2l6ZTogY2FsYyh2YXIoLS1mb250LXNpemUtYmFzZSkgLyAxNiAqIDEzKTtcbiAgLS1mb250LWJvZHkteC1zbWFsbC1zaXplOiBjYWxjKHZhcigtLWZvbnQtc2l6ZS1iYXNlKSAvIDE2ICogMTIpO1xuICAtLWZvbnQtYm9keS14eC1zbWFsbC1zaXplOiBjYWxjKHZhcigtLWZvbnQtc2l6ZS1iYXNlKSAvIDE2ICogMTEpO1xuICAtLWZvbnQtaGVhZGluZy1sYXJnZS1zaXplOiBjYWxjKHZhcigtLWZvbnQtc2l6ZS1iYXNlKSAvIDE2ICogNTApO1xuICAtLWZvbnQtaGVhZGluZy1zaXplOiBjYWxjKHZhcigtLWZvbnQtc2l6ZS1iYXNlKSAvIDE2ICogMzApO1xuICAtLWZvbnQtaGVhZGluZy1zbWFsbC1zaXplOiBjYWxjKHZhcigtLWZvbnQtc2l6ZS1iYXNlKSAvIDE2ICogMjApO1xuICAtLWZvbnQtaGVhZGluZy14LXNtYWxsLXNpemU6IGNhbGModmFyKC0tZm9udC1zaXplLWJhc2UpIC8gMTYgKiAxNik7XG4gIC0tYnRuLXNtLW1pbi1oZWlnaHQ6ICN7cmVtLXB4KDMwKX07XG4gIC0tYnRuLW1pbi1oZWlnaHQ6ICN7cmVtLXB4KDM2KX07XG4gIC0tYnRuLXhzLW1pbi1oZWlnaHQ6ICN7cmVtLXB4KDIwKX07XG4gIC0tYnRuLW1pbi13aWR0aDogNzJweDtcbiAgLS1idG4tYmctY29sb3ItYWN0aXZlOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLWJ0bi1iZy1jb2xvci1ob3ZlcjogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgLS1idG4tYm9yZGVyLWNvbG9yOiB2YXIoLS1idG4tYWNjZW50LWNvbG9yKTtcbiAgLS1idG4tYm9yZGVyLWNvbG9yLWFjdGl2ZTogdmFyKC0tYnRuLWFjY2VudC1jb2xvci1hY3RpdmUpO1xuICAtLWJ0bi1ib3JkZXItY29sb3ItZGlzYWJsZWQ6IHZhcigtLWJ0bi1hY2NlbnQtY29sb3ItZGlzYWJsZWQpO1xuICAtLWJ0bi1ib3JkZXItY29sb3ItaG92ZXI6IHZhcigtLWJ0bi1hY2NlbnQtY29sb3ItaG92ZXIpO1xuICAtLWJ0bi1sb2FkZXItY29sb3ItZGlzYWJsZWQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG4gIC0tYnRuLXRleHQtY29sb3ItYWN0aXZlOiB2YXIoLS1idG4tYWNjZW50LWNvbG9yLWFjdGl2ZSk7XG4gIC0tYnRuLXRleHQtY29sb3ItZGlzYWJsZWQ6IHZhcigtLWJ0bi1hY2NlbnQtY29sb3ItZGlzYWJsZWQpO1xuICAtLWJ0bi10ZXh0LWNvbG9yLWhvdmVyOiB2YXIoLS1idG4tYWNjZW50LWNvbG9yLWhvdmVyKTtcbiAgLS1idG4tcHJpbS1hY2NlbnQtY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgLS1idG4tcHJpbS1hY2NlbnQtY29sb3ItYWN0aXZlOiB2YXIoLS1jb2xvci1zdGF0ZS1hY3RpdmUpO1xuICAtLWJ0bi1wcmltLWFjY2VudC1jb2xvci1ob3ZlcjogdmFyKC0tY29sb3Itc3RhdGUtaG92ZXIpO1xuICAtLWJ0bi1wcmltLWFjY2VudC1jb2xvci1kaXNhYmxlZDogdmFyKC0tY29sb3Itc3RhdGUtZGlzYWJsZWQpO1xuICAtLWJ0bi1wcmltLWJnLWNvbG9yOiB2YXIoLS1idG4tcHJpbS1hY2NlbnQtY29sb3IpO1xuICAtLWJ0bi1wcmltLWJnLWNvbG9yLWFjdGl2ZTogdmFyKC0tYnRuLXByaW0tYWNjZW50LWNvbG9yLWFjdGl2ZSk7XG4gIC0tYnRuLXByaW0tYmctY29sb3ItZGlzYWJsZWQ6IHZhcigtLWJ0bi1wcmltLWFjY2VudC1jb2xvci1kaXNhYmxlZCk7XG4gIC0tYnRuLXByaW0tYmctY29sb3ItaG92ZXI6IHZhcigtLWJ0bi1wcmltLWFjY2VudC1jb2xvci1ob3Zlcik7XG4gIC0tYnRuLXByaW0tYm9yZGVyLWNvbG9yOiB2YXIoLS1idG4tcHJpbS1hY2NlbnQtY29sb3IpO1xuICAtLWJ0bi1wcmltLWJvcmRlci1jb2xvci1hY3RpdmU6IHZhcigtLWJ0bi1wcmltLWFjY2VudC1jb2xvci1hY3RpdmUpO1xuICAtLWJ0bi1wcmltLWJvcmRlci1jb2xvci1kaXNhYmxlZDogdmFyKC0tYnRuLXByaW0tYWNjZW50LWNvbG9yLWRpc2FibGVkKTtcbiAgLS1idG4tcHJpbS1ib3JkZXItY29sb3ItaG92ZXI6IHZhcigtLWJ0bi1wcmltLWFjY2VudC1jb2xvci1ob3Zlcik7XG4gIC0tYnRuLXByaW0tbG9hZGVyLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xuICAtLWJ0bi1wcmltLXRleHQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tYnRuLXByaW0tdGV4dC1jb2xvci1hY3RpdmU6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tYnRuLXByaW0tdGV4dC1jb2xvci1kaXNhYmxlZDogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgLS1idG4tcHJpbS10ZXh0LWNvbG9yLWhvdmVyOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLWJ0bi1hbGVydC1iZy1jb2xvcjogdmFyKC0tY29sb3ItcHJvbXB0LWFsZXJ0KTtcbiAgLS1idG4tYWxlcnQtYmctY29sb3ItYWN0aXZlOiB2YXIoLS1jb2xvci1wcm9tcHQtYWxlcnQpO1xuICAtLWJ0bi1hbGVydC1iZy1jb2xvci1kaXNhYmxlZDogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgLS1idG4tYWxlcnQtYmctY29sb3ItaG92ZXI6IHZhcigtLWNvbG9yLXByb21wdC1hbGVydCk7XG4gIC0tYnRuLWFsZXJ0LWJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJvbXB0LWFsZXJ0KTtcbiAgLS1idG4tYWxlcnQtYm9yZGVyLWNvbG9yLWFjdGl2ZTogdmFyKC0tY29sb3ItcHJvbXB0LWFsZXJ0KTtcbiAgLS1idG4tYWxlcnQtYm9yZGVyLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1jb2xvci1zdGF0ZS1kaXNhYmxlZCk7XG4gIC0tYnRuLWFsZXJ0LWJvcmRlci1jb2xvci1ob3ZlcjogdmFyKC0tY29sb3ItcHJvbXB0LWFsZXJ0KTtcbiAgLS1idG4tYWxlcnQtdGV4dC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS1idG4tYWxlcnQtdGV4dC1jb2xvci1hY3RpdmU6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tYnRuLWFsZXJ0LXRleHQtY29sb3ItZGlzYWJsZWQ6IHZhcigtLWNvbG9yLXN0YXRlLWRpc2FibGVkKTtcbiAgLS1idG4tYWxlcnQtdGV4dC1jb2xvci1ob3ZlcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS1idG4tdG9vbGJhci1iZy1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC0tYnRuLXRvb2xiYXItYmctY29sb3ItaG92ZXI6IHZhcigtLWNvbG9yLW5ldXRyYWwtNCk7XG4gIC0tYnRuLXRvb2xiYXItYmctY29sb3ItZm9jdXM6IHZhcigtLWNvbG9yLW5ldXRyYWwtNCk7XG4gIC0tYnRuLXRvb2xiYXItYmctY29sb3Itc2VsZWN0ZWQ6IHZhcigtLWNvbG9yLXN0YXRlLWFjdGl2ZSk7XG4gIC0tYnRuLXRvb2xiYXItdGV4dC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbiAgLS1idG4tdG9vbGJhci10ZXh0LWNvbG9yLXNlbGVjdGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xufVxuXG4vKiBAZGVwcmVjYXRlZCBzaW5jZSBUb3RhcmEgMTkuMCovXG5AbWl4aW4gdHVpLWZvbnQtYm9keSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcbiAgQGluY2x1ZGUgZm9udChib2R5KTtcbn1cblxuLyogQGRlcHJlY2F0ZWQgc2luY2UgVG90YXJhIDE5LjAqL1xuQG1peGluIHR1aS1mb250LWJvZHktc21hbGwge1xuICBAaW5jbHVkZSBmb250KGJvZHktc20pO1xufVxuXG4vKiBAZGVwcmVjYXRlZCBzaW5jZSBUb3RhcmEgMTkuMCovXG5AbWl4aW4gdHVpLWZvbnQtYm9keS14LXNtYWxsIHtcbiAgQGluY2x1ZGUgZm9udChib2R5LXNtKTtcbn1cblxuLyogQGRlcHJlY2F0ZWQgc2luY2UgVG90YXJhIDE5LjAqL1xuQG1peGluIHR1aS1mb250LWJvZHkteHgtc21hbGwge1xuICBAaW5jbHVkZSBmb250KGJvZHkteHMpO1xufVxuXG4vKiBAZGVwcmVjYXRlZCBzaW5jZSBUb3RhcmEgMTkuMCovXG5AbWl4aW4gdHVpLWZvbnQtYm9keS1kaXNhYmxlZCB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWRpc2FibGVkKTtcbn1cblxuLyogQGRlcHJlY2F0ZWQgc2luY2UgVG90YXJhIDE5LjAqL1xuQG1peGluIHR1aS1mb250LWJvZHktcGxhY2Vob2xkZXIge1xuICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1oaW50KTtcbn1cblxuLyogQGRlcHJlY2F0ZWQgc2luY2UgVG90YXJhIDE5LjAqL1xuQG1peGluIHR1aS1mb250LWhlYXZ5IHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIEBkZXByZWNhdGVkIHNpbmNlIFRvdGFyYSAxOS4wKi9cbkBtaXhpbiB0dWktZm9udC1oaW50IHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtaGludCk7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyogQGRlcHJlY2F0ZWQgc2luY2UgVG90YXJhIDE5LjAqL1xuQG1peGluIHR1aS1mb250LW1vbm9zcGFjZSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1tb25vc3BhY2UpO1xufVxuXG4vKiBAZGVwcmVjYXRlZCBzaW5jZSBUb3RhcmEgMTkuMCovXG5AbWl4aW4gdHVpLWZvbnQtbGluayB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1ib2R5LXNpemUpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tZm9udC1ib2R5LWxpbmUtaGVpZ2h0KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZS1ob3Zlcik7XG4gIH1cblxuICAmOmFjdGl2ZSxcbiAgJjphY3RpdmU6aG92ZXIsXG4gICY6YWN0aXZlOmZvY3VzIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUtYWN0aXZlKTtcbiAgfVxufVxuXG4vKiBAZGVwcmVjYXRlZCBzaW5jZSBUb3RhcmEgMTkuMCovXG5AbWl4aW4gdHVpLWZvbnQtbGluay1sYXJnZSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gIGZvbnQtc2l6ZTogZm9udC1zaXplLXB4KDE2KTtcbiAgbGluZS1oZWlnaHQ6IDEuMzM7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUtaG92ZXIpO1xuICB9XG5cbiAgJjphY3RpdmUsXG4gICY6YWN0aXZlOmhvdmVyLFxuICAmOmFjdGl2ZTpmb2N1cyB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlLWFjdGl2ZSk7XG4gIH1cbn1cblxuLyogQGRlcHJlY2F0ZWQgc2luY2UgVG90YXJhIDE5LjAqL1xuQG1peGluIHR1aS1mb250LWxpbmstc21hbGwge1xuICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUpO1xuICBmb250LXNpemU6IGZvbnQtc2l6ZS1weCgxMyk7XG4gIGxpbmUtaGVpZ2h0OiAxLjMzO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlLWhvdmVyKTtcbiAgfVxuXG4gICY6YWN0aXZlLFxuICAmOmFjdGl2ZTpob3ZlcixcbiAgJjphY3RpdmU6Zm9jdXMge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZS1hY3RpdmUpO1xuICB9XG59XG5cbi8qIEBkZXByZWNhdGVkIHNpbmNlIFRvdGFyYSAxOS4wKi9cbkBtaXhpbiB0dWktZm9udC1oZWFkaW5nLWxhcmdlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1oZWFkaW5nLWxhcmdlLXNpemUpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tZm9udC1oZWFkaW5nLWxhcmdlLWxpbmUtaGVpZ2h0KTtcbn1cblxuLyogQGRlcHJlY2F0ZWQgc2luY2UgVG90YXJhIDE5LjAqL1xuQG1peGluIHR1aS1mb250LWhlYWRpbmctbWVkaXVtIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LWhlYWRpbmctc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1mb250LWhlYWRpbmctbGluZS1oZWlnaHQpO1xufVxuXG4vKiBAZGVwcmVjYXRlZCBzaW5jZSBUb3RhcmEgMTkuMCovXG5AbWl4aW4gdHVpLWZvbnQtaGVhZGluZy1zbWFsbCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtaGVhZGluZy1zbWFsbC1zaXplKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWZvbnQtaGVhZGluZy1zbWFsbC1saW5lLWhlaWdodCk7XG59XG5cbi8qIEBkZXByZWNhdGVkIHNpbmNlIFRvdGFyYSAxOS4wKi9cbkBtaXhpbiB0dWktZm9udC1oZWFkaW5nLXNtYWxsLXJlZ3VsYXIge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtaGVhZGluZy1zbWFsbC1zaXplKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWZvbnQtaGVhZGluZy1zbWFsbC1saW5lLWhlaWdodCk7XG59XG5cbi8qIEBkZXByZWNhdGVkIHNpbmNlIFRvdGFyYSAxOS4wKi9cbkBtaXhpbiB0dWktZm9udC1oZWFkaW5nLXgtc21hbGwge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LWhlYWRpbmcteC1zbWFsbC1zaXplKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWZvbnQtaGVhZGluZy14LXNtYWxsLWxpbmUtaGVpZ2h0KTtcbn1cblxuLyogQGRlcHJlY2F0ZWQgc2luY2UgVG90YXJhIDE5LjAqL1xuQG1peGluIHR1aS1mb250LWhlYWRpbmctbGFiZWwge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LWJvZHktc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1mb250LWJvZHktbGluZS1oZWlnaHQpO1xufVxuXG4vKiBAZGVwcmVjYXRlZCBzaW5jZSBUb3RhcmEgMTkuMCovXG5AbWl4aW4gdHVpLWZvbnQtaGVhZGluZy1sYWJlbC1zbWFsbCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtYm9keS1zbWFsbC1zaXplKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWZvbnQtYm9keS1zbWFsbC1saW5lLWhlaWdodCk7XG59XG5cbi8qIEBkZXByZWNhdGVkIHNpbmNlIFRvdGFyYSAxOS4wKi9cbkBtaXhpbiB0dWktZm9udC1oZWFkaW5nLXBhZ2UtdGl0bGUge1xuICBtYXJnaW46IDA7XG4gIEBpbmNsdWRlIHR1aS1mb250LWhlYWRpbmctbWVkaXVtO1xufVxuXG4vKiBAZGVwcmVjYXRlZCBzaW5jZSBUb3RhcmEgMTkuMCovXG5AbWl4aW4gdHVpLWZvbnQtaGVhZGluZy1wYWdlLXRpdGxlLXNtYWxsIHtcbiAgbWFyZ2luOiAwO1xuICBAaW5jbHVkZSB0dWktZm9udC1oZWFkaW5nLXNtYWxsO1xufVxuXG4vKiBAZGVwcmVjYXRlZCBzaW5jZSBUb3RhcmEgMTkuMCovXG5AbWl4aW4gdHVpLXdvcmRicmVhay0taHlwaGVucyB7XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbi8qIEBkZXByZWNhdGVkIHNpbmNlIFRvdGFyYSAxOS4wKi9cbkBtaXhpbiB0dWktd29yZGJyZWFrLS1oYXJkIHtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9zaXplcy5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuQGZ1bmN0aW9uIHJlbS1weCgkdmFsKSB7XG4gIEByZXR1cm4gJHZhbCAvIDE2ICogMXJlbTtcbn1cblxuOnJvb3Qge1xuICAtLXR1aS1jYXJkLWRlZmF1bHQtd2lkdGg6ICN7cmVtLXB4KDI1Mil9O1xuICAtLXR1aS1jYXJkLXNtLXdpZHRoOiAje3JlbS1weCgxODgpfTtcbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX3R5cG9ncmFwaHkuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhLmNvbT4qL1xuLyogQGF1dGhvciBTaW1vbiBDaGVzdGVyIDxzaW1vbi5jaGVzdGVyQHRvdGFyYS5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpKi9cblxuLyoqXG4gKiBEZWZpbmUgZm9udCBzdHlsZSB2YXJpYWJsZXNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gJG5hbWUgLSBmb250IHZhcmlhbnQgbmFtZSAoZS5nLiBoMSBvciBib2R5LXNtKVxuICogQHBhcmFtIHtudW1iZXJ9ICRzaXplIC0gZm9udCBzaXplIGluIHVuaXRsZXNzIHJlbVxuICogQHBhcmFtIHtudW1iZXJ9ICRsaW5lLWhlaWdodCAtIGxpbmUgaGVpZ2h0IGluIHVuaXRsZXNzIHJlbVxuICogQHBhcmFtIHtudW1iZXJ9ICR3ZWlnaHQgLS0gZm9udCB3ZWlnaHRcbiAqIEBwYXJhbSB7bnVtYmVyfSAkZmFtaWx5IC0tIGZvbnQgZmFtaWx5XG4gKi9cbkBtaXhpbiBkZWZpbmUtZm9udCgkbmFtZSwgJHNpemUsICRsaW5lLWhlaWdodCwgJHdlaWdodCwgJGZhbWlseSkge1xuICAtLWZvbnQtI3skbmFtZX0tc2l6ZTogY2FsYyh2YXIoLS1mb250LXNpemUtYmFzZSkgKiAjeyRzaXplfSk7XG4gIC0tZm9udC0jeyRuYW1lfS1saW5lLWhlaWdodDogY2FsYyh2YXIoLS1saW5lLWhlaWdodC1iYXNlKSAqICN7JGxpbmUtaGVpZ2h0fSk7XG4gIC0tZm9udC0jeyRuYW1lfS13ZWlnaHQ6ICN7JHdlaWdodH07XG4gIC0tZm9udC0jeyRuYW1lfS1mYW1pbHk6ICN7JGZhbWlseX07XG59XG5cbi8qKlxuICogVXNlIGZvbnQgc3R5bGUgdmFyaWFibGVzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9ICRuYW1lIC0gZm9udCB2YXJpYW50IG5hbWUgKGUuZy4gaDEgb3IgYm9keS1zbSlcbiAqIEBwYXJhbSB7bnVtYmVyfSAkd2VpZ2h0IC0tIGZvbnQgd2VpZ2h0LiBzZXQgdG8gbnVsbCB0byBub3QgYWRkXG4gKiBAcGFyYW0ge251bWJlcn0gJGZhbWlseSAtLSBmb250IGZhbWlseS4gc2V0IHRvIG51bGwgdG8gbm90IGFkZFxuICovXG5AbWl4aW4gZm9udCgkbmFtZSwgJHdlaWdodDogZGVmYXVsdCwgJGZhbWlseTogZGVmYXVsdCkge1xuICBAaWYgJHdlaWdodCA9PSBkZWZhdWx0IHtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC0jeyRuYW1lfS13ZWlnaHQpO1xuICB9IEBlbHNlIHtcbiAgICBmb250LXdlaWdodDogJHdlaWdodDtcbiAgfVxuICBmb250LXNpemU6IHZhcigtLWZvbnQtI3skbmFtZX0tc2l6ZSk7XG4gIEBpZiAkZmFtaWx5ID09IGRlZmF1bHQge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LSN7JG5hbWV9LWZhbWlseSk7XG4gIH0gQGVsc2Uge1xuICAgIGZvbnQtZmFtaWx5OiAkZmFtaWx5O1xuICB9XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1mb250LSN7JG5hbWV9LWxpbmUtaGVpZ2h0KTtcbn1cblxuQGZ1bmN0aW9uIGZvbnQtc2l6ZS1weCgkdmFsKSB7XG4gIEByZXR1cm4gY2FsYyh2YXIoLS1mb250LXNpemUtYmFzZSkgLyAxNiAqICN7JHZhbH0pO1xufVxuXG5AZnVuY3Rpb24gbGluZS1oZWlnaHQtcHgoJHZhbCkge1xuICBAcmV0dXJuIGNhbGModmFyKC0tbGluZS1oZWlnaHQtYmFzZSkgLyAxNiAqICN7JHZhbH0pO1xufVxuXG46cm9vdCB7XG4gIC0tZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLFxuICAgICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAtLWZvbnQtZmFtaWx5LW1vbm9zcGFjZTogTWVubG8sIE1vbmFjbywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLFxuICAgICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTtcblxuICAtLWZvbnQtc2l6ZS1iYXNlOiAxcmVtO1xuICAtLWxpbmUtaGVpZ2h0LWJhc2U6IDFyZW07XG4gIC0taWNvbi1zaXplLWJhc2U6IDFyZW07XG4gIC0tbGFiZWwtd2VpZ2h0OiA1MDE7XG5cbiAgLyogQm9keSovXG4gIC0tZm9udC1mYW1pbHktYm9keTogdmFyKC0tZm9udC1mYW1pbHkpO1xuICBAaW5jbHVkZSBkZWZpbmUtZm9udChib2R5LXhsLCAxLjI1LCAxLjc1LCA0MDAsIHZhcigtLWZvbnQtZmFtaWx5LWJvZHkpKTtcbiAgQGluY2x1ZGUgZGVmaW5lLWZvbnQoYm9keS1sZywgMSwgMS41LCA0MDAsIHZhcigtLWZvbnQtZmFtaWx5LWJvZHkpKTtcbiAgQGluY2x1ZGUgZGVmaW5lLWZvbnQoYm9keSwgMC44NzUsIDEuMjUsIDQwMCwgdmFyKC0tZm9udC1mYW1pbHktYm9keSkpO1xuICBAaW5jbHVkZSBkZWZpbmUtZm9udChib2R5LXNtLCAwLjc1LCAxLjEyNSwgNDAwLCB2YXIoLS1mb250LWZhbWlseS1ib2R5KSk7XG4gIEBpbmNsdWRlIGRlZmluZS1mb250KGJvZHkteHMsIDAuNjI1LCAxLCA0MDAsIHZhcigtLWZvbnQtZmFtaWx5LWJvZHkpKTtcblxuICAvKiBIZWFkaW5ncyovXG4gIC0tZm9udC1mYW1pbHktaGVhZGluZzogdmFyKC0tZm9udC1mYW1pbHkpO1xuICBAaW5jbHVkZSBkZWZpbmUtZm9udChoMSwgMiwgMi41LCA2MDAsIHZhcigtLWZvbnQtZmFtaWx5LWhlYWRpbmcpKTtcbiAgQGluY2x1ZGUgZGVmaW5lLWZvbnQoaDIsIDEuNSwgMiwgNjAwLCB2YXIoLS1mb250LWZhbWlseS1oZWFkaW5nKSk7XG4gIEBpbmNsdWRlIGRlZmluZS1mb250KGgzLCAxLjI1LCAxLjc1LCA2MDAsIHZhcigtLWZvbnQtZmFtaWx5LWhlYWRpbmcpKTtcbiAgQGluY2x1ZGUgZGVmaW5lLWZvbnQoaDQsIDEsIDEuNSwgNjAwLCB2YXIoLS1mb250LWZhbWlseS1oZWFkaW5nKSk7XG4gIEBpbmNsdWRlIGRlZmluZS1mb250KGg1LCAwLjg3NSwgMS4yNSwgNjAwLCB2YXIoLS1mb250LWZhbWlseS1oZWFkaW5nKSk7XG4gIEBpbmNsdWRlIGRlZmluZS1mb250KGg2LCAwLjc1LCAxLCA1MDEsIHZhcigtLWZvbnQtZmFtaWx5LWhlYWRpbmcpKTtcblxuICAvKiBEaXNwbGF5Ki9cbiAgLS1mb250LWZhbWlseS1kaXNwbGF5OiB2YXIoLS1mb250LWZhbWlseSk7XG4gIEBpbmNsdWRlIGRlZmluZS1mb250KGRpc3BsYXktbGcsIDMsIDMuNSwgNDAwLCB2YXIoLS1mb250LWZhbWlseS1kaXNwbGF5KSk7XG4gIEBpbmNsdWRlIGRlZmluZS1mb250KGRpc3BsYXktbWQsIDIuNSwgMywgNDAwLCB2YXIoLS1mb250LWZhbWlseS1kaXNwbGF5KSk7XG4gIEBpbmNsdWRlIGRlZmluZS1mb250KGRpc3BsYXktc20sIDIsIDIuNSwgNDAwLCB2YXIoLS1mb250LWZhbWlseS1kaXNwbGF5KSk7XG4gIEBpbmNsdWRlIGRlZmluZS1mb250KGRpc3BsYXkteHMsIDEuNSwgMiwgNDAwLCB2YXIoLS1mb250LWZhbWlseS1kaXNwbGF5KSk7XG59XG5cbkBtaXhpbiB0ZXh0LWhpbnQoKSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWhpbnQpO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9zcGFjaW5nLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbkBmdW5jdGlvbiBnYXAoJHZhbCkge1xuICBAcmV0dXJuIGNhbGModmFyKC0tZ2FwLWJhc2UpICogI3skdmFsfSk7XG59XG5cbjpyb290IHtcbiAgLyogQ29tbW9uIHNwYWNpbmcgdXNlZCBmb3IgbWFyZ2luICYgcGFkZGluZyovXG4gIC0tZ2FwLWJhc2U6IDAuMjVyZW07IC8qIDRweCovXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMTIge1xuICAgIC0tZ2FwLSN7JGl9OiAje2dhcCgkaSl9O1xuICB9XG5cbiAgLyogQ29tbW9uIG5hbWVkIHNpemVzKi9cbiAgLS1nYXAtcGFnZS1jb2x1bW5zOiB2YXIoLS1nYXAtOCk7IC8qIGdhcCBiZXR3ZWVuIHBhZ2UgY29sdW1ucyovXG4gIC0tZ2FwLWNhcmQtZ3JpZDogdmFyKC0tZ2FwLTQpOyAvKiBnYXAgYmV0d2VlbiBjYXJkcyovXG5cbiAgLyogR3JpZCovXG4gIC8qIHZhbHVlcyBmb3IgdGhlIGd1dHRlcnMgYmV0d2VlbiB3cmFwcGVkIEdyaWRJdGVtcyovXG4gIC0tZ3JpZC1ndXR0ZXItdmVydGljYWw6ICN7cmVtLXB4KDIwKX07XG4gIC0tZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbDogI3tyZW0tcHgoMjApfTtcblxuICAvKiBHbG9iYWwgZGVmYXVsdCBmb3IgJ2hvdyBtYW55IGNvbHVtbnMgYXJlIGluIHRoZSBncmlkJyovXG4gIC8qIHNwZWNpZmllZCBmb3IgdXNlIHdpdGggdGhlbWUuZ2V0VmFyKCdncmlkLW1heHVuaXRzJykgaW4gR3JpZC52dWUqL1xuICAtLWdyaWQtbWF4dW5pdHM6IDEyO1xuXG4gIC0tcGFyYWdyYXBoLWdhcDogMXJlbTtcbn1cblxuLyogT3V0c2lkZS1pbiBzcGFjaW5nOiBTdGFjayovXG4vKiBTdGFja3MgcHJvdmlkZSBzcGFjaW5nIGJldHdlZW4gdGhlaXIgY2hpbGRyZW4uKi9cbkBtaXhpbiB0dWktc3RhY2stdmVydGljYWwoJGdhcCkge1xuICAmID4gKiArICoge1xuICAgIG1hcmdpbi10b3A6ICRnYXA7XG4gIH1cbn1cbkBtaXhpbiB0dWktc3RhY2staG9yaXpvbnRhbCgkZ2FwKSB7XG4gICYgPiAqICsgKiB7XG4gICAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIH1cbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX2JvcmRlcnMuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgRGF2ZSBXYWxsYWNlIDxkYXZlLndhbGxhY2VAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAvKiovXG4gIC8qIFRoZW1lIGJvcmRlciB3aWR0aHMqL1xuICAvKiovXG5cbiAgLyogQ29udGVudCBhZ2dyZWdhdGlvbiBib3JkZXJzKi9cbiAgLyogT2Z0ZW4gdXNlZCBmb3Igc2VjdGlvbnMgb2YgY29udGVudCBzdWNoIGFzIEZvcm1zLCBCbG9ja3MsIHZhcmlvdXMgUGFuZWxzLCovXG4gIC8qIGFuZCBob3Jpem9udGFsIHJ1bGVzKi9cbiAgLS1ib3JkZXItd2lkdGgtdGhpbjogMXB4O1xuICAtLWJvcmRlci13aWR0aC1ub3JtYWw6IDJweDtcbiAgLS1ib3JkZXItd2lkdGgtdGhpY2s6IDNweDtcblxuICAvKiBTdGFuZGFyZCBib3JkZXIgcmFkaXVzKi9cbiAgLS1ib3JkZXItcmFkaXVzLWN1cnZlZDogMTJweDtcbiAgLS1ib3JkZXItcmFkaXVzLW5vcm1hbDogNnB4O1xuICAtLWJvcmRlci1yYWRpdXMtc21hbGw6IDRweDtcblxuICAtLWNhcmQtYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1ub3JtYWwpO1xuICAtLWRyb3Bkb3duLWJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbm9ybWFsKTtcblxuICAtLWZvY3VzLW91dGxpbmUtb2Zmc2V0OiAxcHg7XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9idXR0b25zLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWkqL1xuXG46cm9vdCB7XG4gIC0tYnRuLXNoYWRvdzogbm9uZTtcbiAgLS1idG4tc2hhZG93LWZvY3VzOiBub25lO1xuICAtLWJ0bi1zaGFkb3ctaG92ZXI6IHZhcigtLXNoYWRvdy0yKTtcbiAgLS1idG4tc2hhZG93LWFjdGl2ZTogdmFyKC0tc2hhZG93LTMpO1xuICAtLWJ0bi1mb250LXNpemU6IHZhcigtLWZvbnQtYm9keS1zaXplKTtcbiAgLS1idG4tbGluZS1oZWlnaHQ6IHZhcigtLWZvbnQtYm9keS1saW5lLWhlaWdodCk7XG4gIC0tYnRuLWJvcmRlci13aWR0aDogMXB4O1xuICAtLWJ0bi1wYWRkaW5nLWg6IHZhcigtLWdhcC0zKTtcbiAgLS1idG4tcGFkZGluZy12OiB2YXIoLS1nYXAtMik7XG4gIC0tYnRuLXJhZGl1czogNHB4O1xuXG4gIC8qIEJ1dHRvbiBzaXplcyovXG4gIC0tYnRuLXNtLWZvbnQtc2l6ZTogdmFyKC0tZm9udC1ib2R5LXNtLXNpemUpO1xuICAtLWJ0bi1zbS1saW5lLWhlaWdodDogdmFyKC0tZm9udC1ib2R5LXNtLWxpbmUtaGVpZ2h0KTtcbiAgLS1idG4tc20tcGFkZGluZy1oOiB2YXIoLS1nYXAtMik7XG4gIC0tYnRuLXNtLXBhZGRpbmctdjogdmFyKC0tZ2FwLTEpO1xuICAtLWJ0bi1zbS1yYWRpdXM6IDRweDtcbiAgLS1idG4teHMtZm9udC1zaXplOiB2YXIoLS1mb250LWJvZHktc20tc2l6ZSk7XG4gIC0tYnRuLXhzLWxpbmUtaGVpZ2h0OiB2YXIoLS1mb250LWJvZHktc20tbGluZS1oZWlnaHQpO1xuICAtLWJ0bi14cy1wYWRkaW5nLWg6IHZhcigtLWdhcC0xKTtcbiAgLyogdW5pdCBpcyByZXF1aXJlZCBmb3IgY2FsY3VsYXRpb25zKi9cbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGxlbmd0aC16ZXJvLW5vLXVuaXQgKi9cbiAgLS1idG4teHMtcGFkZGluZy12OiAwcHg7XG4gIC0tYnRuLXhzLXJhZGl1czogNHB4O1xufVxuXG4iLCIvKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9jb2xvcnMuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucy4qL1xuLyoqL1xuLyogQ29weXJpZ2h0IChDKSAyMDIwIG9ud2FyZHMgVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQqL1xuLyoqL1xuLyogVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucyBpcyBwcm92aWRlZCBvbmx5IHRvIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREJ3MgY3VzdG9tZXJzIGFuZCBwYXJ0bmVycywgcHVyc3VhbnQgdG8qL1xuLyogdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGEgc2VwYXJhdGUgYWdyZWVtZW50IHdpdGggVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQgb3IgaXRzIGFmZmlsaWF0ZS4qL1xuLyoqL1xuLyogSWYgeW91IGRvIG5vdCBoYXZlIGFuIGFncmVlbWVudCB3aXRoIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMqL1xuLyogTFRELCB5b3UgbWF5IG5vdCBhY2Nlc3MsIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUuKi9cbi8qIFBsZWFzZSBjb250YWN0IFtsaWNlbnNpbmdAdG90YXJhbGVhcm5pbmcuY29tXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xuLyoqL1xuLyogQGF1dGhvciAgICBLZXZpbiBIb3R0aW5nZXIgPGtldmluLmhvdHRpbmdlckB0b3RhcmFsZWFybmluZy5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpY2thZ2UgICB0dWkqL1xuXG46cm9vdCB7XG4gIC8qKi9cbiAgLyogVGhlbWUgY29sb3VycyovXG4gIC8qKi9cblxuICAvKiBQcmltYXJ5IGNvbG91ciovXG4gIC8qIE9mdGVuIHVzZWQgZm9yIGRlZmF1bHQgaW1hZ2UsIGJhY2tncm91bmRzLCBsaW5lIHNlcGFyYXRvcnMgJiB2aXN1YWwgaW5kaWNhdG9ycyovXG4gIC0tY29sb3ItcHJpbWFyeTogIzNhNDVhYztcblxuICAvKiBTZWNvbmRhcnkgY29sb3VyKi9cbiAgLyogT2Z0ZW4gdXNlZCBmb3IgdmlzdWFsIGNvbXBvbmVudHMgc3VjaCBhcyBwcm9ncmVzcyBiYXJzICYgY2hhcnRzKi9cbiAgLS1jb2xvci1zZWNvbmRhcnk6ICMwMDdhYjg7XG5cbiAgLyogVGVydGlhcnkgY29sb3VyKi9cbiAgLyogT2Z0ZW4gdXNlZCBmb3IgdmlzdWFsIGNvbXBvbmVudHMsIG11c3QgaGF2ZSBoaWdoIGNvbnRyYXN0IHRvIGJhY2tncm91bmQqL1xuICAtLWNvbG9yLXRlcnRpYXJ5OiAjMWVhNGE5O1xuXG4gIC8qKi9cbiAgLyogSW50ZXJhY3RpdmUgc3RhdGUgY29sb3VycyovXG4gIC8qKi9cblxuICAvKiBEZWZhdWx0IHN0YXRlIGNvbG91ciwgc2hvd3MgYW4gZWxlbWVudCBpcyBpbnRlcmFjdGl2ZSovXG4gIC0tY29sb3Itc3RhdGU6ICMzOTgyYWM7XG5cbiAgLyogSG92ZXIgc3RhdGUgY29sb3VyLCBzaG93biB3aGVuIGN1cnNvciBpcyBvdmVyIGludGVyYWN0aXZlIGVsZW1lbnQqL1xuICAtLWNvbG9yLXN0YXRlLWhvdmVyOiAjMjY1NzczO1xuICAvKiBGb2N1cyBzdGF0ZSBjb2xvdXIsIHNob3duIHdoZW4gZWxlbWVudCBoYXMgZm9jdXMgKGtleWJvYXJkIHRhYmJpbmcpKi9cbiAgLS1jb2xvci1zdGF0ZS1mb2N1czogIzI2NTc3MztcbiAgLyogQWN0aXZlIHN0YXRlIGNvbG91ciwgc2hvd24gd2hlbiBlbGVtZW50IGlzIGFjdGl2ZSAoY2xpY2tlZCkqL1xuICAtLWNvbG9yLXN0YXRlLWFjdGl2ZTogIzE5M2E0YztcbiAgLyogSGlnaGxpZ2h0LCB2aXN1YWwgY2x1ZSBmb3IgdGhpbmdzIHRoYXQgbmVlZCB0byBiZSBoaWdobGlnaHRlZCBtb3JlKi9cbiAgLyogcHJvbWluZW50bHkgdGhhbiBoaWdobGlnaHQtbmV1dHJhbC4qL1xuICAtLWNvbG9yLXN0YXRlLWhpZ2hsaWdodDogI2Y2ZjlkNztcbiAgLyogTmV1dHJhbCBoaWdobGlnaHQsIHZpc3VhbCBjbHVlIGZvciBob3Zlci9mb2N1cyBvbiBjb21wb25lbnRzIHN1Y2ggYXMgYSBsaXN0IHJvdyovXG4gIC0tY29sb3Itc3RhdGUtaGlnaGxpZ2h0LW5ldXRyYWw6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gIC8qIERpc2FibGVkIGNvbG91ciBvZiBpbnRlcmFjdGl2ZSBlbGVtZW50cyovXG4gIC0tY29sb3Itc3RhdGUtZGlzYWJsZWQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XG5cbiAgLyoqL1xuICAvKiBWaXN1YWwgcHJvbXB0IGNvbG91cnMqL1xuICAvKiovXG5cbiAgLyogVXNlZCB0byBpbmRpY2F0ZSBhbiBpbmZvcm1hdGlvbmFsIG1lc3NhZ2UqL1xuICAtLWNvbG9yLXByb21wdC1pbmZvOiAjMDA3YWI4O1xuICAtLWNvbG9yLXByb21wdC1pbmZvLWJnOiAjZGFmM2ZlO1xuICAvKiBVc2VkIHRvIGluZGljYXRlIGFuIGltcG9ydGFudCBtZXNzYWdlIChlcnJvciwgZGFuZ2VyKSovXG4gIC0tY29sb3ItcHJvbXB0LWFsZXJ0OiAjY2MyNDI4O1xuICAtLWNvbG9yLXByb21wdC1hbGVydC1iZzogI2ZlZTZlNjtcbiAgLyogVXNlZCB0byBpbmRpY2F0ZSBhIHdhcm5pbmcgbWVzc2FnZSovXG4gIC0tY29sb3ItcHJvbXB0LXdhcm5pbmc6ICNiMjYxMWY7XG4gIC0tY29sb3ItcHJvbXB0LXdhcm5pbmctYmc6ICNmMWUyZDc7XG4gIC8qIFVzZWQgdG8gaW5kaWNhdGUgYSBzdWNjZXNzIG1lc3NhZ2UqL1xuICAtLWNvbG9yLXByb21wdC1zdWNjZXNzOiAjNGI3ZTJiO1xuICAtLWNvbG9yLXByb21wdC1zdWNjZXNzLWJnOiAjZDhlYWNkO1xuXG4gIC8qKi9cbiAgLyogTmV1dHJhbCBjb2xvdXIgcmFuZ2VzKi9cbiAgLyoqL1xuXG4gIC8qIE9mdGVuIHVzZWQgZm9yIG5hdmlnYXRpb24gYmFyLCBiYWNrZ3JvdW5kcyAmIGZvb3RlciovXG4gIC0tY29sb3ItbmV1dHJhbC0xOiAjZmZmO1xuICAvKiBPZnRlbiB1c2VkIGZvciBjb250ZW50IGJhY2tncm91bmQqL1xuICAtLWNvbG9yLW5ldXRyYWwtMjogI2ZhZmFmYTtcbiAgLyogT2Z0ZW4gdXNlZCBmb3Igc2lkZSBwYW5lbCBiYWNrZ3JvdW5kICYgZGlzYWJsZWQgYnV0dG9ucyovXG4gIC0tY29sb3ItbmV1dHJhbC0zOiAjZjdmN2Y3O1xuICAvKiBPZnRlbiB1c2VkIGZvciBwcm9ncmVzcyBiYXIgYmFja2dyb3VuZCovXG4gIC0tY29sb3ItbmV1dHJhbC00OiAjZTZlNGU0O1xuICAvKiBPZnRlbiB1c2VkIGZvciBjYXJkIGNvbXBvbmVudCBib3JkZXJzLCBsaW5lIHNlcGFyYXRvcnMgJiBkaXNhYmxlZCBidXR0b24qL1xuICAtLWNvbG9yLW5ldXRyYWwtNTogI2M3YzdjNztcbiAgLyogT2Z0ZW4gdXNlZCBmb3IgaWNvbnMgYW5kIGZvcm0gY29tcG9uZW50IGJvcmRlcnMqL1xuICAtLWNvbG9yLW5ldXRyYWwtNjogIzc2NzY3NjtcbiAgLyogT2Z0ZW4gdXNlZCBmb3IgaGVhZGVycyBhbmQgYm9keSB0ZXh0Ki9cbiAgLS1jb2xvci1uZXV0cmFsLTc6ICMyNjI2MjY7XG5cbiAgLyoqL1xuICAvKiBDaGFydCBjb2xvcnMqL1xuICAvKiovXG4gIC0tY29sb3ItY2hhcnQtYmFja2dyb3VuZC0xOiAjMDA3YWI4O1xuICAtLWNvbG9yLWNoYXJ0LXRyYW5zcGFyZW50LTE6ICN7cmdiYSgjMDA3YWI4LCAwLjM4KX07XG4gIC0tY29sb3ItY2hhcnQtYmFja2dyb3VuZC0yOiAjZGE3YzJmO1xuICAtLWNvbG9yLWNoYXJ0LXRyYW5zcGFyZW50LTI6ICN7cmdiYSgjZGE3YzJmLCAwLjM4KX07XG4gIC0tY29sb3ItY2hhcnQtYmFja2dyb3VuZC0zOiAjYmY2Yzc4O1xuICAtLWNvbG9yLWNoYXJ0LXRyYW5zcGFyZW50LTM6ICN7cmdiYSgjYmY2Yzc4LCAwLjM4KX07XG4gIC0tY29sb3ItY2hhcnQtYmFja2dyb3VuZC00OiAjZGFjNzI1O1xuICAtLWNvbG9yLWNoYXJ0LXRyYW5zcGFyZW50LTQ6ICN7cmdiYSgjZGFjNzI1LCAwLjM4KX07XG4gIC0tY29sb3ItY2hhcnQtYmFja2dyb3VuZC01OiAjNWQ1ZDVkO1xuICAtLWNvbG9yLWNoYXJ0LXRyYW5zcGFyZW50LTU6ICN7cmdiYSgjNWQ1ZDVkLCAwLjM4KX07XG4gIC0tY29sb3ItY2hhcnQtYmFja2dyb3VuZC02OiAjOThhYWRhO1xuICAtLWNvbG9yLWNoYXJ0LXRyYW5zcGFyZW50LTY6ICN7cmdiYSgjOThhYWRhLCAwLjM4KX07XG4gIC0tY29sb3ItY2hhcnQtYmFja2dyb3VuZC03OiAjMjNjMWEwO1xuICAtLWNvbG9yLWNoYXJ0LXRyYW5zcGFyZW50LTc6ICN7cmdiYSgjMjNjMWEwLCAwLjM4KX07XG5cbiAgLyoqL1xuICAvKiBDb250ZW50IGNvbG91cnMqL1xuICAvKiovXG4gIC0tY29sb3ItYmFja2dyb3VuZDogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS1jb2xvci1ib3JkZXI6IHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XG4gIC0tY29sb3ItdGV4dDogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcbiAgLS1jb2xvci10ZXh0LWRpc2FibGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xuICAtLWNvbG9yLXRleHQtaGludDogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbiAgLS1saW5rLWNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gIC0tbGluay1jb2xvci1ob3ZlcjogdmFyKC0tY29sb3Itc3RhdGUtaG92ZXIpO1xuXG4gIC8qIEJhY2tkcm9wcyovXG4gIC0tY29sb3ItYmFja2Ryb3Atc3RhbmRhcmQ6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgLS1jb2xvci1iYWNrZHJvcC1oZWF2eTogcmdiYSgwLCAwLCAwLCAwLjgpO1xuICAtLWNvbG9yLWJhY2tkcm9wLWNvbnRyYXN0OiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuXG4gIC8qKi9cbiAgLyogSGVhZGVyIGNvbG9ycyovXG4gIC8qKi9cbiAgLS1uYXYtYmctY29sb3I6ICNmZmY7XG4gIC0tbmF2LXRleHQtY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xufVxuXG4vKiBBcnJvd3MqL1xuQGltcG9ydCAndHVpL3ZhcmlhYmxlcy9jb2xvcnMvYXJyb3cnO1xuLyogRm9ybXMqL1xuQGltcG9ydCAndHVpL3ZhcmlhYmxlcy9jb2xvcnMvZm9ybXMnO1xuLyogQXZhdGFyKi9cbkBpbXBvcnQgJ3R1aS92YXJpYWJsZXMvY29sb3JzL2F2YXRhcic7XG4vKiBEcm9wIGRvd24qL1xuQGltcG9ydCAndHVpL3ZhcmlhYmxlcy9jb2xvcnMvZHJvcGRvd24nO1xuLyogRGF0YSB0YWJsZSovXG5AaW1wb3J0ICd0dWkvdmFyaWFibGVzL2NvbG9ycy9kYXRhdGFibGUnO1xuLyogVGFicyovXG5AaW1wb3J0ICd0dWkvdmFyaWFibGVzL2NvbG9ycy90YWJzJztcbi8qIENhcmQqL1xuQGltcG9ydCAndHVpL3ZhcmlhYmxlcy9jb2xvcnMvY2FyZCc7XG4vKiBDaGFydHMqL1xuQGltcG9ydCAndHVpL3ZhcmlhYmxlcy9jb2xvcnMvY2hhcnRzJztcbi8qIEZpbHRlcnMqL1xuQGltcG9ydCAndHVpL3ZhcmlhYmxlcy9jb2xvcnMvZmlsdGVycyc7XG4vKiBUYWdzKi9cbkBpbXBvcnQgJ3R1aS92YXJpYWJsZXMvY29sb3JzL3RhZ3MnO1xuLyogVGFncyovXG5AaW1wb3J0ICd0dWkvdmFyaWFibGVzL2NvbG9ycy9wcm9ncmVzc2Jhcic7XG4vKiBjb2xsYXBzaWJsZSovXG5AaW1wb3J0ICd0dWkvdmFyaWFibGVzL2NvbG9ycy9jb2xsYXBzaWJsZSc7XG4vKiBwcm9ncmVzcyB0cmFja2VyKi9cbkBpbXBvcnQgJ3R1aS92YXJpYWJsZXMvY29sb3JzL3Byb2dyZXNzdHJhY2tlcic7XG4vKiBTaWRlIHBhbmVsIG5hdmlnYXRpb24qL1xuQGltcG9ydCAndHVpL3ZhcmlhYmxlcy9jb2xvcnMvc2lkZV9wYW5lbF9uYXYnO1xuLyogVG9nZ2xlIGJ1dHRvbnMqL1xuQGltcG9ydCAndHVpL3ZhcmlhYmxlcy9jb2xvcnMvdG9nZ2xlJztcbi8qIE5vdGlmaWNhdGlvbiB0b2FzdCovXG5AaW1wb3J0ICd0dWkvdmFyaWFibGVzL2NvbG9ycy9ub3RpZmljYXRpb250b2FzdCc7XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9jb2xvcnMvYXJyb3cuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLyogQ1NTIGFycm93cyovXG4gIC0tYXJyb3ctYmctY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xuICAtLWFycm93LWJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC01KTtcbiAgLS1hcnJvdy1iZy1pbnZlcnNlLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xufVxuXG4iLCIvKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL2Zvcm1zLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucy4qL1xuLyoqL1xuLyogQ29weXJpZ2h0IChDKSAyMDIwIG9ud2FyZHMgVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQqL1xuLyoqL1xuLyogVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucyBpcyBwcm92aWRlZCBvbmx5IHRvIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREJ3MgY3VzdG9tZXJzIGFuZCBwYXJ0bmVycywgcHVyc3VhbnQgdG8qL1xuLyogdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGEgc2VwYXJhdGUgYWdyZWVtZW50IHdpdGggVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQgb3IgaXRzIGFmZmlsaWF0ZS4qL1xuLyoqL1xuLyogSWYgeW91IGRvIG5vdCBoYXZlIGFuIGFncmVlbWVudCB3aXRoIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMqL1xuLyogTFRELCB5b3UgbWF5IG5vdCBhY2Nlc3MsIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUuKi9cbi8qIFBsZWFzZSBjb250YWN0IFtsaWNlbnNpbmdAdG90YXJhbGVhcm5pbmcuY29tXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xuLyoqL1xuLyogQGF1dGhvciBLZXZpbiBIb3R0aW5nZXIgPGtldmluLmhvdHRpbmdlckB0b3RhcmFsZWFybmluZy5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpKi9cblxuOnJvb3Qge1xuICAvKiovXG4gIC8qIEZvcm0gY29sb3VycyovXG4gIC8qKi9cblxuICAvKiBGb3JtIHJhZGlvIGNvbG91cnMqL1xuICAtLWZvcm0tcmFkaW8tZG90LWNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gIC0tZm9ybS1yYWRpby1iZy1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS1mb3JtLXJhZGlvLWJnLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xuICAtLWZvcm0tcmFkaW8tYmctY29sb3ItZm9jdXM6IHZhcigtLWNvbG9yLXN0YXRlLWhpZ2hsaWdodC1uZXV0cmFsKTtcbiAgLS1mb3JtLXJhZGlvLWJnLWNvbG9yLWhvdmVyOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLWZvcm0tcmFkaW8tYmctY29sb3ItYWN0aXZlOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLWZvcm0tcmFkaW8tYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xuICAtLWZvcm0tcmFkaW8tYm9yZGVyLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1jb2xvci1zdGF0ZS1kaXNhYmxlZCk7XG4gIC0tZm9ybS1yYWRpby1ib3JkZXItY29sb3ItZm9jdXM6IHZhcigtLWNvbG9yLXN0YXRlLWZvY3VzKTtcbiAgLS1mb3JtLXJhZGlvLWJvcmRlci1jb2xvci1hY3RpdmU6IHZhcigtLWNvbG9yLXN0YXRlLWZvY3VzKTtcblxuICAvKiBGb3JtIGNoZWNrYm94IGNvbG91cnMqL1xuICAtLWZvcm0tY2hlY2tib3gtY2hlY2stY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tZm9ybS1jaGVja2JveC1jaGVjay1jb2xvci1kaXNhYmxlZDogdmFyKC0tY29sb3ItbmV1dHJhbC01KTtcbiAgLS1mb3JtLWNoZWNrYm94LWJnLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLWZvcm0tY2hlY2tib3gtYmctY29sb3ItZGlzYWJsZWQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gIC0tZm9ybS1jaGVja2JveC1iZy1jb2xvci1hY3RpdmU6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgLS1mb3JtLWNoZWNrYm94LWJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbiAgLS1mb3JtLWNoZWNrYm94LWJvcmRlci1jb2xvci1kaXNhYmxlZDogdmFyKC0tY29sb3Itc3RhdGUtZGlzYWJsZWQpO1xuICAtLWZvcm0tY2hlY2tib3gtYm9yZGVyLWNvbG9yLWZvY3VzOiB2YXIoLS1jb2xvci1zdGF0ZS1mb2N1cyk7XG4gIC0tZm9ybS1jaGVja2JveC1ib3JkZXItY29sb3ItYWN0aXZlOiB2YXIoLS1jb2xvci1zdGF0ZS1mb2N1cyk7XG4gIC0tZm9ybS1jaGVja2JveC1ib3JkZXItY29sb3ItaW52YWxpZDogdmFyKC0tY29sb3ItcHJvbXB0LWFsZXJ0KTtcblxuICAvKiBUZXh0IGNvbG91ciAobGFiZWxzKSovXG4gIC0tZm9ybS10ZXh0LWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xuXG4gIC8qIEJhY2tncm91bmQgb2YgZm9ybSBlbGVtZW50cyovXG4gIC0tZm9ybS1pbnB1dC1iZy1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS1mb3JtLWlucHV0LWJnLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xuICAtLWZvcm0taW5wdXQtYmctY29sb3ItZm9jdXM6IHZhcigtLWZvcm0taW5wdXQtYmctY29sb3IpO1xuICAtLWZvcm0taW5wdXQtYmctY29sb3ItaW52YWxpZC1mb2N1czogdmFyKC0tZm9ybS1pbnB1dC1iZy1jb2xvcik7XG5cbiAgLyogQm9yZGVyIG9mIGZvcm0gZWxlbWVudHMqL1xuICAtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xuICAtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTQpO1xuICAtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWZvY3VzOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gIC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZDogdmFyKC0tY29sb3ItcHJvbXB0LWFsZXJ0KTtcbiAgLyogVGV4dCBjb2xvdXIgb2YgZm9ybSBlbGVtZW50cyovXG4gIC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xuICAtLWZvcm0taW5wdXQtdGV4dC1jb2xvci1kaXNhYmxlZDogdmFyKC0tY29sb3Itc3RhdGUtZGlzYWJsZWQpO1xuICAtLWZvcm0taW5wdXQtdGV4dC1wbGFjZWhvbGRlci1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbiAgLyogVGV4dCBjb2xvdXIgb2YgZm9ybSBmaWVsZCBkZWZhdWx0cyBhbmQgZGV0YWlscyovXG4gIC0tZm9ybS1kZXRhaWxzLXRleHQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNyk7XG4gIC0tZm9ybS1kZWZhdWx0cy10ZXh0LWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xuXG4gIC8qIEJ1dHRvbiovXG4gIC0tYnRuLWJnLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLWJ0bi1iZy1jb2xvci1kaXNhYmxlZDogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgLS1idG4tYWNjZW50LWNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gIC0tYnRuLWFjY2VudC1jb2xvci1jb250cmFzdDogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS1idG4tYWNjZW50LWNvbG9yLWFjdGl2ZTogdmFyKC0tY29sb3Itc3RhdGUtYWN0aXZlKTtcbiAgLS1idG4tYWNjZW50LWNvbG9yLWhvdmVyOiB2YXIoLS1jb2xvci1zdGF0ZS1ob3Zlcik7XG4gIC0tYnRuLWFjY2VudC1jb2xvci1kaXNhYmxlZDogdmFyKC0tY29sb3Itc3RhdGUtZGlzYWJsZWQpO1xuICAtLWJ0bi1kYW5nZXItY29sb3I6IHZhcigtLWNvbG9yLXByb21wdC1hbGVydCk7XG4gIC0tYnRuLWRhbmdlci1jb2xvci1jb250cmFzdDogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS1idG4tdGV4dC1jb2xvcjogdmFyKC0tYnRuLWFjY2VudC1jb2xvcik7XG5cbiAgLyogQ2hlY2tib3ggYnRuIGJhY2tncm91bmQgJiB0ZXh0Ki9cbiAgLS1idG4tY2hlY2tib3gtYmctY29sb3Itc2VsZWN0ZWQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gIC0tYnRuLWNoZWNrYm94LWJnLWNvbG9yLWhvdmVyOiB2YXIoLS1jb2xvci1zdGF0ZS1oaWdobGlnaHQtbmV1dHJhbCk7XG4gIC0tYnRuLWNoZWNrYm94LXRleHQtY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgLS1idG4tY2hlY2tib3gtdGV4dC1jb2xvci1hY3RpdmU6IHZhcigtLWNvbG9yLXN0YXRlLWFjdGl2ZSk7XG4gIC0tYnRuLWNoZWNrYm94LXRleHQtY29sb3ItZm9jdXM6IHZhcigtLWNvbG9yLXN0YXRlLWZvY3VzKTtcbiAgLS1idG4tY2hlY2tib3gtdGV4dC1jb2xvci1zZWxlY3RlZDogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcblxuICAvKiBGb3JtIGVycm9ycyovXG4gIC0tZm9ybS1lcnJvci1iZy1jb2xvcjogdmFyKC0tY29sb3ItcHJvbXB0LWFsZXJ0LWJnKTtcbiAgLS1mb3JtLWVycm9yLXRleHQtY29sb3I6IHZhcigtLWNvbG9yLXByb21wdC1hbGVydCk7XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL2F2YXRhci5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLyogQXZhdGFyKi9cbiAgLS1hdmF0YXItYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL2NvbG9ycy9kcm9wZG93bi5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAvKiBEcm9wIGRvd24qL1xuICAtLWRyb3Bkb3duLWl0ZW0tYmctY29sb3ItaG92ZXI6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gIC0tZHJvcGRvd24taXRlbS1iZy1jb2xvci1mb2N1czogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgLS1kcm9wZG93bi1pdGVtLWJnLWNvbG9yLWRpc2FibGVkLWZvY3VzOiB2YXIoLS1jb2xvci1uZXV0cmFsLTIpO1xuICAtLWRyb3Bkb3duLWl0ZW0tdGV4dC1jb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XG4gIC0tZHJvcGRvd24taXRlbS10ZXh0LWNvbG9yLWhvdmVyOiB2YXIoLS1jb2xvci10ZXh0KTtcbiAgLS1kcm9wZG93bi1pdGVtLXRleHQtY29sb3ItZm9jdXM6IHZhcigtLWNvbG9yLXRleHQpO1xuICAtLWRyb3Bkb3duLWl0ZW0tdGV4dC1jb2xvci1kaXNhYmxlZDogdmFyKC0tY29sb3ItdGV4dC1kaXNhYmxlZCk7XG4gIC0tZHJvcGRvd24taXRlbS1mb2N1cy1yaW5nLWNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gIC0tZHJvcGRvd24tbWVudS1iZy1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XG4gIC0tZHJvcGRvd24tbWVudS1ib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL2RhdGF0YWJsZS5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLyoqL1xuICAvKiBEYXRhIHRhYmxlKi9cbiAgLyoqL1xuICAtLWRhdGF0YWJsZS1iZy1hcmNoaXZlZDogdmFyKC0tY29sb3ItbmV1dHJhbC0yKTtcbiAgLS1kYXRhdGFibGUtY2VsbC1oZWFkZXItdGV4dC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcbiAgLyogRXhwYW5kZWQgc3R5bGVzKi9cbiAgLS1kYXRhdGFibGUtZXhwYW5kZWQtYmctY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tZGF0YXRhYmxlLWV4cGFuZGVkLWJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC01KTtcbiAgLS1kYXRhdGFibGUtZXhwYW5kZWQtdGV4dC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcbiAgLyogUm93IHN0eWxlcyovXG4gIC0tZGF0YXRhYmxlLXJvdy1iZy1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC0tZGF0YXRhYmxlLXJvdy1iZy1jb2xvci1hY3RpdmU6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gIC0tZGF0YXRhYmxlLXJvdy1iZy1jb2xvci1mb2N1czogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgLS1kYXRhdGFibGUtcm93LWJnLWNvbG9yLW9kZDogdmFyKC0tY29sb3ItbmV1dHJhbC0yKTtcbiAgLS1kYXRhdGFibGUtcm93LWJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC01KTtcbiAgLS1kYXRhdGFibGUtcm93LWZpcnN0LWJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcbiAgLyogU2VsZWN0IGFsbCBwcm9tcHQqL1xuICAtLWRhdGF0YWJsZS1zZWxlY3QtZXZlcnl0aGluZy1wcm9tcHQtYmc6IHZhcigtLWNvbG9yLW5ldXRyYWwtMik7XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL2NvbG9ycy90YWJzLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLyoqL1xuICAvKiBUYWJzKi9cbiAgLyoqL1xuICAtLXRhYnMtYmctY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gIC0tdGFicy1iZy1jb2xvci1zZWxlY3RlZDogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS10YWJzLWJnLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xuICAtLXRhYnMtYmctY29sb3ItZm9jdXM6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gIC0tdGFicy1zZWxlY3RlZC1iYXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuXG4gIC0tdGFicy10ZXh0LWNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gIC0tdGFicy10ZXh0LWNvbG9yLWFjdGl2ZTogdmFyKC0tY29sb3Itc3RhdGUtYWN0aXZlKTtcbiAgLS10YWJzLXRleHQtY29sb3ItZGlzYWJsZWQ6IHZhcigtLWNvbG9yLXN0YXRlLWRpc2FibGVkKTtcbiAgLS10YWJzLXRleHQtY29sb3ItZm9jdXM6IHZhcigtLWNvbG9yLXN0YXRlLWZvY3VzKTtcbiAgLS10YWJzLXRleHQtY29sb3Itc2VsZWN0ZWQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtNyk7XG5cbiAgLS10YWJzLWJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC01KTtcbiAgLS10YWJzLWJvcmRlci1jb2xvci1zZWxlY3RlZDogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS10YWJzLWJvcmRlci1jb2xvci1kaXNhYmxlZDogdmFyKC0tY29sb3ItbmV1dHJhbC00KTtcbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL2NhcmQuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAvKiovXG4gIC8qIENhcmQqL1xuICAvKiovXG4gIC0tY2FyZC1ib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL2NoYXJ0cy5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLyoqL1xuICAvKiBDaGFydHMqL1xuICAvKiovXG4gIC0tY29sb3ItY2hhcnQtZG91Z2hudXQtbGFiZWw6IHZhcigtLWNvbG9yLW5ldXRyYWwtNyk7XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL2NvbG9ycy9maWx0ZXJzLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLyoqL1xuICAvKiBGaWx0ZXJzKi9cbiAgLyoqL1xuICAtLWZpbHRlci1iYXItYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xuICAtLWZpbHRlci1zZWFyY2gtaWNvbi1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbiAgLS1maWx0ZXItc2VhcmNoLWNsZWFyLWljb24tY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL2NvbG9ycy90YWdzLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLyoqL1xuICAvKiBUYWcqL1xuICAvKiovXG4gIC0tdGFnLWJnLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTIpO1xuICAtLXRhZy1ib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XG4gIC0tdGFnLWFjdGl2ZS1jb2xvcjogdmFyKC0tY29sb3Itc3RhdGUpO1xuICAtLXRhZy1idXR0b24tY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNyk7XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9jb2xvcnMvcHJvZ3Jlc3NiYXIuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLyoqL1xuICAvKiBQcm9ncmVzcyovXG4gIC8qKi9cbiAgLS1wcm9ncmVzcy12YWx1ZS1iZy1jb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgLS1wcm9ncmVzcy1jb250YWluZXItYmctY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNCk7XG4gIC0tcHJvZ3Jlc3MtYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLXByb2dyZXNzLWNvbnRhaW5lci10ZXh0LWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xuICAtLXByb2dyZXNzLXZhbHVlLXRleHQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9jb2xvcnMvY29sbGFwc2libGUuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLyogQ1NTIGNvbGxhcHNhYmxlKi9cbiAgLS1jb2xsYXBzaWJsZS1oZWFkZXItYmctY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gIC0tY29sbGFwc2libGUtaGVhZGVyLWJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9jb2xvcnMvcHJvZ3Jlc3N0cmFja2VyLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAtLXByb2dyZXNzdHJhY2tlci1jb250YWluZXItYmctY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG5cbiAgLyogc3RhdGVzIHJlbGF0ZWQgdG8gQWNoaWV2ZW1lbnQqL1xuICAtLXByb2dyZXNzdHJhY2tlci1jb2xvci1wZW5kaW5nOiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xuICAtLXByb2dyZXNzdHJhY2tlci1jb2xvci1jdXJyZW50OiB2YXIoLS1jb2xvci1wcm9tcHQtaW5mbyk7XG4gIC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWFjaGlldmVkOiB2YXIoLS1jb2xvci10ZXJ0aWFyeSk7XG4gIC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWNvbXBsZXRlOiB2YXIoLS1jb2xvci1wcm9tcHQtd2FybmluZyk7XG5cbiAgLyogc3RhdGVzIHJlbGF0ZWQgdG8gV29ya2Zsb3dzKi9cbiAgLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItcmVhZHk6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG4gIC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXJlYWR5LS1pbnZlcnNlOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLXByb2dyZXNzdHJhY2tlci1jb2xvci1kb25lOiB2YXIoLS1jb2xvci1wcm9tcHQtc3VjY2Vzcyk7XG4gIC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWRvbmUtLWludmVyc2U6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWxvY2tlZDogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbiAgLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItbG9ja2VkLS1pbnZlcnNlOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLXByb2dyZXNzdHJhY2tlci1jb2xvci1vcHRpb25hbDogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbiAgLS1wcm9ncmVzc3RyYWNrZXItY29sb3Itb3B0aW9uYWwtLWludmVyc2U6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXNlbGVjdGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xuICAtLXByb2dyZXNzdHJhY2tlci1jb2xvci1zZWxlY3RlZC0taW52ZXJzZTogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItaW52YWxpZDogdmFyKC0tY29sb3ItcHJvbXB0LXdhcm5pbmcpO1xuICAtLXByb2dyZXNzdHJhY2tlci1jb2xvci1pbnZhbGlkLS1pbnZlcnNlOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLXByb2dyZXNzdHJhY2tlci1jb2xvci12aWV3LW9ubHk6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG4gIC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXZpZXctb25seS0taW52ZXJzZTogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItaGlkZGVuOiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xuICAtLXByb2dyZXNzdHJhY2tlci1jb2xvci1oaWRkZW4tLWludmVyc2U6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9jb2xvcnMvc2lkZV9wYW5lbF9uYXYuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLyoqL1xuICAvKiBTaWRlIHBhbmVsIG5hdmlnYXRpb24qL1xuICAvKiovXG5cbiAgLyogUGFuZWwqL1xuICAtLXNpZGUtcGFuZWwtbmF2LWJnLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xuXG4gIC8qIFBhbmVsIGl0ZW0qL1xuICAtLXNpZGUtcGFuZWwtbmF2LWl0ZW0tYmctY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gIC0tc2lkZS1wYW5lbC1uYXYtaXRlbS1ib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gIC0tc2lkZS1wYW5lbC1uYXYtaXRlbS10ZXh0LWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xuXG4gIC8qIFBhbmVsIGl0ZW0gaG92ZXIvZm9jdXMqL1xuICAtLXNpZGUtcGFuZWwtbmF2LWl0ZW0tYmctY29sb3ItZm9jdXM6IHZhcigtLWNvbG9yLW5ldXRyYWwtNCk7XG4gIC0tc2lkZS1wYW5lbC1uYXYtaXRlbS1ib3JkZXItY29sb3ItZm9jdXM6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gIC0tc2lkZS1wYW5lbC1uYXYtaXRlbS10ZXh0LWNvbG9yLWZvY3VzOiB2YXIoLS1jb2xvci1zdGF0ZS1mb2N1cyk7XG5cbiAgLyogUGFuZWwgaXRlbSBzZWxlY3RlZCovXG4gIC0tc2lkZS1wYW5lbC1uYXYtaXRlbS1iZy1jb2xvci1zZWxlY3RlZDogdmFyKC0tY29sb3Itc3RhdGUtYWN0aXZlKTtcbiAgLS1zaWRlLXBhbmVsLW5hdi1pdGVtLWJvcmRlci1jb2xvci1zZWxlY3RlZDogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgLS1zaWRlLXBhbmVsLW5hdi1pdGVtLXRleHQtY29sb3Itc2VsZWN0ZWQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvY29sb3JzL3RvZ2dsZS5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLyoqL1xuICAvKiBUb2dnbGUgY29sb3VycyovXG4gIC8qKi9cblxuICAvKiB0b2dnbGUgYnV0dG9ucyovXG4gIC0tdG9nZ2xlLWJnLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xuXG4gIC8qIEJ1dHRvbiBiYWNrZ3JvdW5kKi9cbiAgLS10b2dnbGUtYnRuLWJnLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLS10b2dnbGUtYnRuLWJnLWNvbG9yLWFjdGl2ZTogdHJhbnNwYXJlbnQ7XG4gIC0tdG9nZ2xlLWJ0bi1iZy1jb2xvci1kaXNhYmxlZDogdHJhbnNwYXJlbnQ7XG4gIC0tdG9nZ2xlLWJ0bi1iZy1jb2xvci1ob3ZlcjogdHJhbnNwYXJlbnQ7XG4gIC0tdG9nZ2xlLWJ0bi1iZy1jb2xvci1zZWxlY3RlZDogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcblxuICAvKiBCdXR0b24gdGV4dCBjb2xvdXIqL1xuICAtLXRvZ2dsZS1idG4tdGV4dC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS10b2dnbGUtYnRuLXRleHQtY29sb3ItYWN0aXZlOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAtLXRvZ2dsZS1idG4tdGV4dC1jb2xvci1kaXNhYmxlZDogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgLS10b2dnbGUtYnRuLXRleHQtY29sb3ItaG92ZXI6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tdG9nZ2xlLWJ0bi10ZXh0LWNvbG9yLXNlbGVjdGVkOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xuXG4gIC8qKi9cbiAgLyogVG9nZ2xlIHN3aXRjaCovXG4gIC8qKi9cbiAgLS1mb3JtLXRvZ2dsZS1kb3QtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tZm9ybS10b2dnbGUtb2ZmLWJnLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xuICAtLWZvcm0tdG9nZ2xlLW9mZi1iZy1jb2xvci1ob3Zlci1mb2N1czogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbiAgLS1mb3JtLXRvZ2dsZS1vZmYtYmctY29sb3ItZGlzYWJsZWQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtNCk7XG4gIC0tZm9ybS10b2dnbGUtb24tYmctY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgLS1mb3JtLXRvZ2dsZS1vbi1iZy1jb2xvci1ob3Zlci1mb2N1czogdmFyKC0tY29sb3Itc3RhdGUtaG92ZXIpO1xuICAtLWZvcm0tdG9nZ2xlLW9uLWJnLWNvbG9yLWRpc2FibGVkOiBjb2xvci1taXgoXG4gICAgaW4gc3JnYixcbiAgICB2YXIoLS1mb3JtLXRvZ2dsZS1vbi1iZy1jb2xvcikgNjAlLFxuICAgIHRyYW5zcGFyZW50XG4gICk7XG4gIC0tZm9ybS10b2dnbGUtb24tYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gIC0tZm9ybS10b2dnbGUtb24tYm9yZGVyLWNvbG9yLWhvdmVyLWZvY3VzOiB2YXIoLS1jb2xvci1zdGF0ZS1ob3Zlcik7XG4gIC0tZm9ybS10b2dnbGUtYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xuICAtLWZvcm0tdG9nZ2xlLWJvcmRlci1jb2xvci1kaXNhYmxlZDogdmFyKC0tY29sb3ItbmV1dHJhbC01KTtcblxuICAvKiBEZXByZWNhdGVkIHNpbmNlIFRvdGFyYSAxOC4wKi9cbiAgLS10b2dnbGUtYnRuLXRleHQtY29sb3ItZm9jdXM6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIC0tdG9nZ2xlLWJ0bi1iZy1jb2xvci1mb2N1czogdHJhbnNwYXJlbnQ7XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy9jb2xvcnMvbm90aWZpY2F0aW9udG9hc3Quc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLyoqL1xuICAvKk5vdGlmaWNhdGlvbiB0b2FzdCovXG4gIC8qKi9cbiAgLS10b2FzdC1jb2xvci10ZXh0OiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xufVxuXG4iLCIvKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy90dWlfc2hhZG93cy5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucy4qL1xuLyoqL1xuLyogQ29weXJpZ2h0IChDKSAyMDIwIG9ud2FyZHMgVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQqL1xuLyoqL1xuLyogVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucyBpcyBwcm92aWRlZCBvbmx5IHRvIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREJ3MgY3VzdG9tZXJzIGFuZCBwYXJ0bmVycywgcHVyc3VhbnQgdG8qL1xuLyogdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGEgc2VwYXJhdGUgYWdyZWVtZW50IHdpdGggVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQgb3IgaXRzIGFmZmlsaWF0ZS4qL1xuLyoqL1xuLyogSWYgeW91IGRvIG5vdCBoYXZlIGFuIGFncmVlbWVudCB3aXRoIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMqL1xuLyogTFRELCB5b3UgbWF5IG5vdCBhY2Nlc3MsIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUuKi9cbi8qIFBsZWFzZSBjb250YWN0IFtsaWNlbnNpbmdAdG90YXJhbGVhcm5pbmcuY29tXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xuLyoqL1xuLyogQGF1dGhvciAgICBLZXZpbiBIb3R0aW5nZXIgPGtldmluLmhvdHRpbmdlckB0b3RhcmFsZWFybmluZy5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpY2thZ2UgICB0dWkqL1xuXG46cm9vdCB7XG4gIC8qKi9cbiAgLyogU2hhZG93IGRlcHRocyovXG4gIC8qKi9cblxuICAtLXNoYWRvdy1ub25lOiAwIDAgMCAwIHRyYW5zcGFyZW50O1xuICAtLXNoYWRvdy0yOiAwIDNweCA2cHggMCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIC0tc2hhZG93LTM6IDAgNnB4IDZweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIC0tc2hhZG93LTQ6IDAgMTBweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjMpO1xuXG4gIC8qIElucHV0IGJveC1zaGFkb3dzKi9cbiAgLS1mb3JtLWlucHV0LXNoYWRvdy1mb2N1czogbm9uZTtcbiAgLS1mb3JtLWlucHV0LXNoYWRvdy1pbnZhbGlkOiAwIDAgMCB2YXIoLS1mb3JtLWlucHV0LWludmFsaWQtc2hhZG93LXNpemUpXG4gICAgdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XG4gIC0tZm9ybS1pbnB1dC1zaGFkb3ctaW52YWxpZC1mb2N1czogbm9uZTtcblxuICAtLWZvcm0tcmFuZ2UtdGh1bWItc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuXG4iLCIvKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX3NpZGVfcGFuZWxfbmF2LnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucy4qL1xuLyoqL1xuLyogQ29weXJpZ2h0IChDKSAyMDIwIG9ud2FyZHMgVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQqL1xuLyoqL1xuLyogVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucyBpcyBwcm92aWRlZCBvbmx5IHRvIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREJ3MgY3VzdG9tZXJzIGFuZCBwYXJ0bmVycywgcHVyc3VhbnQgdG8qL1xuLyogdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGEgc2VwYXJhdGUgYWdyZWVtZW50IHdpdGggVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQgb3IgaXRzIGFmZmlsaWF0ZS4qL1xuLyoqL1xuLyogSWYgeW91IGRvIG5vdCBoYXZlIGFuIGFncmVlbWVudCB3aXRoIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMqL1xuLyogTFRELCB5b3UgbWF5IG5vdCBhY2Nlc3MsIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUuKi9cbi8qIFBsZWFzZSBjb250YWN0IFtsaWNlbnNpbmdAdG90YXJhbGVhcm5pbmcuY29tXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xuLyoqL1xuLyogQGF1dGhvciAgICBLZXZpbiBIb3R0aW5nZXIgPGtldmluLmhvdHRpbmdlckB0b3RhcmFsZWFybmluZy5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpY2thZ2UgICB0dWkqL1xuXG46cm9vdCB7XG4gIC0tc2lkZXBhbmVsLW5hdmlnYXRpb24taXRlbS1wYWRkaW5nLWxlZnQ6IHZhcigtLWdhcC04KTtcbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9wcm9ncmVzc190cmFja2VyX25hdi5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMSBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgRGF2ZSBXYWxsYWNlIDxkYXZlLndhbGxhY2VAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAvKiBgLXNpemUtLWAgdW5pdHMgc2hvdWxkIGJlIGluIGVpdGhlciBgcHhgIG9yIGByZW1gIGZvciBKUyBjb250YWluZXIgcXVlcnlpbmcqL1xuICAtLXByb2dyZXNzLXRyYWNrZXItaG9yaXpvbnRhbC1zaXplLS1zbWFsbDogI3tyZW0tcHgoMTAwKX07XG4gIC0tcHJvZ3Jlc3MtdHJhY2tlci1ob3Jpem9udGFsLXNpemUtLW1lZGl1bTogI3tyZW0tcHgoMjAwKX07XG4gIC0tcHJvZ3Jlc3MtdHJhY2tlci1ob3Jpem9udGFsLXNpemUtLWxhcmdlOiAje3JlbS1weCgyNTApfTtcbiAgLS1wcm9ncmVzcy10cmFja2VyLWhvcml6b250YWwtZ2FwLS1zbWFsbDogdmFyKC0tZ2FwLTIpO1xuICAtLXByb2dyZXNzLXRyYWNrZXItaG9yaXpvbnRhbC1nYXAtLW1lZGl1bTogdmFyKC0tZ2FwLTQpO1xuICAtLXByb2dyZXNzLXRyYWNrZXItaG9yaXpvbnRhbC1nYXAtLWxhcmdlOiB2YXIoLS1nYXAtNik7XG4gIC0tcHJvZ3Jlc3MtdHJhY2tlci12ZXJ0aWNhbC1nYXAtLXNtYWxsOiB2YXIoLS1nYXAtMik7XG4gIC0tcHJvZ3Jlc3MtdHJhY2tlci12ZXJ0aWNhbC1nYXAtLW1lZGl1bTogdmFyKC0tZ2FwLTQpO1xuICAtLXByb2dyZXNzLXRyYWNrZXItdmVydGljYWwtZ2FwLS1sYXJnZTogdmFyKC0tZ2FwLTYpO1xuICAtLXByb2dyZXNzdHJhY2tlci1mdWxsLW1hcmtlci1zaXplOiAje3JlbS1weCgyOCl9O1xuICAtLXByb2dyZXNzdHJhY2tlci1jb25uZWN0b3ItZ2FwOiAje3JlbS1weCg1KX07XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy90dWlfcmFuZ2Uuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjIgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIFJvZG5leSBDcnVkZW4tUG93ZWxsIDxyb2RuZXkuY3J1ZGVuLXBvd2VsbEB0b3RhcmFsZWFybmluZy5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpY2thZ2UgICB0dWkqL1xuXG46cm9vdCB7XG4gIC8qIHJlbSBkb2VzIG5vdCB3b3JrIGNvcnJlY3RseSBpbiBJRSovXG4gIC0tZm9ybS1yYW5nZS1oZWlnaHQ6IDIwcHg7XG4gIC0tZm9ybS1yYW5nZS10cmFjay1oZWlnaHQ6IDEwcHg7XG4gIC0tZm9ybS1yYW5nZS10aHVtYi1zaXplOiAxOHB4O1xuICAvKiBwcmV0dGllci1pZ25vcmUqL1xuICAtLWZvcm0tcmFuZ2UtdGh1bWItbWFyZ2luLXRvcDogY2FsYygodmFyKC0tZm9ybS1yYW5nZS10cmFjay1oZWlnaHQpIC8gMikgLSAodmFyKC0tZm9ybS1yYW5nZS10aHVtYi1zaXplKSAvIDIpKTtcbiAgLS1mb3JtLXJhbmdlLXRodW1iLWJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuQG1peGluIHR1aS1yYW5nZS10cmFjaygpIHtcbiAgaGVpZ2h0OiB2YXIoLS1mb3JtLXJhbmdlLXRyYWNrLWhlaWdodCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtNCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtcHJpbnQtY29sb3ItYWRqdXN0OiBleGFjdDtcbiAgICAgICAgICBwcmludC1jb2xvci1hZGp1c3Q6IGV4YWN0O1xufVxuXG5AbWl4aW4gdHVpLXJhbmdlLXRodW1iKCkge1xuICB3aWR0aDogdmFyKC0tZm9ybS1yYW5nZS10aHVtYi1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1mb3JtLXJhbmdlLXRodW1iLXNpemUpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWZvcm0tcmFuZ2UtdGh1bWItYm9yZGVyLXJhZGl1cyk7XG4gIGJveC1zaGFkb3c6IHZhcigtLWZvcm0tcmFuZ2UtdGh1bWItc2hhZG93KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4iLCIvKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9sYXlvdXQuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucy4qL1xuLyoqL1xuLyogQ29weXJpZ2h0IChDKSAyMDIwIG9ud2FyZHMgVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQqL1xuLyoqL1xuLyogVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucyBpcyBwcm92aWRlZCBvbmx5IHRvIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREJ3MgY3VzdG9tZXJzIGFuZCBwYXJ0bmVycywgcHVyc3VhbnQgdG8qL1xuLyogdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGEgc2VwYXJhdGUgYWdyZWVtZW50IHdpdGggVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQgb3IgaXRzIGFmZmlsaWF0ZS4qL1xuLyoqL1xuLyogSWYgeW91IGRvIG5vdCBoYXZlIGFuIGFncmVlbWVudCB3aXRoIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMqL1xuLyogTFRELCB5b3UgbWF5IG5vdCBhY2Nlc3MsIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUuKi9cbi8qIFBsZWFzZSBjb250YWN0IFtsaWNlbnNpbmdAdG90YXJhbGVhcm5pbmcuY29tXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xuLyoqL1xuLyogQGF1dGhvciAgICBTaW1vbiBDaGVzdGVyIDxzaW1vbi5jaGVzdGVyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbjpyb290IHtcbiAgLS1wYWdlLWNvbnRlbnQtcGFkZGluZzogI3tnYXAoNCl9O1xuICAtLXBhZ2UtY29udGVudC1wYWRkaW5nLWRlc2t0b3A6ICN7Z2FwKDQpfTtcbn1cblxuLyogU2lkZWJhciBsYXlvdXQgdGhhdCBpcyByZXNwb25zaXZlIGJhc2VkIG9uIHRoZSBzaXplIG9mIGl0cyBjb250YWluZXIsIHJhdGhlciovXG4vKiB0aGFuIHRoZSB2aWV3cG9ydC4qL1xuQG1peGluIHR1aS1sYXlvdXQtc2lkZWJhcihcbiAgLyogd2lkdGggb2YgdGhlIHNpZGViYXIqL1xuICAgICRzaWRlLXdpZHRoOiAnY29udGVudCcsXG4gIC8qIHdpZHRoIG9mIHRoZSBjb250ZW50Ki9cbiAgICAkY29udGVudC1taW4td2lkdGg6IDUwJSxcbiAgLyogc2l6ZSBvZiB0aGUgZ3V0dGVyIGJldHdlZW4gc2lkZWJhciBhbmQgY29udGVudCovXG4gICAgJGd1dHRlcjogMCxcbiAgLyogc2VsZWN0b3IgZm9yIGNoaWxkIHNpZGViYXIgZWxlbWVudCovXG4gICAgJHNpZGViYXItc2VsZWN0b3I6ICc6bnRoLWNoaWxkKDEpJyxcbiAgLyogc2VsZWN0b3IgZm9yIGNoaWxkIGNvbnRlbnQgZWxlbWVudCovXG4gICAgJGNvbnRlbnQtc2VsZWN0b3I6ICc6bnRoLWNoaWxkKDIpJ1xuKSB7XG4gICYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAkZ3V0dGVyO1xuXG4gICAgJiA+ICN7JHNpZGViYXItc2VsZWN0b3J9IHtcbiAgICAgIEBpZiAkc2lkZS13aWR0aCAhPSAnY29udGVudCcge1xuICAgICAgICBmbGV4LWJhc2lzOiAkc2lkZS13aWR0aDtcbiAgICAgIH1cbiAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICB9XG5cbiAgICAmID4gI3skY29udGVudC1zZWxlY3Rvcn0ge1xuICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgIC8qIFNldCBhIHJlYWxseSBoaWdoIGZsZXgtZ3JvdyB2YWx1ZSBzbyBpdCB0YWtlcyB1cCBhbGwgdGhlIGF2YWlsYWJsZSovXG4gICAgICAvKiBzcGFjZS4gVGhpcyB3aWxsIHNxdWlzaCB0aGUgc2lkZWJhciBkb3duIHRvIGl0cyBpbnRyaW5zaWMgd2lkdGgqL1xuICAgICAgLyogKG9yIGZsZXgtYmFzaXMsIGlmIHNldCkuKi9cbiAgICAgIGZsZXgtZ3JvdzogOTk5O1xuICAgICAgLyogVGhpcyBlbGVtZW50IGNhbm5vdCBzaHJpbmsgYmV5b25kIG1pbi13aWR0aCwgc28gaXQgd2lsbCB3cmFwIG9uIHRvIHRoZSovXG4gICAgICAvKiBuZXh0IGxpbmUgKHN3aXRjaCB0byB2ZXJ0aWNhbCkuKi9cbiAgICAgIG1pbi13aWR0aDogY2FsYygjeyRjb250ZW50LW1pbi13aWR0aH0gLSAjeyRndXR0ZXJ9KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGxheW91dC1wYWdlLXBhZGRpbmcoJHNpZGVzOiBsZWZ0IHJpZ2h0KSB7XG4gIEBlYWNoICRzaWRlIGluICRzaWRlcyB7XG4gICAgcGFkZGluZy0jeyRzaWRlfTogdmFyKC0tcGFnZS1jb250ZW50LXBhZGRpbmcpO1xuICB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMDAwcHgpIHtcbiAgICBAZWFjaCAkc2lkZSBpbiAkc2lkZXMge1xuICAgICAgcGFkZGluZy0jeyRzaWRlfTogdmFyKC0tcGFnZS1jb250ZW50LXBhZGRpbmctZGVza3RvcCk7XG4gICAgfVxuICB9XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9hbmltYXRpb25zLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yIFNpbW9uIENoZXN0ZXIgPHNpbW9uLmNoZXN0ZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aSovXG5cbkBmdW5jdGlvbiB0dWktdHJhbnNpdGlvbigkdHlwZSwgJHByb3BlcnR5KSB7XG4gIEByZXR1cm4gJHByb3BlcnR5IHZhcigtLXRyYW5zaXRpb24tI3skdHlwZX0tZHVyYXRpb24pXG4gICAgdmFyKC0tdHJhbnNpdGlvbi0jeyR0eXBlfS1mdW5jdGlvbik7XG59XG5cbkBmdW5jdGlvbiB0dWktdHJhbnNpdGlvbnMoJHR5cGUsICRwcm9wZXJ0aWVzKSB7XG4gICRuZXctbGlzdDogKCk7XG4gIEBlYWNoICRwcm9wZXJ0eSBpbiAkcHJvcGVydGllcyB7XG4gICAgJG5ldy1saXN0OiBhcHBlbmQoJG5ldy1saXN0LCB0dWktdHJhbnNpdGlvbigkdHlwZSwgJHByb3BlcnR5KSwgJ2NvbW1hJyk7XG4gIH1cbiAgQHJldHVybiAkbmV3LWxpc3Q7XG59XG5cbjpyb290IHtcbiAgLS10cmFuc2l0aW9uLWZvcm0tZnVuY3Rpb246IGxpbmVhcjtcbiAgLS10cmFuc2l0aW9uLWZvcm0tZHVyYXRpb246IDBzO1xuICAtLXRyYW5zaXRpb24tbW9kYWwtZnVuY3Rpb246IGVhc2Utb3V0O1xuICAtLXRyYW5zaXRpb24tbW9kYWwtZHVyYXRpb246IDAuMTVzO1xuICAtLXRyYW5zaXRpb24tc2lkZXBhbmVsLWNvbnRlbnQtZnVuY3Rpb246IGxpbmVhcjtcbiAgLS10cmFuc2l0aW9uLXNpZGVwYW5lbC1jb250ZW50LWR1cmF0aW9uOiAwLjFzO1xuICAtLXRyYW5zaXRpb24tcHJvZ3Jlc3MtZnVuY3Rpb246IGVhc2Utb3V0O1xuICAtLXRyYW5zaXRpb24tcHJvZ3Jlc3MtZHVyYXRpb246IDAuM3M7XG4gIC0tdHJhbnNpdGlvbi1idXR0b24tZnVuY3Rpb246IGVhc2U7XG4gIC0tdHJhbnNpdGlvbi1idXR0b24tZHVyYXRpb246IDAuMTVzO1xuICAtLXRyYW5zaXRpb24tdG9nZ2xlLWZ1bmN0aW9uOiBlYXNlO1xuICAtLXRyYW5zaXRpb24tdG9nZ2xlLWR1cmF0aW9uOiAwLjJzO1xufVxuXG4iLCIvKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9tb2RhbHMuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucy4qL1xuLyoqL1xuLyogQ29weXJpZ2h0IChDKSAyMDIwIG9ud2FyZHMgVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQqL1xuLyoqL1xuLyogVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucyBpcyBwcm92aWRlZCBvbmx5IHRvIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREJ3MgY3VzdG9tZXJzIGFuZCBwYXJ0bmVycywgcHVyc3VhbnQgdG8qL1xuLyogdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGEgc2VwYXJhdGUgYWdyZWVtZW50IHdpdGggVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQgb3IgaXRzIGFmZmlsaWF0ZS4qL1xuLyoqL1xuLyogSWYgeW91IGRvIG5vdCBoYXZlIGFuIGFncmVlbWVudCB3aXRoIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMqL1xuLyogTFRELCB5b3UgbWF5IG5vdCBhY2Nlc3MsIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUuKi9cbi8qIFBsZWFzZSBjb250YWN0IFtsaWNlbnNpbmdAdG90YXJhbGVhcm5pbmcuY29tXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xuLyoqL1xuLyogQGF1dGhvciAgICBLZXZpbiBIb3R0aW5nZXIgPGtldmluLmhvdHRpbmdlckB0b3RhcmFsZWFybmluZy5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpY2thZ2UgICB0dWkqL1xuXG46cm9vdCB7XG4gIC0tbW9kYWwtY29udGFpbmVyLXBhZGRpbmc6IHZhcigtLWdhcC0xMik7XG4gIC0tbW9kYWwtc2hlZXQtcGFkZGluZzogdmFyKC0tZ2FwLTEyKTtcbiAgLS1tb2RhbC1ib3JkZXItcmFkaXVzOiAje3JlbS1weCgxMil9O1xuXG4gIC0tbW9kYWwtY29udGVudC1vdXRlci1wYWRkaW5nOiB2YXIoLS1nYXAtNik7XG5cbiAgLyogRGVwcmVjYXRlZCBzaW5jZSBUb3RhcmEgMTguMCovXG4gIC0tbW9kYWwtY29udGVudC1zZXBhcmF0aW9uOiB2YXIoLS1nYXAtMik7XG4gIC0tbW9kYWwtY29udGVudC1zZXBhcmF0aW9uLWxhcmdlOiB2YXIoLS1nYXAtOCk7XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvZ2xvYmFsX3N0eWxlcy92YXJpYWJsZXMvdHVpX2VtYmVkcy5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjEgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIFNpbW9uIENoZXN0ZXIgPHNpbW9uLmNoZXN0ZXJAdG90YXJhbGVhcm5pbmcuY29tPiovXG4vKiBAbW9kdWxlIHR1aWNrYWdlICAgdHVpKi9cblxuOnJvb3Qge1xuICAtLWVtYmVkZGVkLW1lZGlhLW1heC13aWR0aDogNzAwcHg7XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy90dWlfZm9ybXMuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjAgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yICAgIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWlja2FnZSAgIHR1aSovXG5cbi8qIFRoaXMgY29udGFpbnMgdGhlIGNvbW1vbiB2YXJpYWJsZSBzZXQgZm9yIGZvcm0gZWxlbWVudHMsKi9cbi8qIGFsbG93aW5nIGZvcm0gZWxlbWVudHMgdG8gYmUgY29uc2lzdGVudGx5IHN0eWxlZC4qL1xuXG4vKiBsb29zZWx5IGJhc2VkIG9uIGEgbW9kdWxhciBzY2FsZSBvZiAoMiAqICgxLjUgXiBuKSkqL1xuJHR1aS1jaGFyLWxlbmd0aC1zY2FsZTogMiwgMywgNCwgNSwgMTAsIDE1LCAyMCwgMjUsIDMwLCA1MCwgNzUsIDEwMDtcblxuLyogU2VsZWN0b3JzIGZvciBmb3JtIGlucHV0cyAoYW5kIHNpbWlsYXIgZWxlbWVudHMpIHRoYXQgc2hvdWxkIGhhdmUgc2l6ZXMgYXBwbGllZCB0byB0aGVtLiovXG4vKiBJZiBtb2RpZnlpbmcgdGhpcyBsaXN0IGluIGEgdGhlbWUsIGRvIGl0IHZpYSBhcHBlbmQoKSByYXRoZXIgdGhhbiByZXBsYWNpbmcqL1xuLyogdGhlIGVudGlyZSBsaXN0LiovXG4kdHVpLWZvcm0tbGF5b3V0LXNpemVkLWlucHV0czogKFxuICAnaW5wdXRbdHlwZV0udHVpLWZvcm1JbnB1dCcsXG4gICcudHVpLWZvcm1GaWVsZCcsXG4gICcudHVpLWZvcm1UZXh0YXJlYScsXG4gICcudHVpLWlucHV0Q29sb3InLFxuICAnLnR1aS1yYW5nZScsXG4gICcudHVpLXNlbGVjdCdcbik7XG5cbi8qIFNlbGVjdG9ycyBmb3IgaW5wdXRzIHRoYXQgYXJlICpyZXBsYWNlZCBlbGVtZW50cyouKi9cbi8qIFRoZSBiZWhhdmlvciBvZiB3aWR0aDogYXV0byBkaWZmZXJzIGZvciByZXBsYWNlZCBlbGVtZW50cywgc28gdGhlc2UgYXJlIHNldCovXG4vKiB0byB3aWR0aDogMTAwJSB0byBnZXQgdGhlIFwiZ3JvdyB0byBjb250YWluZXJcIiBiZWhhdmlvci4qL1xuLyogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL1JlcGxhY2VkX2VsZW1lbnQqL1xuLyogSG93ZXZlciwgdGhpcyBjYXVzZXMgYW4gaXNzdWUgaW4gY2VydGFpbiBjb250ZXh0cyAtIG5hbWVseSBpZiB0aGUgY29udGFpbmVyKi9cbi8qIGhhcyBhIG1hcmdpbi4gVGhpcyBsaXN0IGV4aXN0cyB0byBlbmFibGUgd29ya2Fyb3VuZHMgdXNpbmcgZmxleCBhdCB0aGUgc2l0ZSovXG4vKiBvZiB1c2UuKi9cbi8qIElmIG1vZGlmeWluZyB0aGlzIGxpc3QgaW4gYSB0aGVtZSwgZG8gaXQgdmlhIGFwcGVuZCgpIHJhdGhlciB0aGFuIHJlcGxhY2luZyovXG4vKiB0aGUgZW50aXJlIGxpc3QuKi9cbiR0dWktaW5wdXQtcmVwbGFjZWQtc2VsZWN0b3JzOiAoXG4gICdpbnB1dFt0eXBlXS50dWktZm9ybUlucHV0JyxcbiAgJy50dWktZm9ybVRleHRhcmVhJyxcbiAgJy50dWktcmFuZ2UnLFxuICAnLnR1aS1zZWxlY3QnXG4pO1xuXG4vKiBEb24ndCBhcHBseSB0aGUgZGVmYXVsdCBpbnB1dCBzaXplIGlmIHRoZSBlbGVtZW50IGlzIHdpdGhpbiBvbmUgb2YgdGhlc2UqL1xuLyogc2VsZWN0b3JzLiovXG4vKiAoaWYgaXQncyBub3Qgd2l0aGluIGEgZm9ybSwgaXQgd29uJ3QgYmUgYXBwbGllZCBlaXRoZXIpKi9cbiR0dWktaW5wdXQtbm8tZGVmYXVsdC1zaXplLXBhcmVudC1zZWxlY3RvcnM6IChcbiAgLyogbWlub3IgY29udmVuaWVuY2U6IHNwbGl0IGlucHV0IHNldHMgc2hvdWxkIG5vdCBoYXZlIHRoZSB3aWR0aCBzZXQsIHRvIHNhdmUqL1xuICAgIC8qIGRldmVsb3BlcnMgZnJvbSBoYXZpbmcgdG8gcGFzcyBjaGFyLWxlbmd0aD1cImZ1bGxcIiBhbGwgdGhlIHRpbWUqL1xuICAgICcudHVpLWlucHV0U2V0LS1zcGxpdCdcbik7XG5cbi8qIENhbGN1bGF0ZSBjaGFyYWN0ZXItYmFzZWQgc2l6aW5nIGZvciBpbnB1dHMuKi9cbkBmdW5jdGlvbiB0dWktY2hhci1sZW5ndGgoJG51bSkge1xuICBAcmV0dXJuIGNhbGMoI3skbnVtfSAqIHZhcigtLWZvcm0taW5wdXQtZm9udC1zaXplKSk7XG59XG5cbi8qIEdlbmVyYXRlIHNpemluZyBjbGFzcyBmb3Igc2l6ZSovXG5AbWl4aW4gdHVpLWNoYXItbGVuZ3RoLWNsYXNzKCRuYW1lLCAkd2lkdGgpIHtcbiAgJi0tY2hhckxlbmd0aC0jeyRuYW1lfSB7XG4gICAgbWF4LXdpZHRoOiAjeyR3aWR0aH07XG4gIH1cbn1cblxuLyogRGVmYXVsdCBpbnB1dCBzaXppbmcqL1xuQG1peGluIHR1aS1jaGFyLWxlbmd0aC1jbGFzcy1mb3JtLWRlZmF1bHQoKSB7XG4gIC8qIFNldCBhIGN1c3RvbSBzaXplIGZvciBpbnB1dHMgaW4gYSBsaW1pdGVkIGZvcm0qL1xuICAudHVpLWZvcm0tLWlucHV0V2lkdGgtbGltaXRlZCAmOm5vdCgudHVpLWlucHV0LS1jdXN0b21TaXplKSB7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1mb3JtLWlucHV0LWxpbWl0ZWQtd2lkdGgpO1xuICB9XG4gIEBlYWNoICRzZWwgaW4gJHR1aS1pbnB1dC1uby1kZWZhdWx0LXNpemUtcGFyZW50LXNlbGVjdG9ycyB7XG4gICAgLnR1aS1mb3JtLS1pbnB1dFdpZHRoLWxpbWl0ZWQgI3skc2VsfSAmOm5vdCgudHVpLWlucHV0LS1jdXN0b21TaXplKSB7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8qIEdlbmVyYXRlIHNpemluZyBjbGFzc2VzIGZvciBwcmVkZWZpbmVkIHNpemVzKi9cbkBtaXhpbiB0dWktY2hhci1sZW5ndGgtY2xhc3NlcygpIHtcbiAgQGVhY2ggJHNpemUgaW4gJHR1aS1jaGFyLWxlbmd0aC1zY2FsZSB7XG4gICAgQGluY2x1ZGUgdHVpLWNoYXItbGVuZ3RoLWNsYXNzKCRzaXplLCB0dWktY2hhci1sZW5ndGgoJHNpemUpKTtcbiAgfVxuICBAaW5jbHVkZSB0dWktY2hhci1sZW5ndGgtY2xhc3MtZm9ybS1kZWZhdWx0KCk7XG59XG5cbi8qIFZlcnRpY2FsIHBhZGRpbmcgb2YgZm9ybSBlbGVtZW50cy4qL1xuLyogQ2FsY3VsYXRlIHRoZSByZW1haW5pbmcgYXZhaWxhYmxlIHNwYWNlIHRvIG1lZXQgdGhlIHRhcmdldCBoZWlnaHQuKi9cbi8qIE11c3QgYmUgb24gYSBzaW5nbGUgbGluZSBvdGhlcndpc2UgaXQgYnJlYWtzIChmb3Igc29tZSByZWFzb24hKSBzbyBtdXN0IGJlIGlnbm9yZWQgYnkgcHJldHRpZXIuKi9cbi8qIHByZXR0aWVyLWlnbm9yZSovXG5AZnVuY3Rpb24gdHVpLWlucHV0LXYtcGFkZGluZygpIHtcbiAgQHJldHVybiBjYWxjKCh2YXIoLS1mb3JtLWlucHV0LWhlaWdodCkgLSB2YXIoLS1mb3JtLWlucHV0LWxpbmUtaGVpZ2h0KSAtICh2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSAqIDIpKSAvIDIpO1xufVxuLyogcHJldHRpZXItaWdub3JlKi9cbkBmdW5jdGlvbiB0dWktaW5wdXQtdi1wYWRkaW5nLWJvcmRlcmxlc3MoKSB7XG4gIEByZXR1cm4gY2FsYygodmFyKC0tZm9ybS1pbnB1dC1oZWlnaHQpIC0gdmFyKC0tZm9ybS1pbnB1dC1saW5lLWhlaWdodCkpIC8gMik7XG59XG5cbjpyb290IHtcbiAgLyogSGVpZ2h0IG9mIHNpbmdsZSBsaW5lIGZvcm0gZWxlbWVudHMgKGluY2x1ZGluZyBwYWRkaW5nICYgYm9yZGVyKSovXG4gIC0tZm9ybS1pbnB1dC1oZWlnaHQ6ICN7cmVtLXB4KDM2KX07XG4gIC8qIEhlaWdodCBvZiBsYXJnZSBzaW5nbGUgbGluZSBmb3JtIGVsZW1lbnRzIChpbmNsdWRpbmcgcGFkZGluZyAmIGJvcmRlcikqL1xuICAtLWZvcm0taW5wdXQtaGVpZ2h0LWxhcmdlOiAje3JlbS1weCg0MCl9O1xuICAvKiBJbm5lciBmb250IHNpemUgb2YgZm9ybSBlbGVtZW50cyovXG4gIC0tZm9ybS1pbnB1dC1mb250LXNpemU6IHZhcigtLWZvbnQtYm9keS1zaXplKTtcbiAgLS1mb3JtLWlucHV0LWZvbnQtc2l6ZS1zbTogdmFyKC0tZm9udC1ib2R5LXNtLXNpemUpO1xuICAtLWZvcm0taW5wdXQtZm9udC1zaXplLWxnOiB2YXIoLS1mb250LWJvZHktbGctc2l6ZSk7XG4gIC0tZm9ybS1pbnB1dC1saW5lLWhlaWdodDogdmFyKC0tZm9udC1ib2R5LWxpbmUtaGVpZ2h0KTtcbiAgLyogQm9yZGVyIHNpemUgb2YgaW5wdXQgZWxlbWVudHMqL1xuICAtLWZvcm0taW5wdXQtYm9yZGVyLXNpemU6IDFweDtcbiAgLS1mb3JtLWlucHV0LWJvcmRlci1yYWRpdXM6ICN7cmVtLXB4KDQpfTtcbiAgLS1mb3JtLWlucHV0LWludmFsaWQtc2hhZG93LXNpemU6IDFweDtcblxuICAvKiBXaWR0aCBmb3IgXCJsaW1pdGVkXCIgd2lkdGggc2V0dGluZyovXG4gIC0tZm9ybS1pbnB1dC1saW1pdGVkLXdpZHRoOiAje3R1aS1jaGFyLWxlbmd0aCgyMCl9O1xuXG4gIC8qIFNpbXBsZSBOb3RlcGFkIHN0eWxlIGxpbmVzLCBmb3IgcHJpbnRpbmcgdW5hbnN3ZXJlZCBmb3JtIGlucHV0cy4qL1xuICAtLWZvcm0tbm90ZXBhZC1saW5lLWhlaWdodDogI3tyZW0tcHgoMzApfTtcbiAgLS1mb3JtLW5vdGVwYWQtbGluZS1ib3JkZXI6IHNvbGlkIDFweDtcblxuICAvKiBTcGFjaW5nIGJldHdlZW4gZWxlbWVudHMgaW4gYW4gSW5wdXRTZXQqL1xuICAtLWlucHV0LXNldC1zcGFjaW5nOiB2YXIoLS1nYXAtMik7XG5cbiAgLS1jaGFyLWxlbmd0aC1zY2FsZTogI3skdHVpLWNoYXItbGVuZ3RoLXNjYWxlfTtcblxuICAvKiBPZmZzZXQgZm9yIHJhZGlvIGxhYmVsKi9cbiAgLS1yYWRpby1sYWJlbC1vZmZzZXQ6IGNhbGModmFyKC0tZm9ybS1yYWRpby1zaXplKSAqIDEuMzUpO1xuXG4gIC8qIERlcHJlY2F0ZWQgc2luY2UgVG90YXJhIDE4LjA6Ki9cbiAgLS1mb3JtLWlucHV0LXYtcGFkZGluZzogdmFyKC0tZ2FwLTIpO1xufVxuXG4iLCIvKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV90b2dnbGUuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucy4qL1xuLyoqL1xuLyogQ29weXJpZ2h0IChDKSAyMDI0IG9ud2FyZHMgVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQqL1xuLyoqL1xuLyogVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucyBpcyBwcm92aWRlZCBvbmx5IHRvIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREJ3MgY3VzdG9tZXJzIGFuZCBwYXJ0bmVycywgcHVyc3VhbnQgdG8qL1xuLyogdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGEgc2VwYXJhdGUgYWdyZWVtZW50IHdpdGggVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQgb3IgaXRzIGFmZmlsaWF0ZS4qL1xuLyoqL1xuLyogSWYgeW91IGRvIG5vdCBoYXZlIGFuIGFncmVlbWVudCB3aXRoIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMqL1xuLyogTFRELCB5b3UgbWF5IG5vdCBhY2Nlc3MsIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUuKi9cbi8qIFBsZWFzZSBjb250YWN0IFtsaWNlbnNpbmdAdG90YXJhLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgS2V2aW4gSG90dGluZ2VyIDxrZXZpbi5ob3R0aW5nZXJAdG90YXJhLmNvbT4qL1xuLyogQG1vZHVsZSBwYWNrYWdlIHR1aSovXG5cbi8qIFZlcnRpY2FsIHBhZGRpbmcgb2YgdG9nZ2xlIHN3aXRjaCBmb3JtIGVsZW1lbnRzLiovXG4vKiBDYWxjdWxhdGUgdGhlIHJlbWFpbmluZyBhdmFpbGFibGUgc3BhY2UgdG8gbWVldCB0aGUgdGFyZ2V0IGhlaWdodC4qL1xuLyogTXVzdCBiZSBvbiBhIHNpbmdsZSBsaW5lIG90aGVyd2lzZSBpdCBicmVha3MgKGZvciBzb21lIHJlYXNvbiEpIHNvIG11c3QgYmUgaWdub3JlZCBieSBwcmV0dGllci4qL1xuLyogcHJldHRpZXItaWdub3JlKi9cbkBmdW5jdGlvbiB0dWktaW5wdXQtdG9nZ2xlLXYtcGFkZGluZygpIHtcbiAgQHJldHVybiBjYWxjKCh2YXIoLS1mb3JtLXRvZ2dsZS1oZWlnaHQpIC0gdmFyKC0tZm9ybS1pbnB1dC1saW5lLWhlaWdodCkpIC8gMik7XG59XG5cbjpyb290IHtcbiAgLS1mb3JtLXRvZ2dsZS1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcbiAgLS1mb3JtLXRvZ2dsZS1kb3Qtc2l6ZTogI3tyZW0tcHgoMTYpfTtcbiAgLS1mb3JtLXRvZ2dsZS1jb250YWluZXItd2lkdGg6ICN7cmVtLXB4KDQwKX07XG4gIC0tZm9ybS10b2dnbGUtY29udGFpbmVyLWhlaWdodDogI3tyZW0tcHgoMjApfTtcbiAgLS1mb3JtLXRvZ2dsZS1jb250YWluZXItcmFkaXVzOiAje3JlbS1weCgxMCl9O1xuICAtLWZvcm0tdG9nZ2xlLXRleHQtb2Zmc2V0OiB2YXIoLS1nYXAtMik7XG4gIC0tZm9ybS10b2dnbGUtZG90LW9mZnNldDogI3tyZW0tcHgoMil9O1xuICAtLWZvcm0tdG9nZ2xlLWJvdHRvbTogI3tyZW0tcHgoMTgpfTtcbiAgLS1mb3JtLXRvZ2dsZS1mb2N1cy1ib3JkZXI6IHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpO1xuICAtLWZvcm0tdG9nZ2xlLWZvY3VzLWdhcDogI3tyZW0tcHgoMSl9O1xuICAvKiBIZWlnaHQgb2YgdG9nZ2xlKi9cbiAgLS1mb3JtLXRvZ2dsZS1oZWlnaHQ6IGNhbGMoXG4gICAgdmFyKC0tZm9ybS10b2dnbGUtY29udGFpbmVyLWhlaWdodCkgKyAodmFyKC0tZm9ybS10b2dnbGUtZm9jdXMtYm9yZGVyKSAqIDIpXG4gICk7XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvdmFyaWFibGVzL3R1aV9zZXBhcmF0b3JzLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjEgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmFsZWFybmluZy5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yIEtldmluIEhvdHRpbmdlciA8a2V2aW4uaG90dGluZ2VyQHRvdGFyYWxlYXJuaW5nLmNvbT4qL1xuLyogQG1vZHVsZSB0dWkqL1xuXG46cm9vdCB7XG4gIC8qIEdhcCB0byB0aGUgbGVmdCAmIHJpZ2h0IG9mIGRvdCBzZXBhcmF0b3IqL1xuICAtLXNlcGFyYXRvci1kb3QtZ2FwOiAwLjUzZW07XG4gIC8qIFdpZHRoIC8gaGVpZ2h0IG9mIGRvdCovXG4gIC0tc2VwYXJhdG9yLWRvdC1zaXplOiAwLjJlbTtcbiAgLyogR2FwIHRvIHRoZSBsZWZ0ICYgcmlnaHQgb2YgcGlwZSBzZXBhcmF0b3IqL1xuICAtLXNlcGFyYXRvci1waXBlLWdhcDogMC41M2VtO1xuICAvKiBXaWR0aCBvZiBwaXBlKi9cbiAgLS1zZXBhcmF0b3ItcGlwZS1zaXplOiAxcHg7XG59XG5cbkBtaXhpbiB0dWktc2VwYXJhdG9yLWRvdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcblxuICAmID4gKiArICoge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zZXBhcmF0b3ItZG90LWdhcCk7XG4gICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLXNlcGFyYXRvci1kb3QtZ2FwKSArIGNhbGModmFyKC0tc2VwYXJhdG9yLWRvdC1zaXplKSAtIDFweCkpO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiBjYWxjKHZhcigtLXNlcGFyYXRvci1kb3Qtc2l6ZSkgLyAyKTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBoZWlnaHQ6IHZhcigtLXNlcGFyYXRvci1kb3Qtc2l6ZSk7XG4gICAgICBtYXJnaW46IGF1dG8gMDtcbiAgICAgIGJvcmRlci1sZWZ0OiB2YXIoLS1zZXBhcmF0b3ItZG90LXNpemUpIHNvbGlkO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgY29udGVudDogJyc7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0dWktc2VwYXJhdG9yLXBpcGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgJiA+ICogKyAqIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tc2VwYXJhdG9yLXBpcGUtZ2FwKTtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLXNlcGFyYXRvci1waXBlLWdhcCk7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgaGVpZ2h0OiAxZW07XG4gICAgICBtYXJnaW46IGF1dG8gMDtcbiAgICAgIGJvcmRlci1sZWZ0OiB2YXIoLS1zZXBhcmF0b3ItcGlwZS1zaXplKSBzb2xpZDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgIH1cbiAgfVxufVxuXG4iLCIvKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy90dWlfdGFncy5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucy4qL1xuLyoqL1xuLyogQ29weXJpZ2h0IChDKSAyMDIwIG9ud2FyZHMgVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQqL1xuLyoqL1xuLyogVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucyBpcyBwcm92aWRlZCBvbmx5IHRvIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREJ3MgY3VzdG9tZXJzIGFuZCBwYXJ0bmVycywgcHVyc3VhbnQgdG8qL1xuLyogdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGEgc2VwYXJhdGUgYWdyZWVtZW50IHdpdGggVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQgb3IgaXRzIGFmZmlsaWF0ZS4qL1xuLyoqL1xuLyogSWYgeW91IGRvIG5vdCBoYXZlIGFuIGFncmVlbWVudCB3aXRoIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMqL1xuLyogTFRELCB5b3UgbWF5IG5vdCBhY2Nlc3MsIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUuKi9cbi8qIFBsZWFzZSBjb250YWN0IFtsaWNlbnNpbmdAdG90YXJhbGVhcm5pbmcuY29tXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xuLyoqL1xuLyogQGF1dGhvciAgICBLZXZpbiBIb3R0aW5nZXIgPGtldmluLmhvdHRpbmdlckB0b3RhcmFsZWFybmluZy5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpY2thZ2UgICB0dWkqL1xuXG46cm9vdCB7XG4gIC0tdGFnLWhlaWdodDogMjRweDtcbiAgLS10YWctYm9yZGVyLXJhZGl1czogMTJweDsgLyogLS10YWctaGVpZ2h0IC8gMiAtIGZvciBzb21lIHJlYXNvbiBJRSBjYWxjIHdhc24ndCB3b3JraW5nIGNvcnJlY3RseSBoZXJlKi9cbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9nbG9iYWxfc3R5bGVzL3ZhcmlhYmxlcy90dWlfemluZGV4LnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyMCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYWxlYXJuaW5nLmNvbV0gZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbi8qKi9cbi8qIEBhdXRob3IgICAgU2ltb24gQ2hlc3RlciA8c2ltb24uY2hlc3RlckB0b3RhcmFsZWFybmluZy5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpY2thZ2UgICB0dWkqL1xuXG46cm9vdCB7XG4gIC8qIEFib3ZlIHJlZ3VsYXIgY29udGVudCwgYnV0IGJlbG93IHBvcHVwcy9vdmVybGF5cyovXG4gIC0temluZGV4LXN0aWNreTogNTAwO1xuXG4gIC8qIEZsb2F0aW5nIFVJLCBiZWxvdyBkcm9wZG93biBidXQgYWJvdmUgc3RpY2t5IGNvbnRlbnQqL1xuICAtLXppbmRleC1mbG9hdGluZy11aTogNTAwMDtcblxuICAtLXppbmRleC1kcm9wZG93bi1tZW51OiAxMDAwMDtcbiAgLS16aW5kZXgtbW9kYWw6IDEwMDA1MDtcbiAgLS16aW5kZXgtbW9kYWwtYmFja2Ryb3A6IDEwMDA0MDtcbiAgLS16aW5kZXgtcG9wb3ZlcjogMTAwMDUwO1xuICAtLXppbmRleC1sb2FkaW5nLXBhZ2U6IDEwMDA2MDtcbiAgLS16aW5kZXgtdG9hc3Q6IDEwMDA3MDtcbiAgLS16aW5kZXgtZXJyb3ItbW9kYWw6IDEwMDA3MDtcbiAgLS16aW5kZXgtZHJhZ2dhYmxlOiAxMDAwODA7XG4gIC0temluZGV4LW5hdi1vdmVybGF5OiAxMTAwMDA7XG4gIC0temluZGV4LXNraXBsaW5rczogMTEwMDUwO1xufVxuXG4iLCIvKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvZ2xvYmFsX3N0eWxlcy9zdGF0aWMuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucy4qL1xuLyoqL1xuLyogQ29weXJpZ2h0IChDKSAyMDIwIG9ud2FyZHMgVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQqL1xuLyoqL1xuLyogVG90YXJhIEVudGVycHJpc2UgRXh0ZW5zaW9ucyBpcyBwcm92aWRlZCBvbmx5IHRvIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREJ3MgY3VzdG9tZXJzIGFuZCBwYXJ0bmVycywgcHVyc3VhbnQgdG8qL1xuLyogdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIGEgc2VwYXJhdGUgYWdyZWVtZW50IHdpdGggVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQgb3IgaXRzIGFmZmlsaWF0ZS4qL1xuLyoqL1xuLyogSWYgeW91IGRvIG5vdCBoYXZlIGFuIGFncmVlbWVudCB3aXRoIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMqL1xuLyogTFRELCB5b3UgbWF5IG5vdCBhY2Nlc3MsIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUuKi9cbi8qIFBsZWFzZSBjb250YWN0IFtsaWNlbnNpbmdAdG90YXJhbGVhcm5pbmcuY29tXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xuLyoqL1xuLyogQGF1dGhvciBLZXZpbiBIb3R0aW5nZXIgPGtldmluLmhvdHRpbmdlckB0b3RhcmFsZWFybmluZy5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpKi9cblxuKixcbio6OmJlZm9yZSxcbio6OmFmdGVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuaHRtbCB7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbn1cblxuYm9keSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LWJvZHktc2l6ZSk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1mb250LWJvZHktbGluZS1oZWlnaHQpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcbn1cblxuLnR1aS1yb290IHtcbiAgLyogY29udGFpbmVyIHNob3VsZCBub3QgZXhpc3QgZm9yIGxheW91dCBwdXJwb3NlcyovXG4gIGRpc3BsYXk6IGNvbnRlbnRzO1xufVxuXG4udHVpLXNyLW9ubHkge1xuICBAaW5jbHVkZSBzci1vbmx5KCk7XG59XG5cbkBpbXBvcnQgJ3R1aS9zdHlsZXMvdHlwb2dyYXBoeSc7XG5AaW1wb3J0ICd0dWkvc3R5bGVzL3JpY2gtY29udGVudCc7XG5AaW1wb3J0ICd0dWkvc3R5bGVzL2ljb25zJztcblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9hZGRlci9BZGRlci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0zYzA4YWUxZSZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktYWRkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4LWdyb3c6IDE7XG4gIGhlaWdodDogcmVtLXB4KDUwMCk7XG5cbiAgJl9fbm90aWNlcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ2FwLTYpO1xuICB9XG5cbiAgJl9fdGFicyB7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gIH1cblxuICAmX190YWJQYW5lbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG5cbiAgJl9fbGlzdCB7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGhlaWdodDogMzE2cHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgICYtbG9hZGluZyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgfVxuXG4gICAgJi1sb2FkTW9yZSB7XG4gICAgICBtYXJnaW46IHZhcigtLWdhcC00KSAwIHZhcigtLWdhcC00KTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IHZhcigtLWdhcC00KTtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgIH1cbiAgfVxuXG4gICZfX2Zvb3RlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYm9yZGVyLXRvcDogdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCkgc29saWQgdmFyKC0tY29sb3ItbmV1dHJhbC01KTtcblxuICAgICYgPiAqIHtcbiAgICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC02KTtcbiAgICB9XG4gIH1cblxuICAmX19zdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWxhYmVsLXdlaWdodCk7XG4gIH1cblxuICAmX19hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2FkZGVyL0hpZXJhcmNoaWNhbFBhcmVudEJ1dHRvbi52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0xNjNkYTY0NSZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLWhpZXJhcmNoaWNhbFBhcmVudEJ1dHRvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IHZhcigtLWdhcC00KSAwIDA7XG5cbiAgJl9fYmFja0Fycm93IHtcbiAgICB0ZXh0LWFsaWduOiBzdGFydDtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR0dWktc2NyZWVuLXhzKSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICB9XG5cbiAgJl9fbGFiZWwge1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXAtMik7XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2F2YXRhci9BdmF0YXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NDNiNWZkMjAmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbjpyb290IHtcbiAgLS1hdmF0YXItYm9yZGVyLXJhZGl1czogNTAlO1xuICAtLWF2YXRhci1sYXJnZS13aWR0aDogMTg1cHg7XG4gIC0tYXZhdGFyLWxhcmdlLWhlaWdodDogMTg1cHg7XG4gIC0tYXZhdGFyLWxhcmdlLXBhZGRpbmc6IDVweDtcbiAgLS1hdmF0YXItbWVkaXVtLXdpZHRoOiAxMDVweDtcbiAgLS1hdmF0YXItbWVkaXVtLWhlaWdodDogMTA1cHg7XG4gIC0tYXZhdGFyLW1lZGl1bS1wYWRkaW5nOiAzcHg7XG4gIC0tYXZhdGFyLXNtYWxsLXdpZHRoOiA1MHB4O1xuICAtLWF2YXRhci1zbWFsbC1oZWlnaHQ6IDUwcHg7XG4gIC0tYXZhdGFyLXNtYWxsLXBhZGRpbmc6IDJweDtcbiAgLS1hdmF0YXIteHNtYWxsLXdpZHRoOiAzOHB4O1xuICAtLWF2YXRhci14c21hbGwtaGVpZ2h0OiAzOHB4O1xuICAtLWF2YXRhci14c21hbGwtcGFkZGluZzogMXB4O1xuICAtLWF2YXRhci14eHNtYWxsLXdpZHRoOiAyNHB4O1xuICAtLWF2YXRhci14eHNtYWxsLWhlaWdodDogMjRweDtcbiAgLS1hdmF0YXIteHhzbWFsbC1wYWRkaW5nOiAxcHg7XG59XG5cbi50dWktYXZhdGFyIHtcbiAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtbm9ybWFsKSBzb2xpZCB2YXIoLS1hdmF0YXItYm9yZGVyLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYXZhdGFyLWJvcmRlci1yYWRpdXMpO1xuXG4gICYtLWxhcmdlIHtcbiAgICB3aWR0aDogdmFyKC0tYXZhdGFyLWxhcmdlLXdpZHRoKTtcbiAgICBoZWlnaHQ6IHZhcigtLWF2YXRhci1sYXJnZS1oZWlnaHQpO1xuICAgIHBhZGRpbmc6IHZhcigtLWF2YXRhci1sYXJnZS1wYWRkaW5nKTtcbiAgfVxuXG4gICYtLW1lZGl1bSB7XG4gICAgd2lkdGg6IHZhcigtLWF2YXRhci1tZWRpdW0td2lkdGgpO1xuICAgIGhlaWdodDogdmFyKC0tYXZhdGFyLW1lZGl1bS1oZWlnaHQpO1xuICAgIHBhZGRpbmc6IHZhcigtLWF2YXRhci1tZWRpdW0tcGFkZGluZyk7XG4gIH1cblxuICAmLS1zbWFsbCB7XG4gICAgd2lkdGg6IHZhcigtLWF2YXRhci1zbWFsbC13aWR0aCk7XG4gICAgaGVpZ2h0OiB2YXIoLS1hdmF0YXItc21hbGwtaGVpZ2h0KTtcbiAgICBwYWRkaW5nOiB2YXIoLS1hdmF0YXItc21hbGwtcGFkZGluZyk7XG4gIH1cblxuICAmLS14c21hbGwge1xuICAgIHdpZHRoOiB2YXIoLS1hdmF0YXIteHNtYWxsLXdpZHRoKTtcbiAgICBoZWlnaHQ6IHZhcigtLWF2YXRhci14c21hbGwtaGVpZ2h0KTtcbiAgICBwYWRkaW5nOiB2YXIoLS1hdmF0YXIteHNtYWxsLXBhZGRpbmcpO1xuICB9XG5cbiAgJi0teHhzbWFsbCB7XG4gICAgd2lkdGg6IHZhcigtLWF2YXRhci14eHNtYWxsLXdpZHRoKTtcbiAgICBoZWlnaHQ6IHZhcigtLWF2YXRhci14eHNtYWxsLWhlaWdodCk7XG4gICAgcGFkZGluZzogdmFyKC0tYXZhdGFyLXh4c21hbGwtcGFkZGluZyk7XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Jhc2tldC9CYXNrZXQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9ZmU1YjJmMDAmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktYmFza2V0IHtcbiAgQGluY2x1ZGUgZm9udChib2R5KTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gIGJvcmRlcjogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIHNvbGlkIHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6ICR0dWktc2NyZWVuLXNtKSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgfVxuXG4gICZfX3N0YXR1cyxcbiAgJl9fYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMikgdmFyKC0tZ2FwLTMpO1xuXG4gICAgJiA+ICoge1xuICAgICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTIpO1xuICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWdhcC00KTtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJHR1aS1zY3JlZW4teHMpIHtcbiAgICAgICYgPiAqIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG5cbiAgICAgID4gLnR1aS1idG4tLXZhcmlhbnQtbGluayB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWdhcC0xKTtcbiAgICAgIH1cblxuICAgICAgPiAqICsgKiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXAtMik7XG4gICAgICB9XG5cbiAgICAgIC50dWktYmFza2V0LS13aWRlR2FwICYge1xuICAgICAgICA+ICogKyAqIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwLTQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fc2VsZWN0ZWQge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgJl9fc2VsZWN0ZWRDb3VudCB7XG4gICAgZm9udC1zaXplOiBmb250LXNpemUtcHgoMTgpO1xuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvYnV0dG9ucy9CdXR0b24udnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NzljMDI0M2YmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLWJ0biB7XG4gICRibG9jazogI3smfTtcbiAgLyogbG9jYWwgQ1NTIHZhcmlhYmxlcyovXG4gIC0tdHVpLWJ0bi1jb2xvcjogdmFyKC0tYnRuLWFjY2VudC1jb2xvcik7XG4gIC0tdHVpLWJ0bi1jb2xvci1ob3ZlcjogdmFyKC0tYnRuLWFjY2VudC1jb2xvci1ob3Zlcik7XG4gIC0tdHVpLWJ0bi1jb2xvci1hY3RpdmU6IHZhcigtLWJ0bi1hY2NlbnQtY29sb3ItYWN0aXZlKTtcbiAgLS10dWktYnRuLWNvbG9yLWNvbnRyYXN0OiB2YXIoLS1idG4tYWNjZW50LWNvbG9yLWNvbnRyYXN0KTtcbiAgLS10dWktYnRuLXNoYWRvdzogbm9uZTtcbiAgLS10dWktYnRuLXNoYWRvdy1ob3ZlcjogdmFyKC0tYnRuLXNoYWRvdy1ob3Zlcik7XG4gIC0tdHVpLWJ0bi1zaGFkb3ctYWN0aXZlOiB2YXIoLS1idG4tc2hhZG93LWFjdGl2ZSk7XG4gIC0tdHVpLWJ0bi1jb250ZW50LWhlaWdodDogdmFyKC0tYnRuLWxpbmUtaGVpZ2h0KTtcbiAgLS10dWktYnRuLXBhZGRpbmctaDogY2FsYyh2YXIoLS1idG4tcGFkZGluZy1oKSAtIHZhcigtLWJ0bi1ib3JkZXItd2lkdGgpKTtcbiAgLS10dWktYnRuLXBhZGRpbmctdjogY2FsYyh2YXIoLS1idG4tcGFkZGluZy12KSAtIHZhcigtLWJ0bi1ib3JkZXItd2lkdGgpKTtcbiAgLS10dWktYnRuLWZvbnQtc2l6ZTogdmFyKC0tYnRuLWZvbnQtc2l6ZSk7XG4gIC0tdHVpLWJ0bi1saW5lLWhlaWdodDogdmFyKC0tYnRuLWxpbmUtaGVpZ2h0KTtcbiAgLS10dWktYnRuLW1pbi1oZWlnaHQ6IGNhbGMoXG4gICAgdmFyKC0tdHVpLWJ0bi1saW5lLWhlaWdodCkgK1xuICAgICAgKHZhcigtLXR1aS1idG4tcGFkZGluZy12KSArIHZhcigtLWJ0bi1ib3JkZXItd2lkdGgpKSAqIDJcbiAgKTtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWluLXdpZHRoOiB2YXIoLS10dWktYnRuLW1pbi1oZWlnaHQpO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IHZhcigtLXR1aS1idG4tbWluLWhlaWdodCk7XG4gIHBhZGRpbmc6IHZhcigtLXR1aS1idG4tcGFkZGluZy12KSB2YXIoLS10dWktYnRuLXBhZGRpbmctaCk7XG4gIGNvbG9yOiB2YXIoLS10dWktYnRuLWNvbG9yKTtcbiAgZm9udC1zaXplOiB2YXIoLS10dWktYnRuLWZvbnQtc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS10dWktYnRuLWxpbmUtaGVpZ2h0KTtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnRuLWJnLWNvbG9yKTtcbiAgYm9yZGVyOiB2YXIoLS1idG4tYm9yZGVyLXdpZHRoKSBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS10dWktYnRuLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnRuLXJhZGl1cyk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogdHVpLXRyYW5zaXRpb25zKFxuICAgICdidXR0b24nLFxuICAgIGJhY2tncm91bmQtY29sb3IgYm9yZGVyLWNvbG9yIGJveC1zaGFkb3dcbiAgKTtcblxuICAmOmlzKGEpIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiB2YXIoLS10dWktYnRuLWNvbG9yKTtcbiAgICB9XG4gIH1cblxuICAmX193cmFwIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNlbnRlcjtcbiAgICBnYXA6IGdhcCgyKTtcbiAgfVxuXG4gICZfX2NvbnRlbnQge1xuICAgIEBpbmNsdWRlIGZsZXgtY2VudGVyO1xuICB9XG5cbiAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICBAaW5jbHVkZSB0dWktZm9jdXMoKTtcbiAgfVxuXG4gICYtLWNvbG9yLWRhbmdlciB7XG4gICAgLS10dWktYnRuLWNvbG9yOiB2YXIoLS1idG4tZGFuZ2VyLWNvbG9yKTtcbiAgICAtLXR1aS1idG4tY29sb3ItaG92ZXI6IHZhcigtLWJ0bi1kYW5nZXItY29sb3IpO1xuICAgIC0tdHVpLWJ0bi1jb2xvci1hY3RpdmU6IHZhcigtLWJ0bi1kYW5nZXItY29sb3IpO1xuICAgIC0tdHVpLWJ0bi1jb2xvci1jb250cmFzdDogdmFyKC0tYnRuLWRhbmdlci1jb2xvci1jb250cmFzdCk7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICAtLXR1aS1idG4tY29sb3I6IHZhcigtLXR1aS1idG4tY29sb3ItaG92ZXIpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLWJ0bi1zaGFkb3ctaG92ZXIpO1xuICB9XG5cbiAgJjphY3RpdmUge1xuICAgIC0tdHVpLWJ0bi1jb2xvcjogdmFyKC0tdHVpLWJ0bi1jb2xvci1hY3RpdmUpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLWJ0bi1zaGFkb3ctYWN0aXZlKTtcbiAgfVxuXG4gICYtLXNpemUtc20ge1xuICAgIC0tdHVpLWJ0bi1mb250LXNpemU6IHZhcigtLWJ0bi1zbS1mb250LXNpemUpO1xuICAgIC0tdHVpLWJ0bi1saW5lLWhlaWdodDogdmFyKC0tYnRuLXNtLWxpbmUtaGVpZ2h0KTtcbiAgICAtLXR1aS1idG4tcGFkZGluZy1oOiBjYWxjKFxuICAgICAgdmFyKC0tYnRuLXNtLXBhZGRpbmctaCkgLSB2YXIoLS1idG4tYm9yZGVyLXdpZHRoKVxuICAgICk7XG4gICAgLS10dWktYnRuLXBhZGRpbmctdjogY2FsYyhcbiAgICAgIHZhcigtLWJ0bi1zbS1wYWRkaW5nLXYpIC0gdmFyKC0tYnRuLWJvcmRlci13aWR0aClcbiAgICApO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ0bi1zbS1yYWRpdXMpO1xuICB9XG5cbiAgJi0tc2l6ZS1zbSAmX193cmFwIHtcbiAgICBnYXA6IGdhcCgxKTtcbiAgfVxuXG4gICYtLXNpemUteHMge1xuICAgIC0tdHVpLWJ0bi1mb250LXNpemU6IHZhcigtLWJ0bi14cy1mb250LXNpemUpO1xuICAgIC0tdHVpLWJ0bi1saW5lLWhlaWdodDogdmFyKC0tYnRuLXhzLWxpbmUtaGVpZ2h0KTtcbiAgICAtLXR1aS1idG4tcGFkZGluZy1oOiBjYWxjKFxuICAgICAgdmFyKC0tYnRuLXhzLXBhZGRpbmctaCkgLSB2YXIoLS1idG4tYm9yZGVyLXdpZHRoKVxuICAgICk7XG4gICAgLS10dWktYnRuLXBhZGRpbmctdjogY2FsYyhcbiAgICAgIHZhcigtLWJ0bi14cy1wYWRkaW5nLXYpIC0gdmFyKC0tYnRuLWJvcmRlci13aWR0aClcbiAgICApO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ0bi14cy1yYWRpdXMpO1xuICB9XG5cbiAgJi0tc2l6ZS14cyAmX193cmFwIHtcbiAgICBnYXA6IGdhcCgwLjc1KTtcbiAgfVxuXG4gICYtLXZhcmlhbnQtZGVmYXVsdCB7XG4gICAgJiN7JGJsb2NrfS0tZGlzYWJsZWQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnRuLWJnLWNvbG9yLWRpc2FibGVkKTtcbiAgICB9XG4gIH1cblxuICAmLS12YXJpYW50LXByaW1hcnkge1xuICAgIGNvbG9yOiB2YXIoLS10dWktYnRuLWNvbG9yLWNvbnRyYXN0KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10dWktYnRuLWNvbG9yKTtcblxuICAgICY6aXMoYSk6aG92ZXIsXG4gICAgJjppcyhhKTpmb2N1cyB7XG4gICAgICBjb2xvcjogdmFyKC0tdHVpLWJ0bi1jb2xvci1jb250cmFzdCk7XG4gICAgfVxuICB9XG5cbiAgJi0tdmFyaWFudC1zdGVhbHRoIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG4gICAgJjphY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA3KTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuICAgICYjeyRibG9ja30tLWRpc2FibGVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxuXG4gICYtLXZhcmlhbnQtbGluayB7XG4gICAgLS10dWktYnRuLWNvbG9yOiB2YXIoLS1saW5rLWNvbG9yKTtcbiAgICAtLXR1aS1idG4tY29sb3ItaG92ZXI6IHZhcigtLWxpbmstY29sb3IpO1xuICAgIC0tdHVpLWJ0bi1jb2xvci1hY3RpdmU6IHZhcigtLWxpbmstY29sb3IpO1xuICAgIC0tdHVpLWJ0bi1jb2xvci1jb250cmFzdDogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcbiAgICAtLXR1aS1idG4tcGFkZGluZy12OiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6YWN0aXZlIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLyogY29tcGF0IGZvciBvbGQgQnV0dG9uSWNvbiBcInRyYW5zcGFyZW50XCIgc3R5bGUqL1xuICAmLS1sZWdhY3lUcmFuc3BhcmVudFBhZGRpbmcge1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tZ2FwLTEpO1xuICB9XG5cbiAgJi0tc2hhcGUtcGlsbCB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tdHVpLWJ0bi1taW4taGVpZ2h0KTtcbiAgfVxuXG4gICYtLXNoYXBlLWNpcmNsZSB7XG4gICAgd2lkdGg6IHZhcigtLXR1aS1idG4tbWluLWhlaWdodCk7XG4gICAgaGVpZ2h0OiB2YXIoLS10dWktYnRuLW1pbi1oZWlnaHQpO1xuICAgIHBhZGRpbmc6IHZhcigtLXR1aS1idG4tcGFkZGluZy12KSAwO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXR1aS1idG4tbWluLWhlaWdodCk7XG4gIH1cblxuICAmLS1kaXNhYmxlZCB7XG4gICAgJixcbiAgICAmOmhvdmVyLFxuICAgICY6YWN0aXZlIHtcbiAgICAgIC0tdHVpLWJ0bi1jb2xvcjogdmFyKC0tYnRuLWFjY2VudC1jb2xvci1kaXNhYmxlZCk7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICYtLWxvYWRpbmcge1xuICAgICN7JGJsb2NrfV9fY29udGVudCxcbiAgICAjeyRibG9ja31fX2ljb25CZWZvcmUsXG4gICAgI3skYmxvY2t9X19pY29uQWZ0ZXIge1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gICZfX2xvYWRpbmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY29sb3I6IHZhcigtLWJ0bi1sb2FkZXItY29sb3ItZGlzYWJsZWQpO1xuICB9XG5cbiAgJl9faWNvbkJlZm9yZSB7XG4gICAgQGluY2x1ZGUgZmxleC1jZW50ZXI7XG4gIH1cblxuICAmX19pY29uQWZ0ZXIge1xuICAgIEBpbmNsdWRlIGZsZXgtY2VudGVyO1xuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9idXR0b25zL0J1dHRvbkdyb3VwLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTM3OGFmMDMwJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLWZvcm1CdG5Hcm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG5cbiAgLnR1aS1idG4ge1xuICAgIG1pbi13aWR0aDogNHJlbTtcbiAgfVxuXG4gIC50dWktYnRuLS1zaXplLXNtIHtcbiAgICBtaW4td2lkdGg6IDNyZW07XG4gIH1cblxuICA+IDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgbWFyZ2luOiBhdXRvIDAgYXV0byB2YXIoLS1nYXAtNCk7XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2J1dHRvbnMvSW5mb0ljb25CdXR0b24udnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NGY4MDQ2MzQmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktaW5mb0ljb25CdXR0b24ge1xuICAmLnR1aS1idG4ge1xuICAgIG1hcmdpbjogMCByZW0tcHgoNCk7XG4gICAgdmVydGljYWwtYWxpZ246IC0wLjEyNWVtO1xuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvYnV0dG9ucy9MYWJlbGxlZEJ1dHRvblRyaWdnZXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9YWZhNDgwNWMmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLWxhYmVsbGVkQnV0dG9uVHJpZ2dlciB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICZfX2xhYmVsIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUpO1xuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2NhcmQvQWN0aW9uQ2FyZC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0zNDcwNzNkNiZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLWFjdGlvbkNhcmQge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwYWRkaW5nOiB2YXIoLS1nYXAtNCk7XG5cbiAgJl9fYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZmxleC1zaHJpbms6IDE7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICAmX19hY3Rpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgYWxpZ24taXRlbXM6IG5vcm1hbDtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtNCkgMCAwO1xuICB9XG5cbiAgJi0tbm9QYWRkaW5nIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgJi0tbm9XcmFwIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB9XG5cbiAgJi0tbm9XcmFwICZfX2FjdGlvbiB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgJi0tc2hhZGVkIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR0dWktc2NyZWVuLXNtKSB7XG4gIC50dWktYWN0aW9uQ2FyZCB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAmLS1zdGFja2VkIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG4gICAgJjpub3QoJi0tc3RhY2tlZCkgJl9fYWN0aW9uIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBwYWRkaW5nOiAwIDAgMCB2YXIoLS1nYXAtNCk7XG4gICAgfVxuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2NhcmQvQ2FyZC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0zOGRkMmQwMCZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLWNhcmQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNhcmQtYm9yZGVyLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2FyZC1ib3JkZXItcmFkaXVzKTtcbiAgb3V0bGluZTogbm9uZTtcblxuICAmX19saW5rIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgJi0tbm9Cb3JkZXIge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICAmOmZvY3VzLFxuICAgICY6aG92ZXIge1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICYtLWhhc0hvdmVyU2hhZG93OmZvY3VzLFxuICAmLS1oYXNIb3ZlclNoYWRvdzpob3ZlciB7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTIpO1xuICB9XG5cbiAgJi0taGFzU2hhZG93IHtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctMik7XG4gIH1cblxuICAmLS1jbGlja2FibGUge1xuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgdmFyKC0tdHJhbnNpdGlvbi1mb3JtLWZ1bmN0aW9uKVxuICAgICAgdmFyKC0tdHJhbnNpdGlvbi1mb3JtLWR1cmF0aW9uKTtcblxuICAgICYudHVpLWZvY3VzV2l0aGluIHtcbiAgICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy0yKTtcbiAgICB9XG4gIH1cblxuICAmLS1jbGlja2FibGU6aG92ZXIge1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy0yKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmLS1jbGlja2FibGU6Zm9jdXMge1xuICAgIEBpbmNsdWRlIHR1aS1mb2N1cztcbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2NhcmQvQ2FyZFNjcm9sbGVyLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTZhYWJjNjRjJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1jYXJkU2Nyb2xsZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICZfX3RpdGxlUm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogdmFyKC0tZ2FwLTIpO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLWdhcC0zKTtcbiAgICBib3JkZXItYm90dG9tOiB2YXIoLS1ib3JkZXItd2lkdGgtbm9ybWFsKSBzb2xpZCB2YXIoLS1jb2xvci1uZXV0cmFsLTQpO1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIEBpbmNsdWRlIGZvbnQoaDMpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiByZW0tcHgoNik7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tZ2FwLTEpO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIH1cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgQGluY2x1ZGUgdHVpLWZvY3VzO1xuICAgIH1cblxuICAgIC8qIERpdHkgdHJpY2sgdG8gb3ZlcnJpZGUgdGhlIGJsb2NrIGhlYWRlciBzdHlsaW5nKi9cbiAgICAvKiovXG4gICAgLyogVE9ETzogQSBiZXR0ZXIgc29sdXRpb24gaXMgdG8gcmVtb3ZlIHRoZSBcIi5ibG9jayAuY29udGVudCBoMlwiIHN0eWxlcyBmcm9tIGJsb2Nrcy5zY3NzIGFzc3VtaW5nIHRoZXkncmUgbm90IG5lZWRlZCovXG4gICAgLyogVGhpcyB3b3VsZCByZXF1aXJlIGEgdGhvcm91Z2ggdGVzdCBvZiBhbGwgdGhlIGJsb2NrcyB0byBtYWtlIHN1cmUgaXQncyBzYWZlIHRvIHJlbW92ZSB0aG9zZSovXG4gICAgJi1oZWFkZXIudHVpLWNhcmRTY3JvbGxlcl9fdGl0bGUtaGVhZGVyLnR1aS1jYXJkU2Nyb2xsZXJfX3RpdGxlLWhlYWRlciB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBmb250LXNpemU6IHZhcigtLWZvbnQtaDMtc2l6ZSk7XG4gICAgfVxuICB9XG5cbiAgJl9fdGl0bGVJY29uIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW4tdG9wOiAwLjJlbTtcbiAgICBmb250LXNpemU6IGZvbnQtc2l6ZS1weCgxMik7XG4gICAgdHJhbnNpdGlvbjogdHVpLXRyYW5zaXRpb24oJ2J1dHRvbicsIHRyYW5zZm9ybSk7XG4gIH1cblxuICAmX190aXRsZTpob3ZlciAmX190aXRsZUljb24ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChyZW0tcHgoMykpO1xuICB9XG5cbiAgJl9fdGl0bGVDb250cm9scyB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gIH1cblxuICAmX19uYXZCdXR0b24taWNvbiB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xuICAgICYtLWRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZS1kaXNhYmxlZCk7XG4gICAgfVxuICB9XG5cbiAgJl9fY2FyZHNCb3gge1xuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1nYXAtNCk7XG4gIH1cblxuICAmLS12YXJpYW50LWJveGVkICZfX2NhcmRzQm94IHtcbiAgICBwYWRkaW5nOiBjYWxjKHZhcigtLWdhcC0xKSAqIDUuNSk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogcmVtLXB4KDgpO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHJlbS1weCg4KTtcbiAgfVxuXG4gICZfX2NhcmRzQ29udGFpbmVyOmhhcygmX19jYXJkcy0tdHJhbnNpdGlvbi1lbnRlci1hY3RpdmUsICZfX2NhcmRzLS10cmFuc2l0aW9uLWxlYXZlLWFjdGl2ZSkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAvKiB0ZW1wb3JhcmlseSBleHBhbmQgYm91bmRzIHdoaWxlIHdlJ3JlIGFwcGx5aW5nIGhpZGRlbiBvdmVyZmxvdyB0byBhdm9pZCBjdXR0aW5nIG9mZiBzaGFkb3cqL1xuICAgIG1hcmdpbjogY2FsYyh2YXIoLS1nYXAtNCkgKiAtMSk7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTQpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAmX19jYXJkcyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBnYXA6IHZhcigtLWdhcC00KTtcblxuICAgICYtLXRyYW5zaXRpb24ge1xuICAgICAgJi1lbnRlci1hY3RpdmUsXG4gICAgICAmLWxlYXZlLWFjdGl2ZSB7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBjdWJpYy1iZXppZXIoMCwgMC4xLCAwLCAxKTtcbiAgICAgICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uKSB7XG4gICAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLWVudGVyLWZyb20ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygxMDAlICsgdmFyKC0tZ2FwLTYpKSk7XG4gICAgICB9XG4gICAgICAmLWxlYXZlLXRvIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTEwMCUgLSB2YXIoLS1nYXAtNikpKTtcbiAgICAgIH1cblxuICAgICAgJi1sZWF2ZS1hY3RpdmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJiA+ICoge1xuICAgICAgZmxleC1iYXNpczogMDtcbiAgICB9XG4gIH1cblxuICAmLS1kaXItYmFjayAmX19jYXJkcy0tdHJhbnNpdGlvbiB7XG4gICAgJi1lbnRlci1mcm9tIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gICAgfVxuICAgICYtbGVhdmUtdG8ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICAgIH1cbiAgfVxuXG4gICZfX2NhcmRzLS1tZWFzdXJlciB7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICB9XG5cbiAgJi0tZXhwYW5kVG9GaWxsICZfX2NhcmRzLS1kaXNwbGF5ID4gKiB7XG4gICAgZmxleC1ncm93OiAxO1xuICB9XG5cbiAgJl9fY2FyZHMtbG9hZGluZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAxO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWluLWhlaWdodDogcmVtLXB4KDEwMCk7XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9jYXJkL0xlYXJuaW5nQ2FyZC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0zMWVjZWFiZSZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktbGVhcm5pbmdDYXJkIHtcbiAgJGJsb2NrOiAjeyZ9O1xuICAkaGVyby1waWxsLWg6IHJlbS1weCgyMCk7XG4gICRhY3Rpb24taXRlbS1kaW1lbnNpb246IHJlbS1weCgyMCk7XG4gICRoZXJvLWxhYmVsLW1pbi13OiByZW0tcHgoNTgpO1xuICAkaG92ZXItc2hhZG93OiAwIDhweCAxNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgLS10dWktbGVhcm5pbmdDYXJkLWJhY2tncm91bmQtZ3JhZGllbnQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAxODBkZWcsXG4gICAgcmdiYSgwLCAwLCAwLCAwKSAxMCUsXG4gICAgcmdiYSgwLCAwLCAwLCAwLjQpIDQwJSxcbiAgICB2YXIoLS1jb2xvci1uZXV0cmFsLTcpIDgwJVxuICApO1xuXG4gIEBtaXhpbiBhY3Rpb24tcGVyc2lzdGVudCB7XG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLWdhcC0xKTtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWdhcC0xKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgQG1peGluIGNhcmQtdG9wLXJhZGl1cyB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFyKC0tY2FyZC1ib3JkZXItcmFkaXVzKTtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tY2FyZC1ib3JkZXItcmFkaXVzKTtcbiAgfVxuXG4gIEBtaXhpbiBjYXJkLWJvdHRvbS1yYWRpdXMge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1jYXJkLWJvcmRlci1yYWRpdXMpO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWNhcmQtYm9yZGVyLXJhZGl1cyk7XG4gIH1cblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1hcmdpbjogY2FsYygodmFyKC0tZ2FwLTEpICogMS41KSAqIC0xKTtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1nYXAtMSkgKiAxLjUpO1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICBib3JkZXItcmFkaXVzOiBjYWxjKHZhcigtLWNhcmQtYm9yZGVyLXJhZGl1cykgKiAyKTtcbiAgb3V0bGluZTogbm9uZTtcbiAgaXNvbGF0aW9uOiBpc29sYXRlO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuM3MgZWFzZS1pbi1vdXQ7XG5cbiAgQG1lZGlhIChob3Zlcjogbm9uZSkge1xuICAgIC50dWktbGVhcm5pbmdDYXJkX19hY3Rpb25XcmFwcGVyIHtcbiAgICAgIEBpbmNsdWRlIGFjdGlvbi1wZXJzaXN0ZW50O1xuICAgIH1cbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIHotaW5kZXg6IDE7XG4gICAgYm94LXNoYWRvdzogJGhvdmVyLXNoYWRvdztcbiAgfVxuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMtd2l0aGluIHtcbiAgICAudHVpLWxlYXJuaW5nQ2FyZF9fYWN0aW9uV3JhcHBlciB7XG4gICAgICBAaW5jbHVkZSBhY3Rpb24tcGVyc2lzdGVudDtcbiAgICB9XG4gIH1cblxuICBAbWl4aW4gYmFja2dyb3VuZC1pbWFnZSB7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgfVxuXG4gICYtLXZhcmlhbnQtaGVybyB7XG4gICAgI3skYmxvY2t9X19pbWFnZSB7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1jYXJkLWJvcmRlci1yYWRpdXMpO1xuICAgIH1cbiAgfVxuXG4gICYtLXZhcmlhbnQtZ3JleS1ib2R5IHtcbiAgICAjeyRibG9ja31fX2ltYWdlIHtcbiAgICAgIEBpbmNsdWRlIGNhcmQtdG9wLXJhZGl1cztcbiAgICB9XG5cbiAgICAjeyRibG9ja31fX2JvZHkge1xuICAgICAgQGluY2x1ZGUgY2FyZC1ib3R0b20tcmFkaXVzO1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItbmV1dHJhbC0yKTtcbiAgICB9XG4gIH1cblxuICAmLS12YXJpYW50LWJhY2tncm91bmQge1xuICAgICN7JGJsb2NrfV9faW1hZ2Uge1xuICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2FyZC1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG5cbiAgICAjeyRibG9ja31fX2JvZHkge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gICAgfVxuXG4gICAgI3skYmxvY2t9X19mb290ZXIge1xuICAgICAgQGluY2x1ZGUgY2FyZC1ib3R0b20tcmFkaXVzO1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xuICAgIH1cbiAgfVxuXG4gICZfX3BvcEZyb250IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbiAgfVxuXG4gICZfX2xpbmsge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWNhcmQtYm9yZGVyLXJhZGl1cyk7XG5cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgQGluY2x1ZGUgdHVpLWZvY3VzO1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLWdhcC0yKTtcbiAgICB9XG4gIH1cblxuICAmLS1zaXplLXNtIHtcbiAgICBtaW4taGVpZ2h0OiByZW0tcHgoMjAwKTtcbiAgfVxuXG4gICYtLXNpemUtZGVmYXVsdCB7XG4gICAgbWluLWhlaWdodDogcmVtLXB4KDMxMik7XG4gIH1cblxuICAmX19iYWNrZ3JvdW5kIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC1ncm93OiAxO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1jYXJkLWJvcmRlci1yYWRpdXMpO1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtaW1hZ2U7XG5cbiAgICAmLS1kZWZhdWx0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMik7XG4gICAgfVxuICB9XG5cbiAgJl9fbWVkaWFDb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICYtLWFzcGVjdC1yYXRpbyB7XG4gICAgICBhc3BlY3QtcmF0aW86IDE2IC8gOTtcbiAgICB9XG4gIH1cblxuICAmX19pbWFnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC1pbWFnZTtcblxuICAgICYtLWJhY2tncm91bmQtZGVmYXVsdCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgICB9XG4gIH1cblxuICAmX19vdmVybGF5V3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgJl9fbWVkaWFPdmVybGF5VG9wIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIG1pbi1oZWlnaHQ6IHJlbS1weCg1Nik7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTMpO1xuICB9XG5cbiAgJl9faGVyb0NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtaW4td2lkdGg6ICRoZXJvLWxhYmVsLW1pbi13O1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tZ2FwLTQpO1xuICB9XG5cbiAgJl9faGVyb0ljb25XcmFwcGVyIHtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWdhcC0xKTtcbiAgfVxuXG4gICZfX2hlcm9MYWJlbFdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBoZWlnaHQ6ICRoZXJvLXBpbGwtaDtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMik7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xuICAgIGJvcmRlci1yYWRpdXM6ICRoZXJvLXBpbGwtaDtcbiAgICBAaW5jbHVkZSBmb250KGJvZHktc20pO1xuICB9XG5cbiAgJl9faGVyby1sYWJlbCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIEBpbmNsdWRlIGZvbnQoYm9keS1zbSk7XG4gIH1cblxuICAmX19hY3Rpb25Db250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICAmX19hY3Rpb25XcmFwcGVyIHtcbiAgICBvcGFjaXR5OiAwO1xuXG4gICAgJi0tcGVyc2lzdGVudCB7XG4gICAgICBAaW5jbHVkZSBhY3Rpb24tcGVyc2lzdGVudDtcbiAgICB9XG4gIH1cblxuICAmX19hY3Rpb24tdHJpZ2dlcixcbiAgJl9fYWN0aW9uLWl0ZW0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiBjYWxjKHZhcigtLWdhcC0xKSAqIDEuNSk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNyk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItbmV1dHJhbC0yKTtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogJGFjdGlvbi1pdGVtLWRpbWVuc2lvbjtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlLWhvdmVyKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gICAgICBib3gtc2hhZG93OiB2YXIoLS1idG4tc2hhZG93LWhvdmVyKTtcbiAgICB9XG5cbiAgICAmLS1wZXJzaXN0ZW50IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuICB9XG5cbiAgJl9fbWVkaWFPdmVybGF5Q2VudHJlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTMpO1xuICB9XG5cbiAgJl9fbWVkaWFPdmVybGF5Qm90dG9tIHtcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgIHBhZGRpbmc6IHZhcigtLWdhcC0zKTtcbiAgfVxuXG4gICZfX2JvZHksXG4gICZfX2Zvb3RlciB7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTMpO1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIG1hcmdpbjogMCAwIHZhcigtLWdhcC0xKSAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZm9udC13ZWlnaHQ6IDUwMTtcbiAgICBmb250LXNpemU6IGZvbnQtc2l6ZS1weCgxNik7XG4gICAgbGluZS1oZWlnaHQ6IGxpbmUtaGVpZ2h0LXB4KDI0KTtcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDQ7XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgfVxuXG4gICZfX2JvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LWdyb3c6IDE7XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9jb2xsYXBzaWJsZS9Db2xsYXBzaWJsZS52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD01Nzk1MzU1NCZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktY29sbGFwc2libGUge1xuICAmX19oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sbGFwc2libGUtaGVhZGVyLWJnLWNvbG9yKTtcbiAgICBib3JkZXI6IHZhcigtLWJvcmRlci13aWR0aC10aGluKSBzb2xpZFxuICAgICAgdmFyKC0tY29sbGFwc2libGUtaGVhZGVyLWJvcmRlci1jb2xvcik7XG5cbiAgICAmLWhlYWRpbmcge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogdmFyKC0tZ2FwLTIpIHZhcigtLWdhcC0yKSB2YXIoLS1nYXAtMikgMDtcbiAgICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG5cbiAgICAgICYtLWV4Y2x1ZGVIZWFkZXJQYWRkaW5nIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cblxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICY6bm90KCYtLWhpZGVGb2N1cykge1xuICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgIEBpbmNsdWRlIHR1aS1mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi1pY29uIHtcbiAgICAgICRpY29uLXNpemU6IHJlbS1weCgxNCk7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIG1hcmdpbjogMCB2YXIoLS1nYXAtNCk7XG4gICAgICBtYXJnaW4tdG9wOiBjYWxjKCh2YXIoLS1mb250LWg0LWxpbmUtaGVpZ2h0KSAtICN7JGljb24tc2l6ZX0pIC8gMik7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUpO1xuICAgICAgZm9udC1zaXplOiAkaWNvbi1zaXplO1xuICAgIH1cblxuICAgICYtdGV4dCB7XG4gICAgICBAaW5jbHVkZSBmb250KGg0KTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmLXNpZGVDb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIHBhZGRpbmc6IHZhcigtLWdhcC0yKTtcbiAgICB9XG4gIH1cblxuICAmX19jb250ZW50IHtcbiAgICAmID4gLnR1aS1mb3JtUm93U3RhY2sge1xuICAgICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTQpO1xuICAgIH1cblxuICAgIC8qIGxpbmUgdXAgd2l0aCB0ZXh0IG9mIGhlYWRlciovXG4gICAgJi0taW5kZW50ZWQge1xuICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1nYXAtMTIpO1xuICAgIH1cbiAgfVxuICAmLS1taW5pbWFsICZfX2hlYWRlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gICYtLWxhcmdlUGFkZGluZyAmX19oZWFkZXItYnV0dG9uIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtNSkgdmFyKC0tZ2FwLTIpIHZhcigtLWdhcC01KSB2YXIoLS1nYXAtMSk7XG4gIH1cbiAgJi0tbGFyZ2VQYWRkaW5nICZfX2hlYWRlci1zaWRlQ29udGVudCB7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTIpIHZhcigtLWdhcC00KTtcbiAgfVxuICAmLS1sYXJnZVBhZGRpbmcgJl9fY29udGVudCB7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTMpO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuXG4gICAgJi0taW5kZW50ZWQge1xuICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLWdhcC0xMikgKyB2YXIoLS1nYXAtMSkpO1xuICAgIH1cbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvY29sbGFwc2libGUvQ29sbGFwc2libGVHcm91cFRvZ2dsZS52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0xZjk1MjYyZCZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1jb2xsYXBzaWJsZUdyb3VwVG9nZ2xlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgJi0tYWxpZ25FbmQgJl9fYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2NvbGxhcHNpYmxlL0hpZGVTaG93LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTIxMTAwYjQzJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1oaWRlU2hvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG5cbiAgJl9fY29udGVudCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICAmLS1zaG93IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmX190b2dnbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTIpIDA7XG5cbiAgICAmLS1uYXJyb3dUcmlnZ2VyIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgJi0tc3RpY2t5IHtcbiAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICB0b3A6IDA7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgICB9XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHR1aS1zY3JlZW4tc20pIHtcbiAgLnR1aS1oaWRlU2hvdy0tbW9iaWxlIHtcbiAgICAmID4gLnR1aS1oaWRlU2hvd19fdG9nZ2xlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJiA+IC50dWktaGlkZVNob3dfX2NvbnRlbnQge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZGF0YXRhYmxlL0FkdmFuY2VkVGFibGVTZWxlY3QudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9M2NiMTZkY2UmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG46cm9vdCB7XG4gIC0tYWR2YW5jZWQtc2VsZWN0LWRyb3Bkb3duLXRyaWdnZXItd2lkdGg6IDQ0cHg7XG4gIC0tYWR2YW5jZWQtc2VsZWN0LWRyb3Bkb3duLXRyaWdnZXItd2lkdGgtbGFyZ2U6IDUycHg7XG5cbiAgLS1hZHZhbmNlZC1zZWxlY3QtZHJvcGRvd24tdHJpZ2dlci1oZWlnaHQ6IDI4cHg7XG4gIC0tYWR2YW5jZWQtc2VsZWN0LWRyb3Bkb3duLXRyaWdnZXItaGVpZ2h0LWxhcmdlOiAzNHB4O1xuXG4gIC0tYWR2YW5jZWQtc2VsZWN0LWJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpO1xuXG4gIC0tYWR2YW5jZWQtc2VsZWN0LW91dGxpbmUtd2lkdGg6IHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpO1xuXG4gIC0tYWR2YW5jZWQtc2VsZWN0LWNhcmV0LXRvcC1vZmZzZXQ6IDFweDtcbiAgLS1hZHZhbmNlZC1zZWxlY3QtY2FyZXQtbGVmdC1vZmZzZXQ6IGNhbGModmFyKC0tZ2FwLTEpICogLTEpO1xuICAtLWFkdmFuY2VkLXNlbGVjdC1jYXJldC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcblxuICAtLWFkdmFuY2VkLXNlbGVjdC1jYXJldC1pY29uLW1hcmdpbi1sZWZ0LXN0YWNrZWQ6IDI1cHg7XG4gIC0tYWR2YW5jZWQtc2VsZWN0LWNhcmV0LWxlZnQtc3RhY2tlZDogLTMwcHg7XG5cbiAgLS1hZHZhbmNlZC1zZWxlY3QtY2hlY2tib3gtcGFkZGluZy10b3A6IDZweDtcbiAgLS1hZHZhbmNlZC1zZWxlY3QtY2hlY2tib3gtcGFkZGluZy1ib3R0b206IDZweDtcbiAgLS1hZHZhbmNlZC1zZWxlY3QtY2hlY2tib3gtcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi50dWktYWR2YW5jZWRUYWJsZVNlbGVjdCB7XG4gICZfX2Ryb3Bkb3duVHJpZ2dlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogdmFyKC0tYWR2YW5jZWQtc2VsZWN0LWRyb3Bkb3duLXRyaWdnZXItd2lkdGgpO1xuICAgIGhlaWdodDogdmFyKC0tYWR2YW5jZWQtc2VsZWN0LWRyb3Bkb3duLXRyaWdnZXItaGVpZ2h0KTtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWdhcC0xKTtcblxuICAgICYtLWxhcmdlIHtcbiAgICAgIHdpZHRoOiB2YXIoLS1hZHZhbmNlZC1zZWxlY3QtZHJvcGRvd24tdHJpZ2dlci13aWR0aC1sYXJnZSk7XG4gICAgICBoZWlnaHQ6IHZhcigtLWFkdmFuY2VkLXNlbGVjdC1kcm9wZG93bi10cmlnZ2VyLWhlaWdodC1sYXJnZSk7XG4gICAgfVxuXG4gICAgJi1jaGVja2JveCB7XG4gICAgICBwYWRkaW5nOiB2YXIoLS1hZHZhbmNlZC1zZWxlY3QtY2hlY2tib3gtcGFkZGluZy10b3ApIDBcbiAgICAgICAgdmFyKC0tYWR2YW5jZWQtc2VsZWN0LWNoZWNrYm94LXBhZGRpbmctYm90dG9tKVxuICAgICAgICB2YXIoLS1hZHZhbmNlZC1zZWxlY3QtY2hlY2tib3gtcGFkZGluZy1sZWZ0KTtcbiAgICB9XG5cbiAgICAmLWJ1dHRvbiB7XG4gICAgICB0b3A6IHZhcigtLWFkdmFuY2VkLXNlbGVjdC1jYXJldC10b3Atb2Zmc2V0KTtcbiAgICAgIGxlZnQ6IHZhcigtLWFkdmFuY2VkLXNlbGVjdC1jYXJldC1sZWZ0LW9mZnNldCk7XG4gICAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgICAmOmZvY3VzLFxuICAgICAgJjpob3ZlcixcbiAgICAgICY6YWN0aXZlLFxuICAgICAgJjphY3RpdmU6aG92ZXIsXG4gICAgICAmOmFjdGl2ZTpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgICYtaWNvbiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1hZHZhbmNlZC1zZWxlY3QtY2FyZXQtY29sb3IpO1xuICAgICAgICAmLS1zdGFja2VkIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tYWR2YW5jZWQtc2VsZWN0LWNhcmV0LWljb24tbWFyZ2luLWxlZnQtc3RhY2tlZCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi0tc3RhY2tlZCB7XG4gICAgICAgIGxlZnQ6IHZhcigtLWFkdmFuY2VkLXNlbGVjdC1jYXJldC1sZWZ0LXN0YWNrZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qIEdyZXkgYmFja2dyb3VuZCovXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmhvdmVyLFxuICAgICYtLWlzT3BlbiB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1uZXV0cmFsLTQpO1xuICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYWR2YW5jZWQtc2VsZWN0LWJvcmRlci1yYWRpdXMpO1xuICAgIH1cblxuICAgIC8qIFRoZSBncmVlbiBmb2N1cyBvdXRsaW5lKi9cbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgIG91dGxpbmU6IHZhcigtLWFkdmFuY2VkLXNlbGVjdC1vdXRsaW5lLXdpZHRoKSBzb2xpZFxuICAgICAgICB2YXIoLS1jb2xvci1zdGF0ZS1mb2N1cyk7XG4gICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tYWR2YW5jZWQtc2VsZWN0LW91dGxpbmUtd2lkdGgpO1xuICAgIH1cbiAgfVxuXG4gICZfX2xvYWRlciB7XG4gICAgd2lkdGg6IHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUpO1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tZ2FwLTUpO1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXAtMSk7XG5cbiAgICAmLS1sYXJnZSB7XG4gICAgICB3aWR0aDogdmFyKC0tZm9ybS1jaGVja2JveC1zaXplLWxhcmdlKTtcbiAgICAgIGhlaWdodDogdmFyKC0tZm9ybS1jaGVja2JveC1zaXplLWxhcmdlKTtcbiAgICB9XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9kYXRhdGFibGUvQ2VsbC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0yOTM4M2E2YyZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktZGF0YVRhYmxlQ2VsbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtYmFzaXM6IDA7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtZ3JvdzogMTtcblxuICAvKiBlbnN1cmUgZXhjZXNzaXZlbHkgbG9uZyB3b3JkcyBkb24ndCBwdXNoIG91dCBjZWxsIHdpZHRoICovXG4gIG1pbi13aWR0aDogMDtcblxuICAvKiBlbnN1cmUgZXhjZXNzaXZlbHkgbG9uZyB3b3JkcyBkb24ndCBvdmVyZmxvdyAqL1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG5cbiAgJl9fbGFiZWwge1xuICAgIEBpbmNsdWRlIGZvbnQoYm9keS1zbSwgdmFyKC0tbGFiZWwtd2VpZ2h0KSk7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtMik7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTEpIDAgdmFyKC0tZ2FwLTIpO1xuICB9XG5cbiAgJi0tc3RhY2tlZCAmX19sYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgJi0tcmVwZWF0ZWRIZWFkZXIgJl9fY29udGVudCB7XG4gICAgQGluY2x1ZGUgc3Itb25seSgpO1xuICB9XG5cbiAgJi0tc2l6ZSB7XG4gICAgJl8xIHtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICB9XG5cbiAgICAmXzIge1xuICAgICAgZmxleC1ncm93OiAyO1xuICAgIH1cblxuICAgICZfMyB7XG4gICAgICBmbGV4LWdyb3c6IDM7XG4gICAgfVxuXG4gICAgJl80IHtcbiAgICAgIGZsZXgtZ3JvdzogNDtcbiAgICB9XG5cbiAgICAmXzUge1xuICAgICAgZmxleC1ncm93OiA1O1xuICAgIH1cblxuICAgICZfNiB7XG4gICAgICBmbGV4LWdyb3c6IDY7XG4gICAgfVxuXG4gICAgJl83IHtcbiAgICAgIGZsZXgtZ3JvdzogNztcbiAgICB9XG5cbiAgICAmXzgge1xuICAgICAgZmxleC1ncm93OiA4O1xuICAgIH1cblxuICAgICZfOSB7XG4gICAgICBmbGV4LWdyb3c6IDk7XG4gICAgfVxuXG4gICAgJl8xMCB7XG4gICAgICBmbGV4LWdyb3c6IDEwO1xuICAgIH1cblxuICAgICZfMTEge1xuICAgICAgZmxleC1ncm93OiAxMTtcbiAgICB9XG5cbiAgICAmXzEyIHtcbiAgICAgIGZsZXgtZ3JvdzogMTI7XG4gICAgfVxuXG4gICAgJl8xMyB7XG4gICAgICBmbGV4LWdyb3c6IDEzO1xuICAgIH1cblxuICAgICZfMTQge1xuICAgICAgZmxleC1ncm93OiAxNDtcbiAgICB9XG5cbiAgICAmXzE1IHtcbiAgICAgIGZsZXgtZ3JvdzogMTU7XG4gICAgfVxuXG4gICAgJl8xNiB7XG4gICAgICBmbGV4LWdyb3c6IDE2O1xuICAgIH1cbiAgfVxuXG4gICYtLWFsaWduIHtcbiAgICAmLWNlbnRlciB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgICYtZW5kIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICB9XG4gIH1cblxuICAmLS1oZWF2eSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICAmLS12YWxpZ24ge1xuICAgICYtY2VudGVyIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cblxuICAgICYtZW5kIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgfVxuICB9XG5cbiAgJi0tc3RhY2tlZCB7XG4gICAgZmxleC1iYXNpczogYXV0bztcbiAgICBhbGlnbi1pdGVtczogaW5pdGlhbDtcbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2RhdGF0YWJsZS9FeHBhbmRDZWxsLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTI0MTM2NWE2Jmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1kYXRhVGFibGVFeHBhbmRDZWxsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgb3JkZXI6IDA7XG4gIHdpZHRoOiB2YXIoLS1nYXAtOSk7XG4gIG1hcmdpbjogMDtcblxuICAudHVpLWJ0biB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cblxuICAmLnR1aS1kYXRhVGFibGVFeHBhbmRDZWxsLS1oZWFkZXIge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG5cbiAgJi0tc3RhY2tlZCB7XG4gICAgb3JkZXI6IDE7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiB2YXIoLS1nYXAtMikgMDtcbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9kYXRhdGFibGUvRXhwYW5kZWRSb3cudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NTEyZjY0YzcmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1kYXRhVGFibGVFeHBhbmRhYmxlUm93IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDAgMCB2YXIoLS1nYXAtMikgY2FsYygwcHggLSB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikpO1xuICBjb2xvcjogdmFyKC0tZGF0YXRhYmxlLWV4cGFuZGVkLXRleHQtY29sb3IpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXRhdGFibGUtZXhwYW5kZWQtYmctY29sb3IpO1xuICBib3JkZXI6IHZhcigtLWJvcmRlci13aWR0aC10aGluKSBzb2xpZCB2YXIoLS1kYXRhdGFibGUtZXhwYW5kZWQtYm9yZGVyLWNvbG9yKTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTIpO1xuXG4gICYtLXN0ZWFsdGgge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgICZfX2NvbnRlbnQge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cblxuICAmX19jb250ZW50IHtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMyk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZGF0YXRhYmxlLWV4cGFuZGVkLWJnLWNvbG9yKTtcbiAgfVxuXG4gICYtLWluZGVudGVkIHtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWdhcC0xMSk7XG4gIH1cblxuICAmLS1zdGFja2VkIHtcbiAgICBib3JkZXItdG9wOiBub25lO1xuICB9XG5cbiAgJi0tc3RhY2tlZCYtLWluZGVudGVkIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cblxuICAmLS1pbmRlbnRlZCAmX19jb250ZW50IHtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMykgMCB2YXIoLS1nYXAtMykgdmFyKC0tZ2FwLTMpO1xuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZGF0YXRhYmxlL0hlYWRlckNlbGwudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MzMzYzcyY2UmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLWRhdGFUYWJsZUhlYWRlckNlbGwge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdHVpL2F0LWV4dGVuZC1vbmx5LXBsYWNlaG9sZGVycyovXG4gIEBleHRlbmQgLnR1aS1kYXRhVGFibGVDZWxsO1xuICBkaXNwbGF5OiBmbGV4O1xuICBjb2xvcjogdmFyKC0tZGF0YXRhYmxlLWNlbGwtaGVhZGVyLXRleHQtY29sb3IpO1xuICBmb250LXdlaWdodDogYm9sZDtcblxuICAmLS1zdGFja2VkIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9kYXRhdGFibGUvSGVhZGVyUm93LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTQzMDA3M2YzJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLWRhdGFUYWJsZVJvd0hlYWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogdmFyKC0tZ2FwLTMpIHZhcigtLWdhcC0xKTtcblxuICAmLS1zdGFja2VkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgJi0tc3RhY2tlZCYtLWFkdmFuY2VkU2VsZWN0RW5hYmxlZCB7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTIpIDA7XG4gIH1cblxuICAmLS1zdGFja2VkR2FwIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtMik7XG4gIH1cblxuICAmLS10aGluIHtcbiAgICBwYWRkaW5nOiAwIHZhcigtLWdhcC0xKSB2YXIoLS1nYXAtMik7XG4gIH1cblxuICAmLS1lbXB0eSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICYgPiAqICsgKiB7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWdhcC00KTtcbiAgfVxuXG4gICYtLWluZGVudGVkIHtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWdhcC0xMSk7XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2RhdGF0YWJsZS9Sb3cudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NmU3MmI5YzAmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktZGF0YVRhYmxlUm93IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBwYWRkaW5nOiB2YXIoLS1nYXAtMykgdmFyKC0tZ2FwLTEpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXRhdGFibGUtcm93LWJnLWNvbG9yKTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWRhdGF0YWJsZS1yb3ctYm9yZGVyLWNvbG9yKTtcblxuICAmID4gKiArICoge1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ2FwLTQpO1xuICB9XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcDogdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCkgc29saWRcbiAgICAgIHZhcigtLWRhdGF0YWJsZS1yb3ctZmlyc3QtYm9yZGVyLWNvbG9yKTtcbiAgfVxuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRhdGF0YWJsZS1yb3ctYm9yZGVyLWNvbG9yKTtcbiAgfVxuXG4gICYudHVpLWZvY3VzV2l0aGluLFxuICAmOmFjdGl2ZSxcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZGF0YXRhYmxlLXJvdy1iZy1jb2xvci1mb2N1cyk7XG4gIH1cblxuICAmLS1pbmRlbnRlZCB7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1nYXAtMTEpO1xuICB9XG5cbiAgJi0tc3RlYWx0aCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuXG4gICYtLWJvcmRlclRvcEZpcnN0T2ZmIHtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJi0tYm9yZGVyVG9wVGhpbiB7XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wLXdpZHRoOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbik7XG4gICAgfVxuICB9XG5cbiAgJi0tYm9yZGVyQm90dG9tTGFzdE9mZiB7XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJi0tYm9yZGVyU2VwYXJhdG9yT2ZmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBib3JkZXItdG9wOiBub25lO1xuICB9XG5cbiAgJi0tc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWRhdGF0YWJsZS1yb3ctYmctY29sb3ItYWN0aXZlKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGF0YXRhYmxlLXJvdy1iZy1jb2xvci1mb2N1cyk7XG4gICAgfVxuICB9XG5cbiAgJi0tY29sb3JPZGQ6bm90KCYtLXNlbGVjdGVkKSB7XG4gICAgJjpudGgtY2hpbGQob2RkKSB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXRhdGFibGUtcm93LWJnLWNvbG9yLW9kZCk7XG5cbiAgICAgICYudHVpLWZvY3VzV2l0aGluLFxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRhdGF0YWJsZS1yb3ctYmctY29sb3ItZm9jdXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtLWhvdmVyT2ZmIHtcbiAgICAmLnR1aS1mb2N1c1dpdGhpbixcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRhdGF0YWJsZS1yb3ctYmctY29sb3IpO1xuICAgIH1cbiAgfVxuXG4gICYtLWhvdmVyT2ZmJi0tY29sb3JPZGQge1xuICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgJi50dWktZm9jdXNXaXRoaW4sXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGF0YXRhYmxlLXJvdy1iZy1jb2xvci1vZGQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtLWluR3JvdXAge1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wOiBub25lO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICYtLWRpc2FibGVkIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbiAgfVxuXG4gIC8qIGRvbid0IHNob3cgaG92ZXIgYmFja2dyb3VuZCB3aGVuIGFub3RoZXIgaXRlbSBpcyBiZWluZyBkcmFnZ2VkIG92ZXIgaXQqL1xuICBbZGF0YS10dWktZHJvcHBhYmxlLWFueS1hY3RpdmVdICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWRhdGF0YWJsZS1yb3ctYmctY29sb3IpO1xuICB9XG5cbiAgJi0tZHJhZ2dhYmxlIHtcbiAgICAvKiBhcHBseSBhIGJhY2tncm91bmQgc28geW91IGRvbid0IHNlZSB0aHJvdWdoIHRoZSByb3cgd2hlbiBkcmFnZ2luZyovXG4gICAgLyogKGRlZmF1bHQgaXMgdHJhbnNwYXJlbnQpKi9cbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgJi50dWktZm9jdXNXaXRoaW4sXG4gICAgJjphY3RpdmUsXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcbiAgICB9XG4gIH1cblxuICAmLS1kcmFnZ2FibGUgPiAudHVpLWRhdGFUYWJsZUNlbGwge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG5cbiAgJi0tZHJhZ2dpbmcge1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy0zKTtcbiAgfVxuXG4gICYtLWV4cGFuZGVkIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygwcHggLSB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRhdGF0YWJsZS1leHBhbmRlZC1iZy1jb2xvcik7XG4gICAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWRcbiAgICAgIHZhcigtLWRhdGF0YWJsZS1leHBhbmRlZC1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTIpO1xuICB9XG5cbiAgJi0tc3RlYWx0aEV4cGFuZGVkIHtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG4udHVpLWRhdGFUYWJsZVJvdy0tc3RhY2tlZCB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmc6IHZhcigtLWdhcC0zKSAwO1xuXG4gICYgPiAqICsgKiB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcDogdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCkgc29saWRcbiAgICAgIHZhcigtLWRhdGF0YWJsZS1yb3ctZmlyc3QtYm9yZGVyLWNvbG9yKTtcbiAgfVxuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRhdGF0YWJsZS1yb3ctYm9yZGVyLWNvbG9yKTtcbiAgfVxuXG4gICYudHVpLWRhdGFUYWJsZVJvdy0tYm9yZGVyQm90dG9tTGFzdE9mZiB7XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJi50dWktZGF0YVRhYmxlUm93LS1ib3JkZXJUb3BUaGluIHtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci10b3Atd2lkdGg6IHZhcigtLWJvcmRlci13aWR0aC10aGluKTtcbiAgICB9XG4gIH1cblxuICAmLnR1aS1kYXRhVGFibGVSb3ctLWJvcmRlclRvcEZpcnN0T2ZmIHtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJi50dWktZGF0YVRhYmxlUm93LS1pbkdyb3VwIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZGF0YXRhYmxlLXJvdy1ib3JkZXItY29sb3IpO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wOiBub25lO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9kYXRhdGFibGUvUm93R3JvdXAudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9ZmY2MmI5NjImbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1kYXRhVGFibGVSb3dHcm91cCB7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCB2YXIoLS1kYXRhdGFibGUtcm93LWZpcnN0LWJvcmRlci1jb2xvcik7XG5cbiAgJi0tc3RhY2tlZCB7XG4gICAgcGFkZGluZzogMCB2YXIoLS1nYXAtMik7XG4gIH1cblxuICAmICsgJiB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWRhdGF0YWJsZS1yb3ctYm9yZGVyLWNvbG9yKTtcbiAgfVxuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRhdGF0YWJsZS1yb3ctYm9yZGVyLWNvbG9yKTtcbiAgfVxuXG4gICYudHVpLWZvY3VzV2l0aGluLFxuICAmOmFjdGl2ZSxcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZGF0YXRhYmxlLXJvdy1iZy1jb2xvci1mb2N1cyk7XG4gIH1cblxuICAmLS1zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZGF0YXRhYmxlLXJvdy1iZy1jb2xvci1hY3RpdmUpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXRhdGFibGUtcm93LWJnLWNvbG9yLWZvY3VzKTtcbiAgICB9XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZGF0YXRhYmxlL1NlbGVjdEV2ZXJ5Um93VG9nZ2xlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTc4ODc5Nzk5Jmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktZGF0YVRhYmxlU2VsZWN0RXZlcnlSb3dUb2dnbGUge1xuICBwYWRkaW5nOiB2YXIoLS1nYXAtMik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRhdGF0YWJsZS1zZWxlY3QtZXZlcnl0aGluZy1wcm9tcHQtYmcpO1xufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2RhdGF0YWJsZS9TZWxlY3RSb3dDZWxsLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWZmOWU0NWI0Jmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1kYXRhVGFibGVTZWxlY3RSb3dDZWxsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAmLS1hZHZhbmNlZFNlbGVjdEVuYWJsZWQge1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWdhcC01KTtcbiAgICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tZ2FwLTEpICsgMXB4KTtcbiAgfVxuXG4gICYtLWhpZGRlbiB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgJl9fbG9hZGVyIHtcbiAgICB3aWR0aDogdmFyKC0tZm9ybS1jaGVja2JveC1zaXplKTtcbiAgICBoZWlnaHQ6IHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZSk7XG5cbiAgICAmLS1sYXJnZSB7XG4gICAgICB3aWR0aDogdmFyKC0tZm9ybS1jaGVja2JveC1zaXplLWxhcmdlKTtcbiAgICAgIGhlaWdodDogdmFyKC0tZm9ybS1jaGVja2JveC1zaXplLWxhcmdlKTtcbiAgICB9XG4gIH1cblxuICAmLS1zdGFja2VkJi0taGlkZGVuIHtcbiAgICBoZWlnaHQ6IDA7XG4gIH1cblxuICAmLS12YWxpZ24ge1xuICAgICYtc3RhcnQge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cblxuICAgICYtY2VudGVyIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cblxuICAgICYtZW5kIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgfVxuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9kYXRhdGFibGUvU2VsZWN0VmlzaWJsZVJvd3NDZWxsLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTdiNjYwZGI3Jmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLWRhdGFUYWJsZVNlbGVjdFZpc2libGVSb3dzQ2VsbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG5cbiAgJi0taGlkZGVuIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAmX19sb2FkZXIge1xuICAgIHdpZHRoOiB2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tZm9ybS1jaGVja2JveC1zaXplKTtcblxuICAgICYtLWxhcmdlIHtcbiAgICAgIHdpZHRoOiB2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUtbGFyZ2UpO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUtbGFyZ2UpO1xuICAgIH1cbiAgfVxuXG4gICYtLXN0YWNrZWQge1xuICAgIG1hcmdpbjogdmFyKC0tZ2FwLTIpIDA7XG4gIH1cblxuICAmX19sYWJlbCB7XG4gICAgQGluY2x1ZGUgZm9udChib2R5LXNtLCB2YXIoLS1sYWJlbC13ZWlnaHQpKTtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgcGFkZGluZzogMCAwIHZhcigtLWdhcC0xKSB2YXIoLS1nYXAtMSk7XG5cbiAgICAmLS1zdGFja2VkIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAmLS1sYXJnZSB7XG4gICAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMSkgMCB2YXIoLS1nYXAtMSkgdmFyKC0tZ2FwLTIpO1xuICAgIH1cbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9kYXRhdGFibGUvVGFibGUudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MjhiZGM2MzQmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1kYXRhVGFibGUge1xuICAmLS1hcmNoaXZlZCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZGF0YXRhYmxlLWJnLWFyY2hpdmVkKTtcbiAgfVxuXG4gICZfX3Jvdy1tb3ZlLWNlbGwge1xuICAgIGZsZXgtYmFzaXM6IHZhcigtLWdhcC01KTtcbiAgICBmbGV4LWdyb3c6IDA7XG4gIH1cblxuICAmX19yb3ctbW92ZS1tZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IHZhcigtLWdhcC04KTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9kZWNvci9BbmRCb3gudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NDBlNDU5ZGQmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1hbmRCb3gge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdHVpL2F0LWV4dGVuZC1vbmx5LXBsYWNlaG9sZGVycyovXG4gIEBleHRlbmQgLnR1aS1vckJveDtcblxuICAmX190ZXh0IHtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdHVpL2F0LWV4dGVuZC1vbmx5LXBsYWNlaG9sZGVycyovXG4gICAgQGV4dGVuZCAudHVpLW9yQm94X190ZXh0O1xuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZGVjb3IvQXJyb3cudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MmUyNGMzMzAmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AbWl4aW4gZ2VuZXJhdGUtYXJyb3ctYmFzZSgkc2VsLCAkc2l6ZSkge1xuICAjeyRzZWx9LS10b3AsXG4gICN7JHNlbH0tLWJvdHRvbSB7XG4gICAgLyohcnRsOmlnbm9yZSovXG4gICAgbGVmdDogNTAlO1xuICAgIHdpZHRoOiAkc2l6ZSAqIDI7XG4gICAgaGVpZ2h0OiAkc2l6ZSAqIDI7XG4gICAgLyohcnRsOmlnbm9yZSovXG4gICAgbWFyZ2luLWxlZnQ6IC0kc2l6ZTtcbiAgfVxuXG4gICN7JHNlbH0tLXRvcCB7XG4gICAgdG9wOiAtKCRzaXplICogMik7XG4gIH1cblxuICAjeyRzZWx9LS1ib3R0b20ge1xuICAgIGJvdHRvbTogLSgkc2l6ZSAqIDIpO1xuICB9XG5cbiAgI3skc2VsfS0tbGVmdCxcbiAgI3skc2VsfS0tcmlnaHQge1xuICAgIHRvcDogNTAlO1xuICAgIHdpZHRoOiAkc2l6ZSAqIDI7XG4gICAgaGVpZ2h0OiAkc2l6ZSAqIDI7XG4gICAgbWFyZ2luLXRvcDogLSRzaXplO1xuICB9XG5cbiAgI3skc2VsfS0tbGVmdCB7XG4gICAgbGVmdDogLSgkc2l6ZSAqIDIpO1xuICB9XG5cbiAgI3skc2VsfS0tcmlnaHQge1xuICAgIHJpZ2h0OiAtKCRzaXplICogMik7XG4gIH1cbn1cblxuQG1peGluIGdlbmVyYXRlLWFycm93LXBhcnQoJHNlbCwgJHNlbF8yLCAkc2l6ZSwgJG9mZnNldCkge1xuICAjeyRzZWx9I3skc2VsXzJ9IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm9yZGVyOiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBjb250ZW50OiAnJztcbiAgfVxuXG4gICN7JHNlbH0tLXRvcCN7JHNlbF8yfSB7XG4gICAgdG9wOiAkb2Zmc2V0ICogMjtcbiAgICBsZWZ0OiAkb2Zmc2V0O1xuICB9XG5cbiAgI3skc2VsfS0tYm90dG9tI3skc2VsXzJ9IHtcbiAgICBib3R0b206ICRvZmZzZXQgKiAyO1xuICAgIGxlZnQ6ICRvZmZzZXQ7XG4gIH1cblxuICAjeyRzZWx9LS1sZWZ0I3skc2VsXzJ9IHtcbiAgICB0b3A6ICRvZmZzZXQ7XG4gICAgbGVmdDogJG9mZnNldCAqIDI7XG4gIH1cblxuICAjeyRzZWx9LS1yaWdodCN7JHNlbF8yfSB7XG4gICAgdG9wOiAkb2Zmc2V0O1xuICAgIHJpZ2h0OiAkb2Zmc2V0ICogMjtcbiAgfVxufVxuXG5AbWl4aW4gYXJyb3ctdmFyaWFudCgkc2VsLCAkdmFyaWFudF90eXAsICRjb2xvcikge1xuICAudHVpLWFycm93LS1ub3JtYWwsXG4gIC50dWktYXJyb3ctLWxhcmdlIHtcbiAgICAmLnR1aS1hcnJvd19fdmFyaWFudC0tI3skdmFyaWFudF90eXB9IHtcbiAgICAgICYudHVpLWFycm93LS10b3AjeyRzZWx9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGNvbG9yO1xuICAgICAgfVxuICAgICAgJi50dWktYXJyb3ctLWJvdHRvbSN7JHNlbH0ge1xuICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICB9XG4gICAgICAmLnR1aS1hcnJvdy0tbGVmdCN7JHNlbH0ge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRjb2xvcjtcbiAgICAgIH1cbiAgICAgICYudHVpLWFycm93LS1yaWdodCN7JHNlbH0ge1xuICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJGNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4udHVpLWFycm93IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuQGluY2x1ZGUgZ2VuZXJhdGUtYXJyb3ctYmFzZSgnLnR1aS1hcnJvdy0tbm9ybWFsLnR1aS1hcnJvdycsIDEwcHgpO1xuQGluY2x1ZGUgZ2VuZXJhdGUtYXJyb3ctcGFydChcbiAgJy50dWktYXJyb3ctLW5vcm1hbC50dWktYXJyb3cnLFxuICAnOjpiZWZvcmUnLFxuICAxMHB4LFxuICAwXG4pO1xuQGluY2x1ZGUgZ2VuZXJhdGUtYXJyb3ctcGFydChcbiAgJy50dWktYXJyb3ctLW5vcm1hbC50dWktYXJyb3cnLFxuICAnOjphZnRlcicsXG4gIDhweCxcbiAgMnB4XG4pO1xuXG5AaW5jbHVkZSBnZW5lcmF0ZS1hcnJvdy1iYXNlKCcudHVpLWFycm93LS1sYXJnZS50dWktYXJyb3cnLCAxNHB4KTtcbkBpbmNsdWRlIGdlbmVyYXRlLWFycm93LXBhcnQoXG4gICcudHVpLWFycm93LS1sYXJnZS50dWktYXJyb3cnLFxuICAnOjpiZWZvcmUnLFxuICAxNHB4LFxuICAwXG4pO1xuQGluY2x1ZGUgZ2VuZXJhdGUtYXJyb3ctcGFydChcbiAgJy50dWktYXJyb3ctLWxhcmdlLnR1aS1hcnJvdycsXG4gICc6OmFmdGVyJyxcbiAgMTJweCxcbiAgMnB4XG4pO1xuXG5AaW5jbHVkZSBhcnJvdy12YXJpYW50KCc6OmJlZm9yZScsICdkZWZhdWx0JywgdmFyKC0tYXJyb3ctYm9yZGVyLWNvbG9yKSk7XG5AaW5jbHVkZSBhcnJvdy12YXJpYW50KCc6OmFmdGVyJywgJ2RlZmF1bHQnLCB2YXIoLS1hcnJvdy1iZy1jb2xvcikpO1xuXG5AaW5jbHVkZSBhcnJvdy12YXJpYW50KCc6OmJlZm9yZScsICdpbnZlcnNlJywgdmFyKC0tYXJyb3ctYmctaW52ZXJzZS1jb2xvcikpO1xuQGluY2x1ZGUgYXJyb3ctdmFyaWFudCgnOjphZnRlcicsICdpbnZlcnNlJywgdmFyKC0tYXJyb3ctYmctaW52ZXJzZS1jb2xvcikpO1xuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2RlY29yL0NhcmV0LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTVmN2VlOWFhJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1jYXJldCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYm9yZGVyLXRvcDogNHB4IHNvbGlkO1xuICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9kZWNvci9PckJveC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD01ZWM1ZDA4ZiZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktb3JCb3gge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGJvcmRlcjogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIHNvbGlkIHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcblxuICAmX190ZXh0IHtcbiAgICBAaW5jbHVkZSBmb250KGJvZHksICR3ZWlnaHQ6IGJvbGQpO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMikgdmFyKC0tZ2FwLTQpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZGVjb3IvU2VwYXJhdG9yLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTZmNWQ0NDhjJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktc2VwYXJhdG9yIHtcbiAgbWFyZ2luOiB2YXIoLS1nYXAtNCkgMDtcblxuICAmLS1zcHJlYWQge1xuICAgIG1hcmdpbjogdmFyKC0tZ2FwLTgpIDA7XG4gIH1cblxuICAvKiBzaW1wbGUgaW1wbGVtZW50YXRpb24gdXNpbmcgYSBob3Jpem9udGFsIHJ1bGUgZWxlbWVudCovXG4gICYtcnVsZSB7XG4gICAgaGVpZ2h0OiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbik7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWJvcmRlci13aWR0aC10aGluKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xuICAgIGJvcmRlcjogbm9uZTtcblxuICAgICYudHVpLXNlcGFyYXRvci0tdGhpY2sge1xuICAgICAgaGVpZ2h0OiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpY2spO1xuICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLWJvcmRlci13aWR0aC10aGljayk7XG4gICAgfVxuXG4gICAgJi50dWktc2VwYXJhdG9yLS1ub3JtYWwge1xuICAgICAgaGVpZ2h0OiB2YXIoLS1ib3JkZXItd2lkdGgtbm9ybWFsKTtcbiAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1ib3JkZXItd2lkdGgtbm9ybWFsKTtcbiAgICB9XG4gIH1cblxuICAvKiBhbHRlcm5hdGl2ZSBpbXBsZW1lbnRhdGlvbiB3aXRoIHdyYXBwZXIgbWFya3VwIHRvIGNlbnRlciBzbG90dGVkIGNvbnRlbnQqL1xuICAvKiBob3Jpem9udGFsIHJ1bGUgdmlzaWJsZSBvbmx5IHRvIHNjcmVlbiByZWFkZXJzLCB0aGUgdmlzdWFsIGxpbmVzIGFkZGVkIHdpdGgqL1xuICAvKiBwc2V1ZG8gc2VsZWN0b3JzKi9cbiAgJi0td3JhcHBlZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgLnR1aS1zZXBhcmF0b3ItY29udGVudCB7XG4gICAgICBtYXJnaW46IDAgdmFyKC0tZ2FwLTQpO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBoZWlnaHQ6IHZhcigtLWJvcmRlci13aWR0aC10aGluKTtcbiAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbik7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xuICAgICAgY29udGVudDogJyc7XG4gICAgfVxuXG4gICAgJi50dWktc2VwYXJhdG9yLS10aGljazpiZWZvcmUsXG4gICAgJi50dWktc2VwYXJhdG9yLS10aGljazphZnRlciB7XG4gICAgICBoZWlnaHQ6IHZhcigtLWJvcmRlci13aWR0aC10aGljayk7XG4gICAgICBsaW5lLWhlaWdodDogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaWNrKTtcbiAgICB9XG5cbiAgICAmLnR1aS1zZXBhcmF0b3ItLW5vcm1hbDpiZWZvcmUsXG4gICAgJi50dWktc2VwYXJhdG9yLS1ub3JtYWw6YWZ0ZXIge1xuICAgICAgaGVpZ2h0OiB2YXIoLS1ib3JkZXItd2lkdGgtbm9ybWFsKTtcbiAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1ib3JkZXItd2lkdGgtbm9ybWFsKTtcbiAgICB9XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZGV2L3BlcmZvcm1hbmNlL1BlcmZvcm1hbmNlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTcyYTIxZjI4Jmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktcGVyZm9ybWFuY2Uge1xuICAmX19zdW1tYXJ5IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICB9XG5cbiAgJl9fY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgJl9fd3JhcHBlciB7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1nYXAtNCk7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ2FwLTQpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuXG4gICAgPiAqIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWdhcC0yKTtcbiAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ2FwLTIpO1xuXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB9XG5cbiAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1jaGFydC10cmFuc3BhcmVudC0zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2RyYWdfZHJvcC9EcmFnZ2FibGUudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9ODZmZDUwYWUmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbltkYXRhLXR1aS1kcmFnZ2FibGVdIHtcbiAgJltkYXRhLWFuaW1hdGVkXSB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzO1xuICB9XG5cbiAgJltkYXRhLWRyYWdnaW5nXSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IHZhcigtLXppbmRleC1kcmFnZ2FibGUpO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAvKiByZXF1aXJlZCBzbyBkcm9wcGFibGUgY2FuIGdldCBtb3VzZSBldmVudHMqL1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2RyYWdfZHJvcC9EcmFnZ2FibGVNb3ZlTWVudS52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD03ZWJmOTc5OSZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLWRyYWdnYWJsZU1vdmVNZW51IHtcbiAgJl9fYnV0dG9uOm5vdCg6Zm9jdXMpOm5vdChbYXJpYS1leHBhbmRlZD0ndHJ1ZSddKSB7XG4gICAgQGluY2x1ZGUgc3Itb25seSgpO1xuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9kcmFnX2Ryb3AvRHJvcHBhYmxlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWE0MDAwMTUyJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLWRyb3BwYWJsZSB7XG4gICZfX2Ryb3BMaW5lIHtcbiAgICB6LWluZGV4OiB2YXIoLS16aW5kZXgtZHJhZ2dhYmxlKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgJi0tdmVydGljYWwge1xuICAgICAgaGVpZ2h0OiB2YXIoLS1ib3JkZXItd2lkdGgtbm9ybWFsKTtcbiAgICAgIG1hcmdpbi10b3A6IGNhbGModmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCkgKiAtMC41KTtcbiAgICB9XG5cbiAgICAmLS1ob3Jpem9udGFsIHtcbiAgICAgIHdpZHRoOiB2YXIoLS1ib3JkZXItd2lkdGgtbm9ybWFsKTtcbiAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpICogLTAuNSk7XG4gICAgfVxuICB9XG59XG5bZGF0YS10dWktZHJvcHBhYmxlLWxvY2F0aW9uLWluZGljYXRvcl0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Ryb3Bkb3duL0Ryb3Bkb3duLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTZhMmVlYmMwJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1kcm9wZG93biB7XG4gICZfX21lbnUge1xuICAgIHotaW5kZXg6IHZhcigtLXppbmRleC1kcm9wZG93bi1tZW51KTtcbiAgICBtaW4td2lkdGg6IHJlbS1weCgxNTApO1xuICAgIG1heC13aWR0aDogcmVtLXB4KDMyMCk7XG4gICAgbWF4LWhlaWdodDogNDB2aDtcbiAgICBwYWRkaW5nOiBjYWxjKG1heCh2YXIoLS1nYXAtMiksIHZhcigtLWRyb3Bkb3duLWJvcmRlci1yYWRpdXMpKSkgMDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRyb3Bkb3duLW1lbnUtYmctY29sb3IpO1xuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWQgdmFyKC0tZHJvcGRvd24tbWVudS1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWRyb3Bkb3duLWJvcmRlci1yYWRpdXMpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy0yKTtcbiAgfVxuXG4gICYtLXNlcGFyYXRvciAmX19tZW51IHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgJi0tZmxleGlibGVXaWR0aCAmX19tZW51IHtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG5cbiAgJi0tZml4ZWRXaWR0aCAmX19tZW51IHtcbiAgICB3aWR0aDogcmVtLXB4KDMyMCk7XG4gIH1cblxuICAmX19jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgJGJvcmRlci1yYWRpdXM6IGNhbGMoXG4gICAgICB2YXIoLS1kcm9wZG93bi1ib3JkZXItcmFkaXVzKSAtIHZhcigtLWJvcmRlci13aWR0aC10aGluKVxuICAgICk7XG4gICAgJi0tc2VwYXJhdG9yID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICB9XG4gICAgJi0tc2VwYXJhdG9yID4gKjpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIH1cbiAgICAmLS1zZXBhcmF0b3IgPiAqICsgKixcbiAgICAvKiB3b3JrIGFyb3VuZCBzcGVjaWZpY2l0eSBpc3N1ZXMgd2l0aCBidXR0b24qL1xuICAgICYtLXNlcGFyYXRvciA+ICogKyAudHVpLWRyb3Bkb3duQnV0dG9uLFxuICAgICYtLXNlcGFyYXRvciA+ICogKyAudHVpLWRyb3Bkb3duQnV0dG9uOmhvdmVyLFxuICAgICYtLXNlcGFyYXRvciA+ICogKyAudHVpLWRyb3Bkb3duQnV0dG9uOmZvY3VzLFxuICAgICYtLXNlcGFyYXRvciA+ICogKyAudHVpLWRyb3Bkb3duQnV0dG9uOmFjdGl2ZSxcbiAgICAmLS1zZXBhcmF0b3IgPiAqICsgLnR1aS1kcm9wZG93bkJ1dHRvbjpmb2N1czphY3RpdmUge1xuICAgICAgYm9yZGVyLXRvcDogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIHNvbGlkXG4gICAgICAgIHZhcigtLWRyb3Bkb3duLW1lbnUtYm9yZGVyLWNvbG9yKTtcbiAgICB9XG4gIH1cblxuICAmLS1maXhlZEhlaWdodCB7XG4gICAgLnR1aS1kcm9wZG93bl9fY29udGVudCB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgLnR1aS1kcm9wZG93bl9fbWVudSB7XG4gICAgICBoZWlnaHQ6IDM4dmg7XG4gICAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuICAgIH1cbiAgfVxuXG4gICYtLWRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIC50dWktZHJvcGRvd25fX3RyaWdnZXIge1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZHJvcGRvd24vRHJvcGRvd25CdXR0b24udnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9YTc3ODQzMWMmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBvdmVycmlkZSA8YnV0dG9uPiBzdHlsZXMqL1xuLnR1aS1kcm9wZG93bkJ1dHRvbiB7XG4gIGNvbG9yOiB2YXIoLS1kcm9wZG93bi1pdGVtLXRleHQtY29sb3IpO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1czphY3RpdmUge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG4vKiB0dWktZHJvcGRvd25CdXR0b24gc3R5bGVzKi9cbi50dWktZHJvcGRvd25CdXR0b24ge1xuICBAaW5jbHVkZSBmb250KGJvZHkpO1xuICBwYWRkaW5nOiB2YXIoLS1nYXAtMikgdmFyKC0tZ2FwLTQpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBsaW5lLWhlaWdodDogMS40O1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogdmFyKC0tZHJvcGRvd24taXRlbS10ZXh0LWNvbG9yKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzOmFjdGl2ZSB7XG4gICAgY29sb3I6IHZhcigtLWRyb3Bkb3duLWl0ZW0tdGV4dC1jb2xvci1ob3Zlcik7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRyb3Bkb3duLWl0ZW0tYmctY29sb3ItaG92ZXIpO1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIGNvbG9yOiB2YXIoLS1kcm9wZG93bi1pdGVtLXRleHQtY29sb3ItZm9jdXMpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRyb3Bkb3duLWl0ZW0tYmctY29sb3ItZm9jdXMpO1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1kcm9wZG93bi1pdGVtLWZvY3VzLXJpbmctY29sb3IpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtM3B4O1xuICB9XG5cbiAgJi0tZGlzYWJsZWQsXG4gICYtLWRpc2FibGVkOmhvdmVyLFxuICAmLS1kaXNhYmxlZDpmb2N1cyB7XG4gICAgY29sb3I6IHZhcigtLWRyb3Bkb3duLWl0ZW0tdGV4dC1jb2xvci1kaXNhYmxlZCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgfVxuXG4gICYtLWRpc2FibGVkOmFjdGl2ZSB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAmLS1ub1BhZGRpbmcge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Ryb3Bkb3duL0Ryb3Bkb3duR3JvdXAudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MzhjYzBlZWYmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktZHJvcGRvd25Hcm91cCB7XG4gICZfX2hlYWRlciB7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTIpIHZhcigtLWdhcC00KTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gICZfX2l0ZW1zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAmID4gKiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWdhcC03KTtcbiAgICB9XG4gIH1cblxuICAmLS1zZXBhcmF0b3IgJl9faXRlbXMge1xuICAgICYgPiAqIHtcbiAgICAgIGJvcmRlci10b3A6IHZhcigtLWJvcmRlci13aWR0aC10aGluKSBzb2xpZFxuICAgICAgICB2YXIoLS1kcm9wZG93bi1tZW51LWJvcmRlci1jb2xvcik7XG4gICAgfVxuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Ryb3Bkb3duL0Ryb3Bkb3duSXRlbS52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0yMTgzYTNkMyZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLWRyb3Bkb3duSXRlbSB7XG4gIEBpbmNsdWRlIGZvbnQoYm9keSk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogdmFyKC0tZ2FwLTIpIHZhcigtLWdhcC00KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6IHZhcigtLWRyb3Bkb3duLWl0ZW0tdGV4dC1jb2xvcik7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6IHZhcigtLWRyb3Bkb3duLWl0ZW0tdGV4dC1jb2xvcik7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tZHJvcGRvd24taXRlbS10ZXh0LWNvbG9yLWhvdmVyKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZHJvcGRvd24taXRlbS1iZy1jb2xvci1ob3Zlcik7XG4gIH1cblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIGNvbG9yOiB2YXIoLS1kcm9wZG93bi1pdGVtLXRleHQtY29sb3ItZm9jdXMpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRyb3Bkb3duLWl0ZW0tYmctY29sb3ItZm9jdXMpO1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1kcm9wZG93bi1pdGVtLWZvY3VzLXJpbmctY29sb3IpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtM3B4O1xuICB9XG5cbiAgJi0tZGlzYWJsZWQsXG4gICYtLWRpc2FibGVkOmhvdmVyLFxuICAmLS1kaXNhYmxlZDpmb2N1cyB7XG4gICAgY29sb3I6IHZhcigtLWRyb3Bkb3duLWl0ZW0tdGV4dC1jb2xvci1kaXNhYmxlZCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgfVxuXG4gICYtLWRpc2FibGVkOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kcm9wZG93bi1pdGVtLWJnLWNvbG9yLWRpc2FibGVkLWZvY3VzKTtcbiAgfVxuXG4gICYtLWRpc2FibGVkOmFjdGl2ZSB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAmLS1ub1BhZGRpbmcge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAmLS1zZWxlY3RlZCB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc3RhdGUtYWN0aXZlKTtcblxuICAgICY6Zm9jdXMsXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXN0YXRlLWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgIG91dGxpbmUtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gICAgfVxuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZWRpdG9yL0VkaXRvckxvYWRpbmcudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9YTBjN2NlYTgmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLWVkaXRvckxvYWRpbmcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYmctY29sb3IpO1xuICBib3JkZXI6IHZhcigtLWJvcmRlci13aWR0aC10aGluKSBzb2xpZCB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1yYWRpdXMpO1xuXG4gIC8qIGlubmVyIG11c3QgYmUgc2VwYXJhdGUgZm9yIGludHJpbnNpYyBoZWlnaHQgdG8gd29yayovXG4gICZfX2lubmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAvKiBzaW1pbGFyIHRvIGRlZmF1bHQgV2VrYSBoZWlnaHQqL1xuICAgIGhlaWdodDogY2FsYygje3JlbS1weCg5NSl9KTtcbiAgfVxuXG4gICYtLWNvbXBhY3QgJl9faW5uZXIge1xuICAgIC8qIHNpbWlsYXIgdG8gZGVmYXVsdCBXZWthIGhlaWdodCB3aXRoIGNvbXBhY3Qgb24qL1xuICAgIGhlaWdodDogY2FsYygje3JlbS1weCg2Mil9KTtcbiAgfVxuXG4gICZfX3NwaW5uZXIge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2VkaXRvci9FZGl0b3JUZXh0YXJlYS52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD03YjM5MTRmYSZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLWVkaXRvclRleHRhcmVhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgLyogZXhwYW5kIHRvIGZ1bGwgd2lkdGggaWYgaW4gaG9yaXpvbnRhbCBmbGV4Ki9cbiAgd2lkdGg6IDEwMCU7XG5cbiAgLyogbmVlZGVkIGEgbW9yZSBzcGVjaWZpYyBzZWxlY3RvciB0byBvdmVycmlkZSB0dWktc2VsZWN0IHsgZmxleC1ncm93OiAxOyB9Ki9cbiAgPiA6Zmlyc3QtY2hpbGQge1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgfVxuXG4gICZfX3RleHRhcmVhIHtcbiAgICAvKiBzdHJldGNoIGNoaWxkIGlucHV0IHRvIGJlIGZ1bGwgaGVpZ2h0IGlmIHRoZSBlZGl0b3IgaXMgZ2l2ZW4gYSBzcGVjaWZpYyBoZWlnaHQqL1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtMSk7XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2VtYmVkcy9SZXNwb25zaXZlRW1iZWRJZnJhbWUudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NDc4OWY5MzMmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktcmVzcG9uc2l2ZUVtYmVkSWZyYW1lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb250ZW50OiAnJztcbiAgfVxuXG4gICZfX2l0ZW0ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlcjogMDtcbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Vycm9ycy9FcnJvck1vZGFsLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWE5MWY4MTBjJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1lcnJvck1vZGFsIHtcbiAgJl9fZGV0YWlsc1RvZ2dsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTQpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJl9fYnV0dG9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAmX19uYXZCdXR0b25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgQGluY2x1ZGUgdHVpLXN0YWNrLWhvcml6b250YWwodmFyKC0tZ2FwLTQpKTtcbiAgfVxuXG4gICZfX2RldGFpbHMge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC0zKTtcbiAgfVxuXG4gICZfX2xhYmVsIHtcbiAgICBAaW5jbHVkZSBmb250KGg0KTtcbiAgfVxuXG4gICZfX2NvbnRleHQge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWhpbnQpO1xuICB9XG5cbiAgJl9fZXh0cmFJbmZvIHtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gIH1cblxuICAmX19zdGFja1ByZSB7XG4gICAgbWFyZ2luOiB2YXIoLS1nYXAtMikgMCAwIDA7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTQpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Vycm9ycy9FcnJvclBhZ2VSZW5kZXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9YmYyNTZjZjAmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktZXJyb3JEaXNwbGF5IHtcbiAgcGFkZGluZzogdmFyKC0tZ2FwLTgpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICAmX19idXR0b25zIHtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1nYXAtNCk7XG4gIH1cblxuICAmX19idXR0b25zOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAmX19kZXRhaWxzVG9nZ2xlIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZfX2RldGFpbHNQcmUge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC0yKTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmc6IHZhcigtLWdhcC00KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Vycm9ycy9TZXNzaW9uRXhwaXJlZE1vZGFsLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTAzODc2YWNlJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1zZXNza2V5RXhwaXJlZCB7XG4gICZfX2J1dHRvbiB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTYpO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9maWxlL0ZpbGVDYXJkLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTA5NGNiMDMwJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLWZpbGVDYXJkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtaW4td2lkdGg6IDA7XG4gIHBhZGRpbmc6IHZhcigtLWdhcC0yKTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWQgdmFyKC0tY29sb3ItbmV1dHJhbC01KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2FyZC1ib3JkZXItcmFkaXVzKTtcbiAgaXNvbGF0aW9uOiBpc29sYXRlO1xuXG4gICY6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3Itc3RhdGUtaG92ZXIpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy0yKTtcbiAgfVxuXG4gICYtLWZvY3VzIHtcbiAgICBAaW5jbHVkZSB0dWktZm9jdXM7XG4gIH1cblxuICAmX19pbmZvIHtcbiAgICBmbGV4OiAxO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gICZfX2ZpbGVTaXplIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogdmFyKC0tZ2FwLTEpO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xuICAgIGZvbnQtc2l6ZTogZm9udC1zaXplLXB4KDExKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgJi1pY29uIHtcbiAgICAgIGZvbnQtc2l6ZTogZm9udC1zaXplLXB4KDEyKTtcbiAgICB9XG4gIH1cblxuICAmX19maWxlbmFtZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAmLFxuICAgICY6bGluayxcbiAgICAmOmhvdmVyLFxuICAgICY6YWN0aXZlLFxuICAgICY6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC03KTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgJi10ZXh0IHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgfVxuXG4gICAgJi1leHQge1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBpbnNldDogMDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgIH1cbiAgfVxuXG4gICZfX2ljb24ge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHdpZHRoOiByZW0tcHgoMzIpO1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tZ2FwLTIpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xuICB9XG5cbiAgJi0tZG93bmxvYWRhYmxlIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmX19hY3Rpb25zIHtcbiAgICB6LWluZGV4OiAxO1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ2FwLTQpO1xuICB9XG5cbiAgJl9fZG93bmxvYWQge1xuICAgIHotaW5kZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwLTQpO1xuICAgIHBhZGRpbmc6IHZhcigtLWdhcC0yKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ0bi1zbS1yYWRpdXMpO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSB0dWktZm9jdXM7XG4gICAgfVxuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZmlsdGVycy9CdXR0b25GaWx0ZXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9N2Y0Yzk1NWQmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLWJ1dHRvbkZpbHRlci50dWktYnV0dG9uRmlsdGVyIHtcbiAgJi0tc3RhY2tlZCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgPiAqIHtcbiAgICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC00KTtcbiAgICB9XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9maWx0ZXJzL0ZpbHRlckJhci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0xMTJhMDVmOCZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktZmlsdGVyQmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAmLS1oYXNUb3Age1xuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1nYXAtNCk7XG4gICAgYm9yZGVyLXRvcDogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIHNvbGlkIHZhcigtLWZpbHRlci1iYXItYm9yZGVyLWNvbG9yKTtcbiAgfVxuXG4gICYtLWhhc0JvdHRvbSB7XG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLWdhcC00KTtcbiAgICBib3JkZXItYm90dG9tOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWQgdmFyKC0tZmlsdGVyLWJhci1ib3JkZXItY29sb3IpO1xuICB9XG5cbiAgJl9faGVhZGluZyB7XG4gICAgQGluY2x1ZGUgc3Itb25seSgpO1xuICB9XG5cbiAgJl9fdG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgJi1idG4ge1xuICAgICAgbWFyZ2luOiB2YXIoLS1nYXAtMikgMDtcbiAgICB9XG4gIH1cblxuICAmX19maWx0ZXJzIHtcbiAgICAkc3RhY2tlZDogI3smfS0tc3RhY2tlZDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZ3JvdzogMTtcblxuICAgICYtbGVmdCxcbiAgICAmLXJpZ2h0IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXNocmluazogMDtcblxuICAgICAgPiAqIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXAtNCk7XG4gICAgICB9XG5cbiAgICAgID4gKiArICoge1xuICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwLTQpO1xuICAgICAgfVxuXG4gICAgICAjeyRzdGFja2VkfSAmIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuXG4gICAgICAgIC50dWktZm9ybUxhYmVsIHtcbiAgICAgICAgICBAaW5jbHVkZSBmb250KGJvZHktc20sIHZhcigtLWxhYmVsLXdlaWdodCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgPiAqIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLXJpZ2h0IHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblxuICAgICAgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItbGVmdDogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIHNvbGlkIHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XG4gICAgICB9XG5cbiAgICAgID4gKiB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ2FwLTQpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtLXN0YWNrZWQge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG4gIH1cblxuICAmX19yZXNldCB7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWdhcC00KTtcblxuICAgICYtc3RhY2tlZCB7XG4gICAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtNCk7XG4gICAgICBwYWRkaW5nLXRvcDogdmFyKC0tZ2FwLTQpO1xuICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLWdhcC00KTtcbiAgICB9XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZmlsdGVycy9GaWx0ZXJCYXJBcmVhLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWYyMTcwN2I2Jmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktZmlsdGVyQmFyQXJlYSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgJl9fYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAmLS1ob3Jpem9udGFsIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgfVxuXG4gICAgJi0taGFzVG9wIHtcbiAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1nYXAtNCk7XG4gICAgICBib3JkZXItdG9wOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWQgdmFyKC0tZmlsdGVyLWJhci1ib3JkZXItY29sb3IpO1xuICAgIH1cblxuICAgICYtLWhhc0JvdHRvbSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tZ2FwLTQpO1xuICAgICAgYm9yZGVyLWJvdHRvbTogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIHNvbGlkXG4gICAgICAgIHZhcigtLWZpbHRlci1iYXItYm9yZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmLXRvZ2dsZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgbWFyZ2luOiBhdXRvO1xuICAgIH1cblxuICAgICYtcmVzZXRCdXR0b24ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTQpO1xuICAgIH1cblxuICAgICYtc3RhY2tlZEZpbHRlcnMge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBnYXA6IHZhcigtLWdhcC00KTtcbiAgICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC00KTtcbiAgICAgIHBhZGRpbmc6IDAgdmFyKC0tZ2FwLTQpO1xuICAgIH1cblxuICAgICYtYmFyRmlsdGVycyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZ2FwOiB2YXIoLS1nYXAtNCk7XG4gICAgfVxuXG4gICAgJi1leHRyYUZpbHRlcnMge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1mb3JtLWlucHV0LWhlaWdodCk7XG4gICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZmlsdGVycy9GaWx0ZXJCYXJBcmVhUG9wb3Zlci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0yYjA2YTcyMCZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1maWx0ZXJCYXJBcmVhUG9wb3ZlciB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgJl9fY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogdmFyKC0tZ2FwLTQpO1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tZ2FwLTEpIHZhcigtLWdhcC0xKSB2YXIoLS1nYXAtMSk7XG4gIH1cblxuICAmX19idXR0b25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1nYXAtNCk7XG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLWdhcC0xKTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBib3JkZXItdG9wOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWQgdmFyKC0tZmlsdGVyLWJhci1ib3JkZXItY29sb3IpO1xuICAgICAgY29udGVudDogJyc7XG4gICAgfVxuXG4gICAgJi1yZXNldCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgcGFkZGluZzogdmFyKC0tZ2FwLTUpIHZhcigtLWdhcC0xKSAwO1xuICAgIH1cbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2ZpbHRlcnMvRmlsdGVyU2lkZVBhbmVsLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWJiYzgwYmRjJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1maWx0ZXJTaWRlUGFuZWwge1xuICBkaXNwbGF5OiBibG9jaztcblxuICAmX19oZWFkZXIge1xuICAgIEBpbmNsdWRlIGZvbnQoaDMpO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBtYXJnaW46IDAgdmFyKC0tZ2FwLTIpIDAgMDtcbiAgfVxuXG4gICZfX2hlYWRpbmcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLWdhcC0yKTtcbiAgICBib3JkZXItYm90dG9tOiB2YXIoLS1ib3JkZXItd2lkdGgtbm9ybWFsKSBzb2xpZCB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xuICB9XG5cbiAgJl9faW5zdHJ1Y3Rpb25zLFxuICAmX19zdGF0dXMge1xuICAgIEBpbmNsdWRlIHNyLW9ubHkoKTtcbiAgfVxuXG4gIC50dWktZmlsdGVyU2lkZVBhbmVsX19jbGVhckJ0biB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cbn1cblxuLnR1aS1maWx0ZXJTaWRlUGFuZWwudHVpLWZpbHRlclNpZGVQYW5lbCB7XG4gICYgPiAqICsgKiB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTQpO1xuICB9XG5cbiAgLnR1aS1maWVsZHNldF9fbGVnZW5kLFxuICAudHVpLWZvcm1MYWJlbCB7XG4gICAgQGluY2x1ZGUgZm9udChib2R5LXNtLCB2YXIoLS1sYWJlbC13ZWlnaHQpKTtcbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9maWx0ZXJzL011bHRpU2VsZWN0Q2hlY2tib3hGaWx0ZXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NmM5NDM3ZTYmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1tdWx0aVNlbGVjdENoZWNrYm94RmlsdGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1nYXAtMik7XG5cbiAgJl9faXRlbXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZ2FwOiB2YXIoLS1nYXAtNCkgMDtcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkdHVpLXNjcmVlbi14cykge1xuICAudHVpLW11bHRpU2VsZWN0Q2hlY2tib3hGaWx0ZXIge1xuICAgICZfX2l0ZW1zIHtcbiAgICAgICYtLWhhc0NvbHVtbnMge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGdhcDogdmFyKC0tZ2FwLTQpO1xuICAgICAgfVxuXG4gICAgICAmLWl0ZW0ge1xuICAgICAgICAmLS10d29Db2x1bW4ge1xuICAgICAgICAgIHdpZHRoOiA0NyU7XG4gICAgICAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZmlsdGVycy9NdWx0aVNlbGVjdEZpbHRlci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1hYzQyMDQyYyZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1tdWx0aVNlbGVjdEZpbHRlciB7XG4gICYgPiAqICsgKiB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTEpO1xuICB9XG5cbiAgJl9fY29sbGFwc2libGUge1xuICAgIG1hcmdpbjogMDtcblxuICAgICYtY29sbGFwc2VkIHtcbiAgICAgICYgPiAqIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTEpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtdG9nZ2xlIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXAtMSk7XG4gICAgfVxuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZmlsdGVycy9TZWFyY2hGaWx0ZXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NjIxOWI4NTMmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLXNlYXJjaEZpbHRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBpbnB1dC50dWktZm9ybUlucHV0IHtcbiAgICBmbGV4LWdyb3c6IDA7XG4gIH1cblxuICAudHVpLWZvcm1MYWJlbCB7XG4gICAgbWFyZ2luOiBhdXRvIHZhcigtLWdhcC0zKSBhdXRvIDA7XG4gIH1cblxuICAmX19ncm91cCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogYXV0bztcblxuICAgICYtLXN0YWNrZWQge1xuICAgICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTEpO1xuICAgIH1cblxuICAgICYtaWNvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiB2YXIoLS1nYXAtMik7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGNvbG9yOiB2YXIoLS1maWx0ZXItc2VhcmNoLWljb24tY29sb3IpO1xuXG4gICAgICAuZmEtc2VhcmNoIHtcbiAgICAgICAgbWFyZ2luOiBhdXRvIDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi1jbGVhckNvbnRhaW5lciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAmX19zZWFyY2gge1xuICAgIC8qIGRpc2FibGUgdGhlIGRlZmF1bHQgY2xlYXIgKHgpIGFjdGlvbiBpbiBJRSovXG4gICAgJjo6LW1zLWNsZWFyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJl9fcmVtb3ZlSWNvbiB7XG4gICAgY29sb3I6IHZhcigtLWZpbHRlci1zZWFyY2gtY2xlYXItaWNvbi1jb2xvcik7XG4gIH1cblxuICAmLS1zdGFja2VkIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuXG4gICAgLnR1aS1mb3JtTGFiZWwge1xuICAgICAgbWFyZ2luOiB2YXIoLS1nYXAtMSkgMDtcbiAgICB9XG4gIH1cblxuICAmLS1iYXJGaWx0ZXIge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1nYXAtMSk7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgbWFyZ2luLXRvcDogYXV0bztcbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2ZpbHRlcnMvU2VsZWN0RmlsdGVyLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTE2OWIyMmIyJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1zZWxlY3RGaWx0ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgLnR1aS1mb3JtTGFiZWwge1xuICAgIG1hcmdpbjogYXV0byB2YXIoLS1nYXAtMykgYXV0byAwO1xuICB9XG5cbiAgLnR1aS1zZWxlY3Qge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1heC13aWR0aDogMjUwcHg7XG4gIH1cblxuICAmLS1zdGFja2VkIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuXG4gICAgLnR1aS1mb3JtTGFiZWwge1xuICAgICAgbWFyZ2luOiB2YXIoLS1nYXAtMSkgMCAwO1xuICAgIH1cblxuICAgIC50dWktc2VsZWN0IHtcbiAgICAgIG1heC13aWR0aDogaW5pdGlhbDtcbiAgICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC0xKTtcbiAgICB9XG4gIH1cblxuICAmLS1iYXJGaWx0ZXIge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1nYXAtMSk7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgbWF4LXdpZHRoOiAyNTBweDtcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICB9XG5cbiAgJi0tYmFyRmlsdGVyJi0tc3RhY2tlZCB7XG4gICAgbWF4LXdpZHRoOiBpbml0aWFsO1xuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2ZpbHRlcnMvU29ydEJhci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD00MGRjNGI1YyZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLXNvcnRCYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBnYXA6IHZhcigtLWdhcC0zKSB2YXIoLS1nYXAtNik7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAmX19zdGFydCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IHZhcigtLWdhcC0yKTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9mb3JtL0NoZWNrYm94LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTY2NTY5ZjdmJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG46cm9vdCB7XG4gIC8qIFNpemUgb2YgY2hlY2tib3gqL1xuICAtLWZvcm0tY2hlY2tib3gtc2l6ZTogdmFyKC0tZm9ybS1pbnB1dC1mb250LXNpemUpO1xuICAtLWZvcm0tY2hlY2tib3gtc2l6ZS1sYXJnZTogY2FsYyh2YXIoLS1mb3JtLWlucHV0LWZvbnQtc2l6ZSkgKiAxLjMzMyk7XG4gIC0tY2hlY2tib3gtY2hlY2std2lkdGg6ICN7cmVtLXB4KDIpfTtcbn1cblxuLnR1aS1jaGVja2JveCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgbWluLWhlaWdodDogY2FsYyh2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUpICsgMnB4KTtcblxuICAmLS1sYXJnZSB7XG4gICAgbWluLWhlaWdodDogY2FsYyh2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUtbGFyZ2UpICsgMnB4KTtcbiAgfVxuXG4gICZfX2lucHV0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gICZfX2xhYmVsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUpICogMS41KTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9ybS1pbnB1dC1mb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG5cbiAgICAudHVpLWNoZWNrYm94LS1sYXJnZSAmIHtcbiAgICAgIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUtbGFyZ2UpICogMS41KTtcbiAgICB9XG5cbiAgICAmLS1ub09mZnNldCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZSk7XG4gICAgICAudHVpLWNoZWNrYm94LS1sYXJnZSAmIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUtbGFyZ2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogdmFyKC0tZm9ybS1jaGVja2JveC1zaXplKTtcbiAgICAgIGhlaWdodDogdmFyKC0tZm9ybS1jaGVja2JveC1zaXplKTtcbiAgICAgIG1hcmdpbi10b3A6IDFweDtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWZvcm0tY2hlY2tib3gtYmctY29sb3IpO1xuICAgICAgYm9yZGVyOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZFxuICAgICAgICB2YXIoLS1mb3JtLWNoZWNrYm94LWJvcmRlci1jb2xvcik7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1yYWRpdXMpO1xuICAgICAgdHJhbnNpdGlvbjogYm9yZGVyIHZhcigtLXRyYW5zaXRpb24tZm9ybS1mdW5jdGlvbilcbiAgICAgICAgICB2YXIoLS10cmFuc2l0aW9uLWZvcm0tZHVyYXRpb24pLFxuICAgICAgICBib3gtc2hhZG93IHZhcigtLXRyYW5zaXRpb24tZm9ybS1mdW5jdGlvbilcbiAgICAgICAgICB2YXIoLS10cmFuc2l0aW9uLWZvcm0tZHVyYXRpb24pO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgLnR1aS1jaGVja2JveC0tbGFyZ2UgJiB7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUtbGFyZ2UpO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZS1sYXJnZSk7XG4gICAgICB9XG5cbiAgICAgIC50dWktY29udGV4dEludmFsaWQgJiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1ub25lKSwgdmFyKC0tZm9ybS1pbnB1dC1zaGFkb3ctaW52YWxpZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9faW5wdXQ6ZGlzYWJsZWQgfiAmX19sYWJlbCB7XG4gICAgY29sb3I6IHZhcigtLWZvcm0taW5wdXQtdGV4dC1jb2xvci1kaXNhYmxlZCk7XG4gIH1cblxuICAmX19pbnB1dDpkaXNhYmxlZCB+ICZfX2xhYmVsLS1kaXNhYmxlZFJlYWRhYmxlIHtcbiAgICBjb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yKTtcbiAgfVxuXG4gICZfX2lucHV0OmZvY3VzLXZpc2libGUgfiAmX19sYWJlbDo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSB0dWktZm9jdXMoKTtcbiAgICBib3JkZXI6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXNpemUpIHNvbGlkXG4gICAgICB2YXIoLS1mb3JtLWNoZWNrYm94LWJvcmRlci1jb2xvci1mb2N1cyk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tZm9ybS1pbnB1dC1zaGFkb3ctZm9jdXMpO1xuXG4gICAgLnR1aS1jb250ZXh0SW52YWxpZCAmIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XG4gICAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1pbnZhbGlkKTtcbiAgICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1ub25lKSwgdmFyKC0tZm9ybS1pbnB1dC1zaGFkb3ctaW52YWxpZC1mb2N1cyk7XG4gICAgfVxuICB9XG5cbiAgJl9faW5wdXQ6ZGlzYWJsZWQ6Y2hlY2tlZCB+ICZfX2xhYmVsOjpiZWZvcmUsXG4gICZfX2lucHV0OmRpc2FibGVkIH4gJl9fbGFiZWw6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1jaGVja2JveC1iZy1jb2xvci1kaXNhYmxlZCk7XG4gICAgYm9yZGVyOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0tY2hlY2tib3gtYm9yZGVyLWNvbG9yLWRpc2FibGVkKTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG5cbiAgJl9faW5wdXQgfiAmX19sYWJlbDo6YWZ0ZXIge1xuICAgIC8qIGNvbnN0cnVjdCBhIGNoZWNrIG1hcmsgb3V0IG9mIHR3byBzaWRlcyBvZiBhIHJvdGF0ZWQgYm94Ki9cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBjYWxjKDAuMzUgKiB2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUpKTtcbiAgICBsZWZ0OiBjYWxjKDAuMjEgKiB2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUpKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogY2FsYygwLjYgKiB2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUpKTtcbiAgICBoZWlnaHQ6IGNhbGMoMC4zNSAqIHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZSkpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1jaGVja2JveC1jaGVjay1jb2xvcik7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAvKiFydGw6aWdub3JlKi9cbiAgICBib3JkZXItd2lkdGg6IDAgMCB2YXIoLS1jaGVja2JveC1jaGVjay13aWR0aCkgdmFyKC0tY2hlY2tib3gtY2hlY2std2lkdGgpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZm9ybS1mdW5jdGlvbilcbiAgICAgIHZhcigtLXRyYW5zaXRpb24tZm9ybS1kdXJhdGlvbik7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAudHVpLWNoZWNrYm94LS1sYXJnZSAmIHtcbiAgICAgIHRvcDogY2FsYygwLjMgKiB2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUtbGFyZ2UpKTtcbiAgICAgIGxlZnQ6IGNhbGMoMC4yMiAqIHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZS1sYXJnZSkpO1xuICAgICAgd2lkdGg6IGNhbGMoMC42ICogdmFyKC0tZm9ybS1jaGVja2JveC1zaXplLWxhcmdlKSk7XG4gICAgICBoZWlnaHQ6IGNhbGMoMC4zMiAqIHZhcigtLWZvcm0tY2hlY2tib3gtc2l6ZS1sYXJnZSkpO1xuICAgIH1cbiAgfVxuXG4gICZfX2lucHV0OmRpc2FibGVkOmNoZWNrZWQgfiAmX19sYWJlbDo6YWZ0ZXIsXG4gICZfX2lucHV0OmRpc2FibGVkIH4gJl9fbGFiZWw6OmFmdGVyIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0tY2hlY2tib3gtY2hlY2stY29sb3ItZGlzYWJsZWQpO1xuICB9XG5cbiAgJl9faW5wdXQ6Y2hlY2tlZCB+ICZfX2xhYmVsOjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWZvcm0tY2hlY2tib3gtYmctY29sb3ItYWN0aXZlKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0tY2hlY2tib3gtYm9yZGVyLWNvbG9yLWFjdGl2ZSk7XG4gIH1cblxuICAmX19pbnB1dDpjaGVja2VkIH4gJl9fbGFiZWw6OmFmdGVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCB7XG4gIC50dWktY2hlY2tib3gge1xuICAgICZfX2lucHV0OmNoZWNrZWQgfiAmX19sYWJlbDo6YmVmb3JlIHtcbiAgICAgIC13ZWJraXQtcHJpbnQtY29sb3ItYWRqdXN0OiBleGFjdDtcbiAgICAgICAgICAgICAgcHJpbnQtY29sb3ItYWRqdXN0OiBleGFjdDtcbiAgICB9XG4gIH1cblxuICAvKiBJRTExICYgRWRnZSBzdXBwb3J0Ki9cbiAgLmllLFxuICAubXNlZGdlIHtcbiAgICAudHVpLWNoZWNrYm94IHtcbiAgICAgICZfX2lucHV0OmNoZWNrZWQgfiAudHVpLWNoZWNrYm94X19sYWJlbDo6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCB2YXIoLS1mb3JtLWNoZWNrYm94LWJnLWNvbG9yLWFjdGl2ZSk7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCB2YXIoLS1mb3JtLWNoZWNrYm94LXNpemUpIDAgMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vQ2hlY2tib3hCdXR0b24udnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MDE3ZTMwOTEmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktY2hlY2tib3hCdXR0b24ge1xuICAkYmxvY2s6ICN7Jn07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcblxuICAmX19pbnB1dCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAmX19sYWJlbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IHZhcigtLWdhcC0xKTtcbiAgICBjb2xvcjogdmFyKC0tYnRuLWNoZWNrYm94LXRleHQtY29sb3IpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogdmFyKC0tYnRuLWNoZWNrYm94LXRleHQtY29sb3ItZm9jdXMpO1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tYnRuLWNoZWNrYm94LWJnLWNvbG9yLWhvdmVyKTtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZTpob3ZlcixcbiAgICAmOmFjdGl2ZSB7XG4gICAgICBjb2xvcjogdmFyKC0tYnRuLWNoZWNrYm94LXRleHQtY29sb3ItYWN0aXZlKTtcbiAgICB9XG4gIH1cblxuICAmX19kZXNlbGVjdEljb24ge1xuICAgIG1hcmdpbjogYXV0byAwIGF1dG8gYXV0bztcbiAgICBjb2xvcjogdmFyKC0tYnRuLWNoZWNrYm94LXRleHQtY29sb3Itc2VsZWN0ZWQpO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gICZfX2lucHV0OmNoZWNrZWQgfiAmX19sYWJlbCB7XG4gICAgY29sb3I6IHZhcigtLWJ0bi1jaGVja2JveC10ZXh0LWNvbG9yLXNlbGVjdGVkKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tY2hlY2tib3gtYmctY29sb3Itc2VsZWN0ZWQpO1xuXG4gICAgI3skYmxvY2t9X19kZXNlbGVjdEljb24ge1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1idG4tY2hlY2tib3gtdGV4dC1jb2xvci1mb2N1cyk7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tY2hlY2tib3gtYmctY29sb3ItaG92ZXIpO1xuXG4gICAgICAjeyRibG9ja31fX2Rlc2VsZWN0SWNvbiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1idG4tY2hlY2tib3gtdGV4dC1jb2xvci1mb2N1cyk7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjphY3RpdmU6aG92ZXIsXG4gICAgJjphY3RpdmUge1xuICAgICAgY29sb3I6IHZhcigtLWJ0bi1jaGVja2JveC10ZXh0LWNvbG9yLWFjdGl2ZSk7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tY2hlY2tib3gtYmctY29sb3ItaG92ZXIpO1xuXG4gICAgICAjeyRibG9ja31fX2Rlc2VsZWN0SWNvbiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1idG4tY2hlY2tib3gtdGV4dC1jb2xvci1hY3RpdmUpO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2lucHV0OmZvY3VzLXZpc2libGUgfiAmX19sYWJlbCB7XG4gICAgQGluY2x1ZGUgdHVpLWZvY3VzKCk7XG4gIH1cblxuICAmX19pbnB1dDpmb2N1cy12aXNpYmxlOmNoZWNrZWQgfiAmX19sYWJlbCB7XG4gICAgQGluY2x1ZGUgdHVpLWZvY3VzKCk7XG5cbiAgICAjeyRibG9ja31fX2Rlc2VsZWN0SWNvbiB7XG4gICAgICBjb2xvcjogdmFyKC0tYnRuLWNoZWNrYm94LXRleHQtY29sb3Itc2VsZWN0ZWQpO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZm9ybS9DaGVja2JveEdyb3VwLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTA5ZmY3Y2YwJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbjpyb290IHtcbiAgLS1mb3JtLWNoZWNrYm94LWdyb3VwLXBhZGRpbmc6IHZhcigtLWdhcC0yKTtcbiAgLS1mb3JtLWNoZWNrYm94LWdyb3VwLXNwYWNpbmctdjogdmFyKC0tZ2FwLTQpO1xuICAtLWZvcm0tY2hlY2tib3gtZ3JvdXAtc3BhY2luZy1oOiB2YXIoLS1nYXAtNCk7XG59XG5cbi50dWktY2hlY2tib3hHcm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmc6IHZhcigtLWZvcm0tY2hlY2tib3gtZ3JvdXAtcGFkZGluZykgMDtcblxuICBAaW5jbHVkZSB0dWktc3RhY2stdmVydGljYWwodmFyKC0tZm9ybS1jaGVja2JveC1ncm91cC1zcGFjaW5nLXYpKTtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHR1aS1zY3JlZW4tc20pIHtcbiAgLnR1aS1jaGVja2JveEdyb3VwLS1ob3Jpem9udGFsIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBsZW5ndGgtemVyby1uby11bml0Ki9cbiAgICAvKiBwcmV0dGllci1pZ25vcmUqL1xuICAgIG1hcmdpbi10b3A6IGNhbGMoMHB4IC0gdmFyKC0tZm9ybS1jaGVja2JveC1ncm91cC1zcGFjaW5nLXYpICsgdmFyKC0tZm9ybS1jaGVja2JveC1ncm91cC1wYWRkaW5nKSk7XG4gICAgcGFkZGluZy10b3A6IDA7XG5cbiAgICAmID4gKiB7XG4gICAgICBtYXJnaW4tdG9wOiB2YXIoLS1mb3JtLWNoZWNrYm94LWdyb3VwLXNwYWNpbmctdik7XG4gICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWZvcm0tY2hlY2tib3gtZ3JvdXAtc3BhY2luZy1oKTtcbiAgICB9XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9mb3JtL0RhdGVTZWxlY3Rvci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD02MjA3NzMyZSZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktZGF0ZVNlbGVjdG9yIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiBjb2x1bW47XG4gIGdhcDogdmFyKC0tZ2FwLTIpO1xuICBtYXgtd2lkdGg6IHJlbS1weCgzNTApO1xuICBmb250LXNpemU6IHZhcigtLWZvcm0taW5wdXQtZm9udC1zaXplKTtcblxuICAmX19kYXRlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogdmFyKC0tZ2FwLTIpO1xuXG4gICAgLyogc2V0IHJhdGlvIGFuZCBpbnRyaW5zaWMgd2lkdGggZm9yIGVhY2ggZmllbGQqL1xuXG4gICAgJi1kYXkge1xuICAgICAgZmxleDogNjtcbiAgICAgIHdpZHRoOiBjYWxjKHZhcigtLWdhcC0xMCkgKyAxLjVlbSk7XG4gICAgfVxuXG4gICAgJi1tb250aCB7XG4gICAgICBmbGV4OiAxMjtcbiAgICAgIHdpZHRoOiBjYWxjKHZhcigtLWdhcC0xMCkgKyA2ZW0pO1xuICAgIH1cblxuICAgICYteWVhciB7XG4gICAgICBmbGV4OiA4O1xuICAgICAgd2lkdGg6IGNhbGModmFyKC0tZ2FwLTEwKSArIDNlbSk7XG4gICAgfVxuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vRmllbGRFcnJvci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0yYjNjZWIyYyZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLWZvcm1GaWVsZEVycm9yIHtcbiAgLyogb2Zmc2V0IHRoZSBleHRyYSByZWQgc2hhZG93IG9uIGludmFsaWQgZWxlbWVudHMgKyB3ZSB3YW50IHRoZSBlcnJvciovXG4gIC8qIG1lc3NhZ2UgdG8gYmUgc3BhY2VkIDFweCBhd2F5Ki9cbiAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1mb3JtLWlucHV0LWludmFsaWQtc2hhZG93LXNpemUpICsgMXB4KTtcblxuICAmX19pbm5lciB7XG4gICAgQGluY2x1ZGUgZm9udChib2R5LXNtKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IHJlbS1weCg2KSByZW0tcHgoOCk7XG4gICAgY29sb3I6IHZhcigtLWZvcm0tZXJyb3ItdGV4dC1jb2xvcik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1lcnJvci1iZy1jb2xvcik7XG4gIH1cblxuICAmX19kaXNtaXNzIHtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwLTEpO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgb3BhY2l0eTogMC43O1xuXG4gICAgJjpob3ZlcjphY3RpdmUsXG4gICAgJjphY3RpdmUsXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmLWljb24ge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAtMXB4O1xuICAgICAgQGluY2x1ZGUgZm9udChib2R5LXNtKTtcbiAgICB9XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZm9ybS9GaWVsZEdyb3VwLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTdlNTg5YjYxJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktZm9ybUZpZWxkR3JvdXAge1xuICBmbGV4LWdyb3c6IDE7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9mb3JtL0ZpZWxkc2V0LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTM4ZGRlYjM4Jmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLWZpZWxkc2V0IHtcbiAgbWluLXdpZHRoOiAwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcblxuICAmX19sZWdlbmQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGNvbG9yOiB2YXIoLS1mb3JtLXRleHQtY29sb3IpO1xuICAgIGZvbnQtc2l6ZTogZm9udC1zaXplLXB4KDE4KTtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cblxuICAmLS1oaWRkZW4ge1xuICAgIEBpbmNsdWRlIHNyLW9ubHkoKTtcbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZm9ybS9GaWx0ZXJGaWVsZHNldC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD01MzAzYWEwOCZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1maWx0ZXJGaWVsZHNldCB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG5cbiAgJl9fY29udGVudCB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTIpO1xuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vRm9ybS52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD02M2JmY2MwMCZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLWZvcm0ge1xuICBAaW5jbHVkZSB0dWktc3RhY2stdmVydGljYWwodmFyKC0tZ2FwLTgpKTtcbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZm9ybS9Gb3JtUm93LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTZlMjUwNmVhJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktZm9ybVJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogY29sdW1uO1xuXG4gICYgPiAmX19kZXNjIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgcGFkZGluZy10b3A6IHZhcigtLWdhcC0xKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1nYXAtMik7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICB9XG5cbiAgJiA+ICZfX2FjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXgtd2lkdGg6IHJlbS1weCg3MTIpO1xuXG4gICAgJi0taXNTdGFja2VkIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICBAaW5jbHVkZSB0dWktc3RhY2stdmVydGljYWwodmFyKC0tZ2FwLTIpKTtcbiAgICB9XG4gIH1cblxuICAmLS1mdWxsV2lkdGggPiAmX19hY3Rpb24ge1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxufVxuXG4udHVpLWZvcm0tLXZlcnRpY2FsLFxuLnR1aS1mb3JtUm93LS12ZXJ0aWNhbCxcbi50dWktZm9ybVJvdy0tZW1wdHlEZXNjIHtcbiAgJiA+IC50dWktZm9ybVJvd19fZGVzYyB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4udHVpLWZvcm0tLXZlcnRpY2FsLFxuLnR1aS1mb3JtUm93LS12ZXJ0aWNhbCB7XG4gIC50dWktZm9ybVJvd19fYWN0aW9uIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtMSk7XG4gIH1cbn1cblxuLnR1aS1mb3JtUm93LS1lbXB0eURlc2Mge1xuICAudHVpLWZvcm1Sb3dfX2FjdGlvbiB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuXG4udHVpLWZvcm0tLWhvcml6b250YWwgLnR1aS1mb3JtUm93Om5vdCgudHVpLWZvcm1Sb3ctLXZlcnRpY2FsKSB7XG4gIEBpbmNsdWRlIHR1aS1sYXlvdXQtc2lkZWJhcihcbiAgICAkc2lkZS13aWR0aDogcmVtLXB4KDIyMCksXG4gICAgJGNvbnRlbnQtbWluLXdpZHRoOiA2MCUsXG4gICAgJGd1dHRlcjogdmFyKC0tZ2FwLTEpLFxuICAgICRzaWRlYmFyLXNlbGVjdG9yOiAnLnR1aS1mb3JtUm93X19kZXNjJyxcbiAgICAkY29udGVudC1zZWxlY3RvcjogJy50dWktZm9ybVJvd19fYWN0aW9uJ1xuICApO1xuXG4gICYgPiAudHVpLWZvcm1Sb3dfX2Rlc2Mge1xuICAgIHBhZGRpbmctdG9wOiB0dWktaW5wdXQtdi1wYWRkaW5nLWJvcmRlcmxlc3MoKTtcbiAgfVxuXG4gICYudHVpLWZvcm1Sb3ctLWNvbnRlbnRUeXBlLW90aGVyID4gLnR1aS1mb3JtUm93X19hY3Rpb24ge1xuICAgIHBhZGRpbmctdG9wOiB0dWktaW5wdXQtdi1wYWRkaW5nLWJvcmRlcmxlc3MoKTtcbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vRm9ybVJvd0RlZmF1bHRzLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTU2Njk2MjVjJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1mb3JtUm93X19kZWZhdWx0cyB7XG4gIGNvbG9yOiB2YXIoLS1mb3JtLWRlZmF1bHRzLXRleHQtY29sb3IpO1xuICBAaW5jbHVkZSBmb250KGJvZHktc20pO1xufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZm9ybS9Gb3JtUm93RGV0YWlscy52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD01OTNkZTcyOCZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1mb3JtUm93X19kZXRhaWxzIHtcbiAgY29sb3I6IHZhcigtLWZvcm0tZGV0YWlscy10ZXh0LWNvbG9yKTtcbiAgQGluY2x1ZGUgZm9udChib2R5LXNtKTtcbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9mb3JtL0Zvcm1Sb3dTdGFjay52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0yN2RhYzAyNCZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktZm9ybVJvd1N0YWNrIHtcbiAgQGluY2x1ZGUgdHVpLXN0YWNrLXZlcnRpY2FsKHZhcigtLWdhcC04KSk7XG5cbiAgJi0tc3BhY2luZyB7XG4gICAgJi1sYXJnZSB7XG4gICAgICBAaW5jbHVkZSB0dWktc3RhY2stdmVydGljYWwodmFyKC0tZ2FwLTgpKTtcbiAgICB9XG4gICAgJi1tZWRpdW0ge1xuICAgICAgQGluY2x1ZGUgdHVpLXN0YWNrLXZlcnRpY2FsKHZhcigtLWdhcC02KSk7XG4gICAgfVxuICAgICYtc21hbGwge1xuICAgICAgQGluY2x1ZGUgdHVpLXN0YWNrLXZlcnRpY2FsKHZhcigtLWdhcC00KSk7XG4gICAgfVxuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9mb3JtL0hlbHBJY29uLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTZjMGRkNzk2Jmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLWZvcm1IZWxwSWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAmX19pY29uIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gIH1cblxuICAmX19kZXNjIHtcbiAgICAvKiBhcmlhLWRlc2NyaWJlZGJ5IHN0aWxsIHdvcmtzIGV2ZW4gaWYgdGhlIHRhcmdldCBlbGVtZW50IGlzIGRpc3BsYXk6IG5vbmUqL1xuICAgIC8qIGh0dHBzOi8vZGV2ZWxvcGVyLnBhY2llbGxvZ3JvdXAuY29tL2Jsb2cvMjAxNS8wNS9zaG9ydC1ub3RlLW9uLWFyaWEtbGFiZWxsZWRieS1hbmQtYXJpYS1kZXNjcmliZWRieS8qL1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vSW1hZ2VVcGxvYWQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9M2RkNjhhYjAmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktZm9ybUltYWdlVXBsb2FkIHtcbiAgY29sb3I6IHZhcigtLWZvcm0taW5wdXQtdGV4dC1jb2xvcik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9ybS1pbnB1dC1mb250LXNpemUpO1xuICBsaW5lLWhlaWdodDogMTtcbiAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1pbnB1dC1iZy1jb2xvcik7XG5cbiAgJl9fYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItdG9wOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZDtcbiAgICBib3JkZXItcmlnaHQ6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXNpemUpIHNvbGlkO1xuICAgIGJvcmRlci1sZWZ0OiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZDtcbiAgfVxuICAmX19kZWxldGVCdXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG4gICZfX2ZpbGVhcmVhIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMik7XG4gICAgYm9yZGVyOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yKTtcblxuICAgIC50dWktZm9ybUltYWdlVXBsb2FkLS1oaWdobGlnaHQgJiB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1mb3JtLWlucHV0LWJnLWNvbG9yLWZvY3VzKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItZm9jdXMpO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IHZhcigtLWZvcm0taW5wdXQtc2hhZG93LWZvY3VzKTtcbiAgICB9XG5cbiAgICAudHVpLWZvcm1JbWFnZVVwbG9hZC0taXNFcnJvciAmIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XG4gICAgICBib3gtc2hhZG93OiB2YXIoLS1mb3JtLWlucHV0LXNoYWRvdy1pbnZhbGlkKTtcbiAgICB9XG4gIH1cbiAgJl9fZGlzcGxheSB7XG4gICAgLnR1aS1yZXNwb25zaXZlSW1hZ2Uge1xuICAgICAgbWF4LWhlaWdodDogcmVtLXB4KDI1MCk7XG4gICAgfVxuICB9XG4gICZfX3Byb2dyZXNzIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMik7XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vSW5wdXQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MWIzOTY1ODQmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktZm9ybUlucHV0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXgtZ3JvdzogMTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMDtcbiAgaGVpZ2h0OiB2YXIoLS1mb3JtLWlucHV0LWhlaWdodCk7XG4gIHBhZGRpbmc6IHR1aS1pbnB1dC12LXBhZGRpbmcoKSB2YXIoLS1nYXAtMyk7XG4gIGNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LXRleHQtY29sb3IpO1xuICBmb250LXNpemU6IHZhcigtLWZvcm0taW5wdXQtZm9udC1zaXplKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWZvcm0taW5wdXQtbGluZS1oZWlnaHQpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1mb3JtLWlucHV0LWJnLWNvbG9yKTtcbiAgYm9yZGVyOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZCB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXJhZGl1cyk7XG5cbiAgJlt0eXBlPSdzZWFyY2gnXSB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItcmFkaXVzKTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgQGluY2x1ZGUgdHVpLWNoYXItbGVuZ3RoLWNsYXNzZXMoKTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IHZhcigtLWZvcm0taW5wdXQtdGV4dC1wbGFjZWhvbGRlci1jb2xvcik7XG4gIH1cblxuICAudHVpLWNvbnRleHRJbnZhbGlkICYge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tZm9ybS1pbnB1dC1zaGFkb3ctaW52YWxpZCk7XG4gIH1cblxuICAmLS1zaXplLWxhcmdlIHtcbiAgICBoZWlnaHQ6IHZhcigtLWZvcm0taW5wdXQtaGVpZ2h0LWxhcmdlKTtcbiAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICBwYWRkaW5nOiBjYWxjKCh2YXIoLS1mb3JtLWlucHV0LWhlaWdodC1sYXJnZSkgLSAxZW0gLSAodmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZSkgKiAyKSkgLyAyKTtcbiAgICBmb250LXNpemU6IHZhcigtLWZvcm0taW5wdXQtZm9udC1zaXplLWxnKTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWZvcm0taW5wdXQtYmctY29sb3ItZm9jdXMpO1xuICAgIGJvcmRlcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZSkgc29saWRcbiAgICAgIHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWZvY3VzKTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLWZvcm0taW5wdXQtc2hhZG93LWZvY3VzKTtcbiAgICBAaW5jbHVkZSB0dWktZm9jdXMoKTtcblxuICAgIC50dWktY29udGV4dEludmFsaWQgJiB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1mb3JtLWlucHV0LWJnLWNvbG9yLWludmFsaWQtZm9jdXMpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1pbnZhbGlkKTtcbiAgICAgIG91dGxpbmUtY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWludmFsaWQpO1xuICAgICAgYm94LXNoYWRvdzogdmFyKC0tZm9ybS1pbnB1dC1zaGFkb3ctaW52YWxpZC1mb2N1cyk7XG4gICAgfVxuICB9XG5cbiAgJi0tcHJlSWNvbiB7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1nYXAtOCk7XG4gIH1cblxuICAmLS1wb3N0SWNvbiB7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tZ2FwLTgpO1xuICB9XG5cbiAgJltyZWFkb25seV0ge1xuICAgIGNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LXRleHQtY29sb3IpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWZvcm0taW5wdXQtYmctY29sb3IpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3IpO1xuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IHZhcigtLWZvcm0taW5wdXQtdGV4dC1wbGFjZWhvbGRlci1jb2xvcik7XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LXRleHQtY29sb3ItZGlzYWJsZWQpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWZvcm0taW5wdXQtYmctY29sb3ItZGlzYWJsZWQpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItZGlzYWJsZWQpO1xuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IHZhcigtLWZvcm0taW5wdXQtdGV4dC1jb2xvci1kaXNhYmxlZCk7XG4gICAgfVxuICB9XG5cbiAgJi0tdHJhbnNwYXJlbnQsXG4gICYtLXRyYW5zcGFyZW50OmZvY3VzLFxuICAmLS10cmFuc3BhcmVudDpmb2N1cy12aXNpYmxlLFxuICAmLS10cmFuc3BhcmVudFtyZWFkb25seV0sXG4gICYtLXRyYW5zcGFyZW50W2Rpc2FibGVkXSxcbiAgLnR1aS1jb250ZXh0SW52YWxpZCAmLS10cmFuc3BhcmVudCxcbiAgLnR1aS1jb250ZXh0SW52YWxpZCAmLS10cmFuc3BhcmVudDpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vSW5wdXRDb2xvci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD03MDNiYjU3NSZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLWlucHV0Q29sb3Ige1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICRjb2xvci1ibG9jay1wYWRkaW5nOiByZW0tcHgoNCk7XG5cbiAgQGluY2x1ZGUgdHVpLWNoYXItbGVuZ3RoLWNsYXNzZXMoKTtcblxuICAvKiB2aXN1YWxseSBoaWRlIHRoZSBjb2xvdXIgSW5wdXQgY29udHJvbCovXG4gICYgJl9fcGlja2VyW3R5cGU9J2NvbG9yJ10ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogY2FsYyh2YXIoLS1nYXAtOCkgKyB2YXIoLS1nYXAtMikpO1xuICAgIG9wYWNpdHk6IDA7XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgfVxuXG4gIC8qIHF1aXRlIGFjdXRlIGJveCBtb2RlbCBhbmQgcG9zaXRpb25pbmcgdmFsdWVzIHRvIG1ha2Ugc3VyZSB0aGV5IHNjYWxlIHdpdGgqL1xuICAvKiBhc3NvY2lhdGVkIHRleHQgSW5wdXQgdmFsdWVzKi9cbiAgJl9fY29sb3JCbG9jayB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIC8qIHByZXR0aWVyLWlnbm9yZSovXG4gICAgdG9wOiBjYWxjKCN7JGNvbG9yLWJsb2NrLXBhZGRpbmd9ICsgdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZSkpO1xuICAgIGxlZnQ6IGNhbGMoI3skY29sb3ItYmxvY2stcGFkZGluZ30gKyB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSk7XG4gICAgd2lkdGg6IHZhcigtLWdhcC04KTtcbiAgICAvKiBwcmV0dGllci1pZ25vcmUqL1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gI3skY29sb3ItYmxvY2stcGFkZGluZyAqIDJ9IC0gdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZSkgKiAyKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXNtYWxsKTtcblxuICAgICYtLWRpc2FibGVkIHtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuICB9XG5cbiAgJiAmX19pbnB1dFt0eXBlPSd0ZXh0J10ge1xuICAgIHBhZGRpbmctbGVmdDogY2FsYyhcbiAgICAgIHZhcigtLWdhcC04KSArICN7JGNvbG9yLWJsb2NrLXBhZGRpbmcgKiAyfSArIHZhcihcbiAgICAgICAgICAtLWZvcm0taW5wdXQtYm9yZGVyLXNpemVcbiAgICAgICAgKSArIHZhcigtLWdhcC0xKVxuICAgICk7XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZm9ybS9JbnB1dEN1cnJlbmN5LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTdiMTgxYWVmJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktZm9ybUlucHV0Q3VycmVuY3kge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWdyb3c6IDE7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDA7XG5cbiAgQGluY2x1ZGUgdHVpLWNoYXItbGVuZ3RoLWNsYXNzZXMoKTtcblxuICAmX19zeW1ib2wge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1sYWJlbC13ZWlnaHQpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9ybS1pbnB1dC1mb250LXNpemUpO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWdhcC0xKTtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWdhcC0xKTtcbiAgICB9XG4gIH1cblxuICAmLS1zaXplLWxhcmdlICZfX3N5bWJvbCB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb3JtLWlucHV0LWZvbnQtc2l6ZS1sZyk7XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZm9ybS9JbnB1dEdyb3VwLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWJjNzZlMmRlJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktaW5wdXRHcm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDA7XG4gIGhlaWdodDogdmFyKC0tZm9ybS1pbnB1dC1oZWlnaHQpO1xuICBjb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mb3JtLWlucHV0LWZvbnQtc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1mb3JtLWlucHV0LWJnLWNvbG9yKTtcbiAgYm9yZGVyOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZCB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXJhZGl1cyk7XG5cbiAgQGluY2x1ZGUgdHVpLWNoYXItbGVuZ3RoLWNsYXNzZXMoKTtcblxuICAudHVpLWNvbnRleHRJbnZhbGlkICYge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tZm9ybS1pbnB1dC1zaGFkb3ctaW52YWxpZCk7XG4gIH1cblxuICAmLS1oYXNGb2N1cyB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1pbnB1dC1iZy1jb2xvci1mb2N1cyk7XG4gICAgYm9yZGVyOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWZvY3VzKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1mb3JtLWlucHV0LXNoYWRvdy1mb2N1cyk7XG4gICAgQGluY2x1ZGUgdHVpLWZvY3VzKCk7XG5cbiAgICAudHVpLWNvbnRleHRJbnZhbGlkICYge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1pbnB1dC1iZy1jb2xvci1pbnZhbGlkLWZvY3VzKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XG4gICAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1pbnZhbGlkKTtcbiAgICAgIGJveC1zaGFkb3c6IHZhcigtLWZvcm0taW5wdXQtc2hhZG93LWludmFsaWQtZm9jdXMpO1xuICAgIH1cbiAgfVxuXG4gICYtLWRpc2FibGVkIHtcbiAgICBjb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yLWRpc2FibGVkKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1mb3JtLWlucHV0LWJnLWNvbG9yLWRpc2FibGVkKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWRpc2FibGVkKTtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LXRleHQtY29sb3ItZGlzYWJsZWQpO1xuICAgIH1cbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9mb3JtL0lucHV0R3JvdXBCdXR0b24udnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9M2VhNWViYmEmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1pbnB1dEdyb3VwQnV0dG9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAwIHZhcigtLWdhcC0yKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mb3JtLWlucHV0LWZvbnQtc2l6ZSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZS1mb2N1cyk7XG4gICAgQGluY2x1ZGUgdHVpLWZvY3VzKCk7XG4gICAgb3V0bGluZS1vZmZzZXQ6IGNhbGMoXG4gICAgICB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSArIHZhcigtLWZvY3VzLW91dGxpbmUtb2Zmc2V0KVxuICAgICk7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUtaG92ZXIpO1xuICB9XG5cbiAgJjphY3RpdmUge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZS1hY3RpdmUpO1xuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZS1kaXNhYmxlZCk7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZm9ybS9JbnB1dEdyb3VwSW5wdXQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9YzQ2ZTI2MmUmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBSZXNldCovXG4udHVpLWlucHV0R3JvdXBJbnB1dCxcbmlucHV0W3R5cGVdLnR1aS1pbnB1dEdyb3VwSW5wdXQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIGhlaWdodDogYXV0bztcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAxcHg7XG4gIGNvbG9yOiByZ2IoMCwgMCwgMCk7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIHRleHQtYWxpZ246IHN0YXJ0O1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgdGV4dC1pbmRlbnQ6IDA7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpO1xuICBib3JkZXItY29sb3I6IHJnYigyMTgsIDIxOCwgMjE4KTtcbiAgYm9yZGVyLXN0eWxlOiBpbnNldDtcbiAgYm9yZGVyLXdpZHRoOiAycHg7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IG5vbmU7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMTAwJTtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAxO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2UtcmVwZWF0OiBzdHJldGNoO1xuICBib3JkZXItc3BhY2luZzogMDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgY3Vyc29yOiB0ZXh0O1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDBzO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIHRleHQtcmVuZGVyaW5nOiBhdXRvO1xuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjb2xvcjogcmdiKDYxLCA2OCwgNzUpO1xuICAgIGJhY2tncm91bmQ6IHJnYigyMTgsIDIxOCwgMjE4KTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6IHJnYigyMTgsIDIxOCwgMjE4KTtcbiAgICBvdXRsaW5lLXdpZHRoOiAzcHg7XG4gICAgb3V0bGluZS1zdHlsZTogYXV0bztcbiAgICBvdXRsaW5lLWNvbG9yOiBIaWdobGlnaHQ7XG4gICAgb3V0bGluZS1jb2xvcjogLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgLW1vei11c2VyLWZvY3VzOiBub3JtYWw7XG4gIH1cblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICNhOWE5YTk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4udHVpLWlucHV0R3JvdXBJbnB1dCxcbmlucHV0W3R5cGVdLnR1aS1pbnB1dEdyb3VwSW5wdXQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleC1ncm93OiAxO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4td2lkdGg6IDA7XG4gIHBhZGRpbmc6IDAgdmFyKC0tZ2FwLTIpO1xuICBjb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mb3JtLWlucHV0LWZvbnQtc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LXBsYWNlaG9sZGVyLWNvbG9yKTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY29sb3I6IHZhcigtLWZvcm0taW5wdXQtdGV4dC1jb2xvci1kaXNhYmxlZCk7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IHZhcigtLWZvcm0taW5wdXQtdGV4dC1jb2xvci1kaXNhYmxlZCk7XG4gICAgfVxuICB9XG5cbiAgJltyZWFkb25seV0ge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgJi0tbW9ub3NwYWNlRm9udCB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LW1vbm9zcGFjZSk7XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vSW5wdXRTZXQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NzlmOGExNzQmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbkBtaXhpbiB0dWktaW5wdXQtc2V0LXN0YWNrLWJlbG93KCRuYW1lLCAkc2l6ZSkge1xuICAmLS1zdGFja0JlbG93LSN7JG5hbWV9ID4gKixcbiAgLyogbmVlZCB0byBzcGVjaWZ5IC50dWktZm9ybUlucHV0IGhlcmUgdG9vIGZvciBzcGVjaWZpY2l0eSByZWFzb25zKi9cbiAgJi0tc3RhY2tCZWxvdy0jeyRuYW1lfSA+IC50dWktZm9ybUlucHV0IHtcbiAgICAvKiBUaGlzIHRyaWdnZXJzIHRoZSBjaGlsZHJlbiB0byBzd2l0Y2ggdG8gYmVpbmcgdmVydGljYWxseSBzdGFja2VkIGJlbG93IGEqL1xuICAgIC8qIGNlcnRhaW4gd2lkdGguKi9cbiAgICAvKiBJdCB3b3JrcyBsaWtlIHRoaXM6Ki9cbiAgICAvKiBBYm92ZSB0aGUgc3BlY2lmaWVkIHdpZHRoLCAod2lkdGggLSAxMDAlKSBldmFsdWF0ZXMgdG8gYSBsYXJnZSovXG4gICAgLyogbmVnYXRpdmUgZmxleCBiYXNpcywgYW5kIGlzIHRoZXJlZm9yZSBpZ25vcmVkLiovXG4gICAgLyogQmVsb3cgdGhlIHNwZWNpZmllZCB3aWR0aCwgKHdpZHRoIC0gMTAwJSkgZXZhbHVhdGVzIHRvIGEgbGFyZ2UqL1xuICAgIC8qIHBvc2l0dmUgZmxleCBiYXNpcywgYW5kIGZvcmNlcyBlYWNoIGl0ZW0gdG8gdGFrZSB1cCBpdHMgb3duIGxpbmUuKi9cbiAgICAvKiBNYWdpYyEqL1xuICAgIC8qIHByZXR0aWVyLWlnbm9yZSovXG4gICAgZmxleC1iYXNpczogY2FsYygoI3t0dWktY2hhci1sZW5ndGgoJHNpemUpfSAtIDEwMCUpICogOTk5KTtcbiAgfVxufVxuLnR1aS1pbnB1dFNldCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDE7XG4gIGdhcDogdmFyKC0taW5wdXQtc2V0LXNwYWNpbmcpO1xuXG4gIEBpbmNsdWRlIHR1aS1jaGFyLWxlbmd0aC1jbGFzc2VzKCk7XG5cbiAgJi0tdiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuXG4gICYtLWgge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG5cbiAgJiA+IC50dWktZm9ybUxhYmVsIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgJiA+IHtcbiAgICAvKiByZXBsYWNlZCBpbnB1dCBlbGVtZW50cyBoYXZlIHRoZWlyIHdpZHRoIHNldCB0byAxMDAlIG5vcm1hbGx5IGFzKi9cbiAgICAvKiBgd2lkdGg6IGF1dG9gIGRvZXNuJ3QgZmlsbCB0aGUgY29udGFpbmVyIGxpa2UgaXQgZG9lcyBvbiBkaXZzKi9cbiAgICAjeyR0dWktaW5wdXQtcmVwbGFjZWQtc2VsZWN0b3JzfSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cblxuICAmLS1zcGxpdCB7XG4gICAgJiA+ICoge1xuICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRzaXplIGluICR0dWktY2hhci1sZW5ndGgtc2NhbGUge1xuICAgIEBpbmNsdWRlIHR1aS1pbnB1dC1zZXQtc3RhY2stYmVsb3coJHNpemUsICRzaXplKTtcbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZm9ybS9JbnB1dFNldENvbC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0zNmM3NWY5YyZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1pbnB1dFNldENvbCB7XG4gIGZsZXgtYmFzaXM6IDA7XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9mb3JtL0lucHV0U2l6ZWRUZXh0LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTA0M2RjYTNjJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLWZvcm1JbnB1dFNpemVkVGV4dCB7XG4gIHBhZGRpbmc6IHR1aS1pbnB1dC12LXBhZGRpbmctYm9yZGVybGVzcygpIDA7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1mb3JtLWlucHV0LWxpbmUtaGVpZ2h0KTtcbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vTGFiZWwudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9Njg2YmNmNjgmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktZm9ybUxhYmVsIHtcbiAgQGluY2x1ZGUgZm9udChib2R5LCB2YXIoLS1sYWJlbC13ZWlnaHQpKTtcbiAgbWluLXdpZHRoOiAwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgdmFyKC0tZ2FwLTEpIDAgMDtcblxuICBsZWdlbmQmIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCB2YXIoLS1nYXAtMSkgMCAwO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxuXG4gICYtLWlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICB9XG5cbiAgJi0taGlkZGVuIHtcbiAgICBAaW5jbHVkZSBzci1vbmx5KCk7XG4gIH1cblxuICAmLS1zdWJmaWVsZCB7XG4gICAgQGluY2x1ZGUgZm9udChib2R5LXNtKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbiAgfVxuXG4gICZfX3JlcXVpcmVkIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJvbXB0LWFsZXJ0KTtcbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vTm90ZXBhZExpbmVzLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTE4MjA5YzVhJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1ub3RlcGFkTGluZXMge1xuICBAaW5jbHVkZSB0dWktY2hhci1sZW5ndGgtY2xhc3NlcztcblxuICAmX19saW5lIHtcbiAgICBoZWlnaHQ6IHZhcigtLWZvcm0tbm90ZXBhZC1saW5lLWhlaWdodCk7XG4gICAgYm9yZGVyLWJvdHRvbTogdmFyKC0tZm9ybS1ub3RlcGFkLWxpbmUtYm9yZGVyKTtcbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZm9ybS9SYWRpby52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD01MmQwODhlZiZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuOnJvb3Qge1xuICAvKiBTaXplIG9mIHJhZGlvIGNpcmNsZSovXG4gIC0tZm9ybS1yYWRpby1zaXplOiAje2ZvbnQtc2l6ZS1weCgxNil9O1xuICAvKiBTaXplIG9mIHJhZGlvIGlubmVyIGRvdCovXG4gIC0tZm9ybS1yYWRpby1kb3Qtc2l6ZTogY2FsYyh2YXIoLS1mb3JtLXJhZGlvLXNpemUpIC8gMik7XG4gIC8qIE9mZnNldCB0byBjZW50ZXIgZG90Ki9cbiAgLS1yYWRpby1kb3Qtb2Zmc2V0OiBjYWxjKHZhcigtLWZvcm0tcmFkaW8tc2l6ZSkgLyA0KTtcbn1cblxuLnR1aS1yYWRpbyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG5cbiAgJl9faW5wdXQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgJl9fbGFiZWwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1yYWRpby1sYWJlbC1vZmZzZXQpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb3JtLWlucHV0LWZvbnQtc2l6ZSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWZvcm0taW5wdXQtbGluZS1oZWlnaHQpO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogY2FsYyg1MCUgLSB2YXIoLS1mb3JtLXJhZGlvLXNpemUpIC8gMik7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogdmFyKC0tZm9ybS1yYWRpby1zaXplKTtcbiAgICAgIGhlaWdodDogdmFyKC0tZm9ybS1yYWRpby1zaXplKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWZvcm0tcmFkaW8tYmctY29sb3IpO1xuICAgICAgYm9yZGVyOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZDtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1yYWRpby1ib3JkZXItY29sb3IpO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgdHJhbnNpdGlvbjogYm9yZGVyIHZhcigtLXRyYW5zaXRpb24tZm9ybS1mdW5jdGlvbilcbiAgICAgICAgICB2YXIoLS10cmFuc2l0aW9uLWZvcm0tZHVyYXRpb24pLFxuICAgICAgICBib3gtc2hhZG93IHZhcigtLXRyYW5zaXRpb24tZm9ybS1mdW5jdGlvbilcbiAgICAgICAgICB2YXIoLS10cmFuc2l0aW9uLWZvcm0tZHVyYXRpb24pO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgLnR1aS1jb250ZXh0SW52YWxpZCAmIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1pbnZhbGlkKTtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LW5vbmUpLCB2YXIoLS1mb3JtLWlucHV0LXNoYWRvdy1pbnZhbGlkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19pbnB1dDpkaXNhYmxlZCB+ICZfX2xhYmVsIHtcbiAgICBjb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yLWRpc2FibGVkKTtcbiAgfVxuXG4gICZfX2lucHV0OmhvdmVyIH4gJl9fbGFiZWw6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1yYWRpby1iZy1jb2xvci1ob3Zlcik7XG4gIH1cblxuICAmX19pbnB1dDpmb2N1cy12aXNpYmxlIH4gJl9fbGFiZWw6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1yYWRpby1iZy1jb2xvci1mb2N1cyk7XG4gICAgQGluY2x1ZGUgdHVpLWZvY3VzKCk7XG5cbiAgICAudHVpLWNvbnRleHRJbnZhbGlkICYge1xuICAgICAgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XG4gICAgfVxuICB9XG5cbiAgJl9faW5wdXQ6aG92ZXIgfiAmX19sYWJlbDo6YmVmb3JlLFxuICAmX19pbnB1dDpmb2N1cy12aXNpYmxlIH4gJl9fbGFiZWw6OmJlZm9yZSB7XG4gICAgYm9yZGVyOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0tcmFkaW8tYm9yZGVyLWNvbG9yLWZvY3VzKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1mb3JtLWlucHV0LXNoYWRvdy1mb2N1cyk7XG5cbiAgICAudHVpLWNvbnRleHRJbnZhbGlkICYge1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1pbnZhbGlkKTtcbiAgICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1ub25lKSwgdmFyKC0tZm9ybS1pbnB1dC1zaGFkb3ctaW52YWxpZC1mb2N1cyk7XG4gICAgfVxuICB9XG5cbiAgJl9faW5wdXQ6YWN0aXZlOmZvY3VzIH4gJl9fbGFiZWw6OmJlZm9yZSxcbiAgJl9faW5wdXQ6YWN0aXZlOmhvdmVyIH4gJl9fbGFiZWw6OmJlZm9yZSxcbiAgJl9faW5wdXQ6YWN0aXZlIH4gJl9fbGFiZWw6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1yYWRpby1iZy1jb2xvci1hY3RpdmUpO1xuICAgIGJvcmRlcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZSkgc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLXJhZGlvLWJvcmRlci1jb2xvci1hY3RpdmUpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLWZvcm0taW5wdXQtc2hhZG93LWZvY3VzKTtcblxuICAgIC50dWktY29udGV4dEludmFsaWQgJiB7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWludmFsaWQpO1xuICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LW5vbmUpLCB2YXIoLS1mb3JtLWlucHV0LXNoYWRvdy1pbnZhbGlkLWZvY3VzKTtcbiAgICB9XG4gIH1cblxuICAmX19pbnB1dDpkaXNhYmxlZDphY3RpdmUgfiAmX19sYWJlbDo6YmVmb3JlLFxuICAmX19pbnB1dDpkaXNhYmxlZCB+ICZfX2xhYmVsOjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWZvcm0tcmFkaW8tYmctY29sb3ItZGlzYWJsZWQpO1xuICAgIGJvcmRlcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZSkgc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLXJhZGlvLWJvcmRlci1jb2xvci1kaXNhYmxlZCk7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuXG4gICZfX2lucHV0IH4gJl9fbGFiZWw6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBjYWxjKDUwJSAtIHZhcigtLWZvcm0tcmFkaW8tZG90LXNpemUpIC8gMik7XG4gICAgbGVmdDogdmFyKC0tcmFkaW8tZG90LW9mZnNldCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IHZhcigtLWZvcm0tcmFkaW8tZG90LXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tZm9ybS1yYWRpby1kb3Qtc2l6ZSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZm9ybS1yYWRpby1kb3QtY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1mb3JtLWZ1bmN0aW9uKVxuICAgICAgdmFyKC0tdHJhbnNpdGlvbi1mb3JtLWR1cmF0aW9uKTtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuXG4gICZfX2lucHV0OmRpc2FibGVkIH4gJl9fbGFiZWw6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LXRleHQtY29sb3ItZGlzYWJsZWQpO1xuICB9XG5cbiAgJl9faW5wdXQ6Y2hlY2tlZCB+ICZfX2xhYmVsOjphZnRlciB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQge1xuICAudHVpLXJhZGlvIHtcbiAgICAmX19pbnB1dCB+ICZfX2xhYmVsOjphZnRlciB7XG4gICAgICAtd2Via2l0LXByaW50LWNvbG9yLWFkanVzdDogZXhhY3Q7XG4gICAgICAgICAgICAgIHByaW50LWNvbG9yLWFkanVzdDogZXhhY3Q7XG4gICAgfVxuICB9XG5cbiAgLyogSUUxMSAmIEVkZ2Ugc3VwcG9ydCovXG4gIC5pZSxcbiAgLm1zZWRnZSB7XG4gICAgLnR1aS1yYWRpbyB7XG4gICAgICAmX19pbnB1dCB+IC50dWktcmFkaW9fX2xhYmVsOjphZnRlciB7XG4gICAgICAgIGJvcmRlcjogNHB4IHNvbGlkIHZhcigtLWZvcm0tcmFkaW8tZG90LWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZm9ybS9SYWRpb0RhdGVSYW5nZUlucHV0LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTJkNDRmMjJhJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktcmFkaW9EYXRlUmFuZ2VJbnB1dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG5cbiAgJiA+ICogKyAqIHtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwLTIpO1xuICB9XG5cbiAgJl9fbnVtYmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiByZW0tcHgoNjApO1xuICB9XG5cbiAgJl9fdHlwZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogcmVtLXB4KDEyMCk7XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZm9ybS9SYWRpb0dyb3VwLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTU5NmRmOTgwJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktcmFkaW9Hcm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tZ2FwLTIpIHZhcigtLWdhcC00KTtcbiAgcGFkZGluZzogdHVpLWlucHV0LXYtcGFkZGluZy1ib3JkZXJsZXNzKCkgMDtcblxuICAmLS1pbnB1dFNpemVkT3B0aW9ucyB7XG4gICAgJiA+ICoge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLWZvcm0taW5wdXQtaGVpZ2h0KTtcbiAgICB9XG4gIH1cblxuICAmLS1ub1BhZGRpbmdUb3Age1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR0dWktc2NyZWVuLXNtKSB7XG4gIC50dWktcmFkaW9Hcm91cC0taG9yaXpvbnRhbCB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZm9ybS9SYWRpb051bWJlcklucHV0LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWU3NTc1ZDdjJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktcmFkaW9OdW1iZXJJbnB1dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC8qIFVzZSBzYW1lIGluZGVudGF0aW9uIGFzIHJhZGlvIGZvciBuaWNlciB3cmFwcGluZyovXG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1yYWRpby1sYWJlbC1vZmZzZXQpO1xuXG4gICZfX251bWJlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogcmVtLXB4KDYwKTtcbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZm9ybS9SYWRpb1dpdGhJbnB1dC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD00MDMyZTJiNiZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1yYWRpb1dpdGhJbnB1dCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgJiA+ICogKyAqIHtcbiAgICAvKiBVc2Ugc2FtZSBpbmRlbnRhdGlvbiBhcyByYWRpbyBmb3IgbmljZXIgd3JhcHBpbmcqL1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1yYWRpby1sYWJlbC1vZmZzZXQpO1xuICB9XG5cbiAgJl9fcmFkaW8ge1xuICAgIG1hcmdpbjogdmFyKC0tZ2FwLTIpIDA7XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vUmFuZ2UudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NWZkODNkMzEmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktcmFuZ2Uge1xuICBmbGV4OiBhdXRvO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICZfX2xhYmVscyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWdhcC0xKTtcbiAgfVxuXG4gICZfX2xvd0xhYmVsLFxuICAmX19oaWdoTGFiZWwge1xuICAgIEBpbmNsdWRlIGZvbnQoYm9keS1zbSk7XG4gICAgZmxleC1iYXNpczogNDAlO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xuICB9XG5cbiAgJl9fbG93TGFiZWwge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cblxuICAmX19oaWdoTGFiZWwge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG5cbiAgJl9faW5wdXQge1xuICAgIGhlaWdodDogdmFyKC0tZm9ybS1yYW5nZS1oZWlnaHQpO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICBAaW5jbHVkZSB0dWktZm9jdXMoKTtcbiAgICB9XG4gICAgJjo6LW1vei1mb2N1cy1vdXRlciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuXG4gICAgLyogVHJhY2sgc3R5bGVzICovXG4gICAgJjo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xuICAgICAgQGluY2x1ZGUgdHVpLXJhbmdlLXRyYWNrKCk7XG4gICAgfVxuICAgICY6Zm9jdXM6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtNCk7XG4gICAgICAtd2Via2l0LXByaW50LWNvbG9yLWFkanVzdDogZXhhY3Q7XG4gICAgICAgICAgICAgIHByaW50LWNvbG9yLWFkanVzdDogZXhhY3Q7XG4gICAgfVxuICAgICY6Oi1tb3otcmFuZ2UtdHJhY2sge1xuICAgICAgQGluY2x1ZGUgdHVpLXJhbmdlLXRyYWNrKCk7XG4gICAgfVxuICAgICY6Oi1tcy10cmFjayB7XG4gICAgICBAaW5jbHVkZSB0dWktcmFuZ2UtdHJhY2soKTtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDsgLyogUmVtb3ZlIGRlZmF1bHQgdGljayBtYXJrcyAqL1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IC8qIFJlcGxhY2UgYmcgY29sb3VyIGZyb20gdGhlIHRyYWNrIHdpdGggbXMtZmlsbC1sb3dlciBhbmQgbXMtZmlsbC11cHBlciAqL1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogVGh1bWIgY2FuIG5vdCBvdmVybGF5IHRyYWNrIHNvIHdlIGFkZCBpbnZpc2libGUgYm9yZGVyICovXG4gICAgfVxuICAgICY6Oi1tcy1maWxsLXVwcGVyLFxuICAgICY6Oi1tcy1maWxsLWxvd2VyIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtNCk7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXNtYWxsKTtcbiAgICB9XG4gICAgJjpmb2N1czo6LW1zLWZpbGwtdXBwZXIsXG4gICAgJjpmb2N1czo6LW1zLWZpbGwtbG93ZXIge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItbmV1dHJhbC00KTtcbiAgICB9XG5cbiAgICAvKiBUaHVtYiBzdHlsZXMgKi9cbiAgICAmOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gICAgICBAaW5jbHVkZSB0dWktcmFuZ2UtdGh1bWIoKTtcbiAgICAgIG1hcmdpbi10b3A6IHZhcigtLWZvcm0tcmFuZ2UtdGh1bWItbWFyZ2luLXRvcCk7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgfVxuICAgICY6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgICAgQGluY2x1ZGUgdHVpLXJhbmdlLXRodW1iKCk7XG4gICAgfVxuICAgICY6Oi1tcy10aHVtYiB7XG4gICAgICBAaW5jbHVkZSB0dWktcmFuZ2UtdGh1bWIoKTtcbiAgICB9XG5cbiAgICAmLnR1aS1yYW5nZV9faW5wdXQtLXNlbGVjdGVkIHtcbiAgICAgICY6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc3RhdGUpO1xuICAgICAgfVxuICAgICAgJjo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgICAgIH1cbiAgICAgICY6Oi1tcy10aHVtYiB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnR1aS1yYW5nZV9faW5wdXQtLW5vVGh1bWIge1xuICAgICAgJjo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgICAgJjo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICAgIC8qIERpc3BsYXkgbm9uZSBkb2VzIG5vdCB3b3JrLiovXG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgICAmOjotbXMtdGh1bWIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvZm9ybS9SZXBlYXRlci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD01YWMxNThjNCZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1yZXBlYXRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4LWdyb3c6IDE7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDA7XG5cbiAgJiA+ICogKyAqIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtMyk7XG4gIH1cblxuICAmX19yb3csXG4gICZfX2hlYWRlclJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgfVxuXG4gICZfX2hlYWRlclJvdyArICZfX3JvdyB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTIpO1xuICB9XG5cbiAgJl9fcm93ICsgJl9fYWZ0ZXJSb3cge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC00KTtcbiAgfVxuXG4gICZfX2FmdGVyUm93ICsgJl9fcm93IHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtOCk7XG4gIH1cblxuICAmX19hZnRlclJvdyArICZfX2hlYWRlclJvdyB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTQpO1xuICB9XG5cbiAgJi0tbm9TcGFjaW5nID4gKiB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgJl9faGVhZGVyUm93ICZfX2RlbGV0ZSB7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9mb3JtL1NlYXJjaEJveC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1iMGQ1N2MxMiZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktc2VhcmNoQm94IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1yYWRpdXMpO1xuICBpc29sYXRpb246IGlzb2xhdGU7IC8qIGNvbnRhaW4geiBpbmRleGVzKi9cblxuICAmX19pbnB1dFdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBAaW5jbHVkZSB0dWktY2hhci1sZW5ndGgtY2xhc3NlcygpO1xuICB9XG5cbiAgJl9fc2VhcmNoW3R5cGU9J3NlYXJjaCddIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXJhZGl1cyk7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItcmFkaXVzKTtcblxuICAgICY6Zm9jdXMge1xuICAgICAgei1pbmRleDogMTtcbiAgICB9XG4gICAgLyogZGlzYWJsZSB0aGUgZGVmYXVsdCBjbGVhciAoeCkgYWN0aW9uIGluIElFKi9cbiAgICAmOjotbXMtY2xlYXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAudHVpLWZvcm1MYWJlbCB7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1nYXAtMik7XG4gIH1cblxuICAmX19jbGVhckNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG4gICZfX3JlbW92ZUljb24ge1xuICAgIGNvbG9yOiB2YXIoLS1maWx0ZXItc2VhcmNoLWNsZWFyLWljb24tY29sb3IpO1xuICB9XG5cbiAgLyogU28gdGhhdCB0aGUgc2VhcmNoIGJ1dHRvbiBtYXRjaGVzIHRoZSBmb3JtYXQgb2YgdGhlIGlucHV0IHRoYXQgaXMgbmV4dCB0byBpdCovXG4gICZfX2J1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZSkgKiAtMSk7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItcmFkaXVzKTtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItcmFkaXVzKTtcblxuICAgICY6Zm9jdXMge1xuICAgICAgei1pbmRleDogMTtcbiAgICB9XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9mb3JtL1NlbGVjdC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1iMTY4NjU5MCZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbjpyb290IHtcbiAgLS1zZWxlY3QtaWNvbi1zaXplOiB2YXIoLS1nYXAtMSk7XG59XG5cbi50dWktc2VsZWN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWdyb3c6IDE7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDA7XG4gIGhlaWdodDogdmFyKC0tZm9ybS1pbnB1dC1oZWlnaHQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1yYWRpdXMpO1xuXG4gIEBpbmNsdWRlIHR1aS1jaGFyLWxlbmd0aC1jbGFzc2VzKCk7XG5cbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IGNhbGMoKHZhcigtLWZvcm0taW5wdXQtaGVpZ2h0KSAtIHZhcigtLXNlbGVjdC1pY29uLXNpemUpKSAvIDIpO1xuICAgIHJpZ2h0OiBjYWxjKCh2YXIoLS1mb3JtLWlucHV0LWhlaWdodCkgLSB2YXIoLS1zZWxlY3QtaWNvbi1zaXplKSAqIDIpIC8gMik7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogdmFyKC0tc2VsZWN0LWljb24tc2l6ZSkgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yKTtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuXG4gICYtLWRpc2FibGVkOjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yLWRpc2FibGVkKTtcbiAgfVxuXG4gICYtLW11bHRpcGxlOjphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICYtLWxhcmdlIHtcbiAgICBoZWlnaHQ6IHZhcigtLWZvcm0taW5wdXQtaGVpZ2h0LWxhcmdlKTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIHRvcDogY2FsYygodmFyKC0tZm9ybS1pbnB1dC1oZWlnaHQtbGFyZ2UpIC0gdmFyKC0tc2VsZWN0LWljb24tc2l6ZSkpIC8gMik7XG4gICAgICAvKiBwcmV0dGllci1pZ25vcmUqL1xuICAgICAgcmlnaHQ6IGNhbGMoKHZhcigtLWZvcm0taW5wdXQtaGVpZ2h0LWxhcmdlKSAtIHZhcigtLXNlbGVjdC1pY29uLXNpemUpICogMikgLyAyKTtcbiAgICB9XG4gIH1cblxuICAmX19pbnB1dCB7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tZ2FwLTcpIDAgdmFyKC0tZ2FwLTMpO1xuICAgIGNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LXRleHQtY29sb3IpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9ybS1pbnB1dC1mb250LXNpemUpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWZvcm0taW5wdXQtYmctY29sb3IpO1xuICAgIGJvcmRlcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItc2l6ZSkgc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItcmFkaXVzKTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgJlttdWx0aXBsZV0ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LXRleHQtY29sb3ItZGlzYWJsZWQpO1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1pbnB1dC1iZy1jb2xvci1kaXNhYmxlZCk7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWRpc2FibGVkKTtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWZvcm0taW5wdXQtYmctY29sb3ItZm9jdXMpO1xuICAgICAgYm9yZGVyOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZDtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItZm9jdXMpO1xuICAgICAgYm94LXNoYWRvdzogdmFyKC0tZm9ybS1pbnB1dC1zaGFkb3ctZm9jdXMpO1xuICAgICAgQGluY2x1ZGUgdHVpLWZvY3VzKCk7XG5cbiAgICAgIC50dWktY29udGV4dEludmFsaWQgJiB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWZvcm0taW5wdXQtYmctY29sb3ItaW52YWxpZC1mb2N1cyk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XG4gICAgICAgIG91dGxpbmUtY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWludmFsaWQpO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1mb3JtLWlucHV0LXNoYWRvdy1pbnZhbGlkLWZvY3VzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBEcm9wIHNlbGVjdCBvdXRsaW5lKi9cbiAgICAmOi1tb3otZm9jdXNyaW5nIHtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwO1xuICAgIH1cblxuICAgIC8qIGFwcGVhcmFuY2U6IG5vbmU7IGVxdWl2YWxlbnQgZm9yIElFKi9cbiAgICAmOjotbXMtZXhwYW5kIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLyogcHJldmVudCB3ZWlyZCBzdHlsaW5nIGFmdGVyIHNlbGVjdGluZyB2YWx1ZSovXG4gICAgJjo6LW1zLXZhbHVlIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLnR1aS1jb250ZXh0SW52YWxpZCAmIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XG4gICAgICBib3gtc2hhZG93OiB2YXIoLS1mb3JtLWlucHV0LXNoYWRvdy1pbnZhbGlkKTtcbiAgICB9XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2Zvcm0vVGV4dGFyZWEudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NTFiNmE3NzYmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktZm9ybVRleHRhcmVhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXgtZ3JvdzogMTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiB0dWktaW5wdXQtdi1wYWRkaW5nKCkgdmFyKC0tZ2FwLTMpO1xuICBvdmVyZmxvdzogYXV0bztcbiAgY29sb3I6IHZhcigtLWZvcm0taW5wdXQtdGV4dC1jb2xvcik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9ybS1pbnB1dC1mb250LXNpemUpO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWZvcm0taW5wdXQtbGluZS1oZWlnaHQpO1xuICBib3JkZXI6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXNpemUpIHNvbGlkIHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItcmFkaXVzKTtcbiAgcmVzaXplOiBub25lO1xuXG4gIEBpbmNsdWRlIHR1aS1jaGFyLWxlbmd0aC1jbGFzc2VzKCk7XG5cbiAgJjo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LXRleHQtcGxhY2Vob2xkZXItY29sb3IpO1xuICB9XG5cbiAgLnR1aS1jb250ZXh0SW52YWxpZCAmIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWludmFsaWQpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLWZvcm0taW5wdXQtc2hhZG93LWludmFsaWQpO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1pbnB1dC1iZy1jb2xvci1mb2N1cyk7XG4gICAgYm9yZGVyOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZFxuICAgICAgdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItZm9jdXMpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLWZvcm0taW5wdXQtc2hhZG93LWZvY3VzKTtcbiAgICBAaW5jbHVkZSB0dWktZm9jdXMoKTtcblxuICAgIC50dWktY29udGV4dEludmFsaWQgJiB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1mb3JtLWlucHV0LWJnLWNvbG9yLWludmFsaWQtZm9jdXMpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1pbnZhbGlkKTtcbiAgICAgIG91dGxpbmUtY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWludmFsaWQpO1xuICAgICAgYm94LXNoYWRvdzogdmFyKC0tZm9ybS1pbnB1dC1zaGFkb3ctaW52YWxpZC1mb2N1cyk7XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGNvbG9yOiB2YXIoLS1mb3JtLWlucHV0LXRleHQtY29sb3ItZGlzYWJsZWQpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWZvcm0taW5wdXQtYmctY29sb3ItZGlzYWJsZWQpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItZGlzYWJsZWQpO1xuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IHZhcigtLWZvcm0taW5wdXQtdGV4dC1jb2xvci1kaXNhYmxlZCk7XG4gICAgfVxuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2dyaWQvR3JpZC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0xMDViODk4MCZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AbWl4aW4gZ3JpZC1pdGVtLWdlbmVyYXRlLWd1dHRlcnMoJF9ib3JkZXJUeXBlOiBsZWZ0KSB7XG4gID4gLnR1aS1ncmlkLWl0ZW0ge1xuICAgIC8qIGJlY2F1c2Ugd2UgdXNlIHRyYW5zcGFyZW50IGJvcmRlcnMgZm9yIGd1dHRlcnMgYnV0IGRvbid0IHdhbnQgdGhhdCovXG4gICAgLyogY291bnRpbmcgYXMgdmlzaWJsZSBpdGVtIHdpZHRoKi9cbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGJvcmRlci0jeyRfYm9yZGVyVHlwZX0tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci0jeyRfYm9yZGVyVHlwZX0tc3R5bGU6IHNvbGlkO1xuICAgIC8qIGBib3JkZXItI3skX2JvcmRlclR5cGV9LXdpZHRoYCBpcyBzZXQgdXNpbmcgaW5saW5lIHN0eWxlcyB2aWEgR3JpZEl0ZW0qL1xuICB9XG59XG5cbi8qIEdyaWQgc3R5bGVzKi9cbi50dWktZ3JpZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZ3JvdzogMTsgLyogaW4gY2FzZSBuZXN0ZWQgaW5zaWRlIGEgcGFyZW50IGdyaWQgY2VsbCovXG4gIG1heC13aWR0aDogMTAwJTtcblxuICAvKiBtYWluIEdyaWQgbW9kaWZpZXJzIGFwcGxpZWQgYmFzZWQgb24gc3VwcGxpZWQgcHJvcCB2YWx1ZXMqL1xuICAmLS13cmFwcGVkIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cblxuICAvKiBjb250ZW50LWNvbnRhaW5pbmcgZWxlbWVudHMqL1xuICAmLWl0ZW0ge1xuICAgIGZsZXgtZ3JvdzogMDsgLyogYnkgZGVmYXVsdCB3ZSB3YW50IGl0ZW0gc2l6ZSB0byByZXNwZWN0IHVuaXQtYmFzZWQgY2FsY3VsYXRpb25zKi9cbiAgICBmbGV4LXNocmluazogMTsgLyogYnkgZGVmYXVsdCB3ZSB3YW50IHRvIGF1dG8tYWRqdXN0IGZvciBndXR0ZXJzKi9cbiAgICBtaW4td2lkdGg6IDA7IC8qIGFsbG93cyBmbGV4IGl0ZW1zIHRvIHNocmluayBiZWxvdyB0aGVpciBtaW5pbXVtIGNvbnRlbnQgc2l6ZSovXG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAvKiBHcmlkIGl0ZW0gbW9kaWZpZXJzIGJhc2VkIG9uIHN1cHBsaWVkIHByb3AgdmFsdWVzKi9cbiAgICAmLS1ncm93IHtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICB9XG4gICAgJi0tbm8tc2hyaW5rIHtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIH1cbiAgICAmLS1vdmVyZmxvdyB7XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICB9XG4gIH1cblxuICAvKiBob3Jpem9udGFsIGdyaWQqL1xuICAmLS1ob3Jpem9udGFsIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgJi1nYXAge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1pdGVtLWdlbmVyYXRlLWd1dHRlcnMobGVmdCk7XG4gICAgfVxuICB9XG5cbiAgLyogdmVydGljYWwgZ3JpZCovXG4gICYtLXZlcnRpY2FsIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgJi1nYXAge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1pdGVtLWdlbmVyYXRlLWd1dHRlcnModG9wKTtcbiAgICB9XG4gIH1cblxuICAmLS13cmFwcGVkLWdhcCAudHVpLWdyaWQtaXRlbS0td3JhcHBlZCB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gIH1cblxuICAvKiBhbGwgemVybyB1bml0IEdyaWRJdGVtcyBzaG91bGQgbm90IHNob3cgYW55IGd1dHRlcnMgb3IgY29udGVudCovXG4gICYtLXZlcnRpY2FsLFxuICAmLS1ob3Jpem9udGFsIHtcbiAgICAudHVpLWdyaWQtaXRlbS0tbm8tdW5pdHMge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICAvKiBzd2l0Y2ggdG8gc3RhY2tlZCBkaXNwbGF5IGF0IGFuIGNvbnRhaW5lci1iYXNlZCBwaXhlbCB3aWR0aCBicmVha3BvaW50Ki9cbiAgLyogdmFsdWUgKGNsYXNzIGlzIGNvbmRpdGlvbmFsbHkgYXBwbGllZCBkdXJpbmcgR3JpZCByZW5kZXIoKSkqL1xuICAmLS1zdGFja2VkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgID4gLnR1aS1ncmlkLWl0ZW0ge1xuICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICB9XG5cbiAgICAmLWdhcCB7XG4gICAgICBAaW5jbHVkZSBncmlkLWl0ZW0tZ2VuZXJhdGUtZ3V0dGVycyh0b3ApO1xuICAgIH1cbiAgfVxuXG4gICYtLWxpc3Qge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvaWNvbnMvTG9hZGluZy52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0wYzg3Mjk1OCZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1pY29uTG9hZGluZyB7XG4gIGFuaW1hdGlvbjogdHVpLWljb25Mb2FkaW5nLXNwaW4gMXMgc3RlcHMoMTIsIGVuZCkgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgdHVpLWljb25Mb2FkaW5nLXNwaW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2ljb25zL2ltcGxlbWVudGF0aW9uL1N2Z0ljb25XcmFwLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTEyM2QwNzVlJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1zdmdJY29uIHtcbiAgLyogc2FtZSBhcyB0aGUgYm9vdHN0cmFwIGljb25zIGRlZmF1bHQgY3NzKi9cbiAgLyogYmV0dGVyIGFsaWdubWVudCBpbiBtb3N0IGNhc2VzIHRoYW4gdmVydGljYWwtYWxpZ246IG1pZGRsZSovXG4gIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcblxuICAmLS1zaXplIHtcbiAgICAmLTEwMCB7XG4gICAgICBmb250LXNpemU6IGNhbGModmFyKC0taWNvbi1zaXplLWJhc2UpICogMC44NzUpO1xuICAgIH1cbiAgICAmLTIwMCB7XG4gICAgICBmb250LXNpemU6IHZhcigtLWljb24tc2l6ZS1iYXNlKTtcbiAgICB9XG4gICAgJi0zMDAge1xuICAgICAgZm9udC1zaXplOiBjYWxjKHZhcigtLWljb24tc2l6ZS1iYXNlKSAqIDEuMjUpO1xuICAgIH1cbiAgICAmLTQwMCB7XG4gICAgICBmb250LXNpemU6IGNhbGModmFyKC0taWNvbi1zaXplLWJhc2UpICogMS41KTtcbiAgICB9XG4gICAgJi01MDAge1xuICAgICAgZm9udC1zaXplOiBjYWxjKHZhcigtLWljb24tc2l6ZS1iYXNlKSAqIDEuNzUpO1xuICAgIH1cbiAgICAmLTYwMCB7XG4gICAgICBmb250LXNpemU6IGNhbGModmFyKC0taWNvbi1zaXplLWJhc2UpICogMik7XG4gICAgfVxuICAgICYtNzAwIHtcbiAgICAgIGZvbnQtc2l6ZTogY2FsYyh2YXIoLS1pY29uLXNpemUtYmFzZSkgKiAyLjM3NSk7XG4gICAgfVxuICB9XG5cbiAgJi0tc3RhdGUge1xuICAgICYtaW5mbyB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJvbXB0LWluZm8pO1xuICAgIH1cblxuICAgICYtYWxlcnQge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByb21wdC1hbGVydCk7XG4gICAgfVxuXG4gICAgJi13YXJuaW5nIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcm9tcHQtd2FybmluZyk7XG4gICAgfVxuXG4gICAgJi1zdWNjZXNzIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcm9tcHQtc3VjY2Vzcyk7XG4gICAgfVxuXG4gICAgJi1kaW1tZWQge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG4gICAgfVxuICB9XG59XG5cbi5kaXItcnRsIC50dWktc3ZnSWNvbi0tZmxpcFJ0bCB7XG4gIHRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvaW1hZ2VzL1Jlc3BvbnNpdmVJbWFnZS52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0zZDk3MjQyMiZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1yZXNwb25zaXZlSW1hZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG5cbiAgJi0tZ3JvdyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvanNvbl9lZGl0b3Ivbm9kZXMvQXR0YWNobWVudE5vZGVDb2xsZWN0aW9uLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTQ4YWM3MjJhJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktYXR0YWNobWVudE5vZGVDb2xsZWN0aW9uIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAje3VucXVvdGUoXG4gICAgICAncmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KG1pbigxNS42MjVyZW0sIDEwMCUpLCAxZnIpKSdcbiAgICApfTtcbiAgZ2FwOiB2YXIoLS1nYXAtMik7XG4gIHBhZGRpbmc6IHZhcigtLWdhcC0xKSAwO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvanNvbl9lZGl0b3Ivbm9kZXMvQXVkaW9CbG9jay52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1jNWY3ODYwMiZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1hdWRpb0Jsb2NrIHtcbiAgbWFyZ2luOiB2YXIoLS1nYXAtOCkgMDtcblxuICAmX19hY3Rpb25zV3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC0yKTtcbiAgfVxuXG4gICZfX3ZpZXdUcmFuc2NyaXB0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cblxuICAmX190cmFuc2NyaXB0Q29udGVudCB7XG4gICAgaGVpZ2h0OiByZW0tcHgoNjAwKTtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9qc29uX2VkaXRvci9ub2Rlcy9FbW9qaS52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0zYmFjYzY0ZSZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktZW1vamkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiAnTm90byBDb2xvciBFbW9qaScsICdBcHBsZSBDb2xvciBFbW9qaScsICdTZWdvZSBVSSBFbW9qaScsXG4gICAgJ1NlZ29lIFVJIFN5bWJvbCcsIFRpbWVzLCBTeW1ib2xhLCBBZWd5cHR1cywgQ29kZTIwMDAsIENvZGUyMDAxLCBDb2RlMjAwMixcbiAgICBNdXNpY2EsIHNlcmlmLCBMYXN0UmVzb3J0O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtdmFyaWFudC1lbW9qaTogZW1vamk7XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9qc29uX2VkaXRvci9ub2Rlcy9IYXNodGFnLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTZjMThmMmQ0Jmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLWhhc2h0YWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG5cbiAgJl9fdGV4dCB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgLyogSG92ZXIgc3RhdGUsIGZvciBub3cgd2Uga2VlcCB0aGUgc2FtZSBjb2xvci4qL1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgICB9XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2pzb25fZWRpdG9yL25vZGVzL0ltYWdlQmxvY2sudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NmMxZDk1MWEmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktaW1hZ2VCbG9jayB7XG4gIG1hcmdpbjogMCAwIHZhcigtLXBhcmFncmFwaC1nYXApIDA7XG5cbiAgQGVhY2ggJG5hbWUsICRzaXplIGluICR0dWktbWVkaWEtbmFtZWQtc2l6ZXMge1xuICAgICYtLWRpc3BsYXlTaXplLSN7JG5hbWV9IHtcbiAgICAgIC8qIElFMTEgZG9lcyBub3Qgc3VwcG9ydCB0aGUgcmVzcG9uc2l2ZSBzaXplcywgc28gc3BlY2lmeSBhIGZpeGVkIGZhbGxiYWNrKi9cbiAgICAgIHdpZHRoOiBtYXAtZ2V0KCRzaXplLCAnZml4ZWQnKTtcbiAgICAgIHdpZHRoOiBtYXAtZ2V0KCRzaXplLCAncmVzcG9uc2l2ZScpO1xuICAgIH1cbiAgfVxufVxuXG5maWd1cmUgPiAudHVpLWltYWdlQmxvY2sge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1nYXAtMSk7XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2pzb25fZWRpdG9yL25vZGVzL0xpbmtCbG9jay52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0zN2RjYTAzYiZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLWxpbmtCbG9jayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgbWF4LXdpZHRoOiByZW0tcHgoMjg2KTtcbiAgaGVpZ2h0OiBjYWxjKCN7cmVtLXB4KDc2KX0gKyAycHgpO1xuICBmb250LXNpemU6IGZvbnQtc2l6ZS1weCgxMyk7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jYXJkLWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyB2YXIoLS10cmFuc2l0aW9uLWZvcm0tZnVuY3Rpb24pXG4gICAgdmFyKC0tdHJhbnNpdGlvbi1mb3JtLWR1cmF0aW9uKTtcblxuICAmOmhvdmVyIHtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctMik7XG4gIH1cblxuICAmX19pbWFnZSB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgb3JkZXI6IDI7XG4gICAgd2lkdGg6IHJlbS1weCg2MCk7XG4gICAgaGVpZ2h0OiByZW0tcHgoNjApO1xuICAgIG1hcmdpbjogdmFyKC0tZ2FwLTIpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDtcblxuICAgID4gaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gICZfX3N1bW1hcnkge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBvcmRlcjogMTtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMik7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gICZfX3NpdGUge1xuICAgIG1hcmdpbi1ib3R0b206IHJlbS1weCgzKTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXNpemU6IGZvbnQtc2l6ZS1weCgxMik7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIH1cblxuICAmX190aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtLXB4KDMpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICAmX19kZXNjcmlwdGlvbiB7XG4gICAgLyogc2hvdyBhIG1heCBvZiAyIGxpbmVzKi9cbiAgICBoZWlnaHQ6IGNhbGMoI3tmb250LXNpemUtcHgoMTMpfSAqIDIgKiAxLjE1KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgJl9fbGlua09ubHkge1xuICAgIC8qIHNob3cgYSBtYXggb2YgNCBsaW5lcyovXG4gICAgaGVpZ2h0OiBjYWxjKCN7Zm9udC1zaXplLXB4KDEzKX0gKiA0ICogMS4xMik7XG4gICAgbWFyZ2luLXRvcDogcmVtLXB4KDIpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXNpemU6IGZvbnQtc2l6ZS1weCgxMyk7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIH1cblxuICAmX19vdmVybGF5TGluayB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAtMXB4OyAvKiAtMXB4IHRvIGFjY291bnQgZm9yIGJvcmRlciovXG4gICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIHR1aS1mb2N1cztcbiAgICB9XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2pzb25fZWRpdG9yL25vZGVzL01lbnRpb24udnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MWQ1ZmQ0MWMmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktbWVudGlvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcblxuICAmX19kaXNwbGF5TmFtZSB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgLyogSG92ZXIgc3RhdGUsIGZvciBub3cgd2Uga2VlcCB0aGUgc2FtZSBjb2xvci4qL1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgICB9XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2pzb25fZWRpdG9yL25vZGVzL1ZpZGVvQmxvY2sudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9YmIwMmE0MGMmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktdmlkZW9CbG9jayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IHZhcigtLWVtYmVkZGVkLW1lZGlhLW1heC13aWR0aCk7XG5cbiAgbWFyZ2luOiB2YXIoLS1nYXAtOCkgMDtcblxuICAudmlkZW8tanMgLnZqcy1jb250cm9sIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG59XG5cbi8qIEVuc3VyZSB0aGUgY29udHJvbHMgYXJlbid0IGluY29ycmVjdGx5IHJldmVyc2VkIGluIFJUTCovXG5bZGlyPSdydGwnXSB7XG4gIC50dWktdmlkZW9CbG9jayB7XG4gICAgLnZpZGVvLWpzIHtcbiAgICAgIC52anMtcHJvZ3Jlc3MtaG9sZGVyIC52anMtcGxheS1wcm9ncmVzcyxcbiAgICAgIC52anMtcHJvZ3Jlc3MtaG9sZGVyIC52anMtbG9hZC1wcm9ncmVzcyxcbiAgICAgIC52anMtcHJvZ3Jlc3MtaG9sZGVyIC52anMtbG9hZC1wcm9ncmVzcyBkaXYsXG4gICAgICAudmpzLXZvbHVtZS1sZXZlbCB7XG4gICAgICAgIC8qIXJ0bDppZ25vcmUqL1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgLyohcnRsOmlnbm9yZSovXG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG5cbiAgICAgIC52anMtcGxheS1wcm9ncmVzczpiZWZvcmUsXG4gICAgICAudmpzLXNsaWRlci1ob3Jpem9udGFsIC52anMtdm9sdW1lLWxldmVsOmJlZm9yZSB7XG4gICAgICAgIC8qIXJ0bDppZ25vcmUqL1xuICAgICAgICByaWdodDogLTAuNWVtO1xuICAgICAgICAvKiFydGw6aWdub3JlKi9cbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9sYXlvdXRzL0xheW91dE9uZUNvbHVtbi52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1iZmYzZTNjNiZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktbGF5b3V0T25lQ29sdW1uIHtcbiAgQGluY2x1ZGUgZm9udChib2R5KTtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTIpO1xuXG4gIEBpbmNsdWRlIHR1aS1zdGFjay12ZXJ0aWNhbCh2YXIoLS1nYXAtNikpO1xuXG4gICZfX2hlYWRpbmcge1xuICAgIEBpbmNsdWRlIHR1aS1zdGFjay12ZXJ0aWNhbCh2YXIoLS1nYXAtMikpO1xuXG4gICAgJi1zdWIge1xuICAgICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTEpO1xuICAgIH1cbiAgfVxuXG4gICYtLWZsdXNoIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtMTIpO1xuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvbGF5b3V0cy9QYWdlQmFja0xpbmsudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NTdlMDhkNzUmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLXBhZ2VCYWNrTGluayB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICZfX2ljb24ge1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tZ2FwLTEpO1xuICAgIC8qIE5lZ2F0aXZlIE9mZnNldCB0byBsZWZ0IGFsaWduIGFycm93IHdpdGggcGFnZSBjb250ZW50Ki9cbiAgICBtYXJnaW4tbGVmdDogLTAuMTllbTtcbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvbGF5b3V0cy9QYWdlSGVhZGluZy52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD00NzQyMGUzZSZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1wYWdlSGVhZGluZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiB2YXIoLS1nYXAtMyk7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG4gICZfX3RpdGxlIHtcbiAgICBAaW5jbHVkZSBmb250KGgxKTtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuXG4gICAgJi0tc21hbGwge1xuICAgICAgQGluY2x1ZGUgZm9udChoMik7XG4gICAgfVxuXG4gICAgJi0tc21hbGxPbk1vYiB7XG4gICAgICBAaW5jbHVkZSBmb250KGgyKTtcbiAgICB9XG4gIH1cblxuICAmX19idXR0b25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IHZhcigtLWdhcC0zKTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICR0dWktc2NyZWVuLXNtKSB7XG4gIC50dWktcGFnZUhlYWRpbmcge1xuICAgICZfX2J1dHRvbnMge1xuICAgICAgJiA+ICoge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgfVxuICAgIH1cbiAgICAmX190aXRsZSB7XG4gICAgICAmLS1zbWFsbE9uTW9iIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udChoMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkdHVpLXNjcmVlbi1tZCkge1xuICAudHVpLXBhZ2VIZWFkaW5nIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvbGlua3MvU2tpcFRvQ29udGVudC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0xNTRmNTU4YyZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1za2lwVG9Db250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG5cbiAgJjpmb2N1cyB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvbG9hZGluZy9Db21wb25lbnRMb2FkaW5nLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWJmYmJmMjFlJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktY29tcG9uZW50TG9hZGluZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiB2YXIoLS1nYXAtMyk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTYpO1xufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2xvYWRpbmcvTG9hZGVyLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTNjYjhlMDA1Jmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1sb2FkZXIge1xuICAkbG9hZGluZy1mdWxscGFnZTogI3smfS0tZnVsbHBhZ2U7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8qIERvbid0IHNob3cgbmVzdGVkIGxvYWRlcnMqL1xuICAmLS1hY3RpdmUgPiAqIC50dWktbG9hZGVyX19vdmVybGF5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLyogSWYgbm8gc2xvdCBjb250ZW50IChlLmcuIGluaXRpYWwgbG9hZCkqL1xuICAmX19lbXB0eSB7XG4gICAgbWluLWhlaWdodDogdmFyKC0tZ2FwLTgpO1xuICB9XG5cbiAgJl9fb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAvKiFydGw6aWdub3JlKi9cbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgICN7JGxvYWRpbmctZnVsbHBhZ2V9ICYge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgei1pbmRleDogdmFyKC0temluZGV4LWxvYWRpbmctcGFnZSk7XG4gICAgfVxuXG4gICAgJi1wb3NpdGlvbmVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xuICAgICAgb3BhY2l0eTogMC44NTtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgIH1cbiAgfVxuXG4gICZfX2Rpc3BsYXkge1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgdG9wOiB2YXIoLS1nYXAtNik7XG4gICAgYm90dG9tOiB2YXIoLS1nYXAtNik7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG4gICAgZm9udC1zaXplOiBmb250LXNpemUtcHgoMTUpO1xuXG4gICAgLmZhLXNwaW5uZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAtMXB4O1xuICAgIH1cbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL2xvYWRpbmcvU2tlbGV0b25Db250ZW50LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTZiNjQ0NjZhJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuOnJvb3Qge1xuICAvKiBCYWNrZ3JvdW5kIGNvbG91ciBvZiBza2VsZXRvbiBhcmVhKi9cbiAgLyogU2hvdWxkIGhhdmUgYXQgbGVhc3QgMzoxIGNvbnRyYXN0IHJhdGlvKi9cbiAgLyogaHR0cHM6Ly93d3cudzMub3JnL1dBSS9XQ0FHMjEvVW5kZXJzdGFuZGluZy9ub24tdGV4dC1jb250cmFzdC5odG1sKi9cbiAgLyogRnV0dXJlIG9wdGlvbiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvQG1lZGlhL3ByZWZlcnMtY29udHJhc3QqL1xuICAtLXNrZWxldG9uLWNvbnRlbnQtYmFja2dyb3VuZDogIzk0OTQ5NDtcbiAgLyogQmFja2dyb3VuZCBjb2xvdXIgb2Ygc2tlbGV0b24gYXJlYSB3aGVuIHVuZGVyIGEgbG9hZGluZyBvdmVybGF5Ki9cbiAgLS1za2VsZXRvbi1jb250ZW50LW92ZXJsYXktYmFja2dyb3VuZDogdmFyKC0tY29sb3ItbmV1dHJhbC01KTtcbiAgLyogQ29sb3VyIG9mIHNoaW1tZXIqL1xuICAtLXNrZWxldG9uLWNvbnRlbnQtc2hpbW1lci1jb2xvcjogI2FhYTtcbiAgLyogQ29sb3VyIG9mIHNoaW1tZXIgd2hlbiB1bmRlciBhIGxvYWRpbmcgb3ZlcmxheSovXG4gIC0tc2tlbGV0b24tY29udGVudC1zaGltbWVyLW92ZXJsYXktY29sb3I6ICNlNmU1ZTU7XG4gIC8qIEJvcmRlciByYWRpdXMgZm9yIHNrZWxldG9uIGNvbnRlbnQqL1xuICAtLXNrZWxldG9uLWNvbnRlbnQtYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG59XG5cbi50dWktc2tlbGV0b25Db250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1za2VsZXRvbi1jb250ZW50LWJhY2tncm91bmQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1za2VsZXRvbi1jb250ZW50LWJvcmRlci1yYWRpdXMpO1xuXG4gIEBpbmNsdWRlIHR1aS1jaGFyLWxlbmd0aC1jbGFzc2VzKCk7XG5cbiAgJi0taGFzT3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tc2tlbGV0b24tY29udGVudC1vdmVybGF5LWJhY2tncm91bmQpO1xuICB9XG5cbiAgJi0tc2hpbW1lciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgLTU1ZGVnLFxuICAgICAgdmFyKC0tc2tlbGV0b24tY29udGVudC1iYWNrZ3JvdW5kKSAwJSxcbiAgICAgIHZhcigtLXNrZWxldG9uLWNvbnRlbnQtYmFja2dyb3VuZCkgMzUlLFxuICAgICAgdmFyKC0tc2tlbGV0b24tY29udGVudC1zaGltbWVyLWNvbG9yKSA1MCUsXG4gICAgICB2YXIoLS1za2VsZXRvbi1jb250ZW50LWJhY2tncm91bmQpIDU4JSxcbiAgICAgIHZhcigtLXNrZWxldG9uLWNvbnRlbnQtYmFja2dyb3VuZCkgMTAwJVxuICAgICk7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAwcHggMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuICAgIGFuaW1hdGlvbjogdHVpLXNrZWxldG9uU2hpbW1lciAzcyBsaW5lYXIgaW5maW5pdGU7XG5cbiAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb24pIHtcbiAgICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIHR1aS1za2VsZXRvblNoaW1tZXIge1xuICAgIDAlIHtcbiAgICAgIC8qIXJ0bDppZ25vcmUqL1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgIC8qIXJ0bDppZ25vcmUqL1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwMHB4IDA7XG4gICAgfVxuICB9XG59XG5cbi50dWktc2tlbGV0b25Db250ZW50LS1oYXNPdmVybGF5LnR1aS1za2VsZXRvbkNvbnRlbnQtLXNoaW1tZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgLTU1ZGVnLFxuICAgIHZhcigtLXNrZWxldG9uLWNvbnRlbnQtb3ZlcmxheS1iYWNrZ3JvdW5kKSAwJSxcbiAgICB2YXIoLS1za2VsZXRvbi1jb250ZW50LW92ZXJsYXktYmFja2dyb3VuZCkgMzUlLFxuICAgIHZhcigtLXNrZWxldG9uLWNvbnRlbnQtc2hpbW1lci1vdmVybGF5LWNvbG9yKSA1MCUsXG4gICAgdmFyKC0tc2tlbGV0b24tY29udGVudC1vdmVybGF5LWJhY2tncm91bmQpIDU4JSxcbiAgICB2YXIoLS1za2VsZXRvbi1jb250ZW50LW92ZXJsYXktYmFja2dyb3VuZCkgMTAwJVxuICApO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMDBweCAxMDAlO1xuICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9sb3plbmdlL0xvemVuZ2UudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9ZmFmMTVjMDQmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1sb3plbmdlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHBhZGRpbmc6IDNweCB2YXIoLS1nYXAtMikgM3B4O1xuICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgQGluY2x1ZGUgZm9udChib2R5LXNtKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcm9tcHQtaW5mbyk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpO1xuXG4gICYtLWFsZXJ0IHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcm9tcHQtYWxlcnQpO1xuICB9XG5cbiAgJi0tc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJvbXB0LXN1Y2Nlc3MpO1xuICB9XG5cbiAgJi0td2FybmluZyB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJvbXB0LXdhcm5pbmcpO1xuICB9XG5cbiAgJi0tbmV1dHJhbCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL21vZGFsL01vZGFsLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTI1MWU4MWM4Jmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuJHR1aS1tb2RhbC1zbWFsbFNpemU6IDQwMHB4ICFkZWZhdWx0O1xuJHR1aS1tb2RhbC1ub3JtYWxTaXplOiA1NjBweCAhZGVmYXVsdDtcbiR0dWktbW9kYWwtbGFyZ2VTaXplOiA4MDBweCAhZGVmYXVsdDtcbiR0dWktbW9kYWwtc2hlZXRCcmVha3BvaW50OiA3NjhweCAhZGVmYXVsdDtcblxuLnR1aS1tb2RhbC13cmFwIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IHZhcigtLXppbmRleC1tb2RhbCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG91dGxpbmU6IG5vbmU7XG5cbiAgJl9fYmFja2Ryb3Age1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJi0tc2hhZGUge1xuICAgIC50dWktbW9kYWwtd3JhcF9fYmFja2Ryb3Age1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZHJvcC1zdGFuZGFyZCk7XG4gICAgfVxuXG4gICAgJi50dWktbW9kYWwtd3JhcC0tdHlwZS1zaGVldCAudHVpLW1vZGFsLXdyYXBfX2JhY2tkcm9wIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tkcm9wLWhlYXZ5KTtcbiAgICB9XG5cbiAgICAmLnR1aS1tb2RhbC13cmFwLS1hbmltYXRlZCB7XG4gICAgICAudHVpLW1vZGFsLXdyYXBfX2JhY2tkcm9wIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLW1vZGFsLWZ1bmN0aW9uKVxuICAgICAgICAgIHZhcigtLXRyYW5zaXRpb24tbW9kYWwtZHVyYXRpb24pO1xuICAgICAgfVxuICAgICAgJi50dWktbW9kYWwtd3JhcC0taW4gLnR1aS1tb2RhbC13cmFwX19iYWNrZHJvcCB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi50dWktbW9kYWwge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogdmFyKC0temluZGV4LW1vZGFsKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgb3V0bGluZTogbm9uZTtcblxuICAmLS1hbmltYXRlZCB7XG4gICAgLnR1aS1tb2RhbF9faW5uZXIge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMHZoKTtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLW1vZGFsLWZ1bmN0aW9uKVxuICAgICAgICAgIHZhcigtLXRyYW5zaXRpb24tbW9kYWwtZHVyYXRpb24pLFxuICAgICAgICBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tbW9kYWwtZnVuY3Rpb24pXG4gICAgICAgICAgdmFyKC0tdHJhbnNpdGlvbi1tb2RhbC1kdXJhdGlvbik7XG4gICAgfVxuXG4gICAgJi50dWktbW9kYWwtLWluIC50dWktbW9kYWxfX2lubmVyIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB9XG4gIH1cblxuICAmLS1lcnJvciB7XG4gICAgei1pbmRleDogdmFyKC0temluZGV4LWVycm9yLW1vZGFsKTtcbiAgfVxuXG4gICYudHVpLW1vZGFsLS10eXBlLXNoZWV0IHtcbiAgICAudHVpLW1vZGFsX19pbm5lciB7XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICB9XG4gIH1cblxuICAmLS1zaGFkZSB7XG4gICAgJi50dWktbW9kYWwtLWFuaW1hdGVkIHtcbiAgICAgICYudHVpLW1vZGFsLS1pbiB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fcGFkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gICZfX2lubmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy00KTtcbiAgfVxuXG4gICZfX2hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgfVxuXG4gICZfX2Nsb3NlLFxuICAmX19vdXRzaWRlQ2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtNCk7XG4gICAgZm9udC1zaXplOiBmb250LXNpemUtcHgoMTgpO1xuICB9XG5cbiAgJl9fb3V0c2lkZUNsb3NlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZHJvcC1jb250cmFzdCk7XG4gIH1cblxuICAmX19vdXRzaWRlQ2xvc2U6aG92ZXIsXG4gICZfX291dHNpZGVDbG9zZTpmb2N1cyB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWJhY2tkcm9wLWNvbnRyYXN0KTtcbiAgICBvcGFjaXR5OiAwLjg7XG4gIH1cbn1cblxuLmhhcy10dWktbW9kYWwge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHR1aS1tb2RhbC1zaGVldEJyZWFrcG9pbnQpIHtcbiAgLnR1aS1tb2RhbC0tdHlwZS1zaGVldCB7XG4gICAgJi50dWktbW9kYWwtLWFuaW1hdGVkIHtcbiAgICAgIC50dWktbW9kYWxfX2lubmVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuXG4gICAgICAmLnR1aS1tb2RhbC0taW4gLnR1aS1tb2RhbF9faW5uZXIge1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG5cbiAgICAgIC50dWktbW9kYWxfX291dHNpZGVDbG9zZSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1tb2RhbC1mdW5jdGlvbilcbiAgICAgICAgICB2YXIoLS10cmFuc2l0aW9uLW1vZGFsLWR1cmF0aW9uKTtcbiAgICAgIH1cblxuICAgICAgJi50dWktbW9kYWwtLWluIC50dWktbW9kYWxfX291dHNpZGVDbG9zZSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG5cbiAgICAgICYudHVpLW1vZGFsLS1pbiAudHVpLW1vZGFsX19vdXRzaWRlQ2xvc2U6aG92ZXIsXG4gICAgICAmLnR1aS1tb2RhbC0taW4gLnR1aS1tb2RhbF9fb3V0c2lkZUNsb3NlOmZvY3VzIHtcbiAgICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgfVxuICAgIH1cblxuICAgIC50dWktbW9kYWwge1xuICAgICAgJl9fcGFkIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tbW9kYWwtc2hlZXQtcGFkZGluZyk7XG4gICAgICB9XG5cbiAgICAgICZfX2lubmVyIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tbW9kYWwtYm9yZGVyLXJhZGl1cyk7XG4gICAgICB9XG5cbiAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgJl9fb3V0c2lkZUNsb3NlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHR1aS1tb2RhbC1zaXplKCRuYW1lLCAkd2lkdGgpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6ICgkd2lkdGggKyA3NXB4KSkge1xuICAgIC50dWktbW9kYWwtLXR5cGUtbm9ybWFsLnR1aS1tb2RhbC0tc2l6ZS0jeyRuYW1lfSB7XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgICAmLnR1aS1tb2RhbC0tYWx3YXlzLXNjcm9sbCB7XG4gICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAgIH1cblxuICAgICAgJi50dWktbW9kYWwtLWFuaW1hdGVkIHtcbiAgICAgICAgLnR1aS1tb2RhbF9faW5uZXIge1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi50dWktbW9kYWwtLWluIC50dWktbW9kYWxfX2lubmVyIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvKiBhIHNlcGFyYXRlIF9fcGFkIGVsZW1lbnQgaXMgcmVxdWlyZWQgYXMgZmxleGJveCBjZW50ZXJpbmcgd2l0aCovXG4gICAgICAvKiBgbWFyZ2luLXRvcC9ib3R0b206IGF1dG87YCBhbmQgcGFkZGluZyBvbiB0aGUgcGFyZW50IGFyZSBub3QgY29tcGF0aWJsZSovXG4gICAgICAudHVpLW1vZGFsIHtcbiAgICAgICAgJl9fcGFkIHtcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgIHBhZGRpbmc6IHZhcigtLW1vZGFsLWNvbnRhaW5lci1wYWRkaW5nKSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5uZXIge1xuICAgICAgICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLW1vZGFsLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19vdXRzaWRlQ2xvc2Uge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogKCR3aWR0aCAvICgzLzQpKSkge1xuICAgICAgLnR1aS1tb2RhbC0tdHlwZS1kcmF3ZXIudHVpLW1vZGFsLS1zaXplLSN7JG5hbWV9IHtcbiAgICAgICAgJi50dWktbW9kYWwtLWFuaW1hdGVkIHtcbiAgICAgICAgICAudHVpLW1vZGFsX19pbm5lciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHdpZHRoKTtcbiAgICAgICAgICAgIC5kaXItcnRsICYge1xuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSR3aWR0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi50dWktbW9kYWwtLWluIC50dWktbW9kYWxfX2lubmVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAudHVpLW1vZGFsX19wYWQge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnR1aS1tb2RhbF9faW5uZXIge1xuICAgICAgICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICBib3JkZXItbGVmdDogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIHNvbGlkIHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLnR1aS1tb2RhbC0tc2hhZGUgLnR1aS1tb2RhbF9faW5uZXIge1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctNCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgdHVpLW1vZGFsLXNpemUoJ3NtYWxsJywgJHR1aS1tb2RhbC1zbWFsbFNpemUpO1xuQGluY2x1ZGUgdHVpLW1vZGFsLXNpemUoJ25vcm1hbCcsICR0dWktbW9kYWwtbm9ybWFsU2l6ZSk7XG5AaW5jbHVkZSB0dWktbW9kYWwtc2l6ZSgnbGFyZ2UnLCAkdHVpLW1vZGFsLWxhcmdlU2l6ZSk7XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL21vZGFsL01vZGFsQ29udGVudC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1iODdiN2QyNiZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLW1vZGFsQ29udGVudCB7XG4gIEBpbmNsdWRlIGZvbnQoYm9keSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtZ3JvdzogMTtcbiAgbWluLWhlaWdodDogMDtcblxuICAmX19oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgcGFkZGluZzogdmFyKC0tbW9kYWwtY29udGVudC1vdXRlci1wYWRkaW5nKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tZ2FwLTQpO1xuICAgICYtLW5vQm90dG9tUGFkZGluZyB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAmLXRpdGxlIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQoaDMpO1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICAgICYtLXNyb25seSB7XG4gICAgICAgIEBpbmNsdWRlIHNyLW9ubHkoKTtcbiAgICAgIH1cblxuICAgICAgJi0tc21hbGwge1xuICAgICAgICBAaW5jbHVkZSBmb250KGg0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLWJ1dHRvbnMge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gICZfX2NvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMikgdmFyKC0tbW9kYWwtY29udGVudC1vdXRlci1wYWRkaW5nKTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICYtLW5vVG9wUGFkZGluZyB7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG4gIH1cblxuICAmLS1ub0NvbnRlbnRQYWRkaW5nICZfX2NvbnRlbnQge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAmX19mb290ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiB2YXIoLS1tb2RhbC1jb250ZW50LW91dGVyLXBhZGRpbmcpO1xuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1nYXAtNCk7XG4gICAgJi1idXR0b25zIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gICYgPiA6bGFzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLW1vZGFsLWNvbnRlbnQtb3V0ZXItcGFkZGluZyk7XG4gIH1cblxuICAmLS1ub0NvbnRlbnRQYWRkaW5nIHtcbiAgICAmID4gOmxhc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvbW9kYWwvTW9kYWxIZWFkZXJCdXR0b24udnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NWUxNDRkZGImbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLW1vZGFsSGVhZGVyQnV0dG9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogcmVtLXB4KDI0KTtcbiAgaGVpZ2h0OiByZW0tcHgoMjQpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gIH1cbiAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICBAaW5jbHVkZSB0dWktZm9jdXMoKTtcbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQmFubmVyLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWI4NzEyZjA2Jmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuQG1peGluIHR1aS1ub3RpZmljYXRpb24tYmFubmVyLWNvbG9yKCRuYW1lLCAkY29sb3IpIHtcbiAgLnR1aS1ub3RpZmljYXRpb25CYW5uZXIge1xuICAgICYtLSN7JG5hbWV9IHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICAgIH1cblxuICAgICYtLSN7JG5hbWV9ICZfX2ljb24ge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG4udHVpLW5vdGlmaWNhdGlvbkJhbm5lciB7XG4gIEBpbmNsdWRlIGZvbnQoYm9keS1zbSk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XG4gIGJvcmRlcjogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIHNvbGlkIHZhcigtLWNvbG9yLXByb21wdC1pbmZvKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG5cbiAgJl9faWNvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtNCk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJvbXB0LWluZm8pO1xuICAgIC8qIC0xcHggdG8gYXZvaWQgaXNzdWUgd2l0aCByYXpvciB0aGluIHdoaXRlIGxpbmUgYmV0d2VlbiBpY29uIGNvbnRhaW5lciBhbmQgbm90aWZpY2F0aW9uIGJvcmRlciovXG4gICAgLyogcHJldHRpZXItaWdub3JlKi9cbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBjYWxjKHZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpIC0gdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIC0gMXB4KTtcbiAgICAvKiBwcmV0dGllci1pZ25vcmUqL1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IGNhbGModmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCkgLSB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgLSAxcHgpO1xuICB9XG5cbiAgJl9fYm9keSB7XG4gICAgZmxleC1ncm93OiAxO1xuICB9XG5cbiAgJl9fbWVzc2FnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAxO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTMpO1xuXG4gICAgJi0taW5saW5lIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG4gIH1cblxuICAmX19kaXNtaXNzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgJl9idXR0b24ge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIHR1aS1ub3RpZmljYXRpb24tYmFubmVyLWNvbG9yKCdzdWNjZXNzJywgdmFyKC0tY29sb3ItcHJvbXB0LXN1Y2Nlc3MpKTtcbkBpbmNsdWRlIHR1aS1ub3RpZmljYXRpb24tYmFubmVyLWNvbG9yKCd3YXJuaW5nJywgdmFyKC0tY29sb3ItcHJvbXB0LXdhcm5pbmcpKTtcbkBpbmNsdWRlIHR1aS1ub3RpZmljYXRpb24tYmFubmVyLWNvbG9yKCdlcnJvcicsIHZhcigtLWNvbG9yLXByb21wdC1hbGVydCkpO1xuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkdHVpLXNjcmVlbi1zbSkge1xuICAudHVpLW5vdGlmaWNhdGlvbkJhbm5lciB7XG4gICAgQGluY2x1ZGUgZm9udChib2R5KTtcblxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbm9ybWFsKTtcblxuICAgICZfX2ljb24ge1xuICAgICAgLyogLTFweCB0byBhdm9pZCBpc3N1ZSB3aXRoIHJhem9yIHRoaW4gd2hpdGUgbGluZSBiZXR3ZWVuIGljb24gY29udGFpbmVyIGFuZCBub3RpZmljYXRpb24gYm9yZGVyKi9cbiAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSovXG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBjYWxjKHZhcigtLWJvcmRlci1yYWRpdXMtbm9ybWFsKSAtIHZhcigtLWJvcmRlci13aWR0aC10aGluKSAtIDFweCk7XG4gICAgICAvKiBwcmV0dGllci1pZ25vcmUqL1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogY2FsYyh2YXIoLS1ib3JkZXItcmFkaXVzLW5vcm1hbCkgLSB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgLSAxcHgpO1xuICAgIH1cbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Ub2FzdC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD01NjY3OTUzNCZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuQG1peGluIHR1aS1ub3RpZmljYXRpb24tdG9hc3QtY29sb3IoJG5hbWUsICRjb2xvcikge1xuICAudHVpLW5vdGlmaWNhdGlvblRvYXN0IHtcbiAgICAmLS0jeyRuYW1lfSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgfVxuXG4gICAgJi0tI3skbmFtZX0gJl9faWNvbiB7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgfVxuICB9XG59XG5cbi50dWktbm90aWZpY2F0aW9uVG9hc3Qge1xuICBAaW5jbHVkZSBmb250KGJvZHktc20pO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGNvbG9yOiB2YXIoLS10b2FzdC1jb2xvci10ZXh0KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJvbXB0LXN1Y2Nlc3MpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXNtYWxsKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTMpO1xuXG4gICZfX2ljb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtNCkgMCB2YXIoLS1nYXAtNCkgdmFyKC0tZ2FwLTQpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByb21wdC1zdWNjZXNzKTtcbiAgICAvKiAtMXB4IHRvIGF2b2lkIGlzdWUgd2l0aCByYXpvciB0aGluIHdoaXRlIGxpbmUgYmV0d2VlbiBpY29uIGNvbnRhaW5lciBhbmQgbm90aWZpY2F0aW9uIGJvcmRlciovXG4gICAgLyogcHJldHRpZXItaWdub3JlKi9cbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBjYWxjKHZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpIC0gdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIC0gMXB4KTtcbiAgICAvKiBwcmV0dGllci1pZ25vcmUqL1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IGNhbGModmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCkgLSB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgLSAxcHgpO1xuICB9XG5cbiAgJl9fbWVzc2FnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAxO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTQpIHZhcigtLWdhcC0yKTtcbiAgfVxuXG4gICZfX2Rpc21pc3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAmX2J1dHRvbiB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSB0dWktbm90aWZpY2F0aW9uLXRvYXN0LWNvbG9yKCdlcnJvcicsIHZhcigtLWNvbG9yLXByb21wdC1hbGVydCkpO1xuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkdHVpLXNjcmVlbi1zbSkge1xuICAudHVpLW5vdGlmaWNhdGlvblRvYXN0IHtcbiAgICBAaW5jbHVkZSBmb250KGJvZHkpO1xuICAgIGNvbG9yOiB2YXIoLS10b2FzdC1jb2xvci10ZXh0KTtcblxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbm9ybWFsKTtcblxuICAgICZfX2ljb24ge1xuICAgICAgLyogLTFweCB0byBhdm9pZCBpc3VlIHdpdGggcmF6b3IgdGhpbiB3aGl0ZSBsaW5lIGJldHdlZW4gaWNvbiBjb250YWluZXIgYW5kIG5vdGlmaWNhdGlvbiBib3JkZXIqL1xuICAgICAgLyogcHJldHRpZXItaWdub3JlKi9cbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGNhbGModmFyKC0tYm9yZGVyLXJhZGl1cy1ub3JtYWwpIC0gdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIC0gMXB4KTtcbiAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSovXG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBjYWxjKHZhcigtLWJvcmRlci1yYWRpdXMtbm9ybWFsKSAtIHZhcigtLWJvcmRlci13aWR0aC10aGluKSAtIDFweCk7XG4gICAgfVxuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL1RvYXN0Q29udGFpbmVyLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTliNzdmZmMwJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLXRvYXN0Q29udGFpbmVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IHZhcigtLWdhcC02KTtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IHZhcigtLXppbmRleC10b2FzdCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAmX19pbm5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXgtYmFzaXM6IDMwMHB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICB9XG5cbiAgJl9faXRlbS10cmFuc2l0aW9uIHtcbiAgICAmLWVudGVyLWFjdGl2ZSxcbiAgICAmLWxlYXZlLWFjdGl2ZSB7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZS1vdXQ7XG4gICAgfVxuXG4gICAgJi1lbnRlcixcbiAgICAmLWxlYXZlLXRvIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgJi1sZWF2ZS1hY3RpdmUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHR1aS1zY3JlZW4tc20pIHtcbiAgLnR1aS10b2FzdENvbnRhaW5lciB7XG4gICAgJl9faW5uZXIge1xuICAgICAgZmxleC1iYXNpczogNTAwcHg7XG4gICAgfVxuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL292ZXJmbG93X2NvbnRhaW5lci9PdmVyZmxvd0NvbnRhaW5lci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD02Mjg0NDFkYSZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLW92ZXJmbG93Q29udGFpbmVyIHtcbiAgJl9fY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgPiAqICsgKiB7XG4gICAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwLTQpO1xuXG4gICAgICAudHVpLW92ZXJmbG93Q29udGFpbmVyLS13aWRlICYge1xuICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwLTYpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2NvbnRhaW5lckl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1iYXNpczogMjAwcHg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZmxleC1zaHJpbms6IDE7XG4gICAgbWluLXdpZHRoOiAxOThweDtcbiAgICBtYXgtd2lkdGg6IDI0OHB4O1xuXG4gICAgPiAqIHtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICB9XG5cbiAgICAmLS1wb3N0IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG5cbiAgICAgIC50dWktb3ZlcmZsb3dDb250YWluZXJfX2NvbnRhaW5lckl0ZW0ge1xuICAgICAgICAmLXZpZXdBbGwge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgbWFyZ2luOiBhdXRvIDA7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG5cbiAgICAgICAgICAmLS1vbmx5IHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtdmlld0FsbEljb24ge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHdpZHRoOiA0OHB4O1xuICAgICAgICAgIGhlaWdodDogNDhweDtcbiAgICAgICAgICBtYXJnaW46IGF1dG8gYXV0byAwIGF1dG87XG4gICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgICBmb250LXNpemU6IGZvbnQtc2l6ZS1weCgyNCk7XG4gICAgICAgICAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWQgdmFyKC0tY29sb3Itc3RhdGUpO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtdmlld0FsbEFjdGlvbiB7XG4gICAgICAgICAgbWFyZ2luOiB2YXIoLS1nYXAtMikgMCBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1saW5rIHtcbiAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9wYWdpbmcvUGFnaW5nLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTEwZmJkZGMwJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLXBhZ2luZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcblxuICAmX19wZXJQYWdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1hcmdpbjogYXV0byAwO1xuXG4gICAgJi1sYWJlbCB7XG4gICAgICBtYXJnaW46IGF1dG8gdmFyKC0tZ2FwLTMpIGF1dG8gMDtcbiAgICB9XG5cbiAgICAmLXNlbGVjdCB7XG4gICAgICBmbGV4OiByZW0tcHgoNzApIDAgMDtcbiAgICB9XG4gIH1cblxuICAmX19zZWxlY3RvciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW46IGF1dG8gMDtcblxuICAgICYtbnVtYmVyIHtcbiAgICAgIG1pbi13aWR0aDogNDBweDtcbiAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgICBtYXJnaW46IGF1dG8gMDtcbiAgICAgIHBhZGRpbmc6IHZhcigtLWdhcC00KTtcblxuICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2RpcmVjdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1hcmdpbjogYXV0byAwO1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ2FwLTQpO1xuICAgIGJvcmRlci1sZWZ0OiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWQgdmFyKC0tY29sb3ItbmV1dHJhbC01KTtcblxuICAgIC50dWktcGFnaW5nLS1uYXJyb3cgJiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICB9XG5cbiAgICAmLWxhYmVsIHtcbiAgICAgIG1hcmdpbjogYXV0byB2YXIoLS1nYXAtMikgYXV0byAwO1xuICAgIH1cblxuICAgICYgJi1wYWdlW3R5cGVdIHtcbiAgICAgIG1hcmdpbjogYXV0byB2YXIoLS1nYXAtMSkgYXV0byAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2xvYWRpbmcge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3BvcG92ZXIvUG9wb3Zlci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD03MzhkMDllOCZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLXBvcG92ZXIge1xuICAmX193cmFwIHtcbiAgICAmLS12YWxpZ24ge1xuICAgICAgJi1jZW50ZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3BvcG92ZXIvUG9wb3ZlckZyYW1lLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTY2MmI1ZDcxJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1wb3BvdmVyRnJhbWUge1xuICBAaW5jbHVkZSBmb250KGJvZHkpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1heC13aWR0aDogMzAwcHg7XG4gIC8qIG1hcmdpbiBtdXN0IGJlIGVxdWFsIG9uIGFsbCA0IHNpZGVzLCBhbmQgbXVzdCBub3QgY2hhbmdlIHdpdGggcG9zaXRpb24qL1xuICBtYXJnaW46IDEwcHg7XG4gIHBhZGRpbmc6IHZhcigtLWdhcC00KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy0zKTtcblxuICAmOjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAtMTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XG4gICAgY29udGVudDogJyc7XG4gIH1cblxuICAmLS1zaXplLXNtIHtcbiAgICB3aWR0aDogMjUwcHg7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG5cbiAgJi0tc2l6ZS1tZCB7XG4gICAgd2lkdGg6IDMwMHB4O1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxuXG4gICYtLXNpemUtbGcge1xuICAgIHdpZHRoOiA5NXZ3O1xuICAgIG1heC13aWR0aDogbm9uZTtcblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgd2lkdGg6IDU2MHB4O1xuICAgIH1cbiAgfVxuXG4gICYtLXNsaW0ge1xuICAgIHBhZGRpbmc6IHZhcigtLWdhcC0yKTtcbiAgfVxuXG4gICZfX2Nsb3NlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogY2FsYygje3JlbS1weCgxNCl9IC0gMC4xZW0pIGNhbGMoI3tyZW0tcHgoMTQpfSAtIDAuM2VtKTtcbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBAaW5jbHVkZSBmb250KGg0KTtcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tZ2FwLTIpO1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWdhcC00KTtcbiAgfVxuXG4gICZfX2NvbnRlbnQge1xuICAgIG1heC1oZWlnaHQ6IDgwdmg7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTQpO1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tZ2FwLTQpIHZhcigtLWdhcC0yKSAwO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgJiBpbWcge1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICYtLXNsaW0sXG4gICAgJi0tbm9QYWRkaW5nIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG5cbiAgJl9fdGl0bGUgKyAmX19jb250ZW50LFxuICAmX19jb250ZW50LS1ub25DbG9zYWJsZSB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxuXG4gICZfX2J1dHRvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgcGFkZGluZy10b3A6IHZhcigtLWdhcC0xKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tZ2FwLTMpO1xuXG4gICAgPiAqIHtcbiAgICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC0yKTtcbiAgICB9XG5cbiAgICA+ICogKyAqIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXAtNCk7XG4gICAgfVxuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9wb3BvdmVyL1BvcG92ZXJQb3NpdGlvbmVyLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWIxN2FlYTdjJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLXBvcG92ZXJQb3NpdGlvbmVyIHtcbiAgLyogbm90ZTogcG9zaXRpb246IGFic29sdXRlICsgei1pbmRleCB0cmlnZ2VycyBhIG5ldyBzdGFja2luZyBjb250ZXh0Ki9cbiAgLyogdGhpcyBhbGxvd3MgdXMgdG8gZXNjYXBlIGZyb20gb3ZlcmZsb3c6IGhpZGRlbi4qL1xuICAvKiBiZWNhdXNlIHN0YWNraW5nIGNvbnRleHRzIGNhbiBiZSBuZXN0ZWQsIHRoaXMgd2lsbCBzdGlsbCB3b3JrIGNvcnJlY3RseSovXG4gIC8qIGV2ZW4gaW5zaWRlIG1vZGFscywgd2hpY2ggaGF2ZSBhIGhpZ2hlciB6LWluZGV4Ki9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIC8qIXJ0bDppZ25vcmUqL1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiB2YXIoLS16aW5kZXgtcG9wb3Zlcik7XG4gIHdpZHRoOiBhdXRvO1xuICBAaW5jbHVkZSBmb250KGJvZHkpO1xuXG4gICYtLWZpeGVkIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gIH1cblxuICAmLS10cmFuc2l0aW9uLWRlZmF1bHQge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycztcbiAgfVxuXG4gICYtLXRyYW5zaXRpb24tZGVmYXVsdC1lbnRlcixcbiAgJi0tdHJhbnNpdGlvbi1kZWZhdWx0LWxlYXZlLXRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgJi0tdHJhbnNpdGlvbi1kcm9wZG93biB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwcztcbiAgfVxuXG4gICYtLXRyYW5zaXRpb24tZHJvcGRvd24tZW50ZXIsXG4gICYtLXRyYW5zaXRpb24tZHJvcGRvd24tbGVhdmUtdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAmLS10cmFuc2l0aW9uLWRyb3Bkb3duLWxlYXZlLXRvIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzO1xuICB9XG59XG5cbi50dWktbW9kYWwtLWFuaW1hdGVkIC50dWktcG9wb3ZlclBvc2l0aW9uZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnR1aS1tb2RhbC0tYW5pbWF0ZWQudHVpLW1vZGFsLS1pbiAudHVpLXBvcG92ZXJQb3NpdGlvbmVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3BvcG92ZXIvVG9vbHRpcC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0yYTYxZTUyYyZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLXRvb2x0aXAge1xuICAmX19ib2R5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IC13ZWJraXQtbWF4LWNvbnRlbnQ7XG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgIG1heC13aWR0aDogODB2dztcbiAgICBtYXJnaW46IDEwcHg7IC8qIGFycm93IHNpemUqL1xuICAgIHBhZGRpbmc6IGdhcCgyKSBnYXAoMyk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpO1xuXG4gICAgLyogc3dpdGNoIHdoZW4gMzAwcHggd291bGQgYmUgODAlIG9mIHRoZSB2aWV3cG9ydCAoODB2dykgdG8gYXZvaWQganVtcCovXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IHJlbS1weCgzMDAgLyAwLjgpKSB7XG4gICAgICBtYXgtd2lkdGg6IHJlbS1weCgzMDApO1xuICAgIH1cbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3Byb2ZpbGUvTWluaVByb2ZpbGVDYXJkLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTJmNjRkYjZkJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1taW5pUHJvZmlsZUNhcmQge1xuICAvKiBUaGUgcGFyZW50IHdobyB1c2VzIHRoaXMgY2FyZCBkZWNpZGVzIHRoZSB3aWR0aC9oZWlnaHQuKi9cbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIHBhZGRpbmc6IHZhcigtLWdhcC0yKTtcbiAgb3V0bGluZTogbm9uZTtcblxuICAmLS1uby1hdmF0YXIge1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ2FwLTQpO1xuICB9XG5cbiAgJi0tbm8tZHJvcGRvd24ge1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWdhcC00KTtcbiAgfVxuXG4gICYtLW5vLXBhZGRpbmcge1xuICAgIC8qIFJlc2V0IHBhZGRpbmcgdG8gemVyby4qL1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAmLS1ib3JkZXIge1xuICAgIGJvcmRlcjogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIHNvbGlkIHZhcigtLWNvbG9yLW5ldXRyYWwtNSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1ub3JtYWwpO1xuICB9XG5cbiAgJi0taGFzU2hhZG93IHtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctMik7XG4gIH1cblxuICAmX19hdmF0YXIge1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tZ2FwLTIpO1xuICB9XG5cbiAgJi0taG9yaXpvbnRhbCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gICZfX2Rlc2NyaXB0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDE7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJi0taG9yaXpvbnRhbCB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgICAmID4gKiArICoge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWdhcC00KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1ob3Jpem9udGFsSXRlbXMtMSB7XG4gICAgICAmID4gKiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtLWhvcml6b250YWxJdGVtcy0yIHtcbiAgICAgICYgPiAqIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1ob3Jpem9udGFsSXRlbXMtMyB7XG4gICAgICAmID4gKiB7XG4gICAgICAgIHdpZHRoOiAzMyU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0taG9yaXpvbnRhbEl0ZW1zLTQge1xuICAgICAgJiA+ICoge1xuICAgICAgICB3aWR0aDogMjUlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX3JvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgJi10ZXh0IHtcbiAgICAgIEBpbmNsdWRlIGZvbnQoYm9keS1zbSk7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG4gICAgICAmLS1ib2xkIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi1saW5rIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQoYm9keS1zbSk7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG4gICAgICAmLS1ib2xkIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0td2l0aEdhcCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1nYXAtMSk7XG4gICAgfVxuICB9XG5cbiAgJl9fZHJvcERvd24ge1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXAtNCk7XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9wcm9ncmVzcy9Qcm9ncmVzcy52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD01ZGJhMmNjMCZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktcHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IHJlbS1weCgxNCk7XG4gIGZvbnQtc2l6ZTogcmVtLXB4KDExKTtcbiAgbGluZS1oZWlnaHQ6IHJlbS1weCgxNCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByb2dyZXNzLWNvbnRhaW5lci1iZy1jb2xvcik7XG5cbiAgJi0tY2hyb21lIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wcm9ncmVzcy1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWdhcC0yKTtcbiAgfVxuXG4gICYtLXNtYWxsIHtcbiAgICBoZWlnaHQ6IHJlbS1weCgxMik7XG4gICAgbGluZS1oZWlnaHQ6IHJlbS1weCgxMCk7XG4gIH1cblxuICAmLS14LXNtYWxsIHtcbiAgICBoZWlnaHQ6IHJlbS1weCg2KTtcbiAgfVxuXG4gICYtLWhpZGVCYWNrZ3JvdW5kIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG5cbiAgJl9fYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJvZ3Jlc3MtdmFsdWUtYmctY29sb3IpO1xuICAgIHRyYW5zaXRpb246IHdpZHRoIHZhcigtLXRyYW5zaXRpb24tcHJvZ3Jlc3MtZnVuY3Rpb24pXG4gICAgICB2YXIoLS10cmFuc2l0aW9uLXByb2dyZXNzLWR1cmF0aW9uKTtcblxuICAgIC50dWktcHJvZ3Jlc3MtLWNocm9tZSAmIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWdhcC0yKTtcbiAgICB9XG4gIH1cblxuICAmX19sYWJlbCB7XG4gICAgcGFkZGluZzogMCB2YXIoLS1nYXAtMSk7XG4gICAgb3BhY2l0eTogMDtcblxuICAgICYtLWluc2lkZSB7XG4gICAgICBjb2xvcjogdmFyKC0tcHJvZ3Jlc3MtdmFsdWUtdGV4dC1jb2xvcik7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLXByb2dyZXNzLWZ1bmN0aW9uKVxuICAgICAgICB2YXIoLS10cmFuc2l0aW9uLXByb2dyZXNzLWR1cmF0aW9uKTtcbiAgICB9XG4gICAgJi0tb3V0c2lkZSB7XG4gICAgICBjb2xvcjogdmFyKC0tcHJvZ3Jlc3MtY29udGFpbmVyLXRleHQtY29sb3IpO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3Byb2dyZXNzdHJhY2tlci9Qcm9ncmVzc1RyYWNrZXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MzY4MjNjNzgmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiRwcm9ncmVzcy10cmFja2VyLWxpbmUtc206IDEwMHB4ICFkZWZhdWx0O1xuJHByb2dyZXNzLXRyYWNrZXItbGluZS1tZDogMjAwcHggIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtdHJhY2tlci1saW5lLWxnOiAyNTBweCAhZGVmYXVsdDtcbiRwcm9ncmVzcy10cmFja2VyLWhhbGYtY2lyY2xlOiAxNHB4ICFkZWZhdWx0O1xuXG4udHVpLXByb2dyZXNzVHJhY2tlckl0ZW1zIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAvKiBMaW5lIHN0eWxlcyovXG4gICYgPiAqICsgKiB7XG4gICAgJi50dWktcHJvZ3Jlc3NUcmFja2VySXRlbSB7XG4gICAgICAudHVpLXByb2dyZXNzVHJhY2tlckl0ZW1fX2NvbnRlbnQ6OmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAkcHJvZ3Jlc3MtdHJhY2tlci1oYWxmLWNpcmNsZTtcbiAgICAgICAgbGVmdDogLTUwJTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLWJvcmRlci13aWR0aC10aGluKSAwIDAgMDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICB9XG5cbiAgICAgICYtLXBlbmRpbmcge1xuICAgICAgICAudHVpLXByb2dyZXNzVHJhY2tlckl0ZW1fX2NvbnRlbnQ6OmJlZm9yZSB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItcGVuZGluZyk7XG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi0tY29tcGxldGUge1xuICAgICAgICAudHVpLXByb2dyZXNzVHJhY2tlckl0ZW1fX2NvbnRlbnQ6OmJlZm9yZSB7XG4gICAgICAgICAgdG9wOiAoJHByb2dyZXNzLXRyYWNrZXItaGFsZi1jaXJjbGUgLSAxKTtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1jb21wbGV0ZSk7XG4gICAgICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpY2spIDAgMCAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYtLWFjaGlldmVkIHtcbiAgICAgICAgLnR1aS1wcm9ncmVzc1RyYWNrZXJJdGVtX19jb250ZW50OjpiZWZvcmUge1xuICAgICAgICAgIHRvcDogKCRwcm9ncmVzcy10cmFja2VyLWhhbGYtY2lyY2xlIC0gMSk7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItYWNoaWV2ZWQpO1xuICAgICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaWNrKSAwIDAgMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAmLS12ZXJ0aWNhbCB7XG4gICAgJiA+ICogKyAqIHtcbiAgICAgICYudHVpLXByb2dyZXNzVHJhY2tlckl0ZW0ge1xuICAgICAgICAudHVpLXByb2dyZXNzVHJhY2tlckl0ZW1fX2NvbnRlbnQ6OmJlZm9yZSB7XG4gICAgICAgICAgdG9wOiAtNTAlO1xuICAgICAgICAgIGxlZnQ6ICgkcHJvZ3Jlc3MtdHJhY2tlci1oYWxmLWNpcmNsZSAtIDEpO1xuICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICBib3JkZXItd2lkdGg6IDAgMCAwIHZhcigtLWJvcmRlci13aWR0aC10aGljayk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudHVpLXByb2dyZXNzVHJhY2tlckl0ZW0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4LXNocmluazogMDtcblxuICAgICYtLXNtYWxsIHtcbiAgICAgIHdpZHRoOiAkcHJvZ3Jlc3MtdHJhY2tlci1saW5lLXNtO1xuICAgIH1cblxuICAgICYtLW1lZGl1bSB7XG4gICAgICB3aWR0aDogJHByb2dyZXNzLXRyYWNrZXItbGluZS1tZDtcbiAgICB9XG5cbiAgICAmLS1sYXJnZSB7XG4gICAgICB3aWR0aDogJHByb2dyZXNzLXRyYWNrZXItbGluZS1sZztcbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMik7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICYtY3VycmVudCB7XG4gICAgICAgIC50dWktYnRuIHtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUtYWN0aXZlKTtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICZfX3N0YXR1cyxcbiAgICAmX190YXJnZXQge1xuICAgICAgQGluY2x1ZGUgc3Itb25seSgpO1xuICAgIH1cblxuICAgIC8qIFNwYWNpbmcgYWZ0ZXIgZm9yIG92ZXJmbG93IGRldGVjdG9yKi9cbiAgICA6bGFzdC1jaGlsZCB7XG4gICAgICAmLS1zbWFsbCB7XG4gICAgICAgIHdpZHRoOiAoJHByb2dyZXNzLXRyYWNrZXItbGluZS1zbSAqIDIpO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcHJvZ3Jlc3MtdHJhY2tlci1saW5lLXNtO1xuICAgICAgfVxuXG4gICAgICAmLS1tZWRpdW0ge1xuICAgICAgICB3aWR0aDogKCRwcm9ncmVzcy10cmFja2VyLWxpbmUtbWQgKiAyKTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHByb2dyZXNzLXRyYWNrZXItbGluZS1tZDtcbiAgICAgIH1cblxuICAgICAgJi0tbGFyZ2Uge1xuICAgICAgICB3aWR0aDogKCRwcm9ncmVzcy10cmFja2VyLWxpbmUtbGcgKiAyKTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHByb2dyZXNzLXRyYWNrZXItbGluZS1sZztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLS12ZXJ0aWNhbCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC50dWktcHJvZ3Jlc3NUcmFja2VySXRlbSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIGhlaWdodDogODBweDtcblxuICAgICAgJl9fY29udGVudCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgJl9fbGFiZWwge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWdhcC0xKSB2YXIoLS1nYXAtMik7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy9wcm9ncmVzc3RyYWNrZXIvUHJvZ3Jlc3NUcmFja2VyQnV0dG9uLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWY1MTcyMjZjJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLXByb2dyZXNzVHJhY2tlckJ1dHRvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogdmFyKC0tZ2FwLTIpO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogdmFyKC0tZ2FwLTIpO1xuICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tZm9udC1ib2R5LWxpbmUtaGVpZ2h0KTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIEBpbmNsdWRlIHR1aS1mb2N1cztcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc3RhdGUtaGlnaGxpZ2h0LW5ldXRyYWwpO1xuICB9XG5cbiAgJi0tc2VsZWN0ZWQge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXN0YXRlLWFjdGl2ZSk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMpO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc3RhdGUtYWN0aXZlKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgICB9XG4gIH1cblxuICAmX19yZXF1aXJlZCB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByb21wdC1hbGVydCk7XG5cbiAgICAmLS1zZWxlY3RlZCB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xKTtcbiAgICB9XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3Byb2dyZXNzdHJhY2tlci9Qcm9ncmVzc1RyYWNrZXJDaXJjbGUudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MmRkZjA1NjgmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktcHJvZ3Jlc3NUcmFja2VyQ2lyY2xlIHtcbiAgJHBlbmRpbmc6ICN7Jn0tLXBlbmRpbmc7XG4gICRjb21wbGV0ZTogI3smfS0tY29tcGxldGU7XG4gICRhY2hpZXZlZDogI3smfS0tYWNoaWV2ZWQ7XG4gICR0YXJnZXQ6ICN7Jn0tLXRhcmdldDtcblxuICAmX19vdXRlciB7XG4gICAgei1pbmRleDogMjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IGNhbGModmFyKC0tZ2FwLTcpICsgMXB4KTtcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tZ2FwLTcpICsgMXB4KTtcbiAgICBib3JkZXI6IHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpIHRyYW5zcGFyZW50IGRvdHRlZDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgICAvKiBQZW5kaW5nIHRhcmdldCovXG4gICAgJiN7JHBlbmRpbmd9JiN7JHRhcmdldH0ge1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItcGVuZGluZyk7XG4gICAgfVxuXG4gICAgLyogQWNoaWV2ZWQgdGFyZ2V0Ki9cbiAgICAmI3skdGFyZ2V0fSYjeyRhY2hpZXZlZH0ge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbnRhaW5lci1iZy1jb2xvcik7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1hY2hpZXZlZCk7XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIH1cbiAgfVxuXG4gICZfX21pZGRsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiBjYWxjKHZhcigtLWdhcC00KSArIDFweCk7XG4gICAgaGVpZ2h0OiBjYWxjKHZhcigtLWdhcC00KSArIDFweCk7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIC13ZWJraXQtcHJpbnQtY29sb3ItYWRqdXN0OiBleGFjdDtcbiAgICAgICAgICAgIHByaW50LWNvbG9yLWFkanVzdDogZXhhY3Q7XG5cbiAgICAvKiBQZW5kaW5nKi9cbiAgICAjeyRwZW5kaW5nfSAmIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1wZW5kaW5nKTtcbiAgICB9XG5cbiAgICAvKiBQZW5kaW5nIHRhcmdldCovXG4gICAgI3skcGVuZGluZ30jeyR0YXJnZXR9ICYge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLyogQ29tcGxldGUqL1xuICAgICN7JGNvbXBsZXRlfSAmIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1jb21wbGV0ZSk7XG4gICAgfVxuXG4gICAgLyogQWNoaWV2ZWQqL1xuICAgICN7JGFjaGlldmVkfSAmIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1hY2hpZXZlZCk7XG4gICAgfVxuICB9XG5cbiAgJl9faW5uZXIge1xuICAgIHdpZHRoOiBjYWxjKHZhcigtLWdhcC0yKSArIDFweCk7XG4gICAgaGVpZ2h0OiBjYWxjKHZhcigtLWdhcC0yKSArIDFweCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbnRhaW5lci1iZy1jb2xvcik7XG4gICAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWRcbiAgICAgIHZhcigtLXByb2dyZXNzdHJhY2tlci1jb250YWluZXItYmctY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgIC8qIFBlbmRpbmcqL1xuICAgICN7JHBlbmRpbmd9ICYge1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29udGFpbmVyLWJnLWNvbG9yKTtcbiAgICB9XG5cbiAgICAvKiBQZW5kaW5nIHRhcmdldCovXG4gICAgI3skcGVuZGluZ30jeyR0YXJnZXR9ICYge1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItcGVuZGluZyk7XG4gICAgfVxuXG4gICAgLyogQWNoaWV2ZWQqL1xuICAgICN7JGFjaGlldmVkfSAmIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbnRhaW5lci1iZy1jb2xvcik7XG4gICAgfVxuICB9XG59XG4uaWUsXG4ubXNlZGdlIHtcbiAgLnR1aS1wcm9ncmVzc1RyYWNrZXJDaXJjbGUtLWFjaGlldmVkIHtcbiAgICAudHVpLXByb2dyZXNzVHJhY2tlckNpcmNsZSB7XG4gICAgICAmX19taWRkbGUge1xuICAgICAgICBib3JkZXI6IHZhcigtLWdhcC0xKSBzb2xpZCB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItYWNoaWV2ZWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC50dWktcHJvZ3Jlc3NUcmFja2VyQ2lyY2xlLS1jb21wbGV0ZSB7XG4gICAgLnR1aS1wcm9ncmVzc1RyYWNrZXJDaXJjbGUge1xuICAgICAgJl9fbWlkZGxlIHtcbiAgICAgICAgYm9yZGVyOiB2YXIoLS1nYXAtMSkgc29saWQgdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWNvbXBsZXRlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3Byb2dyZXNzdHJhY2tlci9Qcm9ncmVzc1RyYWNrZXJOYXYudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9OTJiOTU3OGEmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktcHJvZ3Jlc3NUcmFja2VyTmF2X19pdGVtcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgLnR1aS1wcm9ncmVzc1RyYWNrZXJOYXYtLXZlcnRpY2FsICYge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvcHJvZ3Jlc3N0cmFja2VyL1Byb2dyZXNzVHJhY2tlck5hdkNpcmNsZUFjaGlldmVtZW50LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTcyODA5YmY0Jmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktcHJvZ3Jlc3NUcmFja2VyTmF2Q2lyY2xlQWNoaWV2ZW1lbnQge1xuICAvKiBzdGF0ZXMqL1xuICAkcGVuZGluZzogI3smfS0tcGVuZGluZztcbiAgJGNvbXBsZXRlOiAjeyZ9LS1jb21wbGV0ZTtcbiAgJGFjaGlldmVkOiAjeyZ9LS1hY2hpZXZlZDtcbiAgJHRhcmdldDogI3smfS0tdGFyZ2V0O1xuICAkY3VycmVudDogI3smfS0tY3VycmVudDtcblxuICAmX19vdXRlciB7XG4gICAgei1pbmRleDogMjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IHZhcigtLXByb2dyZXNzdHJhY2tlci1mdWxsLW1hcmtlci1zaXplKTtcbiAgICBoZWlnaHQ6IHZhcigtLXByb2dyZXNzdHJhY2tlci1mdWxsLW1hcmtlci1zaXplKTtcbiAgICBib3JkZXI6IHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpIHRyYW5zcGFyZW50IGRvdHRlZDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgICAvKipcbiAgICAgKiBzdGF0ZXNcbiAgICAgKiovXG4gICAgJiN7JHBlbmRpbmd9JiN7JHRhcmdldH0ge1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItcGVuZGluZyk7XG4gICAgfVxuXG4gICAgJiN7JHRhcmdldH0mI3skYWNoaWV2ZWR9IHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb250YWluZXItYmctY29sb3IpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItYWNoaWV2ZWQpO1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICB9XG4gIH1cblxuICAmX19taWRkbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogY2FsYyhcbiAgICAgIGNhbGModmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWZ1bGwtbWFya2VyLXNpemUpIC8gMikgKyB2YXIoLS1nYXAtMSlcbiAgICApO1xuICAgIGhlaWdodDogY2FsYyhcbiAgICAgIGNhbGModmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWZ1bGwtbWFya2VyLXNpemUpIC8gMikgKyB2YXIoLS1nYXAtMSlcbiAgICApO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAtd2Via2l0LXByaW50LWNvbG9yLWFkanVzdDogZXhhY3Q7XG4gICAgICAgICAgICBwcmludC1jb2xvci1hZGp1c3Q6IGV4YWN0O1xuXG4gICAgLyoqXG4gICAgICogc3RhdGVzXG4gICAgICoqL1xuICAgICN7JHBlbmRpbmd9ICYge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXBlbmRpbmcpO1xuICAgIH1cblxuICAgICN7JHBlbmRpbmd9I3skdGFyZ2V0fSAmIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgICN7JGNvbXBsZXRlfSAmIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1jb21wbGV0ZSk7XG4gICAgfVxuXG4gICAgI3skYWNoaWV2ZWR9ICYge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWFjaGlldmVkKTtcbiAgICB9XG4gIH1cblxuICAmX19pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiBjYWxjKFxuICAgICAgY2FsYyh2YXIoLS1wcm9ncmVzc3RyYWNrZXItZnVsbC1tYXJrZXItc2l6ZSkgLyA0KSArXG4gICAgICAgIHZhcigtLWJvcmRlci13aWR0aC10aGluKVxuICAgICk7XG4gICAgaGVpZ2h0OiBjYWxjKFxuICAgICAgY2FsYyh2YXIoLS1wcm9ncmVzc3RyYWNrZXItZnVsbC1tYXJrZXItc2l6ZSkgLyA0KSArXG4gICAgICAgIHZhcigtLWJvcmRlci13aWR0aC10aGluKVxuICAgICk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbnRhaW5lci1iZy1jb2xvcik7XG4gICAgYm9yZGVyOiB2YXIoLS1ib3JkZXItd2lkdGgtdGhpbikgc29saWRcbiAgICAgIHZhcigtLXByb2dyZXNzdHJhY2tlci1jb250YWluZXItYmctY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgIC8qKlxuICAgICAqIHN0YXRlc1xuICAgICAqKi9cbiAgICAjeyRwZW5kaW5nfSAmIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbnRhaW5lci1iZy1jb2xvcik7XG4gICAgfVxuXG4gICAgI3skcGVuZGluZ30jeyR0YXJnZXR9ICYge1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItcGVuZGluZyk7XG4gICAgfVxuXG4gICAgI3skYWNoaWV2ZWR9ICYge1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29udGFpbmVyLWJnLWNvbG9yKTtcbiAgICB9XG4gIH1cbiAgJl9fbGFiZWwge1xuICAgIEBpbmNsdWRlIHNyLW9ubHkoKTtcbiAgfVxufVxuLmllLFxuLm1zZWRnZSB7XG4gIC50dWktcHJvZ3Jlc3NUcmFja2VyQ2lyY2xlLS1hY2hpZXZlZCB7XG4gICAgLnR1aS1wcm9ncmVzc1RyYWNrZXJDaXJjbGUge1xuICAgICAgJl9fbWlkZGxlIHtcbiAgICAgICAgYm9yZGVyOiB2YXIoLS1nYXAtMSkgc29saWQgdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWFjaGlldmVkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudHVpLXByb2dyZXNzVHJhY2tlckNpcmNsZS0tY29tcGxldGUge1xuICAgIC50dWktcHJvZ3Jlc3NUcmFja2VyQ2lyY2xlIHtcbiAgICAgICZfX21pZGRsZSB7XG4gICAgICAgIGJvcmRlcjogdmFyKC0tZ2FwLTEpIHNvbGlkIHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1jb21wbGV0ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3Byb2dyZXNzdHJhY2tlci9Qcm9ncmVzc1RyYWNrZXJOYXZDaXJjbGVXb3JrZmxvdy52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0wYWJkMzA0YSZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLXByb2dyZXNzVHJhY2tlck5hdkNpcmNsZVdvcmtmbG93IHtcbiAgLyogc3RhdGVzKi9cbiAgJHJlYWR5OiAjeyZ9LS1yZWFkeTtcbiAgJGxvY2tlZDogI3smfS0tbG9ja2VkO1xuICAkb3B0aW9uYWw6ICN7Jn0tLW9wdGlvbmFsO1xuICAkc2VsZWN0ZWQ6ICN7Jn0tLXNlbGVjdGVkO1xuICAkZG9uZTogI3smfS0tZG9uZTtcbiAgJGludmFsaWQ6ICN7Jn0tLWludmFsaWQ7XG4gICR2aWV3LW9ubHk6ICN7Jn0tLXZpZXctb25seTtcbiAgJGhpZGRlbjogI3smfS0taGlkZGVuO1xuXG4gICZfX291dGVyIHtcbiAgICB6LWluZGV4OiAyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWZ1bGwtbWFya2VyLXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWZ1bGwtbWFya2VyLXNpemUpO1xuICAgIGJvcmRlcjogdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCkgdHJhbnNwYXJlbnQgbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgICAvKipcbiAgICAgKiBzdGF0ZXNcbiAgICAgKiovXG5cbiAgICAmI3skc2VsZWN0ZWR9IHtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXNlbGVjdGVkKTtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgfVxuXG4gICAgJiN7JHJlYWR5fSB7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1yZWFkeSk7XG4gICAgfVxuXG4gICAgJiN7JGxvY2tlZH0ge1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItbG9ja2VkKTtcbiAgICB9XG5cbiAgICAmI3skZG9uZX0ge1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItZG9uZSk7XG4gICAgfVxuXG4gICAgJiN7JG9wdGlvbmFsfSB7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1vcHRpb25hbCk7XG4gICAgfVxuXG4gICAgJiN7JGludmFsaWR9IHtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWludmFsaWQpO1xuICAgIH1cblxuICAgICYjeyRoaWRkZW59IHtcbiAgICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmX19taWRkbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogY2FsYyh2YXIoLS1wcm9ncmVzc3RyYWNrZXItZnVsbC1tYXJrZXItc2l6ZSkgLSB2YXIoLS1nYXAtMikpO1xuICAgIGhlaWdodDogY2FsYyh2YXIoLS1wcm9ncmVzc3RyYWNrZXItZnVsbC1tYXJrZXItc2l6ZSkgLSB2YXIoLS1nYXAtMikpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogdmFyKC0tYm9yZGVyLXdpZHRoLXRoaW4pIG5vbmUgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gICAgLyoqXG4gICAgICogc3RhdGVzXG4gICAgICoqL1xuXG4gICAgI3skc2VsZWN0ZWR9ICYge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXNlbGVjdGVkKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXNlbGVjdGVkKTtcbiAgICB9XG5cbiAgICAjeyRyZWFkeX0gJiB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItcmVhZHktLWludmVyc2UpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItcmVhZHkpO1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICB9XG5cbiAgICAjeyRsb2NrZWR9ICYge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWxvY2tlZC0taW52ZXJzZSk7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1sb2NrZWQpO1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICB9XG5cbiAgICAjeyRkb25lfSAmIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1kb25lKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWRvbmUpO1xuICAgIH1cblxuICAgICN7JG9wdGlvbmFsfSAmIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1vcHRpb25hbC0taW52ZXJzZSk7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1vcHRpb25hbCk7XG4gICAgICBib3JkZXItc3R5bGU6IGRhc2hlZDtcbiAgICB9XG5cbiAgICAjeyRpbnZhbGlkfSAmIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1pbnZhbGlkKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWludmFsaWQpO1xuICAgIH1cblxuICAgICN7JHZpZXctb25seX0gJiB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3Itdmlldy1vbmx5LS1pbnZlcnNlKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXZpZXctb25seSk7XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIH1cblxuICAgICN7JGhpZGRlbn0gJiB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItaGlkZGVuLS1pbnZlcnNlKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWhpZGRlbi0taW52ZXJzZSk7XG4gICAgfVxuXG4gICAgI3skcmVhZHl9I3skc2VsZWN0ZWR9ICYge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXJlYWR5KTtcbiAgICB9XG5cbiAgICAjeyRsb2NrZWR9I3skc2VsZWN0ZWR9ICYge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWxvY2tlZCk7XG4gICAgfVxuXG4gICAgI3skZG9uZX0jeyRzZWxlY3RlZH0gJiB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItZG9uZSk7XG4gICAgfVxuXG4gICAgI3skb3B0aW9uYWx9I3skc2VsZWN0ZWR9ICYge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLW9wdGlvbmFsKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbnRhaW5lci1iZy1jb2xvcik7XG4gICAgICBib3JkZXItc3R5bGU6IGRhc2hlZDtcbiAgICB9XG5cbiAgICAjeyR2aWV3LW9ubHl9I3skc2VsZWN0ZWR9ICYge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXZpZXctb25seSk7XG4gICAgfVxuXG4gICAgI3skaGlkZGVufSN7JHNlbGVjdGVkfSAmIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1oaWRkZW4tLWludmVyc2UpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItaGlkZGVuLS1pbnZlcnNlKTtcbiAgICB9XG5cbiAgICAjeyRpbnZhbGlkfSN7JHNlbGVjdGVkfSAmIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1pbnZhbGlkKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWludmFsaWQpO1xuICAgIH1cbiAgfVxuXG4gICZfX2lubmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IHZhcigtLWdhcC01KTtcbiAgICBoZWlnaHQ6IHZhcigtLWdhcC01KTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgICAvKipcbiAgICAgKiBzdGF0ZXNcbiAgICAgKiovXG5cbiAgICAjeyRzZWxlY3RlZH0gJiB7XG4gICAgICBjb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXNlbGVjdGVkLS1pbnZlcnNlKTtcbiAgICB9XG5cbiAgICAjeyRyZWFkeX0gJiB7XG4gICAgICBjb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXJlYWR5KTtcbiAgICB9XG5cbiAgICAjeyRsb2NrZWR9ICYge1xuICAgICAgY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1sb2NrZWQpO1xuICAgIH1cblxuICAgICN7JGRvbmV9ICYge1xuICAgICAgY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1kb25lLS1pbnZlcnNlKTtcbiAgICB9XG5cbiAgICAjeyRvcHRpb25hbH0gJiB7XG4gICAgICBjb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLW9wdGlvbmFsKTtcbiAgICB9XG5cbiAgICAjeyRpbnZhbGlkfSAmIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItaW52YWxpZC0taW52ZXJzZSk7XG4gICAgfVxuXG4gICAgI3skdmlldy1vbmx5fSAmIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3Itdmlldy1vbmx5KTtcbiAgICB9XG5cbiAgICAjeyRoaWRkZW59ICYge1xuICAgICAgY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1oaWRkZW4pO1xuICAgIH1cblxuICAgICN7JHJlYWR5fSN7JHNlbGVjdGVkfSAmIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItcmVhZHktLWludmVyc2UpO1xuICAgIH1cblxuICAgICN7JGxvY2tlZH0jeyRzZWxlY3RlZH0gJiB7XG4gICAgICBjb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWxvY2tlZC0taW52ZXJzZSk7XG4gICAgfVxuXG4gICAgI3skZG9uZX0jeyRzZWxlY3RlZH0gJiB7XG4gICAgICBjb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLWRvbmUtLWludmVyc2UpO1xuICAgIH1cblxuICAgICN7JG9wdGlvbmFsfSN7JHNlbGVjdGVkfSAmIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3Itb3B0aW9uYWwtLWludmVyc2UpO1xuICAgIH1cblxuICAgICN7JHZpZXctb25seX0jeyRzZWxlY3RlZH0gJiB7XG4gICAgICBjb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXZpZXctb25seS0taW52ZXJzZSk7XG4gICAgfVxuXG4gICAgI3skaGlkZGVufSN7JHNlbGVjdGVkfSAmIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItaGlkZGVuKTtcbiAgICB9XG4gIH1cblxuICAmX19pY29uLS1sb2NrZWQge1xuICAgIHdpZHRoOiByZW0tcHgoMTIpO1xuICAgIGhlaWdodDogcmVtLXB4KDEyKTtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gIH1cblxuICAmX19pY29uLS1kb25lIHtcbiAgICB3aWR0aDogcmVtLXB4KDE2KTtcbiAgICBoZWlnaHQ6IHJlbS1weCgxNik7XG4gICAgbWFyZ2luLXRvcDogMnB4O1xuICB9XG5cbiAgJl9faWNvbi0taW52YWxpZCB7XG4gICAgd2lkdGg6IHJlbS1weCgxNCk7XG4gICAgaGVpZ2h0OiByZW0tcHgoMTQpO1xuICAgIG1hcmdpbi1ib3R0b206IDNweDtcbiAgfVxuXG4gICZfX2ljb24tLWhpZGRlbiB7XG4gICAgd2lkdGg6IHJlbS1weCgyMCk7XG4gICAgaGVpZ2h0OiByZW0tcHgoMjApO1xuICB9XG5cbiAgJl9fbGFiZWwge1xuICAgIEBpbmNsdWRlIHNyLW9ubHkoKTtcbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3Byb2dyZXNzdHJhY2tlci9Qcm9ncmVzc1RyYWNrZXJOYXZJdGVtLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTdmNzQyZjI0Jmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuJHByb2dyZXNzVHJhY2tlci1oYWxmLW1hcmtlci1zaXplOiBjYWxjKFxuICB2YXIoLS1wcm9ncmVzc3RyYWNrZXItZnVsbC1tYXJrZXItc2l6ZSkgLyAyXG4pICFkZWZhdWx0O1xuXG4vKipcbiAgKiBDb25uZWN0b3IgbGluZXNcbiAgKiovXG4udHVpLXByb2dyZXNzVHJhY2tlck5hdl9faXRlbUNvbnRlbnRXcmFwcGVyOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbG9yLXBlbmRpbmcpO1xuICBib3JkZXItc3R5bGU6IGRvdHRlZDtcbiAgY29udGVudDogJyc7XG5cbiAgLnR1aS1wcm9ncmVzc1RyYWNrZXJOYXYtLXZlcnRpY2FsICYge1xuICAgIHRvcDogY2FsYyhcbiAgICAgIHZhcigtLXByb2dyZXNzdHJhY2tlci1mdWxsLW1hcmtlci1zaXplKSArIHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpXG4gICAgKTtcbiAgICAvKiBuZXN0ZWQgY2FsYygpIHdpbGwgZ2V0IGJvdGNoZWQgYnkgUlRMQ1NTIHByb2Nlc3NpbmcgaWYgaXQgaXMgYnJva2VuIGRvd24gb250byBtdWx0aXBsZSBsaW5lcyAqL1xuICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgIGxlZnQ6IGNhbGMoICN7JHByb2dyZXNzVHJhY2tlci1oYWxmLW1hcmtlci1zaXplfSAtIGNhbGModmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCkgLyAyKSApO1xuICAgIHdpZHRoOiB2YXIoLS1ib3JkZXItd2lkdGgtbm9ybWFsKTtcbiAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICBoZWlnaHQ6IGNhbGMoIDEwMCUgLSBjYWxjKCB2YXIoLS1wcm9ncmVzc3RyYWNrZXItZnVsbC1tYXJrZXItc2l6ZSkgKyBjYWxjKHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpICogMikgKSApO1xuICAgIGJvcmRlci13aWR0aDogMCAwIDAgdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCk7XG4gIH1cbiAgLnR1aS1wcm9ncmVzc1RyYWNrZXJOYXYtLWhvcml6b250YWwgJiB7XG4gICAgLyogbmVzdGVkIGNhbGMoKSB3aWxsIGdldCBib3RjaGVkIGJ5IFJUTENTUyBwcm9jZXNzaW5nIGlmIGl0IGlzIGJyb2tlbiBkb3duIG9udG8gbXVsdGlwbGUgbGluZXMgKi9cbiAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICB0b3A6IGNhbGMoICN7JHByb2dyZXNzVHJhY2tlci1oYWxmLW1hcmtlci1zaXplfSAtIGNhbGModmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCkgLyAyKSApO1xuICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgIGxlZnQ6IGNhbGMoNTAlICsgI3skcHJvZ3Jlc3NUcmFja2VyLWhhbGYtbWFya2VyLXNpemV9ICsgdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbm5lY3Rvci1nYXApIC0gdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCkpO1xuICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgIHdpZHRoOiBjYWxjKCAxMDAlIC0gY2FsYyggdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWZ1bGwtbWFya2VyLXNpemUpICsgY2FsYyh2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29ubmVjdG9yLWdhcCkpICsgdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCkpKTtcbiAgICBoZWlnaHQ6IHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpO1xuICAgIGJvcmRlci13aWR0aDogdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCkgMCAwIDA7XG4gIH1cbn1cblxuLyoqXG4gICogQ29ubmVjdG9yIGxpbmUgbW9kaWZpZXJzXG4gICoqL1xuLnR1aS1wcm9ncmVzc1RyYWNrZXJOYXZfX2Nvbm5lY3RvciB7XG4gIC8qIGl0ZW0gc3RhdGVzIHJlbGF0ZWQgdG8gQWNoaWV2ZW1lbnQqL1xuICAmLS1wZW5kaW5nIHtcbiAgICAvKiB0aGlzIGlzIHRoZSBkZWZhdWx0IHN0YXRlIGlmIG5vIHN0YXRlIEFycmF5IGlzIHBhc3NlZCBpbnRvIHRoZSBpdGVtKi9cbiAgICAudHVpLXByb2dyZXNzVHJhY2tlck5hdl9faXRlbUNvbnRlbnRXcmFwcGVyOmJlZm9yZSB7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXByb2dyZXNzdHJhY2tlci1jb2xvci1wZW5kaW5nKTtcbiAgICB9XG4gIH1cblxuICAmLS1jb21wbGV0ZSB7XG4gICAgLnR1aS1wcm9ncmVzc1RyYWNrZXJOYXZfX2l0ZW1Db250ZW50V3JhcHBlcjpiZWZvcmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItY29tcGxldGUpO1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICB9XG4gIH1cblxuICAmLS1hY2hpZXZlZCB7XG4gICAgLnR1aS1wcm9ncmVzc1RyYWNrZXJOYXZfX2l0ZW1Db250ZW50V3JhcHBlcjpiZWZvcmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29sb3ItYWNoaWV2ZWQpO1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBJdGVtcyBhbmQgdGhlaXIgY29udGVudFxuICoqL1xuLnR1aS1wcm9ncmVzc1RyYWNrZXJOYXYge1xuICAmX19pdGVtIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgLnR1aS1wcm9ncmVzc1RyYWNrZXJOYXZfX2l0ZW1Db250ZW50V3JhcHBlcjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29ubmVjdG9yIGdhcCBhZGp1c3RtZW50IGZvciBsYXJnZSBpdGVtIG1hcmtlcnNcbiAgICAqKi9cbiAgICAmLS1zZWxlY3RlZCxcbiAgICAmLS10YXJnZXQge1xuICAgICAgLnR1aS1wcm9ncmVzc1RyYWNrZXJOYXZfX2l0ZW1Db250ZW50V3JhcHBlcjphZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIC8qIG5lc3RlZCBjYWxjKCkgd2lsbCBnZXQgYm90Y2hlZCBieSBSVExDU1MgcHJvY2Vzc2luZyBpZiBpdCBpcyBicm9rZW4gZG93biBvbnRvIG11bHRpcGxlIGxpbmVzICovXG4gICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICB3aWR0aDogY2FsYyggdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWZ1bGwtbWFya2VyLXNpemUpICsgY2FsYyh2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29ubmVjdG9yLWdhcCkgKiAyKSApO1xuICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgaGVpZ2h0OiBjYWxjKCB2YXIoLS1wcm9ncmVzc3RyYWNrZXItZnVsbC1tYXJrZXItc2l6ZSkgKyBjYWxjKHZhcigtLXByb2dyZXNzdHJhY2tlci1jb25uZWN0b3ItZ2FwKSAqIDIpICk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbnRhaW5lci1iZy1jb2xvcik7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tcHJvZ3Jlc3N0cmFja2VyLWNvbm5lY3Rvci1nYXApO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuXG4gICAgICAgIC50dWktcHJvZ3Jlc3NUcmFja2VyTmF2LS1ob3Jpem9udGFsICYge1xuICAgICAgICAgIHRvcDogY2FsYyh2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29ubmVjdG9yLWdhcCkgKiAtMSk7XG4gICAgICAgICAgbGVmdDogY2FsYyhcbiAgICAgICAgICAgIDUwJSAtICN7JHByb2dyZXNzVHJhY2tlci1oYWxmLW1hcmtlci1zaXplfSAtIHZhcigtLXByb2dyZXNzdHJhY2tlci1jb25uZWN0b3ItZ2FwKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgLnR1aS1wcm9ncmVzc1RyYWNrZXJOYXYtLXZlcnRpY2FsICYge1xuICAgICAgICAgIHRvcDogY2FsYyh2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29ubmVjdG9yLWdhcCkgKiAtMSk7XG4gICAgICAgICAgbGVmdDogY2FsYyh2YXIoLS1wcm9ncmVzc3RyYWNrZXItY29ubmVjdG9yLWdhcCkgKiAtMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19pdGVtQ29udGVudFdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgLnR1aS1wcm9ncmVzc1RyYWNrZXJOYXYtLXZlcnRpY2FsICYge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgICAudHVpLXByb2dyZXNzVHJhY2tlck5hdi0taG9yaXpvbnRhbCAmIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gICZfX2l0ZW1Db250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICYtLW92ZXJmbG93LWhpZGRlbiB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgIC50dWktcHJvZ3Jlc3NUcmFja2VyTmF2LS12ZXJ0aWNhbCAmIHtcbiAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ2FwLTIpO1xuXG4gICAgICAvKipcbiAgICAgICogdmFyaWFibGUgd2lkdGggYW5kIGdhcCBzaXplcyBiYXNlZCBvbiBzdXBwbGllZCBwcm9wc1xuICAgICAgKiovXG4gICAgICAmLS1nYXAtc21hbGwge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tZ2FwLTIpO1xuICAgICAgfVxuXG4gICAgICAmLS1nYXAtbWVkaXVtIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLWdhcC01KTtcbiAgICAgIH1cblxuICAgICAgJi0tZ2FwLWxhcmdlIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLWdhcC03KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudHVpLXByb2dyZXNzVHJhY2tlck5hdi0taG9yaXpvbnRhbCAmIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgIC8qKlxuICAgICAgICAqIHZhcmlhYmxlIHdpZHRoIGFuZCBnYXAgc2l6ZXMgYmFzZWQgb24gc3VwcGxpZWQgcHJvcHNcbiAgICAgICAgKiovXG4gICAgICAmLS1nYXAtc21hbGwge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1wcm9ncmVzcy10cmFja2VyLWhvcml6b250YWwtZ2FwLS1zbWFsbCk7XG4gICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tcHJvZ3Jlc3MtdHJhY2tlci1ob3Jpem9udGFsLWdhcC0tc21hbGwpO1xuICAgICAgfVxuICAgICAgJi0tc2l6ZS1zbWFsbCB7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1wcm9ncmVzcy10cmFja2VyLWhvcml6b250YWwtc2l6ZS0tc21hbGwpO1xuICAgICAgfVxuXG4gICAgICAmLS1nYXAtbWVkaXVtIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogdmFyKC0tcHJvZ3Jlc3MtdHJhY2tlci1ob3Jpem9udGFsLWdhcC0tbWVkaXVtKTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1wcm9ncmVzcy10cmFja2VyLWhvcml6b250YWwtZ2FwLS1tZWRpdW0pO1xuICAgICAgfVxuICAgICAgJi0tc2l6ZS1tZWRpdW0ge1xuICAgICAgICB3aWR0aDogdmFyKC0tcHJvZ3Jlc3MtdHJhY2tlci1ob3Jpem9udGFsLXNpemUtLW1lZGl1bSk7XG4gICAgICB9XG5cbiAgICAgICYtLWdhcC1sYXJnZSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLXByb2dyZXNzLXRyYWNrZXItaG9yaXpvbnRhbC1nYXAtLWxhcmdlKTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1wcm9ncmVzcy10cmFja2VyLWhvcml6b250YWwtZ2FwLS1sYXJnZSk7XG4gICAgICB9XG4gICAgICAmLS1zaXplLWxhcmdlIHtcbiAgICAgICAgd2lkdGg6IHZhcigtLXByb2dyZXNzLXRyYWNrZXItaG9yaXpvbnRhbC1zaXplLS1sYXJnZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9faXRlbUxhYmVsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1nYXAtMSk7XG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLWdhcC0xKTtcblxuICAgIC50dWktcHJvZ3Jlc3NUcmFja2VyTmF2LS1ob3Jpem9udGFsICYge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgICYtLWN1cnJlbnQge1xuICAgICAgLnR1aS1idG4ge1xuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUtYWN0aXZlKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9faXRlbVN0YXR1cyB7XG4gICAgQGluY2x1ZGUgc3Itb25seSgpO1xuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvc2V0dGluZ3NfbmF2aWdhdGlvbi9TZXR0aW5nc05hdmlnYXRpb24udnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9OWU3NzEzZDYmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG46cm9vdCB7XG4gIC0tc2V0dGluZ3MtbmF2aWdhdGlvbi1zcGFjaW5nOiB2YXIoLS1nYXAtMik7XG4gIC0tc2V0dGluZ3MtbmF2aWdhdGlvbi10cmVlLXdpZHRoOiAzNDBweDtcbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvc2V0dGluZ3NfbmF2aWdhdGlvbi9TZXR0aW5nc05hdmlnYXRpb25UcmVlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWE5NDM2ZjVhJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktc2V0dGluZ3NOYXZpZ2F0aW9uVHJlZSB7XG4gIC13ZWJraXQtaHlwaGVuczogbm9uZTtcbiAgICAgICAgICBoeXBoZW5zOiBub25lO1xuXG4gICZfX3NldHRpbmdzSXRlbSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNik7XG4gIH1cblxuICAmX19sYWJlbCB7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTIpIHZhcigtLWdhcC00KTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvc2lkZXBhbmVsL1NpZGVQYW5lbC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0zOWFmNGZiYyZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuOnJvb3Qge1xuICAtLXR1aS1zaWRlcGFuZWwtYnV0dG9uLXdpZHRoOiAzMHB4O1xuICAtLXR1aS1zaWRlcGFuZWwtYnV0dG9uLWhlaWdodDogNjZweDtcbiAgLS10dWktc2lkZXBhbmVsLWJvcmRlci13aWR0aDogMXB4O1xufVxuXG4udHVpLXNpZGVQYW5lbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgJi0tZGlzcGxheUNocm9tZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAvKiBpbm5lciBjb250ZW50IGFsaWdubWVudCovXG4gICYtLXJ0bCxcbiAgLmRpci1ydGwgLnR1aS1zaWRlUGFuZWwtLWx0ciAmIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICB9XG4gICYtLWx0cixcbiAgLmRpci1ydGwgLnR1aS1zaWRlUGFuZWwtLXJ0bCAmIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIH1cblxuICAmLS1zdGlja3kge1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgdG9wOiAwO1xuICAgIG1heC1oZWlnaHQ6IDEwMHZoO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAmLS1zdGlja3kmLS1jbG9zZWQge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgd3JhcHBlciBmb3IgY29udGVudCBjb250YWluZXIsIHdoaWNoIGhlbHBzIHdpdGggdHJhbnNpdGlvbnMgb24gd2lkdGhcbiAgICogd2hpbGUgb3ZlcmZsb3dpbmcgY29udGVudCBpcyBzdGlsbCB2aXNpYmxlLCBhbmQgcHJvdmlkaW5nIHdoaXRlc3BhY2VcbiAgICogYmV0d2VlbiBjb250ZW50IGFuZCB0aGUgZWRnZXMgb2YgdGhlIFNpZGVQYW5lbFxuICAgKiovXG4gICZfX2lubmVyIHtcbiAgICAudHVpLXNpZGVQYW5lbC0tZGlzcGxheUNocm9tZSAmIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMyk7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLWN1cnZlZCk7XG4gICAgfVxuXG4gICAgLnR1aS1zaWRlUGFuZWwtLWZsdXNoICYge1xuICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuXG4gICAgLnR1aS1zaWRlUGFuZWwtLW9wZW4udHVpLXNpZGVQYW5lbC0tb3ZlcmZsb3dzICYge1xuICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICB9XG5cbiAgICAudHVpLXNpZGVQYW5lbC0tY2xvc2VkICYge1xuICAgICAgbWF4LXdpZHRoOiAxcHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLyogd2UgaGF2ZSB0byBjdXQgb2ZmIG92ZXJmbG93IGR1cmluZyB0aGVzZSBzdGF0ZXMgb3RoZXJ3aXNlIHdlJ2xsIGJ1bXAqL1xuICAgIC8qIHBhZ2Ugc2Nyb2xsYmFycywgb3IgYSBjb250YWluaW5nIGVsZW1lbnQgc2Nyb2xsYmFycyovXG4gICAgLnR1aS1zaWRlUGFuZWwtLWNsb3NlZCAmLFxuICAgIC50dWktc2lkZVBhbmVsLS1jbG9zaW5nICYsXG4gICAgLnR1aS1zaWRlUGFuZWwtLW9wZW5pbmcgJiB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2l0aW9uZWQgY29udGFpbmVyIGZvciBhcmJpdHJhcnkgU2lkZVBhbmVsIGNvbnRlbnRcbiAgICoqL1xuICAmX19jb250ZW50IHtcbiAgICAudHVpLXNpZGVQYW5lbC0tZGlzcGxheUNocm9tZSAmIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAudHVpLXNpZGVQYW5lbC0tY2xvc2VkICYsXG4gICAgLnR1aS1zaWRlUGFuZWwtLWNsb3NpbmcgJiB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIC50dWktc2lkZVBhbmVsLS1jbG9zZWQgJiB7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLnR1aS1zaWRlUGFuZWwtLW9wZW4gJixcbiAgICAudHVpLXNpZGVQYW5lbC0tb3BlbmluZyAmIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgLnR1aS1zaWRlUGFuZWwtLWFuaW1hdGVkICYge1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLXNpZGVwYW5lbC1jb250ZW50LWR1cmF0aW9uKVxuICAgICAgICB2YXIoLS10cmFuc2l0aW9uLXNpZGVwYW5lbC1jb250ZW50LWZ1bmN0aW9uKTtcbiAgICB9XG5cbiAgICAudHVpLXNpZGVQYW5lbC0tb3Blbi50dWktc2lkZVBhbmVsLS1vdmVyZmxvd3MgJiB7XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvc2lkZXBhbmVsL1NpZGVQYW5lbE5hdi52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD01MTE4NGE3NyZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1zaWRlUGFuZWxOYXYge1xuICBwYWRkaW5nOiB2YXIoLS1nYXAtNCkgMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2lkZS1wYW5lbC1uYXYtYmctY29sb3IpO1xuXG4gICYgPiAqICsgKiB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTcpO1xuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvc2lkZXBhbmVsL1NpZGVQYW5lbE5hdkJ1dHRvbkl0ZW0udnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NzhkMGZlYmMmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLXNpZGVQYW5lbE5hdkJ1dHRvbkl0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1zaWRlLXBhbmVsLW5hdi1pdGVtLXRleHQtY29sb3IpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlLXBhbmVsLW5hdi1pdGVtLWJnLWNvbG9yKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zaWRlLXBhbmVsLW5hdi1pdGVtLWJvcmRlci1jb2xvcik7XG5cbiAgLyogSXRlbSBsaSovXG4gICYudHVpLWZvY3VzV2l0aGluLFxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tc2lkZS1wYW5lbC1uYXYtaXRlbS10ZXh0LWNvbG9yLWZvY3VzKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlLXBhbmVsLW5hdi1pdGVtLWJnLWNvbG9yLWZvY3VzKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXNpZGUtcGFuZWwtbmF2LWl0ZW0tYm9yZGVyLWNvbG9yLWZvY3VzKTtcbiAgfVxuXG4gICZfX3NpZGUge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWdhcC00KTtcbiAgfVxuXG4gICZfX25vdGlmaWNhdGlvbkRvdCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIC8qIFRoZSBzYW1lIGFzIHBhZGRpbmcgbGVmdCBvZiBhY3Rpb2luIHBsdXMgYW5vdGhlciB0dWktZ2FwLTQgdG8gbWFrZSBzdXJlIHRoZXJlIGlzIGEgcGFkZGluZyBiZXR3ZWVuKi9cbiAgICAvKiB0aGUgYWN0aW9uIGxpbmsgYW5kIHRoZSBkb3QuKi9cbiAgICB3aWR0aDogdmFyKC0tc2lkZXBhbmVsLW5hdmlnYXRpb24taXRlbS1wYWRkaW5nLWxlZnQpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgJi1pbm5lciB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiByZW0tcHgoNik7XG4gICAgICBoZWlnaHQ6IHJlbS1weCg2KTtcbiAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXAtMyk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcm9tcHQtYWxlcnQpO1xuICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICB9XG4gIH1cblxuICAvKiBJdGVtIGxpbmsqL1xuICAmX19hY3Rpb24ge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xuICAgIHBhZGRpbmc6IHZhcigtLWdhcC0yKSB2YXIoLS1nYXAtNCk7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zaWRlcGFuZWwtbmF2aWdhdGlvbi1pdGVtLXBhZGRpbmctbGVmdCk7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAtbXMtd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjpmb2N1czpob3ZlciB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB9XG4gIH1cblxuICAmLS1hY3RpdmUge1xuICAgIGNvbG9yOiB2YXIoLS1zaWRlLXBhbmVsLW5hdi1pdGVtLXRleHQtY29sb3Itc2VsZWN0ZWQpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGUtcGFuZWwtbmF2LWl0ZW0tYmctY29sb3Itc2VsZWN0ZWQpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2lkZS1wYW5lbC1uYXYtaXRlbS1ib3JkZXItY29sb3Itc2VsZWN0ZWQpO1xuXG4gICAgJi50dWktZm9jdXNXaXRoaW4sXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogdmFyKC0tc2lkZS1wYW5lbC1uYXYtaXRlbS10ZXh0LWNvbG9yLXNlbGVjdGVkKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGUtcGFuZWwtbmF2LWl0ZW0tYmctY29sb3Itc2VsZWN0ZWQpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zaWRlLXBhbmVsLW5hdi1pdGVtLWJvcmRlci1jb2xvci1zZWxlY3RlZCk7XG4gICAgfVxuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3NpZGVwYW5lbC9TaWRlUGFuZWxOYXZHcm91cC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD02ZWU5ZWNmOCZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLXNpZGVQYW5lbE5hdkdyb3VwIHtcbiAgJiA+ICogKyAqIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtMik7XG4gIH1cblxuICAmX19oZWFkaW5nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMCB2YXIoLS1nYXAtNCk7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zaWRlcGFuZWwtbmF2aWdhdGlvbi1pdGVtLXBhZGRpbmctbGVmdCk7XG5cbiAgICAmLXRpdGxlIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQoaDQpO1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICYtc2lkZSB7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ2FwLTIpO1xuICAgIH1cbiAgfVxuXG4gICZfX2l0ZW1zIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3NpZGVwYW5lbC9TaWRlUGFuZWxOYXZMaW5rSXRlbS52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD00Yzc4Zjk3OCZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLXNpZGVQYW5lbE5hdkxpbmtJdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tc2lkZS1wYW5lbC1uYXYtaXRlbS10ZXh0LWNvbG9yKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2lkZS1wYW5lbC1uYXYtaXRlbS1iZy1jb2xvcik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2lkZS1wYW5lbC1uYXYtaXRlbS1ib3JkZXItY29sb3IpO1xuXG4gIC8qIEl0ZW0gbGkqL1xuICAmLnR1aS1mb2N1c1dpdGhpbixcbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLXNpZGUtcGFuZWwtbmF2LWl0ZW0tdGV4dC1jb2xvci1mb2N1cyk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZS1wYW5lbC1uYXYtaXRlbS1iZy1jb2xvci1mb2N1cyk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zaWRlLXBhbmVsLW5hdi1pdGVtLWJvcmRlci1jb2xvci1mb2N1cyk7XG4gIH1cblxuICAmX19zaWRlIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1nYXAtNCk7XG4gIH1cblxuICAmX19ub3RpZmljYXRpb25Eb3Qge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAvKiBUaGUgc2FtZSBhcyBwYWRkaW5nIGxlZnQgb2YgYWN0aW9pbiBwbHVzIGFub3RoZXIgdHVpLWdhcC00IHRvIG1ha2Ugc3VyZSB0aGVyZSBpcyBhIHBhZGRpbmcgYmV0d2VlbiovXG4gICAgLyogdGhlIGFjdGlvbiBsaW5rIGFuZCB0aGUgZG90LiovXG4gICAgd2lkdGg6IHZhcigtLXNpZGVwYW5lbC1uYXZpZ2F0aW9uLWl0ZW0tcGFkZGluZy1sZWZ0KTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICYtaW5uZXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogcmVtLXB4KDYpO1xuICAgICAgaGVpZ2h0OiByZW0tcHgoNik7XG4gICAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwLTMpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJvbXB0LWFsZXJ0KTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLyogSXRlbSBsaW5rKi9cbiAgJl9fYWN0aW9uIHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLTIpIHZhcigtLWdhcC00KTtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLXNpZGVwYW5lbC1uYXZpZ2F0aW9uLWl0ZW0tcGFkZGluZy1sZWZ0KTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICAtbXMtd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjpmb2N1czpob3ZlciB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB9XG4gIH1cblxuICAmLS1hY3RpdmUge1xuICAgIGNvbG9yOiB2YXIoLS1zaWRlLXBhbmVsLW5hdi1pdGVtLXRleHQtY29sb3Itc2VsZWN0ZWQpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGUtcGFuZWwtbmF2LWl0ZW0tYmctY29sb3Itc2VsZWN0ZWQpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2lkZS1wYW5lbC1uYXYtaXRlbS1ib3JkZXItY29sb3Itc2VsZWN0ZWQpO1xuXG4gICAgJi50dWktZm9jdXNXaXRoaW4sXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogdmFyKC0tc2lkZS1wYW5lbC1uYXYtaXRlbS10ZXh0LWNvbG9yLXNlbGVjdGVkKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGUtcGFuZWwtbmF2LWl0ZW0tYmctY29sb3Itc2VsZWN0ZWQpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zaWRlLXBhbmVsLW5hdi1pdGVtLWJvcmRlci1jb2xvci1zZWxlY3RlZCk7XG4gICAgfVxuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvdGFicy9UYWJCYXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NWFkZmVmMDAmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG46cm9vdCB7XG4gIC0tdGFiLWJvcmRlci13aWR0aDogMXB4O1xuICAvKiBUYWIgaW5uZXIgaG9yaXpvbnRhbCBwYWRkaW5nKi9cbiAgLS10YWItaC1wYWRkaW5nOiB2YXIoLS1nYXAtNCk7XG4gIC8qIFRhYiBpbm5lciB2ZXJ0aWNhbCBwYWRkaW5nKi9cbiAgLS10YWItdi1wYWRkaW5nOiB2YXIoLS1nYXAtMik7XG4gIC8qIFNpemUgb2YgSGlnaGxpZ2h0Ki9cbiAgLS10YWItaGlnaGxpZ2h0LWhlaWdodDogdmFyKC0tZ2FwLTEpO1xuICAvKiBBZGQgZXh0cmEgc3BhY2luZyBmb3IgZHJvcCBzaGFkb3cgdG8gYmUgZGlzcGxheWVkKi9cbiAgLS10YWItc2hhZG93LW9mZnNldDogdmFyKC0tZ2FwLTMpO1xuICAvKiBUYWIgc21hbGwgdmVyc2lvbiBpbm5lciBob3Jpem9udGFsIHBhZGRpbmcqL1xuICAtLXRhYi1zbWFsbC1oLXBhZGRpbmc6IHZhcigtLWdhcC00KTtcbiAgLyogVGFiIHNtYWxsIHZlcnNpb24gaW5uZXIgdmVydGljYWwgcGFkZGluZyovXG4gIC0tdGFiLXNtYWxsLXYtcGFkZGluZzogdmFyKC0tZ2FwLTIpO1xufVxuXG4udHVpLXRhYkJhciB7XG4gICRtb2QtaG9yaXpvbnRhbDogI3smfS0taG9yaXpvbnRhbDtcbiAgJG1vZC12ZXJ0aWNhbDogI3smfS0tdmVydGljYWw7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG5cbiAgJi0taG9yaXpvbnRhbCB7XG4gICAgYm9yZGVyLWJvdHRvbTogdmFyKC0tdGFiLWJvcmRlci13aWR0aCkgc29saWQ7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tdGFicy1ib3JkZXItY29sb3IpO1xuICB9XG5cbiAgJi0tdmVydGljYWwge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgYm9yZGVyLXJpZ2h0OiB2YXIoLS10YWItYm9yZGVyLXdpZHRoKSBzb2xpZDtcbiAgICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLXRhYnMtYm9yZGVyLWNvbG9yKTtcbiAgfVxuXG4gICZfX3RhYiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICN7JG1vZC1ob3Jpem9udGFsfSAmIHtcbiAgICAgIG1hcmdpbjogY2FsYyh2YXIoLS10YWItc2hhZG93LW9mZnNldCkgKiAtMSk7XG4gICAgICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLXRhYi1ib3JkZXItd2lkdGgpICogLTEpO1xuICAgICAgcGFkZGluZzogdmFyKC0tdGFiLXNoYWRvdy1vZmZzZXQpO1xuICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLXRhYi1ib3JkZXItd2lkdGgpO1xuICAgIH1cblxuICAgICN7JG1vZC12ZXJ0aWNhbH0gJiB7XG4gICAgICBtYXgtd2lkdGg6IDIyMHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLXRhYi1ib3JkZXItd2lkdGgpICogLTEpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS10YWItc2hhZG93LW9mZnNldCkgKiAtMSk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS10YWItYm9yZGVyLXdpZHRoKTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS10YWItc2hhZG93LW9mZnNldCk7XG4gICAgfVxuXG4gICAgJi0taGlkZGVuIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgYSZfX2xpbmsge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogdmFyKC0tdGFiLXYtcGFkZGluZykgdmFyKC0tdGFiLWgtcGFkZGluZyk7XG4gICAgY29sb3I6IHZhcigtLXRhYnMtdGV4dC1jb2xvcik7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgYm9yZGVyOiB2YXIoLS10YWItYm9yZGVyLXdpZHRoKSBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS10YWJzLXRleHQtY29sb3ItZm9jdXMpO1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tdGFicy1iZy1jb2xvci1mb2N1cyk7XG4gICAgfVxuXG4gICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgIGNvbG9yOiB2YXIoLS10YWJzLXRleHQtY29sb3ItZm9jdXMpO1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tdGFicy1iZy1jb2xvci1mb2N1cyk7XG4gICAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tY29sb3Itc3RhdGUtZm9jdXMpO1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IGNhbGMoKHZhcigtLXRhYi1ib3JkZXItd2lkdGgpICsgNHB4KSAqIC0xKTtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSxcbiAgICAmOmFjdGl2ZTpmb2N1cyxcbiAgICAmOmFjdGl2ZTpob3ZlciB7XG4gICAgICBjb2xvcjogdmFyKC0tdGFicy10ZXh0LWNvbG9yLWFjdGl2ZSk7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgICN7JG1vZC1ob3Jpem9udGFsfSAmIHtcbiAgICAgIG1hcmdpbi10b3A6IHZhcigtLXRhYi1oaWdobGlnaHQtaGVpZ2h0KTtcbiAgICAgIC8qIG92ZXJsYXAgZWRnZXMgdG8gYXZvaWQgZG91YmxlIGJvcmRlciovXG4gICAgICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tdGFiLWJvcmRlci13aWR0aCkgKiAtMSk7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIH1cblxuICAgICN7JG1vZC12ZXJ0aWNhbH0gJiB7XG4gICAgICAvKiBvdmVybGFwIGVkZ2VzIHRvIGF2b2lkIGRvdWJsZSBib3JkZXIqL1xuICAgICAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS10YWItYm9yZGVyLXdpZHRoKSAqIC0xKTtcbiAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS10YWItaGlnaGxpZ2h0LWhlaWdodCk7XG4gICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJl9fdGFiLS1kaXNhYmxlZCBhJl9fbGluayB7XG4gICAgY29sb3I6IHZhcigtLXRhYnMtdGV4dC1jb2xvci1kaXNhYmxlZCk7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG5cbiAgJl9fdGFiLS1hY3RpdmUgYSZfX2xpbmsge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjb2xvcjogdmFyKC0tdGFicy10ZXh0LWNvbG9yLXNlbGVjdGVkKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10YWJzLWJnLWNvbG9yLXNlbGVjdGVkKTtcblxuICAgICN7JG1vZC1ob3Jpem9udGFsfSAmIHtcbiAgICAgIHRvcDogdmFyKC0tdGFiLWJvcmRlci13aWR0aCk7XG4gICAgICBwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS10YWItdi1wYWRkaW5nKSAtIHZhcigtLXRhYi1ib3JkZXItd2lkdGgpKTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKHZhcigtLXRhYi12LXBhZGRpbmcpICsgdmFyKC0tdGFiLWJvcmRlci13aWR0aCkpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10YWJzLWJvcmRlci1jb2xvcik7XG4gICAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctMyk7XG4gICAgfVxuXG4gICAgI3skbW9kLXZlcnRpY2FsfSAmIHtcbiAgICAgIGxlZnQ6IHZhcigtLXRhYi1ib3JkZXItd2lkdGgpO1xuICAgICAgcGFkZGluZy1yaWdodDogY2FsYyh2YXIoLS10YWItdi1wYWRkaW5nKSArIHZhcigtLXRhYi1ib3JkZXItd2lkdGgpKTtcbiAgICAgIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS10YWItaC1wYWRkaW5nKSAtIHZhcigtLXRhYi1ib3JkZXItd2lkdGgpKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdGFicy1ib3JkZXItY29sb3IpO1xuICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTIpO1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRhYnMtc2VsZWN0ZWQtYmFyLWNvbG9yKTtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuXG4gICAgICAjeyRtb2QtaG9yaXpvbnRhbH0gJiB7XG4gICAgICAgIHRvcDogY2FsYyh2YXIoLS10YWItaGlnaGxpZ2h0LWhlaWdodCkgKiAtMSk7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiBjYWxjKHZhcigtLXRhYi1ib3JkZXItd2lkdGgpICogLTEpO1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgKHZhcigtLXRhYi1ib3JkZXItd2lkdGgpICogMikpO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXRhYi1oaWdobGlnaHQtaGVpZ2h0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCkgdmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCkgMCAwO1xuICAgICAgfVxuXG4gICAgICAjeyRtb2QtdmVydGljYWx9ICYge1xuICAgICAgICB0b3A6IGNhbGModmFyKC0tdGFiLWJvcmRlci13aWR0aCkgKiAtMSk7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogY2FsYyh2YXIoLS10YWItaGlnaGxpZ2h0LWhlaWdodCkgKiAtMSk7XG4gICAgICAgIHdpZHRoOiB2YXIoLS10YWItaGlnaGxpZ2h0LWhlaWdodCk7XG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlICsgKHZhcigtLXRhYi1ib3JkZXItd2lkdGgpICogMikpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXNtYWxsKSAwIDAgdmFyKC0tYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fdGFiTGFiZWwge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgfVxuXG4gICZfX3RhYkxhYmVsRXh0cmEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwLTIpO1xuICB9XG5cbiAgJl9fc2VsZWN0b3Ige1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi50dWktdGFiQmFyIHtcbiAgJG1vZC1ob3Jpem9udGFsOiAjeyZ9LS1ob3Jpem9udGFsO1xuICAkYmxvY2s6ICN7Jn07XG5cbiAgLyogU21hbGwgdGFiKi9cbiAgJl9fdGFiLS1zbWFsbCB7XG4gICAgI3skbW9kLWhvcml6b250YWx9ICYge1xuICAgICAgI3skYmxvY2t9X19saW5rIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udChib2R5LXNtKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tdGFiLXNtYWxsLXYtcGFkZGluZykgdmFyKC0tdGFiLXNtYWxsLWgtcGFkZGluZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyogQWN0aXZlIHNtYWxsIHRhYiovXG4gICZfX3RhYi0tYWN0aXZlJl9fdGFiLS1zbWFsbCB7XG4gICAgI3skbW9kLWhvcml6b250YWx9ICYge1xuICAgICAgI3skYmxvY2t9X19saW5rIHtcbiAgICAgICAgcGFkZGluZy10b3A6IGNhbGModmFyKC0tdGFiLXNtYWxsLXYtcGFkZGluZykgLSB2YXIoLS10YWItYm9yZGVyLXdpZHRoKSk7XG4gICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSovXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKHZhcigtLXRhYi1zbWFsbC12LXBhZGRpbmcpICsgdmFyKC0tdGFiLWJvcmRlci13aWR0aCkpO1xuICAgICAgICBjb2xvcjogdmFyKC0tdGFicy10ZXh0LWNvbG9yLXNlbGVjdGVkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiBEaXNhYmxlZCBzbWFsbCB0YWIqL1xuICAmX190YWItLWRpc2FibGVkJl9fdGFiLS1zbWFsbCB7XG4gICAgI3skbW9kLWhvcml6b250YWx9ICYge1xuICAgICAgI3skYmxvY2t9X19saW5rIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXRhYnMtdGV4dC1jb2xvci1kaXNhYmxlZCk7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3RhYnMvVGFicy52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1mMDdkYzM4MCZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLXRhYnMge1xuICAkbW9kLWZpbGw6ICN7Jn0tLWZpbGw7XG4gICRtb2QtaG9yaXpvbnRhbDogI3smfS0taG9yaXpvbnRhbDtcbiAgJG1vZC12ZXJ0aWNhbDogI3smfS0tdmVydGljYWw7XG5cbiAgJi0tZmlsbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAmLS12ZXJ0aWNhbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB9XG5cbiAgI3skbW9kLWZpbGx9ID4gJl9fcGFuZWxzIHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgbWluLWhlaWdodDogMDtcblxuICAgID4gLnR1aS10YWJDb250ZW50IHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLnR1aS10YWJDb250ZW50IHtcbiAgLnR1aS10YWJzLS1ob3Jpem9udGFsICYge1xuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1nYXAtNCk7XG4gIH1cblxuICAudHVpLXRhYnMtLWhvcml6b250YWwudHVpLXRhYnMtLWNvbnRlbnRTcGFjaW5nLWxhcmdlICYge1xuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1nYXAtOCk7XG4gIH1cblxuICAudHVpLXRhYnMtLXZlcnRpY2FsICYge1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ2FwLTQpO1xuICB9XG5cbiAgLnR1aS10YWJzLS12ZXJ0aWNhbC50dWktdGFicy0tY29udGVudFNwYWNpbmctbGFyZ2UgJiB7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1nYXAtOCk7XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3RhZy9UYWcudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NTc0YmVkMTQmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktdGFnIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IHZhcigtLXRhZy1oZWlnaHQpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10YWctYmctY29sb3IpO1xuICBib3JkZXI6IHZhcigtLWJvcmRlci13aWR0aC10aGluKSBzb2xpZCB2YXIoLS10YWctYm9yZGVyLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tdGFnLWJvcmRlci1yYWRpdXMpO1xuXG4gICYtLW5vQm9yZGVyIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cblxuICAmLS1sYXJnZSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4OyAvKiBzdWl0YWJseSBsYXJnZSB0byBtYWtlIGl0IHJvdW5kZWQqL1xuICB9XG5cbiAgJi0tYm9sZCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICAmX19jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tZ2FwLTIpO1xuICAgIGZvbnQtc2l6ZTogZm9udC1zaXplLXB4KDEzKTtcbiAgfVxuXG4gICYtLWxhcmdlICZfX2NvbnRlbnQge1xuICAgIHBhZGRpbmc6IHZhcigtLWdhcC0yKSB2YXIoLS1nYXAtMyk7XG4gICAgZm9udC1zaXplOiBmb250LXNpemUtcHgoMTUpO1xuICB9XG5cbiAgJi0td2l0aEJ1dHRvbiAmX19jb250ZW50IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIGNvbG9yOiB2YXIoLS10YWctYnV0dG9uLWNvbG9yKTtcbiAgfVxuXG4gICZfX2NvbnRlbnRMYWJlbCB7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tZ2FwLTEpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIH1cblxuICAmLS1wcmltYXJ5IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgfVxuXG4gICYtLXByaW1hcnkgJl9fY29udGVudCB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy90YWcvVGFnTGlzdC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0xNmRmMDAzNCZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktdGFnTGlzdCB7XG4gICRpbm5lci1oZWlnaHQ6IGNhbGMoXG4gICAgdmFyKC0tZm9ybS1pbnB1dC1oZWlnaHQpIC0gKHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXNpemUpICogMilcbiAgKTtcbiAgZGlzcGxheTogZmxleDtcbiAgbWluLXdpZHRoOiByZW0tcHgoMjMwKTtcbiAgbWluLWhlaWdodDogdmFyKC0tZm9ybS1pbnB1dC1oZWlnaHQpO1xuICBjb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mb3JtLWlucHV0LWZvbnQtc2l6ZSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWZvcm0taW5wdXQtYmctY29sb3IpO1xuICBib3JkZXI6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLXNpemUpIHNvbGlkIHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItcmFkaXVzKTtcblxuICAudHVpLWNvbnRleHRJbnZhbGlkICYge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tZm9ybS1pbnB1dC1zaGFkb3ctaW52YWxpZCk7XG4gIH1cblxuICAmLS1oYXNGb2N1cyB7XG4gICAgQGluY2x1ZGUgdHVpLWZvY3VzO1xuXG4gICAgLnR1aS1jb250ZXh0SW52YWxpZCAmIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWZvcm0taW5wdXQtYmctY29sb3ItaW52YWxpZC1mb2N1cyk7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0taW5wdXQtYm9yZGVyLWNvbG9yLWludmFsaWQpO1xuICAgICAgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC1ib3JkZXItY29sb3ItaW52YWxpZCk7XG4gICAgICBib3gtc2hhZG93OiB2YXIoLS1mb3JtLWlucHV0LXNoYWRvdy1pbnZhbGlkLWZvY3VzKTtcbiAgICB9XG4gIH1cblxuICAmX190YWdzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IGF1dG87XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX190YWdJdGVtcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZ2FwOiB2YXIoLS1nYXAtMSk7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgcGFkZGluZzogY2FsYygoI3skaW5uZXItaGVpZ2h0fSAtIHZhcigtLXRhZy1oZWlnaHQpKSAvIDIpIHZhcigtLWdhcC0yKTtcblxuICAgICYtLW9wZW4ge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgIH1cbiAgfVxuXG4gICZfX3RhZ0l0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gICZfX3N1ZmZpeCB7XG4gICAgQGluY2x1ZGUgZm9udChib2R5LXNtKTtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1nYXAtMik7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1nYXAtMSk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YXRlKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICY6aG92ZXIge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gICZfX2lucHV0IHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgaGVpZ2h0OiB2YXIoLS10YWctaGVpZ2h0KTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZfX2V4cGFuZEFycm93IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6ICRpbm5lci1oZWlnaHQ7XG4gICAgaGVpZ2h0OiAkaW5uZXItaGVpZ2h0O1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiBjYWxjKCgjeyRpbm5lci1oZWlnaHR9IC0gdmFyKC0tc2VsZWN0LWljb24tc2l6ZSkpIC8gMik7XG4gICAgICByaWdodDogY2FsYygoI3skaW5uZXItaGVpZ2h0fSAtIHZhcigtLXNlbGVjdC1pY29uLXNpemUpICogMikgLyAyKTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBib3JkZXI6IHZhcigtLXNlbGVjdC1pY29uLXNpemUpIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZm9ybS1pbnB1dC10ZXh0LWNvbG9yKTtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJl9fY2FyZXQge1xuICAgIGZpbGw6IHZhcigtLWNvbG9yLW5ldXRyYWwtNyk7XG4gIH1cblxuICAmX19sb2FkaW5nIHtcbiAgICBtYXJnaW46IHZhcigtLWdhcC00KTtcbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3RoZW1lX3NldHRpbmdzL1NldHRpbmdzRm9ybUJyYW5kLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWI2YjE5MTZlJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS1zZXR0aW5nc0Zvcm1CcmFuZF9fdGVzdEVtYWlsSW5mb0J1dHRvbiB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3RvZ2dsZS9Ub2dnbGVCdXR0b24udnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NzdhMGU5MTImbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktdG9nZ2xlQnRuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBtaW4td2lkdGg6IHZhcigtLWdhcC0xMik7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiB2YXIoLS1mb3JtLWlucHV0LWhlaWdodCk7XG4gIHBhZGRpbmc6IDAgdmFyKC0tZ2FwLTIpO1xuICBjb2xvcjogdmFyKC0tdG9nZ2xlLWJ0bi10ZXh0LWNvbG9yKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mb3JtLWlucHV0LWZvbnQtc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGJhY2tncm91bmQ6IHZhcigtLXRvZ2dsZS1idG4tYmctY29sb3IpO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IGNhbGModmFyKC0tYnRuLXJhZGl1cykgLSAxcHgpO1xuXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlOmZvY3VzIHtcbiAgICBjb2xvcjogdmFyKC0tdG9nZ2xlLWJ0bi10ZXh0LWNvbG9yKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9nZ2xlLWJ0bi1iZy1jb2xvcik7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLXRvZ2dsZS1idG4tdGV4dC1jb2xvci1mb2N1cyk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvZ2dsZS1idG4tYmctY29sb3ItZm9jdXMpO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cblxuICAmOmFjdGl2ZSxcbiAgJjphY3RpdmU6Zm9jdXMsXG4gICY6YWN0aXZlOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tdG9nZ2xlLWJ0bi10ZXh0LWNvbG9yLWFjdGl2ZSk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvZ2dsZS1idG4tYmctY29sb3ItYWN0aXZlKTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLXRvZ2dsZS1idG4tdGV4dC1jb2xvci1hY3RpdmUpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtM3B4O1xuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGNvbG9yOiB2YXIoLS10b2dnbGUtYnRuLXRleHQtY29sb3ItZGlzYWJsZWQpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvZ2dsZS1idG4tYmctY29sb3ItZGlzYWJsZWQpO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICY6Zm9jdXMsXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmFjdGl2ZTpmb2N1cyxcbiAgICAmOmFjdGl2ZTpob3ZlciB7XG4gICAgICBjb2xvcjogdmFyKC0tdG9nZ2xlLWJ0bi10ZXh0LWNvbG9yLWRpc2FibGVkKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRvZ2dsZS1idG4tYmctY29sb3ItZGlzYWJsZWQpO1xuICAgIH1cbiAgfVxuXG4gICYtLXNlbGVjdGVkIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAmLFxuICAgICY6Zm9jdXMsXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmFjdGl2ZTpmb2N1cyxcbiAgICAmOmFjdGl2ZTpob3ZlciB7XG4gICAgICBjb2xvcjogdmFyKC0tdG9nZ2xlLWJ0bi10ZXh0LWNvbG9yLXNlbGVjdGVkKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRvZ2dsZS1idG4tYmctY29sb3Itc2VsZWN0ZWQpO1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLXRvZ2dsZS1idG4tdGV4dC1jb2xvci1zZWxlY3RlZCk7XG4gICAgICBvdXRsaW5lLW9mZnNldDogLTNweDtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSYtLXNlbGVjdGVkIHtcbiAgICBjb2xvcjogdmFyKC0tdG9nZ2xlLWJ0bi10ZXh0LWNvbG9yLXNlbGVjdGVkKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b2dnbGUtYnRuLWJnLWNvbG9yLXNlbGVjdGVkKTtcblxuICAgICY6Zm9jdXMsXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmFjdGl2ZTpmb2N1cyxcbiAgICAmOmFjdGl2ZTpob3ZlciB7XG4gICAgICBjb2xvcjogdmFyKC0tdG9nZ2xlLWJ0bi10ZXh0LWNvbG9yLXNlbGVjdGVkKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRvZ2dsZS1idG4tYmctY29sb3Itc2VsZWN0ZWQpO1xuICAgIH1cbiAgfVxuXG4gICYtLWhhc1RleHQge1xuICAgIG1pbi13aWR0aDogNzBweDtcblxuICAgIC50dWktdG9nZ2xlQnRuX19pY29uIHtcbiAgICAgIGZvbnQtc2l6ZTogZm9udC1zaXplLXB4KDE0KTtcbiAgICB9XG4gIH1cblxuICAmLS1sYXJnZSB7XG4gICAgbWluLXdpZHRoOiByZW0tcHgoMTAwKTtcbiAgICBtaW4taGVpZ2h0OiByZW0tcHgoNDYpO1xuXG4gICAgLnR1aS10b2dnbGVCdG5fX2NvbnRlbnQge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgJiA+ICogKyAqIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2NvbnRlbnQge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICAmX19pY29uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBmb250LXNpemU6IGZvbnQtc2l6ZS1weCgxNSk7XG4gIH1cblxuICAmX190ZXh0IHtcbiAgICBwYWRkaW5nOiAwIHZhcigtLWdhcC0xKTtcbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvdG9nZ2xlL1RvZ2dsZVNldC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0wMGEwOWFiMiZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS10b2dnbGVTZXQge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLXRvZ2dsZS1iZy1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ0bi1yYWRpdXMpO1xuXG4gICYtLWRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjQ7XG4gIH1cblxuICAmLS1zZWxlY3Qge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgJi0tbGFyZ2Uge1xuICAgIHBhZGRpbmc6IDJweDtcbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvdG9nZ2xlL1RvZ2dsZVN3aXRjaC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD00ZDhlYTgxNCZsYW5nPXNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS10b2dnbGVTd2l0Y2gge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICZfX2J0biB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY29sb3I6IHZhcigtLWZvcm0tdG9nZ2xlLWNvbG9yKTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlOmZvY3VzIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1mb3JtLXRvZ2dsZS1jb2xvcik7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IHZhcigtLWZvcm0tdG9nZ2xlLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBjb2xvcjogaW5pdGlhbDtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogaW5pdGlhbDtcbiAgICAgIH1cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmFjdGl2ZTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBpbml0aWFsO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtdGV4dCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICB9XG5cbiAgLyogdG9nZ2xlIHNpemUgYW5kIHNoYXBlKi9cbiAgJl9fdWkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogdmFyKC0tZm9ybS10b2dnbGUtY29udGFpbmVyLXdpZHRoKTtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tZm9ybS10b2dnbGUtdGV4dC1vZmZzZXQpO1xuICAgIC8qIHByZXR0aWVyLWlnbm9yZSovXG4gICAgcGFkZGluZzogY2FsYyh2YXIoLS1mb3JtLXRvZ2dsZS1mb2N1cy1nYXApICsgdmFyKC0tZm9ybS10b2dnbGUtZm9jdXMtYm9yZGVyKSk7XG5cbiAgICAmLS10b2dnbGVPbmx5IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKFxuICAgICAgICAtMSAqICh2YXIoLS1mb3JtLXRvZ2dsZS1mb2N1cy1nYXApICsgdmFyKC0tZm9ybS10b2dnbGUtZm9jdXMtYm9yZGVyKSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLyogdGhlIHRvZ2dsZSBiYWNrZ3JvdW5kKi9cbiAgICAmOmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogdmFyKC0tZm9ybS10b2dnbGUtY29udGFpbmVyLWhlaWdodCk7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1mb3JtLXRvZ2dsZS1jb250YWluZXItcmFkaXVzKTtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1idXR0b24tZHVyYXRpb24pXG4gICAgICAgICAgdmFyKC0tdHJhbnNpdGlvbi1idXR0b24tZnVuY3Rpb24pLFxuICAgICAgICBib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1idXR0b24tZHVyYXRpb24pXG4gICAgICAgICAgdmFyKC0tdHJhbnNpdGlvbi1idXR0b24tZnVuY3Rpb24pO1xuICAgICAgY29udGVudDogJyc7XG5cbiAgICAgIC50dWktY29udGV4dEludmFsaWQgJiB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1jb2xvci1pbnZhbGlkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiB0aGUgdG9nZ2xlIGRvdCovXG4gICAgJjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAvKiBwcmV0dGllci1pZ25vcmUqL1xuICAgICAgdG9wOiBjYWxjKHZhcigtLWZvcm0tdG9nZ2xlLWRvdC1vZmZzZXQpICsgY2FsYyh2YXIoLS1mb3JtLXRvZ2dsZS1mb2N1cy1nYXApICsgdmFyKC0tZm9ybS10b2dnbGUtZm9jdXMtYm9yZGVyKSkpO1xuICAgICAgLyogcHJldHRpZXItaWdub3JlKi9cbiAgICAgIGxlZnQ6IGNhbGModmFyKC0tZm9ybS10b2dnbGUtZG90LW9mZnNldCkgKyBjYWxjKHZhcigtLWZvcm0tdG9nZ2xlLWZvY3VzLWdhcCkgKyB2YXIoLS1mb3JtLXRvZ2dsZS1mb2N1cy1ib3JkZXIpKSk7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiB2YXIoLS1mb3JtLXRvZ2dsZS1kb3Qtc2l6ZSk7XG4gICAgICBoZWlnaHQ6IHZhcigtLWZvcm0tdG9nZ2xlLWRvdC1zaXplKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy0yKTtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgIH1cblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLyogdG9nZ2xlZCBvZmYqL1xuXG4gICAgLyogdGhlIHRvZ2dsZSBiYWNrZ3JvdW5kKi9cbiAgICAmOmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1mb3JtLXRvZ2dsZS1vZmYtYmctY29sb3IpO1xuICAgICAgYm9yZGVyOiB2YXIoLS1mb3JtLWlucHV0LWJvcmRlci1zaXplKSBzb2xpZDtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS10b2dnbGUtYm9yZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAvKiB0aGUgdG9nZ2xlIGRvdCovXG4gICAgJjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1mb3JtLXRvZ2dsZS1kb3QtY29sb3IpO1xuICAgIH1cblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWZvcm0tdG9nZ2xlLW9mZi1iZy1jb2xvci1ob3Zlci1mb2N1cyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJltkYXRhLWRpc2FibGVkXSB7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWZvcm0tdG9nZ2xlLW9mZi1iZy1jb2xvci1kaXNhYmxlZCk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS10b2dnbGUtYm9yZGVyLWNvbG9yLWRpc2FibGVkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiB0b2dnbGVkIG9mZiwgdmlhIHRoZSBidXR0b24qL1xuICAmX19idG4ge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICB+IC50dWktdG9nZ2xlU3dpdGNoX191aSB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWZvcm0tdG9nZ2xlLWZvY3VzLWdhcCk7XG4gICAgICAgIGJvcmRlcjogdmFyKC0tZm9ybS10b2dnbGUtZm9jdXMtYm9yZGVyKSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgLyogcHJldHRpZXItaWdub3JlKi9cbiAgICAgICAgYm9yZGVyLXJhZGl1czogY2FsYyhjYWxjKHZhcigtLWZvcm0tdG9nZ2xlLWNvbnRhaW5lci1yYWRpdXMpICsgdmFyKC0tZm9ybS10b2dnbGUtZm9jdXMtZ2FwKSkgKyB2YXIoLS1mb3JtLXRvZ2dsZS1mb2N1cy1ib3JkZXIpKTtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUqL1xuICAgICAgICAgIHRvcDogY2FsYyh2YXIoLS1mb3JtLXRvZ2dsZS1kb3Qtb2Zmc2V0KSArIHZhcigtLWZvcm0tdG9nZ2xlLWZvY3VzLWdhcCkpO1xuICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSovXG4gICAgICAgICAgbGVmdDogY2FsYyh2YXIoLS1mb3JtLXRvZ2dsZS1kb3Qtb2Zmc2V0KSArIHZhcigtLWZvcm0tdG9nZ2xlLWZvY3VzLWdhcCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpmb2N1cyB+IC50dWktdG9nZ2xlU3dpdGNoX191aSB7XG4gICAgICBib3JkZXI6IHZhcigtLWZvcm0tdG9nZ2xlLWZvY3VzLWJvcmRlcikgc29saWQgdmFyKC0tY29sb3Itc3RhdGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qIHRvZ2dsZWQgb24qL1xuICAmX19idG5bYXJpYS1wcmVzc2VkXSB+ICZfX3VpIHtcbiAgICAvKiB0aGUgZG90Ki9cbiAgICAmOmFmdGVyIHtcbiAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSovXG4gICAgICByaWdodDogY2FsYyh2YXIoLS1mb3JtLXRvZ2dsZS1kb3Qtb2Zmc2V0KSArIGNhbGModmFyKC0tZm9ybS10b2dnbGUtZm9jdXMtZ2FwKSArIHZhcigtLWZvcm0tdG9nZ2xlLWZvY3VzLWJvcmRlcikpKTtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgfVxuXG4gICAgLyogdGhlIHRvZ2dsZSBiYWNrZ3JvdW5kKi9cbiAgICAmOmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1mb3JtLXRvZ2dsZS1vbi1iZy1jb2xvcik7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0tdG9nZ2xlLW9uLWJvcmRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZm9ybS10b2dnbGUtb24tYmctY29sb3ItaG92ZXItZm9jdXMpO1xuICAgICAgfVxuICAgIH1cbiAgICAmW2RhdGEtZGlzYWJsZWRdIHtcbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZm9ybS10b2dnbGUtb24tYmctY29sb3ItZGlzYWJsZWQpO1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0tdG9nZ2xlLWJvcmRlci1jb2xvci1kaXNhYmxlZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyogdG9nZ2xlZCBvbiwgdmlhIHRoZSBidXR0b24qL1xuICAmX19idG5bYXJpYS1wcmVzc2VkXSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIH4gLnR1aS10b2dnbGVTd2l0Y2hfX3VpIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgLyogcHJldHRpZXItaWdub3JlKi9cbiAgICAgICAgICByaWdodDogY2FsYyh2YXIoLS1mb3JtLXRvZ2dsZS1kb3Qtb2Zmc2V0KSArIHZhcigtLWZvcm0tdG9nZ2xlLWZvY3VzLWdhcCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyogdG9nZ2xlIG9uIHRoZSBsZWZ0LCB0ZXh0IG9uIHRoZSByaWdodCovXG4gICYtLWxlZnQge1xuICAgIC50dWktdG9nZ2xlU3dpdGNoX191aSB7XG4gICAgICBvcmRlcjogMTtcbiAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tZm9ybS10b2dnbGUtdGV4dC1vZmZzZXQpO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLnR1aS10b2dnbGVTd2l0Y2hfX2J0biB7XG4gICAgICBvcmRlcjogMjtcbiAgICB9XG5cbiAgICAudHVpLXRvZ2dsZVN3aXRjaF9faWNvbiB7XG4gICAgICBvcmRlcjogMztcbiAgICB9XG4gIH1cbn1cblxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvdHJlZS9UcmVlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTE2NGI5YjgwJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi50dWktdHJlZSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy90cmVlL1RyZWVOb2RlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTI4ZTU1ZjYyJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLXRyZWVOb2RlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgJi0tdG9wIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtMSkgMDtcbiAgfVxuXG4gICY6bm90KCYtLXRvcCkge1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ2FwLTYpO1xuICB9XG5cbiAgJi0tc2VwYXJhdG9yIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGJvcmRlci1ib3R0b206IHZhcigtLWJvcmRlci13aWR0aC10aGluKSBzb2xpZCB2YXIoLS1jb2xvci1uZXV0cmFsLTUpO1xuICAgICAgY29udGVudDogJyc7XG4gICAgfVxuICB9XG5cbiAgJl9fdHJpZ2dlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tZ2FwLTEpO1xuICB9XG5cbiAgJl9fYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMDtcblxuICAgICYtYnRuIHtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgLW1zLXdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgfVxuXG4gICAgJi1sYWJlbCxcbiAgICAmLWxpbmsge1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgLW1zLXdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgICAtd2Via2l0LWh5cGhlbnM6IG5vbmU7XG4gICAgICAgICAgICAgIGh5cGhlbnM6IG5vbmU7XG4gICAgfVxuXG4gICAgJi1sYWJlbCB7XG4gICAgICBAaW5jbHVkZSBmb250KGJvZHkpO1xuICAgIH1cblxuICAgICYtbGluayB7XG4gICAgICAmOmZvY3VzLFxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLXNpZGUge1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG4gIH1cblxuICAmX19jaGlsZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1nYXAtMik7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgfVxuXG4gICYtLW5vUGFkZGluZyB7XG4gICAgcGFkZGluZzogMDtcbiAgICAudHVpLXRyZWVOb2RlX19jaGlsZCB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9jb21wb25lbnRzL3RyZWV2aWV3L1RyZWVWaWV3LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWJhNjU3MzAwJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS10cmVlVmlldyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCk7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvY29tcG9uZW50cy90cmVldmlldy9UcmVlVmlld05vZGUudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9N2E5NzU4YmMmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS10cmVlVmlld05vZGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLWJvcmRlci13aWR0aC1ub3JtYWwpO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXNtYWxsKTtcblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIEBpbmNsdWRlIHR1aS1mb2N1cygpO1xuICB9XG5cbiAgJl9faXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IGdhcCgxKTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1pbi1oZWlnaHQ6IHJlbS1weCgzMik7XG4gICAgcGFkZGluZzogZ2FwKDEpIGdhcCgyKSBnYXAoMSkgZ2FwKDkpO1xuICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0zKTtcbiAgICB9XG5cbiAgICAmLS1zZWxlY3RhYmxlIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAmLS1oYXNDaGlsZHJlbiB7XG4gICAgICBwYWRkaW5nOiBnYXAoMSkgZ2FwKDIpIGdhcCgxKSBnYXAoMik7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJi0tc2VsZWN0ZWQge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMSk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1zdGF0ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi1jaGlsZHJlbiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGdhcDogdmFyKC0tYm9yZGVyLXdpZHRoLW5vcm1hbCk7XG4gICAgICBtYXJnaW4tbGVmdDogZ2FwKDQpO1xuICAgIH1cblxuICAgICYtaWNvbiB7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAmLXRvZ2dsZSB7XG4gICAgICBhbGlnbi1zZWxmOiBzdGFydDtcbiAgICAgIG1pbi13aWR0aDogcmVtLXB4KDI0KTtcbiAgICAgIG1pbi1oZWlnaHQ6IHJlbS1weCgyNCk7XG4gICAgfVxuICB9XG5cbiAgJl9faXRlbS0tc2VsZWN0ZWQgJl9faXRlbS10b2dnbGUge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEpO1xuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBjc3MgLi9jbGllbnQvdG9vbGluZy93ZWJwYWNrL2Nzc19yYXdfbG9hZGVyLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsyXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMF0udXNlWzBdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2NvbXBvbmVudHMvdW5pZm9ybS9Gb3JtRmllbGQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MzJjZjUwZTgmbGFuZz1zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLWZvcm1GaWVsZCB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMDtcblxuICBAaW5jbHVkZSB0dWktY2hhci1sZW5ndGgtY2xhc3NlcygpO1xufVxuXG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTc3OC51c2VbMl0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9kaXN0L2luZGV4LmpzPz9ydWxlU2V0WzBdLnVzZVswXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9wYWdlcy9UaGVtZVNldHRpbmdzLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTgwMzRkYTMyJmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnR1aS10aGVtZVNldHRpbmdzIHtcbiAgJl9fY29udGVudCB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLTgpO1xuICB9XG5cbiAgJl9fZm9ybXMge1xuICAgIEBpbmNsdWRlIHR1aS1zdGFjay12ZXJ0aWNhbCh2YXIoLS1nYXAtOCkpO1xuICB9XG59XG5cbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtNzc4LnVzZVsxXSEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/Y2xvbmVkUnVsZVNldC03NzgudXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFswXS51c2VbMF0hLi9jbGllbnQvY29tcG9uZW50L3R1aS9zcmMvcGFnZXMvVGhlbWVUZW5hbnRzLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTllZDA0MDE2Jmxhbmc9c2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udHVpLXRoZW1lVGVuYW50cyB7XG4gICZfX2NvbnRlbnQge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC04KTtcbiAgfVxuXG4gICZfX3NlY3Rpb24gKyAmX19zZWN0aW9uIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtMTIpO1xuICB9XG5cbiAgJl9fc2VjdGlvbiB7XG4gICAgQGluY2x1ZGUgdHVpLXN0YWNrLXZlcnRpY2FsKHZhcigtLWdhcC00KSk7XG4gIH1cbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIGNzcyAuL2NsaWVudC90b29saW5nL3dlYnBhY2svY3NzX3Jhd19sb2FkZXIuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL2NsaWVudC9jb21wb25lbnQvdHVpL3NyYy9nbG9iYWxfc3R5bGVzL3N0eWxlcy90eXBvZ3JhcGh5LnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyNCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYS5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yIFNpbW9uIENoZXN0ZXIgPHNpbW9uLmNoZXN0ZXJAdG90YXJhLmNvbT4qL1xuLyogQG1vZHVsZSB0dWkqL1xuXG5oMSxcbi5oMSB7XG4gIEBpbmNsdWRlIGZvbnQoaDEpO1xuICBtYXJnaW46IHZhcigtLWdhcC00KSAwIHZhcigtLWdhcC01KTtcbn1cblxuaDIsXG4uaDIge1xuICBAaW5jbHVkZSBmb250KGgyKTtcbiAgbWFyZ2luOiB2YXIoLS1nYXAtNCkgMCB2YXIoLS1nYXAtNSk7XG59XG5cbmgzLFxuLmgzIHtcbiAgQGluY2x1ZGUgZm9udChoMyk7XG4gIG1hcmdpbjogdmFyKC0tZ2FwLTQpIDAgdmFyKC0tZ2FwLTQpO1xufVxuXG5oNCxcbi5oNCB7XG4gIEBpbmNsdWRlIGZvbnQoaDQpO1xuICBtYXJnaW46IHZhcigtLWdhcC00KSAwIHZhcigtLWdhcC00KTtcbn1cblxuaDUsXG4uaDUge1xuICBAaW5jbHVkZSBmb250KGg1KTtcbiAgbWFyZ2luOiB2YXIoLS1nYXAtNCkgMCB2YXIoLS1nYXAtMik7XG59XG5cbmg2LFxuLmg2IHtcbiAgQGluY2x1ZGUgZm9udChoNik7XG4gIG1hcmdpbjogdmFyKC0tZ2FwLTQpIDAgdmFyKC0tZ2FwLTIpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1oaW50KTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuQGVhY2ggJGZvbnRcbiAgaW4gKFxuICAgIGgxXG4gICAgICBoMlxuICAgICAgaDNcbiAgICAgIGg0XG4gICAgICBoNVxuICAgICAgaDZcbiAgICAgIGRpc3BsYXktbGdcbiAgICAgIGRpc3BsYXktbWRcbiAgICAgIGRpc3BsYXktc21cbiAgICAgIGRpc3BsYXkteHNcbiAgICAgIGJvZHkteGxcbiAgICAgIGJvZHktbGdcbiAgICAgIGJvZHlcbiAgICAgIGJvZHktc21cbiAgICAgIGJvZHkteHNcbiAgKVxue1xuICAudGV4dC0jeyRmb250fSB7XG4gICAgQGluY2x1ZGUgZm9udCgkZm9udCk7XG4gIH1cbn1cblxuIiwiLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvc3R5bGVzL3JpY2gtY29udGVudC5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMuKi9cbi8qKi9cbi8qIENvcHlyaWdodCAoQykgMjAyNCBvbndhcmRzIFRvdGFyYSBMZWFybmluZyBTb2x1dGlvbnMgTFREKi9cbi8qKi9cbi8qIFRvdGFyYSBFbnRlcnByaXNlIEV4dGVuc2lvbnMgaXMgcHJvdmlkZWQgb25seSB0byBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCdzIGN1c3RvbWVycyBhbmQgcGFydG5lcnMsIHB1cnN1YW50IHRvKi9cbi8qIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiBhIHNlcGFyYXRlIGFncmVlbWVudCB3aXRoIFRvdGFyYSovXG4vKiBMZWFybmluZyBTb2x1dGlvbnMgTFREIG9yIGl0cyBhZmZpbGlhdGUuKi9cbi8qKi9cbi8qIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zKi9cbi8qIExURCwgeW91IG1heSBub3QgYWNjZXNzLCB1c2UsIG1vZGlmeSwgb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlLiovXG4vKiBQbGVhc2UgY29udGFjdCBbbGljZW5zaW5nQHRvdGFyYS5jb21dIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4vKiovXG4vKiBAYXV0aG9yIFNpbW9uIENoZXN0ZXIgPHNpbW9uLmNoZXN0ZXJAdG90YXJhLmNvbT4qL1xuLyogQG1vZHVsZSB0dWkqL1xuXG4vKiByZW5kZXJlZCBlZGl0b3IgY29udGVudCovXG4udHVpLXJlbmRlcmVkIHtcbiAgQGluY2x1ZGUgZm9udChib2R5KTtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcblxuICAmX19ibG9jayB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tcGFyYWdyYXBoLWdhcCk7XG4gIH1cblxuICAmX19lbWJlZENvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1lbWJlZGRlZC1tZWRpYS1tYXgtd2lkdGgpO1xuICB9XG59XG5cbiIsIi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogY3NzIC4vY2xpZW50L3Rvb2xpbmcvd2VicGFjay9jc3NfcmF3X2xvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMV0hLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vY2xpZW50L2NvbXBvbmVudC90dWkvc3JjL2dsb2JhbF9zdHlsZXMvc3R5bGVzL2ljb25zLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zLiovXG4vKiovXG4vKiBDb3B5cmlnaHQgKEMpIDIwMjQgb253YXJkcyBUb3RhcmEgTGVhcm5pbmcgU29sdXRpb25zIExURCovXG4vKiovXG4vKiBUb3RhcmEgRW50ZXJwcmlzZSBFeHRlbnNpb25zIGlzIHByb3ZpZGVkIG9ubHkgdG8gVG90YXJhKi9cbi8qIExlYXJuaW5nIFNvbHV0aW9ucyBMVEQncyBjdXN0b21lcnMgYW5kIHBhcnRuZXJzLCBwdXJzdWFudCB0byovXG4vKiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgYSBzZXBhcmF0ZSBhZ3JlZW1lbnQgd2l0aCBUb3RhcmEqL1xuLyogTGVhcm5pbmcgU29sdXRpb25zIExURCBvciBpdHMgYWZmaWxpYXRlLiovXG4vKiovXG4vKiBJZiB5b3UgZG8gbm90IGhhdmUgYW4gYWdyZWVtZW50IHdpdGggVG90YXJhIExlYXJuaW5nIFNvbHV0aW9ucyovXG4vKiBMVEQsIHlvdSBtYXkgbm90IGFjY2VzcywgdXNlLCBtb2RpZnksIG9yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZS4qL1xuLyogUGxlYXNlIGNvbnRhY3QgW2xpY2Vuc2luZ0B0b3RhcmEuY29tXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4qL1xuLyoqL1xuLyogQGF1dGhvciBTaW1vbiBDaGVzdGVyIDxzaW1vbi5jaGVzdGVyQHRvdGFyYS5jb20+Ki9cbi8qIEBtb2R1bGUgdHVpKi9cblxuLyogQ29sb3Igc3RhdGUgZm9yIHRoZSBpY29ucy4qL1xuLnR1aS1pY29uIHtcbiAgJi0tZGlzYWJsZWQge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTIpO1xuICB9XG5cbiAgJi0tYWN0aW9uIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdGUpO1xuICB9XG5cbiAgJi0taW5mbyB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByb21wdC1pbmZvKTtcbiAgfVxuXG4gICYtLWFsZXJ0IHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJvbXB0LWFsZXJ0KTtcbiAgfVxuXG4gICYtLXdhcm5pbmcge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcm9tcHQtd2FybmluZyk7XG4gIH1cblxuICAmLS1zdWNjZXNzIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJvbXB0LXN1Y2Nlc3MpO1xuICB9XG5cbiAgJi0tZGltbWVkIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC02KTtcbiAgfVxufVxuXG4iXX0= */