@datagrok/helm 2.1.2 → 2.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/package.js CHANGED
@@ -2159,6 +2159,7 @@ __webpack_require__.r(__webpack_exports__);
2159
2159
  /* harmony import */ var _helm_web_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./helm-web-editor */ "./src/helm-web-editor.ts");
2160
2160
  /* harmony import */ var _cell_renderer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./cell-renderer */ "./src/cell-renderer.ts");
2161
2161
  /* harmony import */ var _datagrok_libraries_bio_src_utils_notation_converter__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @datagrok-libraries/bio/src/utils/notation-converter */ "./node_modules/@datagrok-libraries/bio/src/utils/notation-converter.js");
2162
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils */ "./src/utils.ts");
2162
2163
  var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
2163
2164
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2164
2165
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -2176,6 +2177,7 @@ var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _argume
2176
2177
 
2177
2178
 
2178
2179
 
2180
+
2179
2181
  const _package = new datagrok_api_dg__WEBPACK_IMPORTED_MODULE_2__.Package();
2180
2182
  let monomerLib = null;
2181
2183
  //tags: init
@@ -2244,8 +2246,11 @@ function helmCellRenderer() {
2244
2246
  //description: Macromolecule
2245
2247
  //input: grid_cell cell
2246
2248
  function editMoleculeCell(cell) {
2247
- if (cell.gridColumn.column.tags[datagrok_api_dg__WEBPACK_IMPORTED_MODULE_2__.TAGS.UNITS] === 'helm')
2249
+ const monomers = (0,_utils__WEBPACK_IMPORTED_MODULE_7__.findMonomers)(cell.cell.value);
2250
+ if (cell.gridColumn.column.tags[datagrok_api_dg__WEBPACK_IMPORTED_MODULE_2__.TAGS.UNITS] === 'helm' && monomers.size === 0)
2248
2251
  webEditor(cell);
2252
+ else
2253
+ datagrok_api_grok__WEBPACK_IMPORTED_MODULE_0__.shell.warning(`Monomers ${Array.from(monomers).join(', ')} are absent!`);
2249
2254
  }
2250
2255
  //name: Open Helm Web Editor
2251
2256
  //description: Adds editor
@@ -2428,4 +2433,4 @@ function helmWebEditor() {
2428
2433
  helm = __webpack_exports__;
2429
2434
  /******/ })()
2430
2435
  ;
2431
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxRQUFRO0FBQ3BCO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxRQUFRO0FBQ3BCO0FBQ087QUFDUDtBQUNBO0FBQ0EsMkNBQTJDOzs7Ozs7Ozs7Ozs7Ozs7OztBQ3BCM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNPO0FBQ1A7QUFDQSwyQ0FBMkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNwQ0U7QUFDSztBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsU0FBUztBQUNwQixXQUFXLFFBQVE7QUFDbkIsWUFBWTtBQUNaO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixZQUFZLGFBQWE7QUFDekI7QUFDQTtBQUNBO0FBQ0EsMkRBQTJELHNEQUFNO0FBQ2pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxRQUFRO0FBQ3BCO0FBQ0E7QUFDTztBQUNQO0FBQ0EsNEJBQTRCLHNEQUFNO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixZQUFZLFFBQVE7QUFDcEI7QUFDTztBQUNQO0FBQ0E7QUFDQSxzQkFBc0Isc0RBQU07QUFDNUIsb0JBQW9CLGNBQWM7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFlBQVksUUFBUTtBQUNwQjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsY0FBYztBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxRQUFRO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixzREFBTTtBQUM1QixvQkFBb0IsY0FBYztBQUNsQztBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0Esb0JBQW9CLGNBQWM7QUFDbEM7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZUFBZTtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFlBQVksUUFBUTtBQUNwQjtBQUNPO0FBQ1A7QUFDQSxvQkFBb0IsZ0JBQWdCO0FBQ3BDLHdCQUF3QixnQkFBZ0I7QUFDeEMsMkJBQTJCLG9EQUFXO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixZQUFZLFFBQVE7QUFDcEI7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsU0FBUztBQUNwQixXQUFXLGdCQUFnQjtBQUMzQixZQUFZLFFBQVE7QUFDcEI7QUFDTztBQUNQO0FBQ0E7QUFDQSxvQkFBb0IsWUFBWTtBQUNoQyw0QkFBNEIsWUFBWTtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUMsZ0JBQWdCO0FBQ2xEO0FBQ1A7QUFDQTtBQUNBLG9CQUFvQixZQUFZO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsU0FBUztBQUNwQixZQUFZLFVBQVU7QUFDdEI7QUFDTztBQUNQO0FBQ0Esb0NBQW9DO0FBQ3BDLGlDQUFpQztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixXQUFXLG9DQUFvQztBQUMvQztBQUNBLGFBQWEsVUFBVTtBQUN2QjtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGtEQUFTO0FBQzdCO0FBQ0Esb0JBQW9CLFlBQVk7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQjtBQUNPO0FBQ1A7QUFDQTtBQUNBLG9CQUFvQixpQkFBaUI7QUFDckM7QUFDQTtBQUNBLG9CQUFvQixpQkFBaUI7QUFDckM7QUFDQTtBQUNBLG9CQUFvQixpQkFBaUI7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLE9BQU87QUFDbEIsWUFBWTtBQUNaO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7Ozs7Ozs7Ozs7Ozs7Ozs7QUN4T0s7QUFDekMsaUNBQWlDLHlEQUFjO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseURBQXlELE9BQU87QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsUUFBUTtBQUN2QixnQkFBZ0Isa0JBQWtCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscURBQXFELHlCQUF5QjtBQUM5RSxxREFBcUQseUJBQXlCO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7Ozs7Ozs7Ozs7Ozs7Ozs7QUM3T0s7QUFDekMsa0NBQWtDLHlEQUFjO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7Ozs7Ozs7Ozs7Ozs7O0FDM0JwQztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQzNDTDtBQUN0QztBQUNBLFdBQVcsUUFBUTtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiwyREFBaUI7QUFDckMsY0FBYyxvREFBVTtBQUN4QixjQUFjLG9EQUFVO0FBQ3hCLGNBQWMsb0RBQVU7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsWUFBWSxHQUFHLFlBQVksR0FBRyxZQUFZO0FBQ2hFO0FBQ0EsV0FBVyx3REFBYztBQUN6QjtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsY0FBYztBQUN0QztBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ2dEO0FBQ3pDO0FBQ1A7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBLCtDQUErQyx1RUFBNEI7QUFDM0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08saUNBQWlDLHlEQUFjO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7Ozs7Ozs7Ozs7Ozs7Ozs7QUNuRU07QUFDakQ7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLDBEQUFjO0FBQ3RDO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsQ0FBQyw4QkFBOEI7QUFDL0I7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsMEJBQTBCO0FBQ3JDLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsU0FBUztBQUNwQixXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsU0FBUztBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLFFBQVE7QUFDcEI7QUFDTyxpTUFBaU07QUFDeE07QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQzdGTDtBQUNsQjtBQUNxRDtBQUN3QjtBQUM5QztBQUNFO0FBQ0w7QUFDTTtBQUN0RDtBQUNBLCtEQUErRCxrQkFBa0I7QUFDakYsV0FBVyxXQUFXO0FBQ3RCLFdBQVcsUUFBUTtBQUNuQixXQUFXLGNBQWM7QUFDekIsYUFBYSxhQUFhLHdCQUF3QjtBQUNsRDtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNPO0FBQ1A7QUFDQSxXQUFXLEtBQUs7QUFDaEIsWUFBWSxVQUFVO0FBQ3RCO0FBQ087QUFDUCxXQUFXLHlDQUFFO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQjtBQUNBLFlBQVk7QUFDWjtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MsSUFBSSxJQUFJO0FBQzlDO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixZQUFZO0FBQ1o7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkI7QUFDQSxZQUFZO0FBQ1o7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNENBQTRDLE9BQU87QUFDbkQ7QUFDQTtBQUNBO0FBQ0EsV0FBVyxXQUFXO0FBQ3RCLFlBQVksY0FBYztBQUMxQjtBQUNPO0FBQ1Asd0JBQXdCLGtFQUF3QjtBQUNoRCxxREFBcUQsa0VBQXdCLENBQUM7QUFDOUUsNkJBQTZCLHVEQUFhO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0EsbUJBQW1CLCtFQUE2QjtBQUNoRDtBQUNBLG1CQUFtQiwrRUFBNkI7QUFDaEQ7QUFDQSxtQkFBbUIsbUZBQWlDO0FBQ3BEO0FBQ0EscURBQXFELFNBQVM7QUFDOUQ7QUFDQTtBQUNBO0FBQ0EsV0FBVyxjQUFjO0FBQ3pCLFdBQVcsYUFBYTtBQUN4QixXQUFXLFFBQVE7QUFDbkIsWUFBWSxRQUFRO0FBQ3BCO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsbUZBQU07QUFDNUIsMEJBQTBCLG1GQUFNO0FBQ2hDLFdBQVcsaUdBQWdCLHNCQUFzQiw2RkFBWSxVQUFVLDZGQUFZO0FBQ25GO0FBQ087QUFDUDtBQUNBLGlDQUFpQyxtRkFBaUM7QUFDbEUsbUNBQW1DLCtFQUE2QjtBQUNoRSxtQ0FBbUMsK0VBQTZCO0FBQ2hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFdBQVc7QUFDdEIsV0FBVyxTQUFTO0FBQ3BCLFlBQVksWUFBWTtBQUN4QjtBQUNPO0FBQ1A7QUFDQSwwQkFBMEIsa0VBQXdCO0FBQ2xELHVCQUF1Qiw4REFBWTtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQSxtQkFBbUIsc0VBQTZCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiwwRUFBZ0M7QUFDbkQ7QUFDQTtBQUNBLG1CQUFtQiw4REFBd0I7QUFDM0M7QUFDQTtBQUNPO0FBQ1A7QUFDQSxtREFBbUQsa0VBQXdCO0FBQzNFO0FBQ0EsaUNBQWlDLHVEQUFhO0FBQzlDO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNsTkw7QUFDUztBQUNrQjtBQUNqRTtBQUNPLGdDQUFnQyx3REFBWTtBQUNuRDtBQUNBO0FBQ0EsNkJBQTZCLG9FQUFvQjtBQUNqRDtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCLGtDQUFrQztBQUNsQyw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0EsZUFBZSxRQUFRO0FBQ3ZCLGVBQWUsUUFBUTtBQUN2QixnQkFBZ0Isa0JBQWtCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QiwrQkFBK0I7QUFDM0Q7QUFDQSw0Q0FBNEMseUZBQTZDO0FBQ3pGO0FBQ0E7QUFDQSxTQUFTO0FBQ1QseUJBQXlCLHVEQUFhO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLFVBQVU7QUFDMUI7QUFDQTtBQUNBLDhDQUE4QztBQUM5QyxtQ0FBbUM7QUFDbkMsK0NBQStDO0FBQy9DLCtCQUErQjtBQUMvQjtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0Esd0NBQXdDO0FBQ3hDLHlFQUF5RTtBQUN6RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixvRkFBd0M7QUFDL0Q7QUFDQSwwQkFBMEIsWUFBWSxFQUFFLEdBQUcsRUFBRSxhQUFhO0FBQzFELFNBQVM7QUFDVCxrQkFBa0IsT0FBTyxFQUFFLDJCQUEyQixFQUFFLFFBQVE7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLFFBQVE7QUFDdkIsZUFBZSxlQUFlO0FBQzlCO0FBQ0EsZ0JBQWdCLFNBQVM7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLGVBQWU7QUFDOUIsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULHlCQUF5Qix1REFBYTtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxlQUFlO0FBQzlCLGdCQUFnQixZQUFZO0FBQzVCO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QixxRkFBeUM7QUFDdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsZ0NBQWdDO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QseUJBQXlCLHVEQUFhO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLFFBQVE7QUFDdkIsZUFBZSxRQUFRO0FBQ3ZCLGVBQWUsZUFBZTtBQUM5QjtBQUNBLGdCQUFnQixXQUFXO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixxRkFBeUM7QUFDekQsZ0JBQWdCLHlGQUE2QztBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QiwyQkFBMkI7QUFDdkQ7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLG9GQUF3QztBQUNyRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSx5QkFBeUIsb0VBQW9CO0FBQzdDLHNCQUFzQix3REFBUTtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsVUFBVTtBQUN6QixlQUFlLGVBQWU7QUFDOUIsZ0JBQWdCLDBCQUEwQjtBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5QyxjQUFjLHdCQUF3QixZQUFZO0FBQzNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNwT0w7QUFDNEQ7QUFDbEc7QUFDTztBQUNQO0FBQ0EsNEJBQTRCLGtFQUF3QjtBQUNwRDtBQUNBLHNCQUFzQix3REFBUSxTQUFTLDJEQUFlO0FBQ3REO0FBQ0EseUJBQXlCLDhEQUFjO0FBQ3ZDLG1CQUFtQix1REFBYTtBQUNoQztBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEIsbUJBQW1CO0FBQ25CLHFCQUFxQjtBQUNyQiw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtRUFBbUUsaUJBQWlCLGlCQUFpQixjQUFjO0FBQ25IO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsb0VBQW9CO0FBQ3JELDhCQUE4Qix3REFBUTtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0REFBNEQsY0FBYztBQUMxRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEIsb0JBQW9CO0FBQ3BCLGVBQWU7QUFDZixjQUFjO0FBQ2QsY0FBYztBQUNkLGtCQUFrQjtBQUNsQixjQUFjO0FBQ2Q7QUFDQTtBQUNBLGdCQUFnQixjQUFjO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QyxpQkFBaUIsNkJBQTZCLFdBQVc7QUFDaEc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsVUFBVTtBQUN6QixnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLDREQUFrQjtBQUM1Qyw0QkFBNEIsa0VBQXdCO0FBQ3BELHlCQUF5Qix1REFBYTtBQUN0Qyx5QkFBeUIsK0RBQXFCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsV0FBVztBQUMxQjtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLFFBQVE7QUFDdkIsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsV0FBVztBQUMxQixlQUFlLFdBQVc7QUFDMUIsZUFBZSxXQUFXO0FBQzFCLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQiw0REFBa0I7QUFDNUMsNEJBQTRCLGtFQUF3QjtBQUNwRCx5QkFBeUIsdURBQWE7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3Q0FBd0MsdURBQWE7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0MsaUJBQWlCLGlCQUFpQixjQUFjO0FBQy9GLDRCQUE0Qiw2QkFBNkI7QUFDekQ7QUFDQTtBQUNBO0FBQ0EsOENBQThDLGlCQUFpQixpQkFBaUIsY0FBYztBQUM5Rix5QkFBeUIsa0JBQWtCO0FBQzNDO0FBQ0EsOENBQThDLGlCQUFpQixpQkFBaUIsY0FBYztBQUM5Rix5QkFBeUIsa0JBQWtCO0FBQzNDO0FBQ0E7QUFDQTtBQUNBLCtDQUErQyxpQkFBaUIsaUJBQWlCLGNBQWM7QUFDL0YsNEJBQTRCLHNEQUFzRDtBQUNsRjtBQUNBLCtDQUErQyxpQkFBaUIsaUJBQWlCLGNBQWM7QUFDL0YsNEJBQTRCLHNEQUFzRDtBQUNsRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQzdOTDtBQUNBO0FBQ3NCO0FBQzBCO0FBQy9FLCtCQUErQiw2REFBbUI7QUFDekQsaUJBQWlCO0FBQ2pCLHFCQUFxQjtBQUNyQix5QkFBeUI7QUFDekIsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsb0RBQVk7QUFDckM7QUFDQSx1QkFBdUIsaURBQVM7QUFDaEMsdUJBQXVCLGdEQUFRO0FBQy9CO0FBQ0Esd0JBQXdCLHFCQUFxQjtBQUM3QztBQUNBLG9DQUFvQyxpREFBTztBQUMzQyxvQkFBb0Isb0RBQVUsWUFBWSxhQUFhO0FBQ3ZELG9CQUFvQixvREFBVTtBQUM5QjtBQUNBO0FBQ0E7QUFDQSxjQUFjLHlEQUFlLENBQUMsZ0RBQU07QUFDcEMsY0FBYyx5REFBZTtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsb0RBQVk7QUFDckM7QUFDQSx1QkFBdUIsaURBQVM7QUFDaEM7QUFDQSx5QkFBeUIsZ0RBQU0sT0FBTyxTQUFTLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxPQUFPO0FBQ3BGO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0RBQXNELGlEQUFpRDtBQUN2RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQixnREFBUTtBQUNuQyw0QkFBNEIscUJBQXFCO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQixvR0FBbUI7QUFDeEM7QUFDQTtBQUNBLDRCQUE0QixxQkFBcUI7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNyR087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7OztBQ3BCK0I7QUFDL0I7QUFDUDtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZ0RBQU0sT0FBTyxTQUFTLFVBQVUsT0FBTyxnQkFBZ0IsT0FBTyxPQUFPO0FBQ3pGLHNEQUFzRCwrQ0FBK0M7QUFDckc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQixnREFBTTtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxpQkFBaUI7QUFDakI7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN6Q087QUFDUDtBQUNBO0FBQ0Esb0JBQW9CLHFCQUFxQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixpQkFBaUI7QUFDekM7QUFDQTtBQUNBLGdDQUFnQztBQUNoQztBQUNBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGtCQUFrQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGNBQWM7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOzs7Ozs7Ozs7OztBQ3BKQTs7Ozs7Ozs7OztBQ0FBOzs7Ozs7Ozs7O0FDQUE7Ozs7Ozs7Ozs7QUNBQTs7Ozs7O1VDQUE7VUFDQTs7VUFFQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTs7VUFFQTtVQUNBOztVQUVBO1VBQ0E7VUFDQTs7Ozs7V0N0QkE7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBLGlDQUFpQyxXQUFXO1dBQzVDO1dBQ0E7Ozs7O1dDUEE7V0FDQTtXQUNBO1dBQ0E7V0FDQSx5Q0FBeUMsd0NBQXdDO1dBQ2pGO1dBQ0E7V0FDQTs7Ozs7V0NQQTs7Ozs7V0NBQTtXQUNBO1dBQ0E7V0FDQSx1REFBdUQsaUJBQWlCO1dBQ3hFO1dBQ0EsZ0RBQWdELGFBQWE7V0FDN0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDTkEsaUJBQWlCLFNBQUksSUFBSSxTQUFJO0FBQzdCLDRCQUE0QiwrREFBK0QsaUJBQWlCO0FBQzVHO0FBQ0Esb0NBQW9DLE1BQU0sK0JBQStCLFlBQVk7QUFDckYsbUNBQW1DLE1BQU0sbUNBQW1DLFlBQVk7QUFDeEYsZ0NBQWdDO0FBQ2hDO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDMEM7QUFDSjtBQUNBO0FBQ29DO0FBQ3hCO0FBQ0M7QUFDc0M7QUFDbEYscUJBQXFCLG9EQUFVO0FBQ3RDO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBLHlDQUF5QyxnQkFBZ0I7QUFDekQsYUFBYSxTQUFTLDZEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixTQUFTO0FBQ1QsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLG9EQUFZLFFBQVEsNkRBQXFCO0FBQ25FLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0Esa0NBQWtDLDhDQUFNO0FBQ3hDLHFFQUFxRSw4Q0FBTTtBQUMzRSx5REFBeUQsOENBQU07QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxLQUFLO0FBQ0w7QUFDQSxlQUFlLDREQUFrQjtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1AsZUFBZSw0REFBZ0I7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQLG9DQUFvQyx1REFBYTtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ2Y7QUFDUCxhQUFhLHNFQUE0QjtBQUN6Qyx3QkFBd0IsbUdBQWlCO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEI7QUFDNUI7QUFDTztBQUNQO0FBQ0EsbUJBQW1CLDREQUFrQjtBQUNyQztBQUNBLHFCQUFxQixnREFBTTtBQUMzQjtBQUNBLGdEQUFnRCxnQkFBZ0I7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsbURBQVMsQ0FBQyx5REFBZTtBQUM1QztBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSztBQUNMO0FBQ0E7QUFDQSxlQUFlLGdEQUFNO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLElBQUksbURBQVMsR0FBRyxxQ0FBcUM7QUFDckQ7QUFDQTtBQUNBO0FBQ0Esc0hBQXNIO0FBQ3RIO0FBQ0EsS0FBSyxTQUFTLCtCQUErQjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNPO0FBQ1A7QUFDQSw4RUFBOEUsV0FBVztBQUN6RjtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSw0QkFBNEI7QUFDNUI7QUFDTztBQUNQO0FBQ0Esa0ZBQWtGLFdBQVc7QUFDN0Y7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ087QUFDUDtBQUNBLHNGQUFzRixXQUFXO0FBQ2pHO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1Qix5QkFBeUI7QUFDbEI7QUFDUDtBQUNBLHVFQUF1RSxXQUFXO0FBQ2xGO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixpQkFBaUI7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0Msb0JBQW9CO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDTztBQUNQLGVBQWUsNERBQWtCO0FBQ2pDO0FBQ0EsY0FBYywwREFBZ0I7QUFDOUIsaUJBQWlCLGdEQUFNO0FBQ3ZCO0FBQ0EsNENBQTRDLGdCQUFnQjtBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1AsZUFBZSwyREFBYTtBQUM1QiIsInNvdXJjZXMiOlsid2VicGFjazovL2hlbG0vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3JhbmRvbS5qcyIsIndlYnBhY2s6Ly9oZWxtLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy90eXBlLWRlY2xhcmF0aW9ucy5qcyIsIndlYnBhY2s6Ly9oZWxtLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy92ZWN0b3Itb3BlcmF0aW9ucy5qcyIsIndlYnBhY2s6Ly9oZWxtLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy9hbWlub2FjaWRzLmpzIiwid2VicGFjazovL2hlbG0vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL251Y2xlb3RpZGVzLmpzIiwid2VicGFjazovL2hlbG0vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3NlcS1wYWxldHRlcy5qcyIsIndlYnBhY2s6Ly9oZWxtLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91bmtub3duLmpzIiwid2VicGFjazovL2hlbG0vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL2NlbGwtcmVuZGVyZXIuanMiLCJ3ZWJwYWNrOi8vaGVsbS8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdXRpbHMvbWFjcm9tb2xlY3VsZS5qcyIsIndlYnBhY2s6Ly9oZWxtLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy9ub3RhdGlvbi1jb252ZXJ0ZXIuanMiLCJ3ZWJwYWNrOi8vaGVsbS8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdXRpbHMvdW5pdHMtaGFuZGxlci5qcyIsIndlYnBhY2s6Ly9oZWxtLy4vc3JjL2NlbGwtcmVuZGVyZXIudHMiLCJ3ZWJwYWNrOi8vaGVsbS8uL3NyYy9jb25zdGFudHMudHMiLCJ3ZWJwYWNrOi8vaGVsbS8uL3NyYy9oZWxtLXdlYi1lZGl0b3IudHMiLCJ3ZWJwYWNrOi8vaGVsbS8uL3NyYy91dGlscy50cyIsIndlYnBhY2s6Ly9oZWxtL2V4dGVybmFsIHZhciBcIkRHXCIiLCJ3ZWJwYWNrOi8vaGVsbS9leHRlcm5hbCB2YXIgXCJncm9rXCIiLCJ3ZWJwYWNrOi8vaGVsbS9leHRlcm5hbCB2YXIgXCJ1aVwiIiwid2VicGFjazovL2hlbG0vZXh0ZXJuYWwgdmFyIFwid3VcIiIsIndlYnBhY2s6Ly9oZWxtL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL2hlbG0vd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrOi8vaGVsbS93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vaGVsbS93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL2hlbG0vd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9oZWxtLy4vc3JjL3BhY2thZ2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZXMgc2luZ2xlIHJhbmRvbSBmbG9hdCBmcm9tIDAgdG8gcmFuZ2UuXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtudW1iZXJ9IHJhbmdlIE1heCBnZW5lcmF0aW5nIHZhbHVlLlxuICogQHJldHVybiB7bnVtYmVyfSBBIHJhbmRvbSBmbG9hdCBnZW5lcmF0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByYW5kb21GbG9hdChyYW5nZSkge1xuICAgIHJldHVybiBNYXRoLnJhbmRvbSgpICogcmFuZ2U7XG59XG4vKipcbiAqIEdlbmVyYXRlcyBzaW5nbGUgcmFuZG9tIGludGVnZXIgZnJvbSAwIHRvIHJhbmdlLlxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7bnVtYmVyfSByYW5nZSBNYXggZ2VuZXJhdGluZyB2YWx1ZS5cbiAqIEByZXR1cm4ge251bWJlcn0gQSByYW5kb20gaW50ZWdlciBnZW5lcmF0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByYW5kb21JbnQocmFuZ2UpIHtcbiAgICByZXR1cm4gTWF0aC5mbG9vcihyYW5kb21GbG9hdChyYW5nZSkpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pY21GdVpHOXRMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaWNtRnVaRzl0TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJPenM3T3pzN1IwRk5SenRCUVVOSUxFMUJRVTBzVlVGQlZTeFhRVUZYTEVOQlFVTXNTMEZCWVR0SlFVTjJReXhQUVVGUExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4TFFVRkxMRU5CUVVNN1FVRkRMMElzUTBGQlF6dEJRVVZFT3pzN096czdSMEZOUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3hUUVVGVExFTkJRVU1zUzBGQllUdEpRVU55UXl4UFFVRlBMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRlRU1zUTBGQlF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJaThxS2x4dUlDb2dSMlZ1WlhKaGRHVnpJSE5wYm1kc1pTQnlZVzVrYjIwZ1pteHZZWFFnWm5KdmJTQXdJSFJ2SUhKaGJtZGxMbHh1SUNwY2JpQXFJRUJsZUhCdmNuUmNiaUFxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0J5WVc1blpTQk5ZWGdnWjJWdVpYSmhkR2x1WnlCMllXeDFaUzVjYmlBcUlFQnlaWFIxY200Z2UyNTFiV0psY24wZ1FTQnlZVzVrYjIwZ1pteHZZWFFnWjJWdVpYSmhkR1ZrTGx4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjbUZ1Wkc5dFJteHZZWFFvY21GdVoyVTZJRzUxYldKbGNpazZJRzUxYldKbGNpQjdYRzRnSUhKbGRIVnliaUJOWVhSb0xuSmhibVJ2YlNncElDb2djbUZ1WjJVN1hHNTlYRzVjYmk4cUtseHVJQ29nUjJWdVpYSmhkR1Z6SUhOcGJtZHNaU0J5WVc1a2IyMGdhVzUwWldkbGNpQm1jbTl0SURBZ2RHOGdjbUZ1WjJVdVhHNGdLbHh1SUNvZ1FHVjRjRzl5ZEZ4dUlDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlISmhibWRsSUUxaGVDQm5aVzVsY21GMGFXNW5JSFpoYkhWbExseHVJQ29nUUhKbGRIVnliaUI3Ym5WdFltVnlmU0JCSUhKaGJtUnZiU0JwYm5SbFoyVnlJR2RsYm1WeVlYUmxaQzVjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlISmhibVJ2YlVsdWRDaHlZVzVuWlRvZ2JuVnRZbVZ5S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdjbVYwZFhKdUlFMWhkR2d1Wm14dmIzSW9jbUZ1Wkc5dFJteHZZWFFvY21GdVoyVXBLVHRjYm4xY2JpSmRmUT09IiwiLyoqXG4gKiBEZW5vdGVzIGEgdmVjdG9yIG9mIGZsb2F0aW5nIHBvaXQgdmFsdWVzLlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBWZWN0b3JcbiAqIEBleHRlbmRzIHtGbG9hdDMyQXJyYXl9XG4gKi9cbmV4cG9ydCBjbGFzcyBWZWN0b3IgZXh0ZW5kcyBGbG9hdDMyQXJyYXkge1xufVxuLyoqXG4gKiBEZW5vdGVzIGEgdHdvLWRpbWVuc2lvbmFsIG1hdHJpeC5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgTWF0cml4XG4gKiBAZXh0ZW5kcyB7QXJyYXk8VmVjdG9yPn1cbiAqL1xuZXhwb3J0IGNsYXNzIE1hdHJpeCBleHRlbmRzIEFycmF5IHtcbn1cbi8qKlxuICogRGVub3RlcyBjYXJ0ZXNpYW4gY29vcmRpbmF0ZXMuXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIENvb3JkaW5hdGVzXG4gKiBAZXh0ZW5kcyB7TWF0cml4fVxuICovXG5leHBvcnQgY2xhc3MgQ29vcmRpbmF0ZXMgZXh0ZW5kcyBNYXRyaXgge1xufVxuLyoqXG4gKiBEZW5vdGVzIGFuIGFycmF5IG9mIGFyYml0cmFyeS10eXBlZCB2ZWN0b3JzLlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBWZWN0b3JzXG4gKiBAZXh0ZW5kcyB7QXJyYXk8YW55Pn1cbiAqL1xuZXhwb3J0IGNsYXNzIFZlY3RvcnMgZXh0ZW5kcyBBcnJheSB7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkSGx3WlMxa1pXTnNZWEpoZEdsdmJuTXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKMGVYQmxMV1JsWTJ4aGNtRjBhVzl1Y3k1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRVHM3T3pzN08wZEJUVWM3UVVGRFNDeE5RVUZOTEU5QlFVOHNUVUZCVHl4VFFVRlJMRmxCUVZrN1EwRkJSenRCUVVVelF6czdPenM3TzBkQlRVYzdRVUZEU0N4TlFVRk5MRTlCUVU4c1RVRkJUeXhUUVVGUkxFdEJRV0U3UTBGQlJ6dEJRVVUxUXpzN096czdPMGRCVFVjN1FVRkRTQ3hOUVVGTkxFOUJRVThzVjBGQldTeFRRVUZSTEUxQlFVMDdRMEZCUnp0QlFVVXhRenM3T3pzN08wZEJUVWM3UVVGRFNDeE5RVUZOTEU5QlFVOHNUMEZCVVN4VFFVRlJMRXRCUVZVN1EwRkJSeUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4cUtseHVJQ29nUkdWdWIzUmxjeUJoSUhabFkzUnZjaUJ2WmlCbWJHOWhkR2x1WnlCd2IybDBJSFpoYkhWbGN5NWNiaUFxWEc0Z0tpQkFaWGh3YjNKMFhHNGdLaUJBWTJ4aGMzTWdWbVZqZEc5eVhHNGdLaUJBWlhoMFpXNWtjeUI3Um14dllYUXpNa0Z5Y21GNWZWeHVJQ292WEc1bGVIQnZjblFnWTJ4aGMzTWdWbVZqZEc5eUlHVjRkR1Z1WkhNZ1JteHZZWFF6TWtGeWNtRjVJSHQ5WEc1Y2JpOHFLbHh1SUNvZ1JHVnViM1JsY3lCaElIUjNieTFrYVcxbGJuTnBiMjVoYkNCdFlYUnlhWGd1WEc0Z0tseHVJQ29nUUdWNGNHOXlkRnh1SUNvZ1FHTnNZWE56SUUxaGRISnBlRnh1SUNvZ1FHVjRkR1Z1WkhNZ2UwRnljbUY1UEZabFkzUnZjajU5WEc0Z0tpOWNibVY0Y0c5eWRDQmpiR0Z6Y3lCTllYUnlhWGdnWlhoMFpXNWtjeUJCY25KaGVUeFdaV04wYjNJK0lIdDlYRzVjYmk4cUtseHVJQ29nUkdWdWIzUmxjeUJqWVhKMFpYTnBZVzRnWTI5dmNtUnBibUYwWlhNdVhHNGdLbHh1SUNvZ1FHVjRjRzl5ZEZ4dUlDb2dRR05zWVhOeklFTnZiM0prYVc1aGRHVnpYRzRnS2lCQVpYaDBaVzVrY3lCN1RXRjBjbWw0ZlZ4dUlDb3ZYRzVsZUhCdmNuUWdZMnhoYzNNZ1EyOXZjbVJwYm1GMFpYTWdaWGgwWlc1a2N5Qk5ZWFJ5YVhnZ2UzMWNibHh1THlvcVhHNGdLaUJFWlc1dmRHVnpJR0Z1SUdGeWNtRjVJRzltSUdGeVltbDBjbUZ5ZVMxMGVYQmxaQ0IyWldOMGIzSnpMbHh1SUNwY2JpQXFJRUJsZUhCdmNuUmNiaUFxSUVCamJHRnpjeUJXWldOMGIzSnpYRzRnS2lCQVpYaDBaVzVrY3lCN1FYSnlZWGs4WVc1NVBuMWNiaUFxTDF4dVpYaHdiM0owSUdOc1lYTnpJRlpsWTNSdmNuTWdaWGgwWlc1a2N5QkJjbkpoZVR4aGJuaytJSHQ5WEc1Y2JpOHFLbHh1SUNvZ1JHVnViM1JsY3lCaElHUnBZM1JwYjI1aGNua2dZMjl1ZEdGcGJtbHVaeUJtZFc1amRHbHZiaUJ2Y0hScGIyNXpMbHh1SUNwY2JpQXFJRUJsZUhCdmNuUmNiaUFxSUVCMGVYQmxJRTl3ZEdsdmJuTmNiaUFxTDF4dVpYaHdiM0owSUhSNWNHVWdUM0IwYVc5dWN5QTlJSHRiYm1GdFpUb2djM1J5YVc1blhUb2dZVzU1ZlR0Y2JseHVMeW9xWEc0Z0tpQkVaVzV2ZEdWeklHTjFjM1J2YlNCa2FYTjBZVzVqWlNCdFpYUnlhV01nWW1WMGQyVmxiaUIwYUdVZ2RIZHZJR2RwZG1WdUlIWmxZM1J2Y25NdVhHNGdLbHh1SUNvZ1FHVjRjRzl5ZEZ4dUlDb2dRSFI1Y0dVZ1JHbHpkR0Z1WTJWTlpYUnlhV05jYmlBcUlFQndZWEpoYlNCN1lXNTVmU0IyTVNCVWFHVWdabWx5YzNRZ2RtVmpkRzl5TGx4dUlDb2dRSEJoY21GdElIdGhibmw5SUhZeUlGUm9aU0J6WldOdmJtUWdkbVZqZEc5eUxseHVJQ29nUUhKbGRIVnliaUI3Ym5WdFltVnlmU0JFYVhOMFlXNWpaU0JpWlhSM1pXVnVJSFJvWlhObElIUjNieUIyWldOMGIzSnpMbHh1SUNvdlhHNWxlSEJ2Y25RZ2RIbHdaU0JFYVhOMFlXNWpaVTFsZEhKcFl5QTlJQ2gyTVRvZ1lXNTVMQ0IyTWpvZ1lXNTVLU0E5UGlBb2JuVnRZbVZ5S1R0Y2JseHVMeW9xWEc0Z0tpQkVaVzV2ZEdWeklHRWdjMmx0Y0d4bElITjBjbWx1WnlCMGJ5QnpkSEpwYm1jZ1pHbGpkR2x2Ym1GeWVTNWNiaUFxWEc0Z0tpQkFaWGh3YjNKMFhHNGdLaUJBZEhsd1pTQlRkSEpwYm1kRWFXTjBhVzl1WVhKNVhHNGdLaTljYm1WNGNHOXlkQ0IwZVhCbElGTjBjbWx1WjBScFkzUnBiMjVoY25rZ1BTQjdXMnRsZVRvZ2MzUnlhVzVuWFRvZ2MzUnlhVzVuZlR0Y2JpSmRmUT09IiwiaW1wb3J0IHsgVmVjdG9yIH0gZnJvbSAnLi90eXBlLWRlY2xhcmF0aW9ucyc7XG5pbXBvcnQgeyByYW5kb21GbG9hdCwgcmFuZG9tSW50IH0gZnJvbSAnLi9yYW5kb20nO1xuLyoqXG4gKiBBc3NlcnRzIGEgY29uZGl0aW9uIGJ5IHRocm93aW5nIGFuIEVycm9yLlxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2NvbmRpdGlvbj1mYWxzZV0gQ29uZGl0aW9uIHRvIGFzc2VydC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZT0nQXNzZXJ0aW9uIGVycm9yLiddIE1lc3NhZ2UgdG8gb3V0cHV0LlxuICogQHRocm93cyB7RXJyb3J9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnQoY29uZGl0aW9uID0gZmFsc2UsIG1lc3NhZ2UgPSAnQXNzZXJ0aW9uIGVycm9yLicpIHtcbiAgICBpZiAoIWNvbmRpdGlvbilcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xufVxuLyoqXG4gKiBDcmVhdGVzIG5ldyB0d28tZGltZW5zaW9uYWwgYXJyYXkgYW5kIGZpbGxzIGl0IHdpdGggdGhlIHZhbHVlIGdpdmVuLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBkaW1lbnNpb24xIFRoZSBmaXJzdCBkaW1lbnNpb24gb2YgdGhlIGNvb3JkaW5hdGVzIChudW1iZXIgb2Ygcm93cykuXG4gKiBAcGFyYW0ge251bWJlcn0gZGltZW5zaW9uMiBUaGUgc2Vjb25kIGRpbWVuc2lvbiBvZiB0aGUgY29vcmRpbmF0ZXMgKG51bWJlciBvZiBjb2x1bW5zKS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbZmlsbD0wXSBBIHZhbHVlIHRvIGZpbGwgdGhlIGNvb3JkaW5hdGVzIHdpdGguXG4gKiBAcmV0dXJuIHtDb29yZGluYXRlc30gQSB0d28tZGltZW5zaW9uYWwgZmlsbGVkIHdpdGggdGhlIHZhbHVlIGdpdmVuLlxuICogQHRvZG8gTWlnaHQgYmUgc2xvdyBzaW5jZSB1c2VkIEFycmF5Lm1hcC4gUHJvYmFibHkgbmVlZHMgcGVyZm9ybWFuY2UgcmV2aXNpb24uXG4gKi9cbmZ1bmN0aW9uIGluaXRDb29yZGluYXRlcyhkaW1lbnNpb24xLCBkaW1lbnNpb24yLCBmaWxsID0gMCkge1xuICAgIHJldHVybiBuZXcgQXJyYXkoZGltZW5zaW9uMSkuZmlsbChmaWxsKS5tYXAoKCkgPT4gKG5ldyBWZWN0b3IoZGltZW5zaW9uMikuZmlsbChmaWxsKSkpO1xufVxuLyoqXG4gKiBUcmFuc3Bvc2UgbWF0cml4LlxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7TWF0cml4fSBtYXRyaXggVGhlIG1hdHJpeCB0byBiZSB0cmFuc3Bvc2VkLlxuICogQHJldHVybiB7TWF0cml4fSBUcmFuc3Bvc2VkIG1hdHJpeC5cbiAqIEB0b2RvIE1pZ2h0IGJlIHNsb3cgc2luY2UgdXNlZCBBcnJheS5tYXAuIFByb2JhYmx5IG5lZWRzIHBlcmZvcm1hbmNlIHJldmlzaW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNwb3NlTWF0cml4KG1hdHJpeCkge1xuICAgIHJldHVybiBuZXcgQXJyYXkobWF0cml4WzBdLmxlbmd0aCkuZmlsbCgwKVxuICAgICAgICAubWFwKChfLCBpKSA9PiAobmV3IFZlY3RvcihtYXRyaXgubGVuZ3RoKS5maWxsKDApLm1hcCgoXywgaikgPT4gKG1hdHJpeFtqXVtpXSkpKSk7XG59XG4vKipcbiAqIEFkZHMgdHdvIHZlY3RvcnMgd2l0aCB0aGUgc2Vjb25kIG9uZSB0byBiZSBtdWx0aXBsaWVkIGJ5IHRoZSBnaXZlbiByYXRpby5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge1ZlY3Rvcn0gcCBUaGUgZmlyc3QgdmVjdG9yIHRvIGFkZC5cbiAqIEBwYXJhbSB7VmVjdG9yfSBxIFRoZSBzZWNvbmQgdmVjdG9yIHRvIGFkZC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbbXVsdGlwbGllcj0xXSBBIG11bHRpcGxpZXIgdG8gYmUgdXNlZCBiZWZvcmUgdGhlIHNlY29uZCB2ZWN0b3IgaXMgYWRkZWQuXG4gKiBAcmV0dXJuIHtWZWN0b3J9IE5ldyB2ZWN0b3IgY29udGFpbmVkIHRoZSByZXN1bHQgb2Ygb3BlcmF0aW9uIHArbXVsdGlwbGllcipxLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmVjdG9yQWRkKHAsIHEsIG11bHRpcGxpZXIgPSAxKSB7XG4gICAgY29uc3Qgbkl0ZW1zID0gcC5sZW5ndGg7XG4gICAgYXNzZXJ0KG5JdGVtcyA9PSBxLmxlbmd0aCwgJ1ZlY3RvciBsZW5ndGhzIGRvIG5vdCBtYXRjaC4nKTtcbiAgICBjb25zdCB0b3RhbCA9IG5ldyBWZWN0b3Iobkl0ZW1zKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHAubGVuZ3RoOyArK2kpXG4gICAgICAgIHRvdGFsW2ldID0gcFtpXSArIG11bHRpcGxpZXIgKiBxW2ldO1xuICAgIHJldHVybiB0b3RhbDtcbn1cbi8qKlxuICogU3VtcyB0aGUgdmVjdG9yJ3MgaXRlbXMuXG4gKlxuICogQHBhcmFtIHtWZWN0b3J9IHYgVGhlIHZlY3RvciB0byBiZSBzdW1tZWQuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSB2ZWN0b3IncyBpdGVtcyBzdW0uXG4gKi9cbmZ1bmN0aW9uIGl0ZW1zU3VtKHYpIHtcbiAgICBsZXQgdG90YWwgPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdi5sZW5ndGg7ICsraSlcbiAgICAgICAgdG90YWwgKz0gdltpXTtcbiAgICByZXR1cm4gdG90YWw7XG59XG4vKipcbiAqIFN1cWFyZXMgdGhlIHZlY3RvcidzIGl0ZW1zLlxuICpcbiAqIEBwYXJhbSB7VmVjdG9yfSB2IFRoZSB2ZWN0b3IgdG8gc3F1YXJlLlxuICogQHJldHVybiB7VmVjdG9yfSBBIG5ldyB2ZWN0b3IgY29udGFpbmluZyB0aGUgb3JpZ2luYWwncyBpdGVtcyBzcXVhcmVkLlxuICovXG5mdW5jdGlvbiB2ZWN0b3JTcXVhcmUodikge1xuICAgIGNvbnN0IG5JdGVtcyA9IHYubGVuZ3RoO1xuICAgIGNvbnN0IHRvdGFsID0gbmV3IFZlY3RvcihuSXRlbXMpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdi5sZW5ndGg7ICsraSlcbiAgICAgICAgdG90YWxbaV0gPSB2W2ldICogdltpXTtcbiAgICByZXR1cm4gdG90YWw7XG59XG5leHBvcnQgZnVuY3Rpb24gdmVjdG9yTGVuZ3RoKHYpIHtcbiAgICBsZXQgc3FyU3VtID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHYubGVuZ3RoOyBpKyspXG4gICAgICAgIHNxclN1bSArPSB2W2ldICogdltpXTtcbiAgICByZXR1cm4gTWF0aC5zcXJ0KHNxclN1bSk7XG59XG5leHBvcnQgZnVuY3Rpb24gdmVjdG9yRG90UHJvZHVjdCh2MSwgdjIpIHtcbiAgICBpZiAodjEubGVuZ3RoICE9IHYyLmxlbmd0aClcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgZGltZW5zaW9uYWxpdHkgb2YgdGhlIHZlY3RvcnMgbXVzdCBtYXRjaCcpO1xuICAgIGxldCBwcm9kID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHYxLmxlbmd0aDsgaSsrKVxuICAgICAgICBwcm9kICs9IHYxW2ldICogdjJbaV07XG4gICAgcmV0dXJuIHByb2Q7XG59XG4vKipcbiAqIENyZWF0ZXMgYSBtYXRyaXggZmlsbGVkIHdpdGggcmFuZG9tIGZsb2F0aW5nIHBvaW50IHZhbHVlcy5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge251bWJlcn0gZGltZW5zaW9uMSBUaGUgZmlyc3QgZGltZW5zaW9uIG9mIHRoZSBtYXRyaXguXG4gKiBAcGFyYW0ge251bWJlcn0gZGltZW5zaW9uMiBUaGUgc2Vjb25kIGRpbWVuc2lvbiBvZiB0aGUgbWF0cml4LlxuICogQHBhcmFtIHtudW1iZXJ9IFtzY2FsZT0xLl0gTWF4IHZhbHVlIGdpdmVuIGJ5IHJhbmRvbSBnZW5lcmF0b3IuXG4gKiBAcmV0dXJuIHtNYXRyaXh9IEEgbmV3IG1hdHJpeCBmaWxsZWQgd2l0aCByYW5kb20gZmxvYXRpbmcgcG9pbnQgIHZhbHVlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbGxSYW5kb21NYXRyaXgoZGltZW5zaW9uMSwgZGltZW5zaW9uMiwgc2NhbGUgPSAxLikge1xuICAgIGNvbnN0IG1hdHJpeCA9IGluaXRDb29yZGluYXRlcyhkaW1lbnNpb24xLCBkaW1lbnNpb24yKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRpbWVuc2lvbjE7ICsraSkge1xuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGRpbWVuc2lvbjI7ICsrailcbiAgICAgICAgICAgIG1hdHJpeFtpXVtqXSA9IHJhbmRvbUZsb2F0KHNjYWxlKTtcbiAgICB9XG4gICAgcmV0dXJuIG1hdHJpeDtcbn1cbi8qKlxuICogQ2FsY3VsYXRlcyBFdWNsaWRlYW4gZGlzdGFuY2UgYmV0d2VlbiB0d28gdmVjdG9ycy5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge1ZlY3Rvcn0gcCBUaGUgZmlyc3QgdmVjdG9yLlxuICogQHBhcmFtIHtWZWN0b3J9IHEgVGhlIHNlY29uZCB2ZWN0b3IuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IEV1Y2xpZGVhbiBkaXN0YW5jZSBiZXR3ZWVuIHRoZSBnaXZlbiB2ZWN0b3JzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlRXVjbGlkZWFuRGlzdGFuY2UocCwgcSkge1xuICAgIGNvbnN0IGRpZmYgPSB2ZWN0b3JBZGQocCwgcSwgLTEpO1xuICAgIGNvbnN0IHNxZGlmZiA9IHZlY3RvclNxdWFyZShkaWZmKTtcbiAgICBjb25zdCBzcWRpZmZTdW1tID0gaXRlbXNTdW0oc3FkaWZmKTtcbiAgICByZXR1cm4gTWF0aC5zcXJ0KHNxZGlmZlN1bW0pO1xufVxuLyoqXG4gKiBDcmVhdGVzIGEgZGlzdGFuY2UgbWF0cml4IHVzaW5nIGEgY3VzdG9tIGRpc3RhbmNlIGZ1bmN0aW9uLlxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7VmVjdG9yc30gZGF0YSBJbnB1dCB2ZWN0b3JzIHRvIGNhbGN1bGF0ZSBkaXN0YW5jZXMuXG4gKiBAcGFyYW0ge0Rpc3RhbmNlTWV0cmljfSBkaXN0YW5jZSBDdXN0b20gZGlzdGFuY2UgZnVuY3Rpb24uXG4gKiBAcmV0dXJuIHtNYXRyaXh9IENhbGN1bGF0ZWQgY3VzdG9tIGRpc3RhbmNlIG1hdHJpeC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbGNEaXN0YW5jZU1hdHJpeChkYXRhLCBkaXN0YW5jZSkge1xuICAgIGNvbnN0IG5JdGVtcyA9IGRhdGEubGVuZ3RoO1xuICAgIGNvbnN0IG1hdHJpeCA9IGluaXRDb29yZGluYXRlcyhuSXRlbXMsIG5JdGVtcywgMCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuSXRlbXM7ICsraSkge1xuICAgICAgICBmb3IgKGxldCBqID0gaSArIDE7IGogPCBuSXRlbXM7ICsraikge1xuICAgICAgICAgICAgY29uc3QgZCA9IChkYXRhW2ldID09IG51bGwpIHx8IChkYXRhW2pdID09IG51bGwpID8gMCA6IGRpc3RhbmNlKGRhdGFbaV0sIGRhdGFbal0pO1xuICAgICAgICAgICAgbWF0cml4W2ldW2pdID0gbWF0cml4W2pdW2ldID0gZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWF0cml4O1xufVxuLyoqIEdlbmVyYXRlcyBhcnJheSBmcm9tIGEgcmFuZ2UgW2JlZ2luOyBlbmRdIG9yIFtiZWdpbjsgZW5kKSBpZiBlbmRFeGNsdXNpdmUuICoqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlblJhbmdlKGJlZ2luLCBlbmQsIGVuZEV4Y2x1c2l2ZSA9IGZhbHNlKSB7XG4gICAgY29uc3Qgbkl0ZW1zID0gZW5kIC0gYmVnaW4gKyAoZW5kRXhjbHVzaXZlID8gMCA6IDEpO1xuICAgIGNvbnN0IHNlcmllcyA9IG5ldyBJbnQzMkFycmF5KG5JdGVtcyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuSXRlbXM7ICsraSlcbiAgICAgICAgc2VyaWVzW2ldID0gYmVnaW4gKyBpO1xuICAgIHJldHVybiBzZXJpZXM7XG59XG4vKipcbiAqIFJldHVybnMgb3JkZXIgb2YgdmFsdWVzIGFzIGlmIHRoZXkgYXJlIHNvcnRlZC5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge2FueVtdfSB2YWx1ZXMgSW5wdXQgYXJyYXkuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtyZXZlcnNlPWZhbHNlXSBXaGV0aGVyIHRvIHJldHVybiByZXZlcnNlZCBvcmRlci5cbiAqIEByZXR1cm4ge251bWJlcltdfSBUaGUgb3JkZXIgY29tcHV0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcmdTb3J0KHZhbHVlcywgcmV2ZXJzZSA9IGZhbHNlKSB7XG4gICAgY29uc3Qgc29ydGZuID0gcmV2ZXJzZSA/IChhLCBiKSA9PiAoYlswXSAtIGFbMF0pIDogKGEsIGIpID0+IChhWzBdIC0gYlswXSk7XG4gICAgY29uc3QgZGVjb3IgPSAodiwgaSkgPT4gW3YsIGldOyAvLyBzZXQgaW5kZXggdG8gdmFsdWVcbiAgICBjb25zdCB1bmRlY29yID0gKGEpID0+IGFbMV07IC8vIGxlYXZlIG9ubHkgaW5kZXhcbiAgICBjb25zdCBfYXJnc29ydCA9IChhcnIpID0+IGFyci5tYXAoZGVjb3IpLnNvcnQoc29ydGZuKS5tYXAodW5kZWNvcik7XG4gICAgcmV0dXJuIF9hcmdzb3J0KHZhbHVlcyk7XG59XG4vKipcbiAqIFJldHVybnMgdGhlIGluZGV4ZXMgb2YgdGhlIG1vc3QgZGl2ZXJzZSBvYmplY3RzIGFjY29yZGluZyB0byB0aGUgZGlzdCBmdW5jdGlvblxuICogQHBhcmFtIHtudW1iZXJ9IGxlbmd0aCB0b3RhbCBudW1iZXIgb2Ygb2JqZWN0c1xuICogQHBhcmFtIHtudW1iZXJ9IG4gbnVtYmVyIG9mIGRpdmVyc2UgZWxlbWVudHMgdG8gZmluZFxuICogQHBhcmFtIHsoaTE6IG51bWJlciwgaTI6IG51bWJlcikgPT4gbnVtYmVyfSBkaXN0IGEgZnVuY3Rpb24gd2hpY2ggY2FsY3VsYXRlcyBkaXN0YW5jZSBiZXR3ZWVuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHdvIG9iamVjdHMgdXNpbmcgdGhlaXIgaW5kZXhlc1xuICogQHJldHVybnMge251bWJlcltdfSBUaGUgaW5kZXhlcyBvZiB0aGUgbW9zdCBkaXZlcnNlIG9iamVjdHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERpdmVyc2VTdWJzZXQobGVuZ3RoLCBuLCBkaXN0KSB7XG4gICAgZnVuY3Rpb24gbWF4QnkodmFsdWVzLCBvcmRlckJ5KSB7XG4gICAgICAgIGxldCBtYXhWYWx1ZSA9IG51bGw7XG4gICAgICAgIGxldCBtYXhPcmRlckJ5ID0gbnVsbDtcbiAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHZhbHVlcykge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudE9yZGVyQnkgPSBvcmRlckJ5KGVsZW1lbnQpO1xuICAgICAgICAgICAgaWYgKG1heE9yZGVyQnkgPT0gbnVsbCB8fCBlbGVtZW50T3JkZXJCeSA+IG1heE9yZGVyQnkpIHtcbiAgICAgICAgICAgICAgICBtYXhWYWx1ZSA9IGVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgbWF4T3JkZXJCeSA9IGVsZW1lbnRPcmRlckJ5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYXhWYWx1ZTtcbiAgICB9XG4gICAgY29uc3Qgc3Vic2V0ID0gW3JhbmRvbUludChsZW5ndGggLSAxKV07XG4gICAgY29uc3QgY29tcGxlbWVudCA9IG5ldyBTZXQoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7XG4gICAgICAgIGlmICghc3Vic2V0LmluY2x1ZGVzKGkpKVxuICAgICAgICAgICAgY29tcGxlbWVudC5hZGQoaSk7XG4gICAgfVxuICAgIHdoaWxlIChzdWJzZXQubGVuZ3RoIDwgbikge1xuICAgICAgICBjb25zdCBpZHggPSBtYXhCeShjb21wbGVtZW50LnZhbHVlcygpLCAoaSkgPT4gTWF0aC5taW4uYXBwbHkoTWF0aCwgc3Vic2V0Lm1hcChmdW5jdGlvbiAodmFsLCBpbmRleCkge1xuICAgICAgICAgICAgcmV0dXJuIGRpc3QoaSwgdmFsKTtcbiAgICAgICAgfSkpKTtcbiAgICAgICAgaWYgKGlkeCkge1xuICAgICAgICAgICAgc3Vic2V0LnB1c2goaWR4KTtcbiAgICAgICAgICAgIGNvbXBsZW1lbnQuZGVsZXRlKGlkeCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHN1YnNldDtcbn1cbi8qKlxuICogUmV0dXJucyBub3JtYWxpemVkIHZlY3RvclxuICogQHBhcmFtIHtWZWN0b3J9IGRhdGEgbnVtZXJpY2FsIGFycmF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemUoZGF0YSkge1xuICAgIGxldCBtZWFuID0gMDtcbiAgICBsZXQgc3RkID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyArK2kpXG4gICAgICAgIG1lYW4gKz0gZGF0YVtpXTtcbiAgICBtZWFuIC89IGRhdGEubGVuZ3RoO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7ICsraSlcbiAgICAgICAgc3RkICs9IChkYXRhW2ldIC0gbWVhbikgKiAoZGF0YVtpXSAtIG1lYW4pO1xuICAgIHN0ZCA9IE1hdGguc3FydChzdGQgLyBkYXRhLmxlbmd0aCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgKytpKVxuICAgICAgICBkYXRhW2ldID0gKGRhdGFbaV0gLSBtZWFuKSAvIHN0ZDtcbiAgICByZXR1cm4gZGF0YTtcbn1cbi8qKlxuICogRmluZHMgc2V0IGRpZmZlcmVuY2UgYmV0d2VlbiB0d28gbGlzdHMuXG4gKiBAcGFyYW0ge2FueVtdfSBhIFRoZSBmaXJzdCBsaXN0LlxuICogQHBhcmFtIHthbnlbXX0gYiBUaGUgc2Vjb25kIGxpc3QuXG4gKiBAcmV0dXJuIHthbnlbXX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldERpZmZlcmVuY2UoYSwgYikge1xuICAgIGNvbnN0IGJTZXQgPSBuZXcgU2V0KGIpO1xuICAgIHJldHVybiBBcnJheS5mcm9tKG5ldyBTZXQoYS5maWx0ZXIoKHgpID0+ICFiU2V0Lmhhcyh4KSkpLnZhbHVlcygpKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRtVmpkRzl5TFc5d1pYSmhkR2x2Ym5NdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUoyWldOMGIzSXRiM0JsY21GMGFXOXVjeTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeFBRVUZQTEVWQlFWTXNUVUZCVFN4RlFVRjFReXhOUVVGTkxIRkNRVUZ4UWl4RFFVRkRPMEZCUTNwR0xFOUJRVThzUlVGQlF5eFhRVUZYTEVWQlFVVXNVMEZCVXl4RlFVRkRMRTFCUVUwc1ZVRkJWU3hEUVVGRE8wRkJSV2hFT3pzN096czdPMGRCVDBjN1FVRkRTQ3hOUVVGTkxGVkJRVlVzVFVGQlRTeERRVUZETEZsQlFYRkNMRXRCUVVzc1JVRkJSU3hWUVVGclFpeHJRa0ZCYTBJN1NVRkRja1lzU1VGQlNTeERRVUZETEZOQlFWTTdVVUZEV2l4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBGQlF6ZENMRU5CUVVNN1FVRkZSRHM3T3pzN096czdSMEZSUnp0QlFVTklMRk5CUVZNc1pVRkJaU3hEUVVGRExGVkJRV3RDTEVWQlFVVXNWVUZCYTBJc1JVRkJSU3hQUVVGbExFTkJRVU03U1VGREwwVXNUMEZCVHl4SlFVRkpMRXRCUVVzc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVOQlFVTXNTVUZCU1N4TlFVRk5MRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVONlJpeERRVUZETzBGQlJVUTdPenM3T3pzN1IwRlBSenRCUVVOSUxFMUJRVTBzVlVGQlZTeGxRVUZsTEVOQlFVTXNUVUZCWXp0SlFVTTFReXhQUVVGUExFbEJRVWtzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRPMU5CUTNaRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zU1VGQlNTeE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRM1JHTEVOQlFVTTdRVUZGUkRzN096czdPenM3UjBGUlJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4VFFVRlRMRU5CUVVNc1EwRkJVeXhGUVVGRkxFTkJRVk1zUlVGQlJTeGhRVUZ4UWl4RFFVRkRPMGxCUTNCRkxFMUJRVTBzVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNN1NVRkZlRUlzVFVGQlRTeERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRU5CUVVNc1RVRkJUU3hGUVVGRkxEaENRVUU0UWl4RFFVRkRMRU5CUVVNN1NVRkZNMFFzVFVGQlRTeExRVUZMTEVkQlFVY3NTVUZCU1N4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRmFrTXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRE8xRkJReTlDTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NWVUZCVlN4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVYwUXl4UFFVRlBMRXRCUVVzc1EwRkJRenRCUVVObUxFTkJRVU03UVVGRlJEczdPenM3UjBGTFJ6dEJRVU5JTEZOQlFWTXNVVUZCVVN4RFFVRkRMRU5CUVZNN1NVRkRla0lzU1VGQlNTeExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUldRc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETzFGQlF5OUNMRXRCUVVzc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGYUVJc1QwRkJUeXhMUVVGTExFTkJRVU03UVVGRFppeERRVUZETzBGQlJVUTdPenM3TzBkQlMwYzdRVUZEU0N4VFFVRlRMRmxCUVZrc1EwRkJReXhEUVVGVE8wbEJRemRDTEUxQlFVMHNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU03U1VGRGVFSXNUVUZCVFN4TFFVRkxMRWRCUVVjc1NVRkJTU3hOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdTVUZGYWtNc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETzFGQlF5OUNMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJYcENMRTlCUVU4c1MwRkJTeXhEUVVGRE8wRkJRMllzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4WlFVRlpMRU5CUVVNc1EwRkJVenRKUVVOd1F5eEpRVUZKTEUxQlFVMHNSMEZCVnl4RFFVRkRMRU5CUVVNN1NVRkRka0lzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCVnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZPMUZCUTNaRExFMUJRVTBzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEzaENMRTlCUVU4c1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0QlFVTXpRaXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEdkQ1FVRm5RaXhEUVVGRExFVkJRVlVzUlVGQlJTeEZRVUZWTzBsQlEzSkVMRWxCUVVrc1JVRkJSU3hEUVVGRExFMUJRVTBzU1VGQlNTeEZRVUZGTEVOQlFVTXNUVUZCVFR0UlFVTjRRaXhOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETERoRFFVRTRReXhEUVVGRExFTkJRVU03U1VGRGJFVXNTVUZCU1N4SlFVRkpMRWRCUVZjc1EwRkJReXhEUVVGRE8wbEJRM0pDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVZjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1JVRkJSVHRSUVVONFF5eEpRVUZKTEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTjRRaXhQUVVGUExFbEJRVWtzUTBGQlF6dEJRVU5rTEVOQlFVTTdRVUZGUkRzN096czdPenM3UjBGUlJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4blFrRkJaMElzUTBGQlF5eFZRVUZyUWl4RlFVRkZMRlZCUVd0Q0xFVkJRVVVzVVVGQlowSXNSVUZCUlR0SlFVTjZSaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eGxRVUZsTEVOQlFVTXNWVUZCVlN4RlFVRkZMRlZCUVZVc1EwRkJReXhEUVVGRE8wbEJSWFpFTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eFZRVUZWTEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVN1VVRkRia01zUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExGVkJRVlVzUlVGQlJTeEZRVUZGTEVOQlFVTTdXVUZEYWtNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRmRCUVZjc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dExRVU55UXp0SlFVTkVMRTlCUVU4c1RVRkJUU3hEUVVGRE8wRkJRMmhDTEVOQlFVTTdRVUZGUkRzN096czdPenRIUVU5SE8wRkJRMGdzVFVGQlRTeFZRVUZWTERCQ1FVRXdRaXhEUVVGRExFTkJRVk1zUlVGQlJTeERRVUZUTzBsQlF6ZEVMRTFCUVUwc1NVRkJTU3hIUVVGSExGTkJRVk1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGFrTXNUVUZCVFN4TlFVRk5MRWRCUVVjc1dVRkJXU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzBsQlEyeERMRTFCUVUwc1ZVRkJWU3hIUVVGSExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0SlFVTndReXhQUVVGUExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1FVRkRMMElzUTBGQlF6dEJRVVZFT3pzN096czdPMGRCVDBjN1FVRkRTQ3hOUVVGTkxGVkJRVlVzYTBKQlFXdENMRU5CUVVNc1NVRkJZU3hGUVVGRkxGRkJRWGRDTzBsQlEzaEZMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTTdTVUZETTBJc1RVRkJUU3hOUVVGTkxFZEJRVWNzWlVGQlpTeERRVUZETEUxQlFVMHNSVUZCUlN4TlFVRk5MRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRmJFUXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEUxQlFVMHNSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkJSVHRSUVVNdlFpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEUxQlFVMHNSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkJSVHRaUVVOdVF5eE5RVUZOTEVOQlFVTXNSMEZCVnl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUXpGR0xFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xTkJRMnBETzB0QlEwWTdTVUZEUkN4UFFVRlBMRTFCUVUwc1EwRkJRenRCUVVOb1FpeERRVUZETzBGQlJVUXNhMFpCUVd0R08wRkJRMnhHTEUxQlFVMHNWVUZCVlN4UlFVRlJMRU5CUVVNc1MwRkJZU3hGUVVGRkxFZEJRVmNzUlVGQlJTeFpRVUZaTEVkQlFVY3NTMEZCU3p0SlFVTjJSU3hOUVVGTkxFMUJRVTBzUjBGQlJ5eEhRVUZITEVkQlFVY3NTMEZCU3l4SFFVRkhMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM0JFTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1ZVRkJWU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzBsQlJYUkRMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRE8xRkJRemRDTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhMUVVGTExFZEJRVWNzUTBGQlF5eERRVUZETzBsQlJYaENMRTlCUVU4c1RVRkJUU3hEUVVGRE8wRkJRMmhDTEVOQlFVTTdRVUZGUkRzN096czdPenRIUVU5SE8wRkJRMGdzVFVGQlRTeFZRVUZWTEU5QlFVOHNRMEZCUXl4TlFVRmhMRVZCUVVVc1QwRkJUeXhIUVVGSExFdEJRVXM3U1VGRGNFUXNUVUZCVFN4TlFVRk5MRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFWRXNSVUZCUlN4RFFVRlJMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVZFc1JVRkJSU3hEUVVGUkxFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNaSExFMUJRVTBzUzBGQlN5eEhRVUZITEVOQlFVTXNRMEZCVFN4RlFVRkZMRU5CUVZNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXh4UWtGQmNVSTdTVUZEYkVVc1RVRkJUU3hQUVVGUExFZEJRVWNzUTBGQlF5eERRVUZSTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEcxQ1FVRnRRanRKUVVOMlJDeE5RVUZOTEZGQlFWRXNSMEZCUnl4RFFVRkRMRWRCUVZVc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJRekZGTEU5QlFVOHNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wRkJRekZDTEVOQlFVTTdRVUZGUkRzN096czdPenRIUVU5SE8wRkJRMGdzVFVGQlRTeFZRVUZWTEdkQ1FVRm5RaXhEUVVGRExFMUJRV01zUlVGQlJTeERRVUZUTEVWQlFVVXNTVUZCZDBNN1NVRkRiRWNzVTBGQlV5eExRVUZMTEVOQlFVTXNUVUZCWjBNc1JVRkJSU3hQUVVFNFFqdFJRVU0zUlN4SlFVRkpMRkZCUVZFc1IwRkJSeXhKUVVGSkxFTkJRVU03VVVGRGNFSXNTVUZCU1N4VlFVRlZMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJSWFJDTEV0QlFVc3NUVUZCVFN4UFFVRlBMRWxCUVVrc1RVRkJUU3hGUVVGRk8xbEJRelZDTEUxQlFVMHNZMEZCWXl4SFFVRkhMRTlCUVU4c1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFpRVU40UXl4SlFVRkpMRlZCUVZVc1NVRkJTU3hKUVVGSkxFbEJRVWtzWTBGQll5eEhRVUZITEZWQlFWVXNSVUZCUlR0blFrRkRja1FzVVVGQlVTeEhRVUZITEU5QlFVOHNRMEZCUXp0blFrRkRia0lzVlVGQlZTeEhRVUZITEdOQlFXTXNRMEZCUXp0aFFVTTNRanRUUVVOR08xRkJRMFFzVDBGQlR5eFJRVUZSTEVOQlFVTTdTVUZEYkVJc1EwRkJRenRKUVVWRUxFMUJRVTBzVFVGQlRTeEhRVUZITEVOQlFVTXNVMEZCVXl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEzWkRMRTFCUVUwc1ZVRkJWU3hIUVVGSExFbEJRVWtzUjBGQlJ5eEZRVUZGTEVOQlFVTTdTVUZGTjBJc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRTFCUVUwc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJUdFJRVU12UWl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEY2tJc1ZVRkJWU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0TFFVTnlRanRKUVVWRUxFOUJRVThzVFVGQlRTeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRVZCUVVVN1VVRkRlRUlzVFVGQlRTeEhRVUZITEVkQlFVY3NTMEZCU3l4RFFVTm1MRlZCUVZVc1EwRkJReXhOUVVGTkxFVkJRVGhDTEVWQlF5OURMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFVkJRVVVzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4VlFVRlRMRWRCUVVjc1JVRkJSU3hMUVVGTE8xbEJRM2hFTEU5QlFVOHNTVUZCU1N4RFFVRkRMRU5CUVVNc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU4wUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRFVDeEpRVUZKTEVkQlFVY3NSVUZCUlR0WlFVTlFMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZEYWtJc1ZVRkJWU3hEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0VFFVTjRRanRMUVVOR08wbEJRMFFzVDBGQlR5eE5RVUZOTEVOQlFVTTdRVUZEYUVJc1EwRkJRenRCUVVWRU96czdSMEZIUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3hUUVVGVExFTkJRVU1zU1VGQldUdEpRVU53UXl4SlFVRkpMRWxCUVVrc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRFlpeEpRVUZKTEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkZXaXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUlVGQlJTeEZRVUZGTEVOQlFVTTdVVUZEYkVNc1NVRkJTU3hKUVVGSkxFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVVnNRaXhKUVVGSkxFbEJRVWtzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXp0SlFVVndRaXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUlVGQlJTeEZRVUZGTEVOQlFVTTdVVUZEYkVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJSVGRETEVkQlFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1NVRkZia01zUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRPMUZCUTJ4RExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNN1NVRkZia01zVDBGQlR5eEpRVUZKTEVOQlFVTTdRVUZEWkN4RFFVRkRPMEZCUlVRN096czdPMGRCUzBjN1FVRkRTQ3hOUVVGTkxGVkJRVlVzWVVGQllTeERRVUZETEVOQlFWRXNSVUZCUlN4RFFVRlJPMGxCUXpsRExFMUJRVTBzU1VGQlNTeEhRVUZITEVsQlFVa3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM2hDTEU5QlFVOHNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRU5CUVVNN1FVRkRja1VzUTBGQlF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdUV0YwY21sNExDQldaV04wYjNJc0lFTnZiM0prYVc1aGRHVnpMQ0JXWldOMGIzSnpMQ0JFYVhOMFlXNWpaVTFsZEhKcFkzMGdabkp2YlNBbkxpOTBlWEJsTFdSbFkyeGhjbUYwYVc5dWN5YzdYRzVwYlhCdmNuUWdlM0poYm1SdmJVWnNiMkYwTENCeVlXNWtiMjFKYm5SOUlHWnliMjBnSnk0dmNtRnVaRzl0Snp0Y2JseHVMeW9xWEc0Z0tpQkJjM05sY25SeklHRWdZMjl1WkdsMGFXOXVJR0o1SUhSb2NtOTNhVzVuSUdGdUlFVnljbTl5TGx4dUlDcGNiaUFxSUVCbGVIQnZjblJjYmlBcUlFQndZWEpoYlNCN1ltOXZiR1ZoYm4wZ1cyTnZibVJwZEdsdmJqMW1ZV3h6WlYwZ1EyOXVaR2wwYVc5dUlIUnZJR0Z6YzJWeWRDNWNiaUFxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JiYldWemMyRm5aVDBuUVhOelpYSjBhVzl1SUdWeWNtOXlMaWRkSUUxbGMzTmhaMlVnZEc4Z2IzVjBjSFYwTGx4dUlDb2dRSFJvY205M2N5QjdSWEp5YjNKOVhHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJoYzNObGNuUW9ZMjl1WkdsMGFXOXVPaUJpYjI5c1pXRnVJRDBnWm1Gc2MyVXNJRzFsYzNOaFoyVTZJSE4wY21sdVp5QTlJQ2RCYzNObGNuUnBiMjRnWlhKeWIzSXVKeWtnZTF4dUlDQnBaaUFvSVdOdmJtUnBkR2x2YmlsY2JpQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9iV1Z6YzJGblpTazdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1EzSmxZWFJsY3lCdVpYY2dkSGR2TFdScGJXVnVjMmx2Ym1Gc0lHRnljbUY1SUdGdVpDQm1hV3hzY3lCcGRDQjNhWFJvSUhSb1pTQjJZV3gxWlNCbmFYWmxiaTVjYmlBcVhHNGdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdaR2x0Wlc1emFXOXVNU0JVYUdVZ1ptbHljM1FnWkdsdFpXNXphVzl1SUc5bUlIUm9aU0JqYjI5eVpHbHVZWFJsY3lBb2JuVnRZbVZ5SUc5bUlISnZkM01wTGx4dUlDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlHUnBiV1Z1YzJsdmJqSWdWR2hsSUhObFkyOXVaQ0JrYVcxbGJuTnBiMjRnYjJZZ2RHaGxJR052YjNKa2FXNWhkR1Z6SUNodWRXMWlaWElnYjJZZ1kyOXNkVzF1Y3lrdVhHNGdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdXMlpwYkd3OU1GMGdRU0IyWVd4MVpTQjBieUJtYVd4c0lIUm9aU0JqYjI5eVpHbHVZWFJsY3lCM2FYUm9MbHh1SUNvZ1FISmxkSFZ5YmlCN1EyOXZjbVJwYm1GMFpYTjlJRUVnZEhkdkxXUnBiV1Z1YzJsdmJtRnNJR1pwYkd4bFpDQjNhWFJvSUhSb1pTQjJZV3gxWlNCbmFYWmxiaTVjYmlBcUlFQjBiMlJ2SUUxcFoyaDBJR0psSUhOc2IzY2djMmx1WTJVZ2RYTmxaQ0JCY25KaGVTNXRZWEF1SUZCeWIySmhZbXg1SUc1bFpXUnpJSEJsY21admNtMWhibU5sSUhKbGRtbHphVzl1TGx4dUlDb3ZYRzVtZFc1amRHbHZiaUJwYm1sMFEyOXZjbVJwYm1GMFpYTW9aR2x0Wlc1emFXOXVNVG9nYm5WdFltVnlMQ0JrYVcxbGJuTnBiMjR5T2lCdWRXMWlaWElzSUdacGJHdzZJRzUxYldKbGNpQTlJREFwT2lCRGIyOXlaR2x1WVhSbGN5QjdYRzRnSUhKbGRIVnliaUJ1WlhjZ1FYSnlZWGtvWkdsdFpXNXphVzl1TVNrdVptbHNiQ2htYVd4c0tTNXRZWEFvS0NrZ1BUNGdLRzVsZHlCV1pXTjBiM0lvWkdsdFpXNXphVzl1TWlrdVptbHNiQ2htYVd4c0tTa3BPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlGUnlZVzV6Y0c5elpTQnRZWFJ5YVhndVhHNGdLbHh1SUNvZ1FHVjRjRzl5ZEZ4dUlDb2dRSEJoY21GdElIdE5ZWFJ5YVhoOUlHMWhkSEpwZUNCVWFHVWdiV0YwY21sNElIUnZJR0psSUhSeVlXNXpjRzl6WldRdVhHNGdLaUJBY21WMGRYSnVJSHROWVhSeWFYaDlJRlJ5WVc1emNHOXpaV1FnYldGMGNtbDRMbHh1SUNvZ1FIUnZaRzhnVFdsbmFIUWdZbVVnYzJ4dmR5QnphVzVqWlNCMWMyVmtJRUZ5Y21GNUxtMWhjQzRnVUhKdlltRmliSGtnYm1WbFpITWdjR1Z5Wm05eWJXRnVZMlVnY21WMmFYTnBiMjR1WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQjBjbUZ1YzNCdmMyVk5ZWFJ5YVhnb2JXRjBjbWw0T2lCTllYUnlhWGdwT2lCTllYUnlhWGdnZTF4dUlDQnlaWFIxY200Z2JtVjNJRUZ5Y21GNUtHMWhkSEpwZUZzd1hTNXNaVzVuZEdncExtWnBiR3dvTUNsY2JpQWdJQ0F1YldGd0tDaGZMQ0JwS1NBOVBpQW9ibVYzSUZabFkzUnZjaWh0WVhSeWFYZ3ViR1Z1WjNSb0tTNW1hV3hzS0RBcExtMWhjQ2dvWHl3Z2Fpa2dQVDRnS0cxaGRISnBlRnRxWFZ0cFhTa3BLU2s3WEc1OVhHNWNiaThxS2x4dUlDb2dRV1JrY3lCMGQyOGdkbVZqZEc5eWN5QjNhWFJvSUhSb1pTQnpaV052Ym1RZ2IyNWxJSFJ2SUdKbElHMTFiSFJwY0d4cFpXUWdZbmtnZEdobElHZHBkbVZ1SUhKaGRHbHZMbHh1SUNwY2JpQXFJRUJsZUhCdmNuUmNiaUFxSUVCd1lYSmhiU0I3Vm1WamRHOXlmU0J3SUZSb1pTQm1hWEp6ZENCMlpXTjBiM0lnZEc4Z1lXUmtMbHh1SUNvZ1FIQmhjbUZ0SUh0V1pXTjBiM0o5SUhFZ1ZHaGxJSE5sWTI5dVpDQjJaV04wYjNJZ2RHOGdZV1JrTGx4dUlDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlGdHRkV3gwYVhCc2FXVnlQVEZkSUVFZ2JYVnNkR2x3YkdsbGNpQjBieUJpWlNCMWMyVmtJR0psWm05eVpTQjBhR1VnYzJWamIyNWtJSFpsWTNSdmNpQnBjeUJoWkdSbFpDNWNiaUFxSUVCeVpYUjFjbTRnZTFabFkzUnZjbjBnVG1WM0lIWmxZM1J2Y2lCamIyNTBZV2x1WldRZ2RHaGxJSEpsYzNWc2RDQnZaaUJ2Y0dWeVlYUnBiMjRnY0N0dGRXeDBhWEJzYVdWeUtuRXVYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCMlpXTjBiM0pCWkdRb2NEb2dWbVZqZEc5eUxDQnhPaUJXWldOMGIzSXNJRzExYkhScGNHeHBaWEk2SUc1MWJXSmxjaUE5SURFcE9pQldaV04wYjNJZ2UxeHVJQ0JqYjI1emRDQnVTWFJsYlhNZ1BTQndMbXhsYm1kMGFEdGNibHh1SUNCaGMzTmxjblFvYmtsMFpXMXpJRDA5SUhFdWJHVnVaM1JvTENBblZtVmpkRzl5SUd4bGJtZDBhSE1nWkc4Z2JtOTBJRzFoZEdOb0xpY3BPMXh1WEc0Z0lHTnZibk4wSUhSdmRHRnNJRDBnYm1WM0lGWmxZM1J2Y2lodVNYUmxiWE1wTzF4dVhHNGdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnY0M1c1pXNW5kR2c3SUNzcmFTbGNiaUFnSUNCMGIzUmhiRnRwWFNBOUlIQmJhVjBnS3lCdGRXeDBhWEJzYVdWeUlDb2djVnRwWFR0Y2JseHVJQ0J5WlhSMWNtNGdkRzkwWVd3N1hHNTlYRzVjYmk4cUtseHVJQ29nVTNWdGN5QjBhR1VnZG1WamRHOXlKM01nYVhSbGJYTXVYRzRnS2x4dUlDb2dRSEJoY21GdElIdFdaV04wYjNKOUlIWWdWR2hsSUhabFkzUnZjaUIwYnlCaVpTQnpkVzF0WldRdVhHNGdLaUJBY21WMGRYSnVJSHR1ZFcxaVpYSjlJRlJvWlNCMlpXTjBiM0luY3lCcGRHVnRjeUJ6ZFcwdVhHNGdLaTljYm1aMWJtTjBhVzl1SUdsMFpXMXpVM1Z0S0hZNklGWmxZM1J2Y2lrNklHNTFiV0psY2lCN1hHNGdJR3hsZENCMGIzUmhiQ0E5SURBN1hHNWNiaUFnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCMkxteGxibWQwYURzZ0t5dHBLVnh1SUNBZ0lIUnZkR0ZzSUNzOUlIWmJhVjA3WEc1Y2JpQWdjbVYwZFhKdUlIUnZkR0ZzTzF4dWZWeHVYRzR2S2lwY2JpQXFJRk4xY1dGeVpYTWdkR2hsSUhabFkzUnZjaWR6SUdsMFpXMXpMbHh1SUNwY2JpQXFJRUJ3WVhKaGJTQjdWbVZqZEc5eWZTQjJJRlJvWlNCMlpXTjBiM0lnZEc4Z2MzRjFZWEpsTGx4dUlDb2dRSEpsZEhWeWJpQjdWbVZqZEc5eWZTQkJJRzVsZHlCMlpXTjBiM0lnWTI5dWRHRnBibWx1WnlCMGFHVWdiM0pwWjJsdVlXd25jeUJwZEdWdGN5QnpjWFZoY21Wa0xseHVJQ292WEc1bWRXNWpkR2x2YmlCMlpXTjBiM0pUY1hWaGNtVW9kam9nVm1WamRHOXlLVG9nVm1WamRHOXlJSHRjYmlBZ1kyOXVjM1FnYmtsMFpXMXpJRDBnZGk1c1pXNW5kR2c3WEc0Z0lHTnZibk4wSUhSdmRHRnNJRDBnYm1WM0lGWmxZM1J2Y2lodVNYUmxiWE1wTzF4dVhHNGdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnZGk1c1pXNW5kR2c3SUNzcmFTbGNiaUFnSUNCMGIzUmhiRnRwWFNBOUlIWmJhVjBnS2lCMlcybGRPMXh1WEc0Z0lISmxkSFZ5YmlCMGIzUmhiRHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlIWmxZM1J2Y2t4bGJtZDBhQ2gyT2lCV1pXTjBiM0lwT2lCdWRXMWlaWElnZTF4dUlDQnNaWFFnYzNGeVUzVnRPaUJ1ZFcxaVpYSWdQU0F3TzF4dUlDQm1iM0lnS0d4bGRDQnBPaUJ1ZFcxaVpYSWdQU0F3T3lCcElEd2dkaTVzWlc1bmRHZzdJR2tyS3lsY2JpQWdJQ0J6Y1hKVGRXMGdLejBnZGx0cFhTQXFJSFpiYVYwN1hHNGdJSEpsZEhWeWJpQk5ZWFJvTG5OeGNuUW9jM0Z5VTNWdEtUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhabFkzUnZja1J2ZEZCeWIyUjFZM1FvZGpFNklGWmxZM1J2Y2l3Z2RqSTZJRlpsWTNSdmNpazZJRzUxYldKbGNpQjdYRzRnSUdsbUlDaDJNUzVzWlc1bmRHZ2dJVDBnZGpJdWJHVnVaM1JvS1Z4dUlDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpZ25WR2hsSUdScGJXVnVjMmx2Ym1Gc2FYUjVJRzltSUhSb1pTQjJaV04wYjNKeklHMTFjM1FnYldGMFkyZ25LVHRjYmlBZ2JHVjBJSEJ5YjJRNklHNTFiV0psY2lBOUlEQTdYRzRnSUdadmNpQW9iR1YwSUdrNklHNTFiV0psY2lBOUlEQTdJR2tnUENCMk1TNXNaVzVuZEdnN0lHa3JLeWxjYmlBZ0lDQndjbTlrSUNzOUlIWXhXMmxkSUNvZ2RqSmJhVjA3WEc0Z0lISmxkSFZ5YmlCd2NtOWtPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlFTnlaV0YwWlhNZ1lTQnRZWFJ5YVhnZ1ptbHNiR1ZrSUhkcGRHZ2djbUZ1Wkc5dElHWnNiMkYwYVc1bklIQnZhVzUwSUhaaGJIVmxjeTVjYmlBcVhHNGdLaUJBWlhod2IzSjBYRzRnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnWkdsdFpXNXphVzl1TVNCVWFHVWdabWx5YzNRZ1pHbHRaVzV6YVc5dUlHOW1JSFJvWlNCdFlYUnlhWGd1WEc0Z0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1pHbHRaVzV6YVc5dU1pQlVhR1VnYzJWamIyNWtJR1JwYldWdWMybHZiaUJ2WmlCMGFHVWdiV0YwY21sNExseHVJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJRnR6WTJGc1pUMHhMbDBnVFdGNElIWmhiSFZsSUdkcGRtVnVJR0o1SUhKaGJtUnZiU0JuWlc1bGNtRjBiM0l1WEc0Z0tpQkFjbVYwZFhKdUlIdE5ZWFJ5YVhoOUlFRWdibVYzSUcxaGRISnBlQ0JtYVd4c1pXUWdkMmwwYUNCeVlXNWtiMjBnWm14dllYUnBibWNnY0c5cGJuUWdJSFpoYkhWbGN5NWNiaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdacGJHeFNZVzVrYjIxTllYUnlhWGdvWkdsdFpXNXphVzl1TVRvZ2JuVnRZbVZ5TENCa2FXMWxibk5wYjI0eU9pQnVkVzFpWlhJc0lITmpZV3hsT2lCdWRXMWlaWElnUFNBeExpazZJRTFoZEhKcGVDQjdYRzRnSUdOdmJuTjBJRzFoZEhKcGVDQTlJR2x1YVhSRGIyOXlaR2x1WVhSbGN5aGthVzFsYm5OcGIyNHhMQ0JrYVcxbGJuTnBiMjR5S1R0Y2JseHVJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUdScGJXVnVjMmx2YmpFN0lDc3JhU2tnZTF4dUlDQWdJR1p2Y2lBb2JHVjBJR29nUFNBd095QnFJRHdnWkdsdFpXNXphVzl1TWpzZ0t5dHFLVnh1SUNBZ0lDQWdiV0YwY21sNFcybGRXMnBkSUQwZ2NtRnVaRzl0Um14dllYUW9jMk5oYkdVcE8xeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCdFlYUnlhWGc3WEc1OVhHNWNiaThxS2x4dUlDb2dRMkZzWTNWc1lYUmxjeUJGZFdOc2FXUmxZVzRnWkdsemRHRnVZMlVnWW1WMGQyVmxiaUIwZDI4Z2RtVmpkRzl5Y3k1Y2JpQXFYRzRnS2lCQVpYaHdiM0owWEc0Z0tpQkFjR0Z5WVcwZ2UxWmxZM1J2Y24wZ2NDQlVhR1VnWm1seWMzUWdkbVZqZEc5eUxseHVJQ29nUUhCaGNtRnRJSHRXWldOMGIzSjlJSEVnVkdobElITmxZMjl1WkNCMlpXTjBiM0l1WEc0Z0tpQkFjbVYwZFhKdUlIdHVkVzFpWlhKOUlFVjFZMnhwWkdWaGJpQmthWE4wWVc1alpTQmlaWFIzWldWdUlIUm9aU0JuYVhabGJpQjJaV04wYjNKekxseHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWTJGc1kzVnNZWFJsUlhWamJHbGtaV0Z1UkdsemRHRnVZMlVvY0RvZ1ZtVmpkRzl5TENCeE9pQldaV04wYjNJcE9pQnVkVzFpWlhJZ2UxeHVJQ0JqYjI1emRDQmthV1ptSUQwZ2RtVmpkRzl5UVdSa0tIQXNJSEVzSUMweEtUdGNiaUFnWTI5dWMzUWdjM0ZrYVdabUlEMGdkbVZqZEc5eVUzRjFZWEpsS0dScFptWXBPMXh1SUNCamIyNXpkQ0J6Y1dScFptWlRkVzF0SUQwZ2FYUmxiWE5UZFcwb2MzRmthV1ptS1R0Y2JpQWdjbVYwZFhKdUlFMWhkR2d1YzNGeWRDaHpjV1JwWm1aVGRXMXRLVHRjYm4xY2JseHVMeW9xWEc0Z0tpQkRjbVZoZEdWeklHRWdaR2x6ZEdGdVkyVWdiV0YwY21sNElIVnphVzVuSUdFZ1kzVnpkRzl0SUdScGMzUmhibU5sSUdaMWJtTjBhVzl1TGx4dUlDcGNiaUFxSUVCbGVIQnZjblJjYmlBcUlFQndZWEpoYlNCN1ZtVmpkRzl5YzMwZ1pHRjBZU0JKYm5CMWRDQjJaV04wYjNKeklIUnZJR05oYkdOMWJHRjBaU0JrYVhOMFlXNWpaWE11WEc0Z0tpQkFjR0Z5WVcwZ2UwUnBjM1JoYm1ObFRXVjBjbWxqZlNCa2FYTjBZVzVqWlNCRGRYTjBiMjBnWkdsemRHRnVZMlVnWm5WdVkzUnBiMjR1WEc0Z0tpQkFjbVYwZFhKdUlIdE5ZWFJ5YVhoOUlFTmhiR04xYkdGMFpXUWdZM1Z6ZEc5dElHUnBjM1JoYm1ObElHMWhkSEpwZUM1Y2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR05oYkdORWFYTjBZVzVqWlUxaGRISnBlQ2hrWVhSaE9pQldaV04wYjNKekxDQmthWE4wWVc1alpUb2dSR2x6ZEdGdVkyVk5aWFJ5YVdNcE9pQk5ZWFJ5YVhnZ2UxeHVJQ0JqYjI1emRDQnVTWFJsYlhNZ1BTQmtZWFJoTG14bGJtZDBhRHRjYmlBZ1kyOXVjM1FnYldGMGNtbDRJRDBnYVc1cGRFTnZiM0prYVc1aGRHVnpLRzVKZEdWdGN5d2dia2wwWlcxekxDQXdLVHRjYmx4dUlDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJRzVKZEdWdGN6c2dLeXRwS1NCN1hHNGdJQ0FnWm05eUlDaHNaWFFnYWlBOUlHa2dLeUF4T3lCcUlEd2dia2wwWlcxek95QXJLMm9wSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR1E2SUc1MWJXSmxjaUE5SUNoa1lYUmhXMmxkSUQwOUlHNTFiR3dwSUh4OElDaGtZWFJoVzJwZElEMDlJRzUxYkd3cElEOGdNQ0E2SUdScGMzUmhibU5sS0dSaGRHRmJhVjBzSUdSaGRHRmJhbDBwTzF4dUlDQWdJQ0FnYldGMGNtbDRXMmxkVzJwZElEMGdiV0YwY21sNFcycGRXMmxkSUQwZ1pEdGNiaUFnSUNCOVhHNGdJSDFjYmlBZ2NtVjBkWEp1SUcxaGRISnBlRHRjYm4xY2JseHVMeW9xSUVkbGJtVnlZWFJsY3lCaGNuSmhlU0JtY205dElHRWdjbUZ1WjJVZ1cySmxaMmx1T3lCbGJtUmRJRzl5SUZ0aVpXZHBianNnWlc1a0tTQnBaaUJsYm1SRmVHTnNkWE5wZG1VdUlDb3FMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2RsYmxKaGJtZGxLR0psWjJsdU9pQnVkVzFpWlhJc0lHVnVaRG9nYm5WdFltVnlMQ0JsYm1SRmVHTnNkWE5wZG1VZ1BTQm1ZV3h6WlNrNklFbHVkRE15UVhKeVlYa2dlMXh1SUNCamIyNXpkQ0J1U1hSbGJYTWdQU0JsYm1RZ0xTQmlaV2RwYmlBcklDaGxibVJGZUdOc2RYTnBkbVVnUHlBd0lEb2dNU2s3WEc0Z0lHTnZibk4wSUhObGNtbGxjeUE5SUc1bGR5QkpiblF6TWtGeWNtRjVLRzVKZEdWdGN5azdYRzVjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnVTWFJsYlhNN0lDc3JhU2xjYmlBZ0lDQnpaWEpwWlhOYmFWMGdQU0JpWldkcGJpQXJJR2s3WEc1Y2JpQWdjbVYwZFhKdUlITmxjbWxsY3p0Y2JuMWNibHh1THlvcVhHNGdLaUJTWlhSMWNtNXpJRzl5WkdWeUlHOW1JSFpoYkhWbGN5QmhjeUJwWmlCMGFHVjVJR0Z5WlNCemIzSjBaV1F1WEc0Z0tseHVJQ29nUUdWNGNHOXlkRnh1SUNvZ1FIQmhjbUZ0SUh0aGJubGJYWDBnZG1Gc2RXVnpJRWx1Y0hWMElHRnljbUY1TGx4dUlDb2dRSEJoY21GdElIdGliMjlzWldGdWZTQmJjbVYyWlhKelpUMW1ZV3h6WlYwZ1YyaGxkR2hsY2lCMGJ5QnlaWFIxY200Z2NtVjJaWEp6WldRZ2IzSmtaWEl1WEc0Z0tpQkFjbVYwZFhKdUlIdHVkVzFpWlhKYlhYMGdWR2hsSUc5eVpHVnlJR052YlhCMWRHVmtMbHh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1lYSm5VMjl5ZENoMllXeDFaWE02SUdGdWVWdGRMQ0J5WlhabGNuTmxJRDBnWm1Gc2MyVXBPaUJ1ZFcxaVpYSmJYU0I3WEc0Z0lHTnZibk4wSUhOdmNuUm1iaUE5SUhKbGRtVnljMlVnUHlBb1lUb2dZVzU1VzEwc0lHSTZJR0Z1ZVZ0ZEtTQTlQaUFvWWxzd1hTQXRJR0ZiTUYwcElEb2dLR0U2SUdGdWVWdGRMQ0JpT2lCaGJubGJYU2tnUFQ0Z0tHRmJNRjBnTFNCaVd6QmRLVHRjYmlBZ1kyOXVjM1FnWkdWamIzSWdQU0FvZGpvZ1lXNTVMQ0JwT2lCdWRXMWlaWElwSUQwK0lGdDJMQ0JwWFRzZ0x5OGdjMlYwSUdsdVpHVjRJSFJ2SUhaaGJIVmxYRzRnSUdOdmJuTjBJSFZ1WkdWamIzSWdQU0FvWVRvZ1lXNTVXMTBwSUQwK0lHRmJNVjA3SUM4dklHeGxZWFpsSUc5dWJIa2dhVzVrWlhoY2JpQWdZMjl1YzNRZ1gyRnlaM052Y25RZ1BTQW9ZWEp5T2lCaGJubGJYU2tnUFQ0Z1lYSnlMbTFoY0Noa1pXTnZjaWt1YzI5eWRDaHpiM0owWm00cExtMWhjQ2gxYm1SbFkyOXlLVHRjYmlBZ2NtVjBkWEp1SUY5aGNtZHpiM0owS0haaGJIVmxjeWs3WEc1OVhHNWNiaThxS2x4dUlDb2dVbVYwZFhKdWN5QjBhR1VnYVc1a1pYaGxjeUJ2WmlCMGFHVWdiVzl6ZENCa2FYWmxjbk5sSUc5aWFtVmpkSE1nWVdOamIzSmthVzVuSUhSdklIUm9aU0JrYVhOMElHWjFibU4wYVc5dVhHNGdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdiR1Z1WjNSb0lIUnZkR0ZzSUc1MWJXSmxjaUJ2WmlCdlltcGxZM1J6WEc0Z0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ2JpQnVkVzFpWlhJZ2IyWWdaR2wyWlhKelpTQmxiR1Z0Wlc1MGN5QjBieUJtYVc1a1hHNGdLaUJBY0dGeVlXMGdleWhwTVRvZ2JuVnRZbVZ5TENCcE1qb2diblZ0WW1WeUtTQTlQaUJ1ZFcxaVpYSjlJR1JwYzNRZ1lTQm1kVzVqZEdsdmJpQjNhR2xqYUNCallXeGpkV3hoZEdWeklHUnBjM1JoYm1ObElHSmxkSGRsWlc1Y2JpQXFJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGQyOGdiMkpxWldOMGN5QjFjMmx1WnlCMGFHVnBjaUJwYm1SbGVHVnpYRzRnS2lCQWNtVjBkWEp1Y3lCN2JuVnRZbVZ5VzExOUlGUm9aU0JwYm1SbGVHVnpJRzltSUhSb1pTQnRiM04wSUdScGRtVnljMlVnYjJKcVpXTjBjMXh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1oyVjBSR2wyWlhKelpWTjFZbk5sZENoc1pXNW5kR2c2SUc1MWJXSmxjaXdnYmpvZ2JuVnRZbVZ5TENCa2FYTjBPaUFvYVRFNklHNTFiV0psY2l3Z2FUSTZJRzUxYldKbGNpa2dQVDRnYm5WdFltVnlLVG9nYm5WdFltVnlXMTBnZTF4dUlDQm1kVzVqZEdsdmJpQnRZWGhDZVNoMllXeDFaWE02SUVsMFpYSmhZbXhsU1hSbGNtRjBiM0k4Ym5WdFltVnlQaXdnYjNKa1pYSkNlVG9nS0drNklHNTFiV0psY2lrZ1BUNGdiblZ0WW1WeUtTQjdYRzRnSUNBZ2JHVjBJRzFoZUZaaGJIVmxJRDBnYm5Wc2JEdGNiaUFnSUNCc1pYUWdiV0Y0VDNKa1pYSkNlU0E5SUc1MWJHdzdYRzVjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJR1ZzWlcxbGJuUWdiMllnZG1Gc2RXVnpLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmxiR1Z0Wlc1MFQzSmtaWEpDZVNBOUlHOXlaR1Z5UW5rb1pXeGxiV1Z1ZENrN1hHNGdJQ0FnSUNCcFppQW9iV0Y0VDNKa1pYSkNlU0E5UFNCdWRXeHNJSHg4SUdWc1pXMWxiblJQY21SbGNrSjVJRDRnYldGNFQzSmtaWEpDZVNrZ2UxeHVJQ0FnSUNBZ0lDQnRZWGhXWVd4MVpTQTlJR1ZzWlcxbGJuUTdYRzRnSUNBZ0lDQWdJRzFoZUU5eVpHVnlRbmtnUFNCbGJHVnRaVzUwVDNKa1pYSkNlVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUcxaGVGWmhiSFZsTzF4dUlDQjlYRzVjYmlBZ1kyOXVjM1FnYzNWaWMyVjBJRDBnVzNKaGJtUnZiVWx1ZENoc1pXNW5kR2dnTFNBeEtWMDdYRzRnSUdOdmJuTjBJR052YlhCc1pXMWxiblFnUFNCdVpYY2dVMlYwS0NrN1hHNWNiaUFnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCc1pXNW5kR2c3SUNzcmFTa2dlMXh1SUNBZ0lHbG1JQ2doYzNWaWMyVjBMbWx1WTJ4MVpHVnpLR2twS1Z4dUlDQWdJQ0FnWTI5dGNHeGxiV1Z1ZEM1aFpHUW9hU2s3WEc0Z0lIMWNibHh1SUNCM2FHbHNaU0FvYzNWaWMyVjBMbXhsYm1kMGFDQThJRzRwSUh0Y2JpQWdJQ0JqYjI1emRDQnBaSGdnUFNCdFlYaENlU2hjYmlBZ0lDQWdJR052YlhCc1pXMWxiblF1ZG1Gc2RXVnpLQ2tnWVhNZ1NYUmxjbUZpYkdWSmRHVnlZWFJ2Y2p4dWRXMWlaWEkrTEZ4dUlDQWdJQ0FnS0drcElEMCtJRTFoZEdndWJXbHVMbUZ3Y0d4NUtFMWhkR2dzSUhOMVluTmxkQzV0WVhBb1puVnVZM1JwYjI0b2RtRnNMQ0JwYm1SbGVDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdaR2x6ZENocExDQjJZV3dwTzF4dUlDQWdJQ0FnZlNrcEtUdGNiaUFnSUNCcFppQW9hV1I0S1NCN1hHNGdJQ0FnSUNCemRXSnpaWFF1Y0hWemFDaHBaSGdwTzF4dUlDQWdJQ0FnWTI5dGNHeGxiV1Z1ZEM1a1pXeGxkR1VvYVdSNEtUdGNiaUFnSUNCOVhHNGdJSDFjYmlBZ2NtVjBkWEp1SUhOMVluTmxkRHRjYm4xY2JseHVMeW9xWEc0Z0tpQlNaWFIxY201eklHNXZjbTFoYkdsNlpXUWdkbVZqZEc5eVhHNGdLaUJBY0dGeVlXMGdlMVpsWTNSdmNuMGdaR0YwWVNCdWRXMWxjbWxqWVd3Z1lYSnlZWGxjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHNXZjbTFoYkdsNlpTaGtZWFJoT2lCV1pXTjBiM0lwT2lCV1pXTjBiM0lnZTF4dUlDQnNaWFFnYldWaGJpQTlJREE3WEc0Z0lHeGxkQ0J6ZEdRZ1BTQXdPMXh1WEc0Z0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2daR0YwWVM1c1pXNW5kR2c3SUNzcmFTbGNiaUFnSUNCdFpXRnVJQ3M5SUdSaGRHRmJhVjA3WEc1Y2JpQWdiV1ZoYmlBdlBTQmtZWFJoTG14bGJtZDBhRHRjYmx4dUlDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJR1JoZEdFdWJHVnVaM1JvT3lBcksya3BYRzRnSUNBZ2MzUmtJQ3M5SUNoa1lYUmhXMmxkSUMwZ2JXVmhiaWtnS2lBb1pHRjBZVnRwWFNBdElHMWxZVzRwTzF4dVhHNGdJSE4wWkNBOUlFMWhkR2d1YzNGeWRDaHpkR1FnTHlCa1lYUmhMbXhsYm1kMGFDazdYRzVjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQmtZWFJoTG14bGJtZDBhRHNnS3l0cEtWeHVJQ0FnSUdSaGRHRmJhVjBnUFNBb1pHRjBZVnRwWFNBdElHMWxZVzRwSUM4Z2MzUmtPMXh1WEc0Z0lISmxkSFZ5YmlCa1lYUmhPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlFWnBibVJ6SUhObGRDQmthV1ptWlhKbGJtTmxJR0psZEhkbFpXNGdkSGR2SUd4cGMzUnpMbHh1SUNvZ1FIQmhjbUZ0SUh0aGJubGJYWDBnWVNCVWFHVWdabWx5YzNRZ2JHbHpkQzVjYmlBcUlFQndZWEpoYlNCN1lXNTVXMTE5SUdJZ1ZHaGxJSE5sWTI5dVpDQnNhWE4wTGx4dUlDb2dRSEpsZEhWeWJpQjdZVzU1VzExOVhHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ6WlhSRWFXWm1aWEpsYm1ObEtHRTZJR0Z1ZVZ0ZExDQmlPaUJoYm5sYlhTazZJR0Z1ZVZ0ZElIdGNiaUFnWTI5dWMzUWdZbE5sZENBOUlHNWxkeUJUWlhRb1lpazdYRzRnSUhKbGRIVnliaUJCY25KaGVTNW1jbTl0S0c1bGR5QlRaWFFvWVM1bWFXeDBaWElvS0hncElEMCtJQ0ZpVTJWMExtaGhjeWg0S1NrcExuWmhiSFZsY3lncEtUdGNibjFjYmlKZGZRPT0iLCJpbXBvcnQgeyBTZXFQYWxldHRlQmFzZSB9IGZyb20gJy4vc2VxLXBhbGV0dGVzJztcbmV4cG9ydCBjbGFzcyBBbWlub2FjaWRzUGFsZXR0ZXMgZXh0ZW5kcyBTZXFQYWxldHRlQmFzZSB7XG4gICAgc3RhdGljIGdldCBMZXNrKCkge1xuICAgICAgICBpZiAodGhpcy5sZXNrID09PSB2b2lkIDApIHtcbiAgICAgICAgICAgIHRoaXMubGVzayA9IHRoaXMubWFrZVBhbGV0dGUoW1xuICAgICAgICAgICAgICAgIFtbJ0cnLCAnQScsICdTJywgJ1QnXSwgJ29yYW5nZSddLFxuICAgICAgICAgICAgICAgIFtbJ0MnLCAnVicsICdJJywgJ0wnLCAnUCcsICdGJywgJ1knLCAnTScsICdXJ10sICdhbGxfZ3JlZW4nXSxcbiAgICAgICAgICAgICAgICBbWydOJywgJ1EnLCAnSCddLCAnbWFnZW50YSddLFxuICAgICAgICAgICAgICAgIFtbJ0QnLCAnRSddLCAncmVkJ10sXG4gICAgICAgICAgICAgICAgW1snSycsICdSJ10sICdhbGxfYmx1ZSddLFxuICAgICAgICAgICAgXSwgZmFsc2UsIEFtaW5vYWNpZHNQYWxldHRlcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMubGVzaztcbiAgICB9XG4gICAgc3RhdGljIGdldCBHcm9rR3JvdXBzKCkge1xuICAgICAgICBpZiAodGhpcy5ncm9rR3JvdXBzID09PSB2b2lkIDApIHtcbiAgICAgICAgICAgIHRoaXMuZ3Jva0dyb3VwcyA9IHRoaXMubWFrZVBhbGV0dGUoW1xuICAgICAgICAgICAgICAgIFtbJ0MnLCAnVSddLCAneWVsbG93J10sXG4gICAgICAgICAgICAgICAgW1snRycsICdQJ10sICdyZWQnXSxcbiAgICAgICAgICAgICAgICBbWydBJywgJ1YnLCAnSScsICdMJywgJ00nLCAnRicsICdZJywgJ1cnXSwgJ2FsbF9ncmVlbiddLFxuICAgICAgICAgICAgICAgIFtbJ1InLCAnSCcsICdLJ10sICdsaWdodF9ibHVlJ10sXG4gICAgICAgICAgICAgICAgW1snRCcsICdFJ10sICdkYXJrX2JsdWUnXSxcbiAgICAgICAgICAgICAgICBbWydTJywgJ1QnLCAnTicsICdRJ10sICdvcmFuZ2UnXSxcbiAgICAgICAgICAgIF0sIGZhbHNlLCBBbWlub2FjaWRzUGFsZXR0ZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmdyb2tHcm91cHM7XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgUmFzTW9sKCkge1xuICAgICAgICBpZiAodGhpcy5yYXNNb2wgPT09IHZvaWQgMCkge1xuICAgICAgICAgICAgdGhpcy5yYXNNb2wgPSBuZXcgQW1pbm9hY2lkc1BhbGV0dGVzKHtcbiAgICAgICAgICAgICAgICAvLyBodHRwOi8vYWNjZXMuZW5zLWx5b24uZnIvYmlvdGljL3Jhc3RvcC9oZWxwL2NvbG91ci5odG1cbiAgICAgICAgICAgICAgICAnRCc6ICcjRTYwQTBBJyxcbiAgICAgICAgICAgICAgICAnRSc6ICcjRTYwQTBBJyxcbiAgICAgICAgICAgICAgICAnQyc6ICcjRTZFNjAwJyxcbiAgICAgICAgICAgICAgICAnTSc6ICcjRTZFNjAwJyxcbiAgICAgICAgICAgICAgICAnSyc6ICcjMTQ1QUZGJyxcbiAgICAgICAgICAgICAgICAnUic6ICcjMTQ1QUZGJyxcbiAgICAgICAgICAgICAgICAnUyc6ICcjRkE5NjAwJyxcbiAgICAgICAgICAgICAgICAnVCc6ICcjRkE5NjAwJyxcbiAgICAgICAgICAgICAgICAnRic6ICcjMzIzMkFBJyxcbiAgICAgICAgICAgICAgICAnWSc6ICcjMzIzMkFBJyxcbiAgICAgICAgICAgICAgICAnTic6ICcjMDBEQ0RDJyxcbiAgICAgICAgICAgICAgICAnUSc6ICcjMDBEQ0RDJyxcbiAgICAgICAgICAgICAgICAnRyc6ICcjRUJFQkVCJyxcbiAgICAgICAgICAgICAgICAnTCc6ICcjMEY4MjBGJyxcbiAgICAgICAgICAgICAgICAnVic6ICcjMEY4MjBGJyxcbiAgICAgICAgICAgICAgICAnSSc6ICcjMEY4MjBGJyxcbiAgICAgICAgICAgICAgICAnQSc6ICcjQzhDOEM4JyxcbiAgICAgICAgICAgICAgICAnVyc6ICcjQjQ1QUI0JyxcbiAgICAgICAgICAgICAgICAnSCc6ICcjODI4MkQyJyxcbiAgICAgICAgICAgICAgICAnUCc6ICcjREM5NjgyJyxcbiAgICAgICAgICAgICAgICAnb3RoZXJzJzogJyNCRUEwNkUnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucmFzTW9sO1xuICAgIH1cbiAgICBnZXQobSkge1xuICAgICAgICBjb25zdCByZXNNID0gbSBpbiBBbWlub2FjaWRzUGFsZXR0ZXMuYWFTeW5vbnltcyA/IEFtaW5vYWNpZHNQYWxldHRlcy5hYVN5bm9ueW1zW21dIDogbTtcbiAgICAgICAgY29uc3QgcmVzID0gc3VwZXIuZ2V0KHJlc00pO1xuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cbn1cbi8qKiBPbmx5IHNvbWUgb2YgdGhlIHN5bm9ueW1zLiBUaGVzZSB3ZXJlIG9idGFpbmVkIGZyb20gdGhlIGNsdXN0ZXJlZCBvbGlnb3BlcHRpZGUgZGF0YXNldC4gKi9cbkFtaW5vYWNpZHNQYWxldHRlcy5hYVN5bm9ueW1zID0ge1xuICAgICdNZU5sZSc6ICdMJyxcbiAgICAnTWVBJzogJ0EnLFxuICAgICdNZUcnOiAnRycsXG4gICAgJ01lRic6ICdGJyxcbn07XG5leHBvcnQgY2xhc3MgQW1pbm9hY2lkcyB7XG4gICAgc3RhdGljIGdldFBhbGV0dGUoc2NoZW1lID0gJ2dyb2snKSB7XG4gICAgICAgIHN3aXRjaCAoc2NoZW1lKSB7XG4gICAgICAgICAgICBjYXNlICdncm9rJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gQW1pbm9hY2lkc1BhbGV0dGVzLkdyb2tHcm91cHM7XG4gICAgICAgICAgICBjYXNlICdsZXNrJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gQW1pbm9hY2lkc1BhbGV0dGVzLkxlc2s7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2hlbVBhbGV0dGU6IHNjaGVtZSBcXGAke3NjaGVtZX1cXGAgZG9lcyBub3QgZXhpc3RgKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGRpdmlkZWQgYW1pbm8gYWNpZCB3aXRoIGl0cyBjb250ZW50IGluIHRoZSBicmFja2V0LCBpZiB0aGUgY29udGVudCBpcyBudW1iZXIsIHRoZW4gaXRzIG9taXR0ZWRcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjIHJhdyBhbWlub1xuICAgICAqIEByZXR1cm4ge1tzdHJpbmcsIHN0cmluZ119IG91dGVyIGFuZCBpbm5lciBjb250ZW50XG4gICAgICovXG4gICAgc3RhdGljIGdldElubmVyT3V0ZXIoYykge1xuICAgICAgICBsZXQgaXNJbm5lciA9IDA7XG4gICAgICAgIGxldCBpbm5lciA9ICcnO1xuICAgICAgICBsZXQgb3V0ZXIgPSAnJztcbiAgICAgICAgZm9yIChjb25zdCBjaGFyIG9mIGMpIHtcbiAgICAgICAgICAgIGlmIChjaGFyID09ICcoJylcbiAgICAgICAgICAgICAgICBpc0lubmVyKys7XG4gICAgICAgICAgICBlbHNlIGlmIChjaGFyID09ICcpJylcbiAgICAgICAgICAgICAgICBpc0lubmVyLS07XG4gICAgICAgICAgICBlbHNlIGlmIChpc0lubmVyKVxuICAgICAgICAgICAgICAgIGlubmVyICs9IGNoYXI7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgb3V0ZXIgKz0gY2hhcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gIWlzTmFOKHBhcnNlSW50KGlubmVyKSkgPyBbb3V0ZXIsICcnXSA6IFtvdXRlciwgaW5uZXJdO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0Q29sb3JBQVBpdm90KG1vbm9tZXIgPSAnJywgc2NoZW1lID0gJ2dyb2snKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICAvL2NvbnN0IGNoZW1QYWxldHRlSW5zdGFuY2UgPSBBQVBhbGV0dGVzLkdyb2tHcm91cHMoKTtcbiAgICAgICAgY29uc3QgY2hlbVBhbGV0dGVJbnN0YW5jZSA9IHRoaXMuZ2V0UGFsZXR0ZShzY2hlbWUpO1xuICAgICAgICBsZXQgW291dGVyTW9ub21lciwgaW5uZXJNb25vbWVyXSA9IHRoaXMuZ2V0SW5uZXJPdXRlcihtb25vbWVyKTtcbiAgICAgICAgb3V0ZXJNb25vbWVyID0gKG91dGVyTW9ub21lci5sZW5ndGggPiA2ID8gYCR7b3V0ZXJNb25vbWVyLnNsaWNlKDAsIDMpfS4uLmAgOiBvdXRlck1vbm9tZXIpO1xuICAgICAgICBpbm5lck1vbm9tZXIgPSAoaW5uZXJNb25vbWVyLmxlbmd0aCA+IDYgPyBgJHtpbm5lck1vbm9tZXIuc2xpY2UoMCwgMyl9Li4uYCA6IGlubmVyTW9ub21lcik7XG4gICAgICAgIGlmIChtb25vbWVyLmxlbmd0aCA9PSAxIHx8IG1vbm9tZXJbMV0gPT0gJygnKSB7XG4gICAgICAgICAgICBjb25zdCBhbWlubyA9IChfYSA9IG1vbm9tZXJbMF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgcmV0dXJuIGFtaW5vIGluIGNoZW1QYWxldHRlSW5zdGFuY2UgP1xuICAgICAgICAgICAgICAgIFtjaGVtUGFsZXR0ZUluc3RhbmNlLmdldChhbWlubyksIGFtaW5vLCBpbm5lck1vbm9tZXIsIDFdIDpcbiAgICAgICAgICAgICAgICBbdGhpcy51bmRlZmluZWRDb2xvciwgb3V0ZXJNb25vbWVyLCBpbm5lck1vbm9tZXIsIDFdO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtb25vbWVyWzBdID09ICdkJyAmJiBtb25vbWVyWzFdIGluIGNoZW1QYWxldHRlSW5zdGFuY2UpIHtcbiAgICAgICAgICAgIGlmIChtb25vbWVyLmxlbmd0aCA9PSAyIHx8IG1vbm9tZXJbMl0gPT0gJygnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYW1pbm8gPSAoX2IgPSBtb25vbWVyWzFdKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYW1pbm8gaW4gY2hlbVBhbGV0dGVJbnN0YW5jZSA/XG4gICAgICAgICAgICAgICAgICAgIFtjaGVtUGFsZXR0ZUluc3RhbmNlLmdldChhbWlubyksIGFtaW5vLCBpbm5lck1vbm9tZXIsIDJdIDpcbiAgICAgICAgICAgICAgICAgICAgW3RoaXMudW5kZWZpbmVkQ29sb3IsIG91dGVyTW9ub21lciwgaW5uZXJNb25vbWVyLCAyXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobW9ub21lci5zdWJzdHJpbmcoMCwgMykgaW4gdGhpcy5BQUZ1bGxOYW1lcykge1xuICAgICAgICAgICAgaWYgKG1vbm9tZXIubGVuZ3RoID09IDMgfHwgbW9ub21lclszXSA9PSAnKCcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhbWlubyA9IHRoaXMuQUFGdWxsTmFtZXNbbW9ub21lci5zdWJzdHJpbmcoMCwgMyldO1xuICAgICAgICAgICAgICAgIHJldHVybiBhbWlubyBpbiBjaGVtUGFsZXR0ZUluc3RhbmNlID9cbiAgICAgICAgICAgICAgICAgICAgW2NoZW1QYWxldHRlSW5zdGFuY2UuZ2V0KGFtaW5vKSwgYW1pbm8sIGlubmVyTW9ub21lciwgM10gOlxuICAgICAgICAgICAgICAgICAgICBbdGhpcy51bmRlZmluZWRDb2xvciwgb3V0ZXJNb25vbWVyLCBpbm5lck1vbm9tZXIsIDNdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICgoKF9jID0gbW9ub21lclswXSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLnRvTG93ZXJDYXNlKCkpID09IG1vbm9tZXJbMF0pIHtcbiAgICAgICAgICAgIGlmIChtb25vbWVyLnN1YnN0cmluZygxLCAzKSBpbiB0aGlzLkFBRnVsbE5hbWVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1vbm9tZXIubGVuZ3RoID09IDQgfHwgbW9ub21lcls0XSA9PSAnKCcpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYW1pbm8gPSB0aGlzLkFBRnVsbE5hbWVzW21vbm9tZXIuc3Vic3RyaW5nKDEsIDMpXTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFtaW5vIGluIGNoZW1QYWxldHRlSW5zdGFuY2UgP1xuICAgICAgICAgICAgICAgICAgICAgICAgW2NoZW1QYWxldHRlSW5zdGFuY2UuZ2V0KGFtaW5vKSwgYW1pbm8sIGlubmVyTW9ub21lciwgNF0gOlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RoaXMudW5kZWZpbmVkQ29sb3IsIG91dGVyTW9ub21lciwgaW5uZXJNb25vbWVyLCA0XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFt0aGlzLnVuZGVmaW5lZENvbG9yLCBvdXRlck1vbm9tZXIsIGlubmVyTW9ub21lciwgMF07XG4gICAgfVxufVxuQW1pbm9hY2lkcy5TZW1UeXBlID0gJ0FtaW5vYWNpZHMnO1xuQW1pbm9hY2lkcy5TZW1UeXBlTXVsdGlwbGVBbGlnbm1lbnQgPSAnQW1pbm9hY2lkc011bHRpcGxlQWxpZ25tZW50JztcbkFtaW5vYWNpZHMudW5kZWZpbmVkQ29sb3IgPSAncmdiKDEwMCwxMDAsMTAwKSc7XG5BbWlub2FjaWRzLk5hbWVzID0ge1xuICAgICdHJzogJ0dseWNpbmUnLFxuICAgICdMJzogJ0xldWNpbmUnLFxuICAgICdZJzogJ1R5cm9zaW5lJyxcbiAgICAnUyc6ICdTZXJpbmUnLFxuICAgICdFJzogJ0dsdXRhbWljIGFjaWQnLFxuICAgICdRJzogJ0dsdXRhbWluZScsXG4gICAgJ0QnOiAnQXNwYXJ0aWMgYWNpZCcsXG4gICAgJ04nOiAnQXNwYXJhZ2luZScsXG4gICAgJ0YnOiAnUGhlbnlsYWxhbmluZScsXG4gICAgJ0EnOiAnQWxhbmluZScsXG4gICAgJ0snOiAnTHlzaW5lJyxcbiAgICAnUic6ICdBcmdpbmluZScsXG4gICAgJ0gnOiAnSGlzdGlkaW5lJyxcbiAgICAnQyc6ICdDeXN0ZWluZScsXG4gICAgJ1YnOiAnVmFsaW5lJyxcbiAgICAnUCc6ICdQcm9saW5lJyxcbiAgICAnVyc6ICdUcnlwdG9waGFuJyxcbiAgICAnSSc6ICdJc29sZXVjaW5lJyxcbiAgICAnTSc6ICdNZXRoaW9uaW5lJyxcbiAgICAnVCc6ICdUaHJlb25pbmUnLFxufTtcbkFtaW5vYWNpZHMuQUFTbWlsZXMgPSB7XG4gICAgJ0cnOiAnTkNDKD1PKU8nLFxuICAgICdMJzogJ05bQ0BIXShDQyhDKUMpQyg9TylPJyxcbiAgICAnWSc6ICdOQyhDQzE9Q0M9QyhPKUM9QzEpQyg9TylPJyxcbiAgICAnUyc6ICdOQyhDTylDKD1PKU8nLFxuICAgICdFJzogJ05bQ0BASF0oQ0NDKE8pPU8pQyg9TylPJyxcbiAgICAnUSc6ICdOW0NAQEhdKENDQyhOKT1PKUMoPU8pTycsXG4gICAgJ0QnOiAnTltDQEBIXShDQyhPKT1PKUMoPU8pTycsXG4gICAgJ04nOiAnTltDQEBIXShDQyhOKT1PKUMoPU8pTycsXG4gICAgJ0YnOiAnTkMoQ0MxPUNDPUNDPUMxKUMoPU8pTycsXG4gICAgJ0EnOiAnTltDQEhdKEMpQyg9TylPJyxcbiAgICAnSyc6ICdOQyhDQ0NDTilDKD1PKU8nLFxuICAgICdSJzogJ05bQ0BIXShDQ0NOQyg9TilDKUMoPU8pTycsXG4gICAgJ0gnOiAnTkMoQ0MxPUNOPUNbTl0xKUMoPU8pTycsXG4gICAgJ0MnOiAnTltDQEBIXShDUylDKD1PKU8nLFxuICAgICdWJzogJ05DKEMoQylDKUMoPU8pTycsXG4gICAgJ1AnOiAnTihDQ0MxKUMxQyg9TylPJyxcbiAgICAnVyc6ICdOW0NAQEhdKENjMWMyY2NjY2MybihbSF0pYzEpQyg9TylPJyxcbiAgICAnSSc6ICdOW0NASF0oW0NASF0oQylDQylDKD1PKU8nLFxuICAgICdNJzogJ05DKENDU0MpQyg9TylPJyxcbiAgICAnVCc6ICdOQyhDKE8pQylDKD1PKU8nLFxufTtcbkFtaW5vYWNpZHMuQUFTbWlsZXNUcnVuY2F0ZWQgPSB7XG4gICAgJ0cnOiAnKkMqJyxcbiAgICAnTCc6ICdDQyhDKUNbQ0BIXSgqKSonLFxuICAgICdZJzogJ0MxPUNDKD1DQz1DMUNDKCopKilPJyxcbiAgICAnUyc6ICdPQ0MoKilDKicsXG4gICAgJ0UnOiAnKltDQEBIXShDQ0MoTyk9TykqJyxcbiAgICAnUSc6ICcqTltDQEBIXShDQ0MoTik9TykqJyxcbiAgICAnRCc6ICcqW0NAQEhdKENDKE8pPU8pKicsXG4gICAgJ04nOiAnKltDQEBIXShDQyhOKT1PKSonLFxuICAgICdGJzogJ0MxPUNDPUMoQz1DMSlDQygqKSonLFxuICAgICdBJzogJ0NbQ0BIXSgqKSonLFxuICAgICdLJzogJ0MoQ0NOKUNDKCopKicsXG4gICAgJ1InOiAnKltDQEhdKENDQ05DKD1OKUMpKicsXG4gICAgJ0gnOiAnQzE9QyhOQz1OMSlDQygqKSonLFxuICAgICdDJzogJ0MoW0NAQEhdKCopKilTJyxcbiAgICAnVic6ICdDQyhDKUMoKikqJyxcbiAgICAnUCc6ICdDMUNDTigqKUMxKicsXG4gICAgJ1cnOiAnKltDQEBIXShDYzFjMmNjY2NjMm4oW0hdKWMxKSonLFxuICAgICdJJzogJ0NDW0NASF0oQylbQ0BIXSgqKSonLFxuICAgICdNJzogJ0NTQ0NDKCopKicsXG4gICAgJ1QnOiAnQ0MoTylDKCopKicsXG59O1xuLyoqIFRPRE86IEZ1bGw/XG4gKi9cbkFtaW5vYWNpZHMuQUFGdWxsTmFtZXMgPSB7XG4gICAgJ0FsYSc6ICdBJyxcbiAgICAnQXJnJzogJ1InLFxuICAgICdBc24nOiAnTicsXG4gICAgJ0FzcCc6ICdEJyxcbiAgICAnQ3lzJzogJ0MnLFxuICAgICdHbG4nOiAnUScsXG4gICAgJ0dsdSc6ICdFJyxcbiAgICAnR2x5JzogJ0cnLFxuICAgICdIaXMnOiAnSCcsXG4gICAgJ0lsZSc6ICdJJyxcbiAgICAnTGV1JzogJ0wnLFxuICAgICdMeXMnOiAnSycsXG4gICAgJ01ldCc6ICdNJyxcbiAgICAnUGhlJzogJ0YnLFxuICAgICdQcm8nOiAnUCcsXG4gICAgJ1Nlcic6ICdTJyxcbiAgICAnVGhyJzogJ1QnLFxuICAgICdUcnAnOiAnVycsXG4gICAgJ1R5cic6ICdZJyxcbiAgICAnVmFsJzogJ1YnLFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVlXMXBibTloWTJsa2N5NXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW1GdGFXNXZZV05wWkhNdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJTMEVzVDBGQlR5eEZRVUZoTEdOQlFXTXNSVUZCUXl4TlFVRk5MR2RDUVVGblFpeERRVUZETzBGQlJURkVMRTFCUVUwc1QwRkJUeXhyUWtGQmJVSXNVMEZCVVN4alFVRmpPMGxCUnpkRExFMUJRVTBzUzBGQlN5eEpRVUZKTzFGQlEzQkNMRWxCUVVrc1NVRkJTU3hEUVVGRExFbEJRVWtzUzBGQlN5eExRVUZMTEVOQlFVTXNSVUZCUlR0WlFVTjRRaXhKUVVGSkxFTkJRVU1zU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNN1owSkJRek5DTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNSVUZCUlN4UlFVRlJMRU5CUVVNN1owSkJRMmhETEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMRmRCUVZjc1EwRkJRenRuUWtGRE5VUXNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVWQlFVVXNVMEZCVXl4RFFVRkRPMmRDUVVNMVFpeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxFdEJRVXNzUTBGQlF6dG5Ra0ZEYmtJc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNSVUZCUlN4VlFVRlZMRU5CUVVNN1lVRkRla0lzUlVGQlJTeExRVUZMTEVWQlFVVXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlF6dFRRVU12UWp0UlFVTkVMRTlCUVU4c1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF6dEpRVU51UWl4RFFVRkRPMGxCU1Uwc1RVRkJUU3hMUVVGTExGVkJRVlU3VVVGRE1VSXNTVUZCU1N4SlFVRkpMRU5CUVVNc1ZVRkJWU3hMUVVGTExFdEJRVXNzUTBGQlF5eEZRVUZGTzFsQlF6bENMRWxCUVVrc1EwRkJReXhWUVVGVkxFZEJRVWNzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXp0blFrRkRha01zUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRU5CUVVNc1JVRkJSU3hSUVVGUkxFTkJRVU03WjBKQlEzUkNMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVWQlFVVXNTMEZCU3l4RFFVRkRPMmRDUVVOdVFpeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEZkQlFWY3NRMEZCUXp0blFrRkRka1FzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExFVkJRVVVzV1VGQldTeERRVUZETzJkQ1FVTXZRaXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMRmRCUVZjc1EwRkJRenRuUWtGRGVrSXNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMRkZCUVZFc1EwRkJRenRoUVVOcVF5eEZRVUZGTEV0QlFVc3NSVUZCUlN4clFrRkJhMElzUTBGQlF5eERRVUZETzFOQlF5OUNPMUZCUTBRc1QwRkJUeXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETzBsQlEzcENMRU5CUVVNN1NVRkpUU3hOUVVGTkxFdEJRVXNzVFVGQlRUdFJRVU4wUWl4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFdEJRVXNzUzBGQlN5eERRVUZETEVWQlFVVTdXVUZETVVJc1NVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eEpRVUZKTEd0Q1FVRnJRaXhEUVVGRE8yZENRVU51UXl4NVJFRkJlVVE3WjBKQlEzcEVMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xGRkJRVkVzUlVGQlJTeFRRVUZUTzJGQlEzQkNMRU5CUVVNc1EwRkJRenRUUVVOS08xRkJRMFFzVDBGQlR5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRPMGxCUTNKQ0xFTkJRVU03U1VGRlpTeEhRVUZITEVOQlFVTXNRMEZCVXp0UlFVTXpRaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eERRVUZETEVsQlFVa3NhMEpCUVd0Q0xFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4clFrRkJhMElzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU4yUml4TlFVRk5MRWRCUVVjc1IwRkJSeXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUXpWQ0xFOUJRVThzUjBGQlJ5eERRVUZETzBsQlEySXNRMEZCUXpzN1FVRkZSQ3c0UmtGQk9FWTdRVUZETDBVc05rSkJRVlVzUjBGQkswSTdTVUZEZEVRc1QwRkJUeXhGUVVGRkxFZEJRVWM3U1VGRFdpeExRVUZMTEVWQlFVVXNSMEZCUnp0SlFVTldMRXRCUVVzc1JVRkJSU3hIUVVGSE8wbEJRMVlzUzBGQlN5eEZRVUZGTEVkQlFVYzdRMEZEV0N4RFFVRkRPMEZCUjBvc1RVRkJUU3hQUVVGUExGVkJRVlU3U1VGeFIyUXNUVUZCVFN4RFFVRkRMRlZCUVZVc1EwRkJReXhUUVVGcFFpeE5RVUZOTzFGQlF6bERMRkZCUVZFc1RVRkJUU3hGUVVGRk8xbEJRMmhDTEV0QlFVc3NUVUZCVFR0blFrRkRWQ3hQUVVGUExHdENRVUZyUWl4RFFVRkRMRlZCUVZVc1EwRkJRenRaUVVOMlF5eExRVUZMTEUxQlFVMDdaMEpCUTFRc1QwRkJUeXhyUWtGQmEwSXNRMEZCUXl4SlFVRkpMRU5CUVVNN1dVRkRha003WjBKQlEwVXNUVUZCVFN4SlFVRkpMRXRCUVVzc1EwRkJReXg1UWtGQmVVSXNUVUZCVFN4dFFrRkJiVUlzUTBGQlF5eERRVUZETzFOQlEzSkZPMGxCUTBnc1EwRkJRenRKUVVWRU96czdPenRQUVV0SE8wbEJRMGtzVFVGQlRTeERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRlRPMUZCUTI1RExFbEJRVWtzVDBGQlR5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTm9RaXhKUVVGSkxFdEJRVXNzUjBGQlJ5eEZRVUZGTEVOQlFVTTdVVUZEWml4SlFVRkpMRXRCUVVzc1IwRkJSeXhGUVVGRkxFTkJRVU03VVVGRlppeExRVUZMTEUxQlFVMHNTVUZCU1N4SlFVRkpMRU5CUVVNc1JVRkJSVHRaUVVOd1FpeEpRVUZKTEVsQlFVa3NTVUZCU1N4SFFVRkhPMmRDUVVOaUxFOUJRVThzUlVGQlJTeERRVUZETzJsQ1FVTlFMRWxCUVVrc1NVRkJTU3hKUVVGSkxFZEJRVWM3WjBKQlEyeENMRTlCUVU4c1JVRkJSU3hEUVVGRE8ybENRVU5RTEVsQlFVa3NUMEZCVHp0blFrRkRaQ3hMUVVGTExFbEJRVWtzU1VGQlNTeERRVUZET3p0blFrRkZaQ3hMUVVGTExFbEJRVWtzU1VGQlNTeERRVUZETzFOQlEycENPMUZCUlVRc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMGxCUTJoRkxFTkJRVU03U1VGRlRTeE5RVUZOTEVOQlFVTXNaVUZCWlN4RFFVRkRMRlZCUVd0Q0xFVkJRVVVzUlVGQlJTeFRRVUZwUWl4TlFVRk5PenRSUVVONlJTeHpSRUZCYzBRN1VVRkRkRVFzVFVGQlRTeHRRa0ZCYlVJc1IwRkJSeXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMUZCUTNCRUxFbEJRVWtzUTBGQlF5eFpRVUZaTEVWQlFVVXNXVUZCV1N4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTXZSQ3haUVVGWkxFZEJRVWNzUTBGQlF5eFpRVUZaTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eFpRVUZaTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRSUVVNelJpeFpRVUZaTEVkQlFVY3NRMEZCUXl4WlFVRlpMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4WlFVRlpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFJRVVV6Uml4SlFVRkpMRTlCUVU4c1EwRkJReXhOUVVGTkxFbEJRVWtzUTBGQlF5eEpRVUZKTEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hIUVVGSExFVkJRVVU3V1VGRE5VTXNUVUZCVFN4TFFVRkxMRWRCUVVjc1RVRkJRU3hQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETERCRFFVRkZMRmRCUVZjc1JVRkJSeXhEUVVGRE8xbEJRM3BETEU5QlFVOHNTMEZCU3l4SlFVRkpMRzFDUVVGdFFpeERRVUZETEVOQlFVTTdaMEpCUTI1RExFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEV0QlFVc3NSVUZCUlN4WlFVRlpMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZETVVRc1EwRkJReXhKUVVGSkxFTkJRVU1zWTBGQll5eEZRVUZGTEZsQlFWa3NSVUZCUlN4WlFVRlpMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03VTBGRGVFUTdVVUZGUkN4SlFVRkpMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeEhRVUZITEVsQlFVa3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJSU3hKUVVGSkxHMUNRVUZ0UWl4RlFVRkZPMWxCUXpORUxFbEJRVWtzVDBGQlR5eERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRWxCUVVrc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVkQlFVY3NSVUZCUlR0blFrRkROVU1zVFVGQlRTeExRVUZMTEVkQlFVY3NUVUZCUVN4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExEQkRRVUZGTEZkQlFWY3NSVUZCUnl4RFFVRkRPMmRDUVVONlF5eFBRVUZQTEV0QlFVc3NTVUZCU1N4dFFrRkJiVUlzUTBGQlF5eERRVUZETzI5Q1FVTnVReXhEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeExRVUZMTEVWQlFVVXNXVUZCV1N4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03YjBKQlF6RkVMRU5CUVVNc1NVRkJTU3hEUVVGRExHTkJRV01zUlVGQlJTeFpRVUZaTEVWQlFVVXNXVUZCV1N4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8yRkJRM2hFTzFOQlEwWTdVVUZGUkN4SlFVRkpMRTlCUVU4c1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhYUVVGWExFVkJRVVU3V1VGREwwTXNTVUZCU1N4UFFVRlBMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zU1VGQlNTeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1IwRkJSeXhGUVVGRk8yZENRVU0xUXl4TlFVRk5MRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEU5QlFVOHNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTNoRUxFOUJRVThzUzBGQlN5eEpRVUZKTEcxQ1FVRnRRaXhEUVVGRExFTkJRVU03YjBKQlEyNURMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFdEJRVXNzUlVGQlJTeFpRVUZaTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenR2UWtGRE1VUXNRMEZCUXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhGUVVGRkxGbEJRVmtzUlVGQlJTeFpRVUZaTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1lVRkRlRVE3VTBGRFJqdFJRVVZFTEVsQlFVa3NRMEZCUVN4TlFVRkJMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zTUVOQlFVVXNWMEZCVnl4RlFVRkZMRXRCUVVrc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTzFsQlF6TkRMRWxCUVVrc1QwRkJUeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRWxCUVVrc1NVRkJTU3hEUVVGRExGZEJRVmNzUlVGQlJUdG5Ra0ZETDBNc1NVRkJTU3hQUVVGUExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNTVUZCU1N4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUjBGQlJ5eEZRVUZGTzI5Q1FVTTFReXhOUVVGTkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRTlCUVU4c1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN2IwSkJRM2hFTEU5QlFVOHNTMEZCU3l4SlFVRkpMRzFDUVVGdFFpeERRVUZETEVOQlFVTTdkMEpCUTI1RExFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEV0QlFVc3NSVUZCUlN4WlFVRlpMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dDNRa0ZETVVRc1EwRkJReXhKUVVGSkxFTkJRVU1zWTBGQll5eEZRVUZGTEZsQlFWa3NSVUZCUlN4WlFVRlpMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03YVVKQlEzaEVPMkZCUTBZN1UwRkRSanRSUVVWRUxFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RlFVRkZMRmxCUVZrc1JVRkJSU3haUVVGWkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZET1VRc1EwRkJRenM3UVVGd1RHVXNhMEpCUVU4c1IwRkJWeXhaUVVGWkxFTkJRVU03UVVGRkwwSXNiVU5CUVhkQ0xFZEJRVmNzTmtKQlFUWkNMRU5CUVVNN1FVRkZNVVVzZVVKQlFXTXNSMEZCUnl4clFrRkJhMElzUTBGQlF6dEJRVVUzUWl4blFrRkJTeXhIUVVGeFFqdEpRVU4wUXl4SFFVRkhMRVZCUVVVc1UwRkJVenRKUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzBsQlEyUXNSMEZCUnl4RlFVRkZMRlZCUVZVN1NVRkRaaXhIUVVGSExFVkJRVVVzVVVGQlVUdEpRVU5pTEVkQlFVY3NSVUZCUlN4bFFVRmxPMGxCUTNCQ0xFZEJRVWNzUlVGQlJTeFhRVUZYTzBsQlEyaENMRWRCUVVjc1JVRkJSU3hsUVVGbE8wbEJRM0JDTEVkQlFVY3NSVUZCUlN4WlFVRlpPMGxCUTJwQ0xFZEJRVWNzUlVGQlJTeGxRVUZsTzBsQlEzQkNMRWRCUVVjc1JVRkJSU3hUUVVGVE8wbEJRMlFzUjBGQlJ5eEZRVUZGTEZGQlFWRTdTVUZEWWl4SFFVRkhMRVZCUVVVc1ZVRkJWVHRKUVVObUxFZEJRVWNzUlVGQlJTeFhRVUZYTzBsQlEyaENMRWRCUVVjc1JVRkJSU3hWUVVGVk8wbEJRMllzUjBGQlJ5eEZRVUZGTEZGQlFWRTdTVUZEWWl4SFFVRkhMRVZCUVVVc1UwRkJVenRKUVVOa0xFZEJRVWNzUlVGQlJTeFpRVUZaTzBsQlEycENMRWRCUVVjc1JVRkJSU3haUVVGWk8wbEJRMnBDTEVkQlFVY3NSVUZCUlN4WlFVRlpPMGxCUTJwQ0xFZEJRVWNzUlVGQlJTeFhRVUZYTzBOQlEycENMRU5CUVVNN1FVRkZXU3h0UWtGQlVTeEhRVUZ4UWp0SlFVTjZReXhIUVVGSExFVkJRVVVzVlVGQlZUdEpRVU5tTEVkQlFVY3NSVUZCUlN4elFrRkJjMEk3U1VGRE0wSXNSMEZCUnl4RlFVRkZMREpDUVVFeVFqdEpRVU5vUXl4SFFVRkhMRVZCUVVVc1kwRkJZenRKUVVOdVFpeEhRVUZITEVWQlFVVXNlVUpCUVhsQ08wbEJRemxDTEVkQlFVY3NSVUZCUlN4NVFrRkJlVUk3U1VGRE9VSXNSMEZCUnl4RlFVRkZMSGRDUVVGM1FqdEpRVU0zUWl4SFFVRkhMRVZCUVVVc2QwSkJRWGRDTzBsQlF6ZENMRWRCUVVjc1JVRkJSU3gzUWtGQmQwSTdTVUZETjBJc1IwRkJSeXhGUVVGRkxHbENRVUZwUWp0SlFVTjBRaXhIUVVGSExFVkJRVVVzYVVKQlFXbENPMGxCUTNSQ0xFZEJRVWNzUlVGQlJTd3dRa0ZCTUVJN1NVRkRMMElzUjBGQlJ5eEZRVUZGTEhkQ1FVRjNRanRKUVVNM1FpeEhRVUZITEVWQlFVVXNiVUpCUVcxQ08wbEJRM2hDTEVkQlFVY3NSVUZCUlN4cFFrRkJhVUk3U1VGRGRFSXNSMEZCUnl4RlFVRkZMR2xDUVVGcFFqdEpRVU4wUWl4SFFVRkhMRVZCUVVVc2IwTkJRVzlETzBsQlEzcERMRWRCUVVjc1JVRkJSU3d3UWtGQk1FSTdTVUZETDBJc1IwRkJSeXhGUVVGRkxHZENRVUZuUWp0SlFVTnlRaXhIUVVGSExFVkJRVVVzYVVKQlFXbENPME5CUTNaQ0xFTkJRVU03UVVGRldTdzBRa0ZCYVVJc1IwRkJjVUk3U1VGRGJFUXNSMEZCUnl4RlFVRkZMRXRCUVVzN1NVRkRWaXhIUVVGSExFVkJRVVVzYVVKQlFXbENPMGxCUTNSQ0xFZEJRVWNzUlVGQlJTeHpRa0ZCYzBJN1NVRkRNMElzUjBGQlJ5eEZRVUZGTEZWQlFWVTdTVUZEWml4SFFVRkhMRVZCUVVVc2IwSkJRVzlDTzBsQlEzcENMRWRCUVVjc1JVRkJSU3h4UWtGQmNVSTdTVUZETVVJc1IwRkJSeXhGUVVGRkxHMUNRVUZ0UWp0SlFVTjRRaXhIUVVGSExFVkJRVVVzYlVKQlFXMUNPMGxCUTNoQ0xFZEJRVWNzUlVGQlJTeHhRa0ZCY1VJN1NVRkRNVUlzUjBGQlJ5eEZRVUZGTEZsQlFWazdTVUZEYWtJc1IwRkJSeXhGUVVGRkxHTkJRV003U1VGRGJrSXNSMEZCUnl4RlFVRkZMSEZDUVVGeFFqdEpRVU14UWl4SFFVRkhMRVZCUVVVc2JVSkJRVzFDTzBsQlEzaENMRWRCUVVjc1JVRkJSU3huUWtGQlowSTdTVUZEY2tJc1IwRkJSeXhGUVVGRkxGbEJRVms3U1VGRGFrSXNSMEZCUnl4RlFVRkZMR0ZCUVdFN1NVRkRiRUlzUjBGQlJ5eEZRVUZGTEN0Q1FVRXJRanRKUVVOd1F5eEhRVUZITEVWQlFVVXNjVUpCUVhGQ08wbEJRekZDTEVkQlFVY3NSVUZCUlN4WFFVRlhPMGxCUTJoQ0xFZEJRVWNzUlVGQlJTeFpRVUZaTzBOQlEyeENMRU5CUVVNN1FVRkZSanRIUVVOSE8wRkJRMWNzYzBKQlFWY3NSMEZCY1VJN1NVRkROVU1zUzBGQlN5eEZRVUZGTEVkQlFVYzdTVUZEVml4TFFVRkxMRVZCUVVVc1IwRkJSenRKUVVOV0xFdEJRVXNzUlVGQlJTeEhRVUZITzBsQlExWXNTMEZCU3l4RlFVRkZMRWRCUVVjN1NVRkRWaXhMUVVGTExFVkJRVVVzUjBGQlJ6dEpRVU5XTEV0QlFVc3NSVUZCUlN4SFFVRkhPMGxCUTFZc1MwRkJTeXhGUVVGRkxFZEJRVWM3U1VGRFZpeExRVUZMTEVWQlFVVXNSMEZCUnp0SlFVTldMRXRCUVVzc1JVRkJSU3hIUVVGSE8wbEJRMVlzUzBGQlN5eEZRVUZGTEVkQlFVYzdTVUZEVml4TFFVRkxMRVZCUVVVc1IwRkJSenRKUVVOV0xFdEJRVXNzUlVGQlJTeEhRVUZITzBsQlExWXNTMEZCU3l4RlFVRkZMRWRCUVVjN1NVRkRWaXhMUVVGTExFVkJRVVVzUjBGQlJ6dEpRVU5XTEV0QlFVc3NSVUZCUlN4SFFVRkhPMGxCUTFZc1MwRkJTeXhGUVVGRkxFZEJRVWM3U1VGRFZpeExRVUZMTEVWQlFVVXNSMEZCUnp0SlFVTldMRXRCUVVzc1JVRkJSU3hIUVVGSE8wbEJRMVlzUzBGQlN5eEZRVUZGTEVkQlFVYzdTVUZEVml4TFFVRkxMRVZCUVVVc1IwRkJSenREUVVOWUxFTkJRVU1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnS2lCaGN5Qm5jbTlySUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5bmNtOXJKenRjYm1sdGNHOXlkQ0FxSUdGeklIVnBJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzkxYVNjN1hHNXBiWEJ2Y25RZ0tpQmhjeUJFUnlCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdlpHY25PMXh1WEc1cGJYQnZjblFnZTFOMGNtbHVaMFJwWTNScGIyNWhjbmw5SUdaeWIyMGdKMEJrWVhSaFozSnZheTFzYVdKeVlYSnBaWE12ZFhScGJITXZjM0pqTDNSNWNHVXRaR1ZqYkdGeVlYUnBiMjV6Snp0Y2JtbHRjRzl5ZENCN1UyVnhVR0ZzWlhSMFpTd2dVMlZ4VUdGc1pYUjBaVUpoYzJWOUlHWnliMjBnSnk0dmMyVnhMWEJoYkdWMGRHVnpKenRjYmx4dVpYaHdiM0owSUdOc1lYTnpJRUZ0YVc1dllXTnBaSE5RWVd4bGRIUmxjeUJsZUhSbGJtUnpJRk5sY1ZCaGJHVjBkR1ZDWVhObElIdGNiaUFnY0hKcGRtRjBaU0J6ZEdGMGFXTWdiR1Z6YXpvZ1UyVnhVR0ZzWlhSMFpUdGNibHh1SUNCd2RXSnNhV01nYzNSaGRHbGpJR2RsZENCTVpYTnJLQ2s2SUZObGNWQmhiR1YwZEdVZ2UxeHVJQ0FnSUdsbUlDaDBhR2x6TG14bGMyc2dQVDA5SUhadmFXUWdNQ2tnZTF4dUlDQWdJQ0FnZEdocGN5NXNaWE5ySUQwZ2RHaHBjeTV0WVd0bFVHRnNaWFIwWlNoYlhHNGdJQ0FnSUNBZ0lGdGJKMGNuTENBblFTY3NJQ2RUSnl3Z0oxUW5YU3dnSjI5eVlXNW5aU2RkTEZ4dUlDQWdJQ0FnSUNCYld5ZERKeXdnSjFZbkxDQW5TU2NzSUNkTUp5d2dKMUFuTENBblJpY3NJQ2RaSnl3Z0owMG5MQ0FuVnlkZExDQW5ZV3hzWDJkeVpXVnVKMTBzWEc0Z0lDQWdJQ0FnSUZ0YkowNG5MQ0FuVVNjc0lDZElKMTBzSUNkdFlXZGxiblJoSjEwc1hHNGdJQ0FnSUNBZ0lGdGJKMFFuTENBblJTZGRMQ0FuY21Wa0oxMHNYRzRnSUNBZ0lDQWdJRnRiSjBzbkxDQW5VaWRkTENBbllXeHNYMkpzZFdVblhTeGNiaUFnSUNBZ0lGMHNJR1poYkhObExDQkJiV2x1YjJGamFXUnpVR0ZzWlhSMFpYTXBPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXNaWE5yTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCemRHRjBhV01nWjNKdmEwZHliM1Z3Y3pvZ1UyVnhVR0ZzWlhSMFpUdGNibHh1SUNCd2RXSnNhV01nYzNSaGRHbGpJR2RsZENCSGNtOXJSM0p2ZFhCektDazZJRk5sY1ZCaGJHVjBkR1VnZTF4dUlDQWdJR2xtSUNoMGFHbHpMbWR5YjJ0SGNtOTFjSE1nUFQwOUlIWnZhV1FnTUNrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTVuY205clIzSnZkWEJ6SUQwZ2RHaHBjeTV0WVd0bFVHRnNaWFIwWlNoYlhHNGdJQ0FnSUNBZ0lGdGJKME1uTENBblZTZGRMQ0FuZVdWc2JHOTNKMTBzWEc0Z0lDQWdJQ0FnSUZ0YkowY25MQ0FuVUNkZExDQW5jbVZrSjEwc1hHNGdJQ0FnSUNBZ0lGdGJKMEVuTENBblZpY3NJQ2RKSnl3Z0owd25MQ0FuVFNjc0lDZEdKeXdnSjFrbkxDQW5WeWRkTENBbllXeHNYMmR5WldWdUoxMHNYRzRnSUNBZ0lDQWdJRnRiSjFJbkxDQW5TQ2NzSUNkTEoxMHNJQ2RzYVdkb2RGOWliSFZsSjEwc1hHNGdJQ0FnSUNBZ0lGdGJKMFFuTENBblJTZGRMQ0FuWkdGeWExOWliSFZsSjEwc1hHNGdJQ0FnSUNBZ0lGdGJKMU1uTENBblZDY3NJQ2RPSnl3Z0oxRW5YU3dnSjI5eVlXNW5aU2RkTEZ4dUlDQWdJQ0FnWFN3Z1ptRnNjMlVzSUVGdGFXNXZZV05wWkhOUVlXeGxkSFJsY3lrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1keWIydEhjbTkxY0hNN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElITjBZWFJwWXlCeVlYTk5iMnc2SUZObGNWQmhiR1YwZEdVN1hHNWNiaUFnY0hWaWJHbGpJSE4wWVhScFl5Qm5aWFFnVW1GelRXOXNLQ2s2SUZObGNWQmhiR1YwZEdVZ2UxeHVJQ0FnSUdsbUlDaDBhR2x6TG5KaGMwMXZiQ0E5UFQwZ2RtOXBaQ0F3S1NCN1hHNGdJQ0FnSUNCMGFHbHpMbkpoYzAxdmJDQTlJRzVsZHlCQmJXbHViMkZqYVdSelVHRnNaWFIwWlhNb2UxeHVJQ0FnSUNBZ0lDQXZMeUJvZEhSd09pOHZZV05qWlhNdVpXNXpMV3g1YjI0dVpuSXZZbWx2ZEdsakwzSmhjM1J2Y0M5b1pXeHdMMk52Ykc5MWNpNW9kRzFjYmlBZ0lDQWdJQ0FnSjBRbk9pQW5JMFUyTUVFd1FTY3NJQzh2SUdGemNDd2dZWE53WVhKMGFXTWdZV05wWkN3Z1lYTndYRzRnSUNBZ0lDQWdJQ2RGSnpvZ0p5TkZOakJCTUVFbkxDQXZMeUJuYkhVc0lHZHNkWFJoYldsaklHRmphV1JjYmlBZ0lDQWdJQ0FnSjBNbk9pQW5JMFUyUlRZd01DY3NJQzh2SUdONWN5d2dZM2x6ZEdWcGJtVmNiaUFnSUNBZ0lDQWdKMDBuT2lBbkkwVTJSVFl3TUNjc0lDOHZJRzFsZEN3Z2JXVjBhR2x2Ym1sdVpWeHVJQ0FnSUNBZ0lDQW5TeWM2SUNjak1UUTFRVVpHSnl3Z0x5OGdiSGx6TENCc2VYTnBibVZjYmlBZ0lDQWdJQ0FnSjFJbk9pQW5JekUwTlVGR1JpY3NJQzh2SUdGeVp5d2dZWEpuYVc1cGJtVmNiaUFnSUNBZ0lDQWdKMU1uT2lBbkkwWkJPVFl3TUNjc0lDOHZJSE5sY2l3Z2MyVnlhVzVsWEc0Z0lDQWdJQ0FnSUNkVUp6b2dKeU5HUVRrMk1EQW5MQ0F2THlCMGFISXNJSFJvY21WdmJtbHVaVnh1SUNBZ0lDQWdJQ0FuUmljNklDY2pNekl6TWtGQkp5d2dMeThnY0dobExDQndhR1Z1ZVd4aGJHRnVhVzVsWEc0Z0lDQWdJQ0FnSUNkWkp6b2dKeU16TWpNeVFVRW5MQ0F2THlCMGVYSXNJSFI1Y205emFXNWxYRzRnSUNBZ0lDQWdJQ2RPSnpvZ0p5TXdNRVJEUkVNbkxDQXZMeUJoYzI0c0lHRnpjR0Z5WVdkcGJtVmNiaUFnSUNBZ0lDQWdKMUVuT2lBbkl6QXdSRU5FUXljc0lDOHZJR2RzYml3Z1oyeDFkR0Z0YVc1bFhHNGdJQ0FnSUNBZ0lDZEhKem9nSnlORlFrVkNSVUluTENBdkx5Qm5iSGtzSUdkc2VXTnBibVZjYmlBZ0lDQWdJQ0FnSjB3bk9pQW5JekJHT0RJd1JpY3NJQzh2SUd4bGRTd2diR1YxWTJsdVpWeHVJQ0FnSUNBZ0lDQW5WaWM2SUNjak1FWTRNakJHSnl3Z0x5OGdkbUZzTENCMllXeHBibVZjYmlBZ0lDQWdJQ0FnSjBrbk9pQW5JekJHT0RJd1JpY3NJQzh2SUdsc1pTd2dhWE52YkdWMVkybHVaVnh1SUNBZ0lDQWdJQ0FuUVNjNklDY2pRemhET0VNNEp5d2dMeThnWVd4aExDQmhiR0Z1YVc1bFhHNGdJQ0FnSUNBZ0lDZFhKem9nSnlOQ05EVkJRalFuTENBdkx5QjBjbkFzSUhSeWVYQjBiM0JvWVc1Y2JpQWdJQ0FnSUNBZ0owZ25PaUFuSXpneU9ESkVNaWNzSUM4dklHaHBjeXdnYUdsemRHbGthVzVsWEc0Z0lDQWdJQ0FnSUNkUUp6b2dKeU5FUXprMk9ESW5MQ0F2THlCd2NtOHNJSEJ5YjJ4cGJtVmNiaUFnSUNBZ0lDQWdKMjkwYUdWeWN5YzZJQ2NqUWtWQk1EWkZKeXhjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTV5WVhOTmIydzdYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdiM1psY25KcFpHVWdaMlYwS0cwNklITjBjbWx1WnlrNklITjBjbWx1WnlCN1hHNGdJQ0FnWTI5dWMzUWdjbVZ6VFNBOUlHMGdhVzRnUVcxcGJtOWhZMmxrYzFCaGJHVjBkR1Z6TG1GaFUzbHViMjU1YlhNZ1B5QkJiV2x1YjJGamFXUnpVR0ZzWlhSMFpYTXVZV0ZUZVc1dmJubHRjMXR0WFNBNklHMDdYRzRnSUNBZ1kyOXVjM1FnY21WeklEMGdjM1Z3WlhJdVoyVjBLSEpsYzAwcE8xeHVJQ0FnSUhKbGRIVnliaUJ5WlhNN1hHNGdJSDFjYmx4dUlDQXZLaW9nVDI1c2VTQnpiMjFsSUc5bUlIUm9aU0J6ZVc1dmJubHRjeTRnVkdobGMyVWdkMlZ5WlNCdlluUmhhVzVsWkNCbWNtOXRJSFJvWlNCamJIVnpkR1Z5WldRZ2IyeHBaMjl3WlhCMGFXUmxJR1JoZEdGelpYUXVJQ292WEc0Z0lIQnlhWFpoZEdVZ2MzUmhkR2xqSUdGaFUzbHViMjU1YlhNNklIc2dXMjVoYldVNklITjBjbWx1WjEwNklITjBjbWx1WnlCOUlEMGdlMXh1SUNBZ0lDZE5aVTVzWlNjNklDZE1KeXdnTHk4Z1RteGxJQzBnYm05eWJHVjFZMmx1WlZ4dUlDQWdJQ2ROWlVFbk9pQW5RU2NzWEc0Z0lDQWdKMDFsUnljNklDZEhKeXhjYmlBZ0lDQW5UV1ZHSnpvZ0owWW5MRnh1SUNCOU8xeHVmVnh1WEc1bGVIQnZjblFnWTJ4aGMzTWdRVzFwYm05aFkybGtjeUI3WEc0Z0lITjBZWFJwWXlCeVpXRmtiMjVzZVNCVFpXMVVlWEJsT2lCemRISnBibWNnUFNBblFXMXBibTloWTJsa2N5YzdYRzVjYmlBZ2MzUmhkR2xqSUhKbFlXUnZibXg1SUZObGJWUjVjR1ZOZFd4MGFYQnNaVUZzYVdkdWJXVnVkRG9nYzNSeWFXNW5JRDBnSjBGdGFXNXZZV05wWkhOTmRXeDBhWEJzWlVGc2FXZHViV1Z1ZENjN1hHNWNiaUFnYzNSaGRHbGpJSFZ1WkdWbWFXNWxaRU52Ykc5eUlEMGdKM0puWWlneE1EQXNNVEF3TERFd01Da25PMXh1WEc0Z0lIQjFZbXhwWXlCemRHRjBhV01nVG1GdFpYTTZJRk4wY21sdVowUnBZM1JwYjI1aGNua2dQU0I3WEc0Z0lDQWdKMGNuT2lBblIyeDVZMmx1WlNjc1hHNGdJQ0FnSjB3bk9pQW5UR1YxWTJsdVpTY3NYRzRnSUNBZ0oxa25PaUFuVkhseWIzTnBibVVuTEZ4dUlDQWdJQ2RUSnpvZ0oxTmxjbWx1WlNjc1hHNGdJQ0FnSjBVbk9pQW5SMngxZEdGdGFXTWdZV05wWkNjc1hHNGdJQ0FnSjFFbk9pQW5SMngxZEdGdGFXNWxKeXhjYmlBZ0lDQW5SQ2M2SUNkQmMzQmhjblJwWXlCaFkybGtKeXhjYmlBZ0lDQW5UaWM2SUNkQmMzQmhjbUZuYVc1bEp5eGNiaUFnSUNBblJpYzZJQ2RRYUdWdWVXeGhiR0Z1YVc1bEp5eGNiaUFnSUNBblFTYzZJQ2RCYkdGdWFXNWxKeXhjYmlBZ0lDQW5TeWM2SUNkTWVYTnBibVVuTEZ4dUlDQWdJQ2RTSnpvZ0owRnlaMmx1YVc1bEp5eGNiaUFnSUNBblNDYzZJQ2RJYVhOMGFXUnBibVVuTEZ4dUlDQWdJQ2RESnpvZ0owTjVjM1JsYVc1bEp5eGNiaUFnSUNBblZpYzZJQ2RXWVd4cGJtVW5MRnh1SUNBZ0lDZFFKem9nSjFCeWIyeHBibVVuTEZ4dUlDQWdJQ2RYSnpvZ0oxUnllWEIwYjNCb1lXNG5MRnh1SUNBZ0lDZEpKem9nSjBsemIyeGxkV05wYm1VbkxGeHVJQ0FnSUNkTkp6b2dKMDFsZEdocGIyNXBibVVuTEZ4dUlDQWdJQ2RVSnpvZ0oxUm9jbVZ2Ym1sdVpTY3NYRzRnSUgwN1hHNWNiaUFnY0hWaWJHbGpJSE4wWVhScFl5QkJRVk50YVd4bGN6b2dVM1J5YVc1blJHbGpkR2x2Ym1GeWVTQTlJSHRjYmlBZ0lDQW5SeWM2SUNkT1EwTW9QVThwVHljc1hHNGdJQ0FnSjB3bk9pQW5UbHREUUVoZEtFTkRLRU1wUXlsREtEMVBLVThuTEZ4dUlDQWdJQ2RaSnpvZ0owNURLRU5ETVQxRFF6MURLRThwUXoxRE1TbERLRDFQS1U4bkxGeHVJQ0FnSUNkVEp6b2dKMDVES0VOUEtVTW9QVThwVHljc1hHNGdJQ0FnSjBVbk9pQW5UbHREUUVCSVhTaERRME1vVHlrOVR5bERLRDFQS1U4bkxGeHVJQ0FnSUNkUkp6b2dKMDViUTBCQVNGMG9RME5ES0U0cFBVOHBReWc5VHlsUEp5eGNiaUFnSUNBblJDYzZJQ2RPVzBOQVFFaGRLRU5ES0U4cFBVOHBReWc5VHlsUEp5eGNiaUFnSUNBblRpYzZJQ2RPVzBOQVFFaGRLRU5ES0U0cFBVOHBReWc5VHlsUEp5eGNiaUFnSUNBblJpYzZJQ2RPUXloRFF6RTlRME05UTBNOVF6RXBReWc5VHlsUEp5eGNiaUFnSUNBblFTYzZJQ2RPVzBOQVNGMG9ReWxES0QxUEtVOG5MRnh1SUNBZ0lDZExKem9nSjA1REtFTkRRME5PS1VNb1BVOHBUeWNzWEc0Z0lDQWdKMUluT2lBblRsdERRRWhkS0VORFEwNURLRDFPS1VNcFF5ZzlUeWxQSnl4Y2JpQWdJQ0FuU0NjNklDZE9ReWhEUXpFOVEwNDlRMXRPWFRFcFF5ZzlUeWxQSnl4Y2JpQWdJQ0FuUXljNklDZE9XME5BUUVoZEtFTlRLVU1vUFU4cFR5Y3NYRzRnSUNBZ0oxWW5PaUFuVGtNb1F5aERLVU1wUXlnOVR5bFBKeXhjYmlBZ0lDQW5VQ2M2SUNkT0tFTkRRekVwUXpGREtEMVBLVThuTEZ4dUlDQWdJQ2RYSnpvZ0owNWJRMEJBU0Ywb1EyTXhZekpqWTJOall6SnVLRnRJWFNsak1TbERLRDFQS1U4bkxGeHVJQ0FnSUNkSkp6b2dKMDViUTBCSVhTaGJRMEJJWFNoREtVTkRLVU1vUFU4cFR5Y3NYRzRnSUNBZ0owMG5PaUFuVGtNb1EwTlRReWxES0QxUEtVOG5MRnh1SUNBZ0lDZFVKem9nSjA1REtFTW9UeWxES1VNb1BVOHBUeWNzWEc0Z0lIMDdYRzVjYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJCUVZOdGFXeGxjMVJ5ZFc1allYUmxaRG9nVTNSeWFXNW5SR2xqZEdsdmJtRnllU0E5SUh0Y2JpQWdJQ0FuUnljNklDY3FReW9uTEZ4dUlDQWdJQ2RNSnpvZ0owTkRLRU1wUTF0RFFFaGRLQ29wS2ljc1hHNGdJQ0FnSjFrbk9pQW5RekU5UTBNb1BVTkRQVU14UTBNb0tpa3FLVThuTEZ4dUlDQWdJQ2RUSnpvZ0owOURReWdxS1VNcUp5eGNiaUFnSUNBblJTYzZJQ2NxVzBOQVFFaGRLRU5EUXloUEtUMVBLU29uTEZ4dUlDQWdJQ2RSSnpvZ0p5cE9XME5BUUVoZEtFTkRReWhPS1QxUEtTb25MRnh1SUNBZ0lDZEVKem9nSnlwYlEwQkFTRjBvUTBNb1R5azlUeWtxSnl4Y2JpQWdJQ0FuVGljNklDY3FXME5BUUVoZEtFTkRLRTRwUFU4cEtpY3NYRzRnSUNBZ0owWW5PaUFuUXpFOVEwTTlReWhEUFVNeEtVTkRLQ29wS2ljc1hHNGdJQ0FnSjBFbk9pQW5RMXREUUVoZEtDb3BLaWNzWEc0Z0lDQWdKMHNuT2lBblF5aERRMDRwUTBNb0tpa3FKeXhjYmlBZ0lDQW5VaWM2SUNjcVcwTkFTRjBvUTBORFRrTW9QVTRwUXlrcUp5eGNiaUFnSUNBblNDYzZJQ2RETVQxREtFNURQVTR4S1VOREtDb3BLaWNzWEc0Z0lDQWdKME1uT2lBblF5aGJRMEJBU0Ywb0tpa3FLVk1uTEZ4dUlDQWdJQ2RXSnpvZ0owTkRLRU1wUXlncUtTb25MRnh1SUNBZ0lDZFFKem9nSjBNeFEwTk9LQ29wUXpFcUp5eGNiaUFnSUNBblZ5YzZJQ2NxVzBOQVFFaGRLRU5qTVdNeVkyTmpZMk15YmloYlNGMHBZekVwS2ljc1hHNGdJQ0FnSjBrbk9pQW5RME5iUTBCSVhTaERLVnREUUVoZEtDb3BLaWNzWEc0Z0lDQWdKMDBuT2lBblExTkRRME1vS2lrcUp5eGNiaUFnSUNBblZDYzZJQ2REUXloUEtVTW9LaWtxSnl4Y2JpQWdmVHRjYmx4dUlDQXZLaW9nVkU5RVR6b2dSblZzYkQ5Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCemRHRjBhV01nUVVGR2RXeHNUbUZ0WlhNNklGTjBjbWx1WjBScFkzUnBiMjVoY25rZ1BTQjdYRzRnSUNBZ0owRnNZU2M2SUNkQkp5eGNiaUFnSUNBblFYSm5Kem9nSjFJbkxGeHVJQ0FnSUNkQmMyNG5PaUFuVGljc1hHNGdJQ0FnSjBGemNDYzZJQ2RFSnl4Y2JpQWdJQ0FuUTNsekp6b2dKME1uTEZ4dUlDQWdJQ2RIYkc0bk9pQW5VU2NzWEc0Z0lDQWdKMGRzZFNjNklDZEZKeXhjYmlBZ0lDQW5SMng1SnpvZ0owY25MRnh1SUNBZ0lDZElhWE1uT2lBblNDY3NYRzRnSUNBZ0owbHNaU2M2SUNkSkp5eGNiaUFnSUNBblRHVjFKem9nSjB3bkxGeHVJQ0FnSUNkTWVYTW5PaUFuU3ljc1hHNGdJQ0FnSjAxbGRDYzZJQ2ROSnl4Y2JpQWdJQ0FuVUdobEp6b2dKMFluTEZ4dUlDQWdJQ2RRY204bk9pQW5VQ2NzWEc0Z0lDQWdKMU5sY2ljNklDZFRKeXhjYmlBZ0lDQW5WR2h5SnpvZ0oxUW5MRnh1SUNBZ0lDZFVjbkFuT2lBblZ5Y3NYRzRnSUNBZ0oxUjVjaWM2SUNkWkp5eGNiaUFnSUNBblZtRnNKem9nSjFZbkxGeHVJQ0I5TzF4dVhHNGdJSEIxWW14cFl5QnpkR0YwYVdNZ1oyVjBVR0ZzWlhSMFpTaHpZMmhsYldVNklITjBjbWx1WnlBOUlDZG5jbTlySnlrNklGTmxjVkJoYkdWMGRHVWdlMXh1SUNBZ0lITjNhWFJqYUNBb2MyTm9aVzFsS1NCN1hHNGdJQ0FnWTJGelpTQW5aM0p2YXljNlhHNGdJQ0FnSUNCeVpYUjFjbTRnUVcxcGJtOWhZMmxrYzFCaGJHVjBkR1Z6TGtkeWIydEhjbTkxY0hNN1hHNGdJQ0FnWTJGelpTQW5iR1Z6YXljNlhHNGdJQ0FnSUNCeVpYUjFjbTRnUVcxcGJtOWhZMmxrYzFCaGJHVjBkR1Z6TGt4bGMyczdYRzRnSUNBZ1pHVm1ZWFZzZERwY2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhnUTJobGJWQmhiR1YwZEdVNklITmphR1Z0WlNCY1hHQWtlM05qYUdWdFpYMWNYR0FnWkc5bGN5QnViM1FnWlhocGMzUmdLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVW1WMGRYSnVjeUJrYVhacFpHVmtJR0Z0YVc1dklHRmphV1FnZDJsMGFDQnBkSE1nWTI5dWRHVnVkQ0JwYmlCMGFHVWdZbkpoWTJ0bGRDd2dhV1lnZEdobElHTnZiblJsYm5RZ2FYTWdiblZ0WW1WeUxDQjBhR1Z1SUdsMGN5QnZiV2wwZEdWa1hHNGdJQ0FxWEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQmpJSEpoZHlCaGJXbHViMXh1SUNBZ0tpQkFjbVYwZFhKdUlIdGJjM1J5YVc1bkxDQnpkSEpwYm1kZGZTQnZkWFJsY2lCaGJtUWdhVzV1WlhJZ1kyOXVkR1Z1ZEZ4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJuWlhSSmJtNWxjazkxZEdWeUtHTTZJSE4wY21sdVp5azZJRnR6ZEhKcGJtY3NJSE4wY21sdVoxMGdlMXh1SUNBZ0lHeGxkQ0JwYzBsdWJtVnlJRDBnTUR0Y2JpQWdJQ0JzWlhRZ2FXNXVaWElnUFNBbkp6dGNiaUFnSUNCc1pYUWdiM1YwWlhJZ1BTQW5KenRjYmx4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnWTJoaGNpQnZaaUJqS1NCN1hHNGdJQ0FnSUNCcFppQW9ZMmhoY2lBOVBTQW5LQ2NwWEc0Z0lDQWdJQ0FnSUdselNXNXVaWElyS3p0Y2JpQWdJQ0FnSUdWc2MyVWdhV1lnS0dOb1lYSWdQVDBnSnlrbktWeHVJQ0FnSUNBZ0lDQnBjMGx1Ym1WeUxTMDdYRzRnSUNBZ0lDQmxiSE5sSUdsbUlDaHBjMGx1Ym1WeUtWeHVJQ0FnSUNBZ0lDQnBibTVsY2lBclBTQmphR0Z5TzF4dUlDQWdJQ0FnWld4elpWeHVJQ0FnSUNBZ0lDQnZkWFJsY2lBclBTQmphR0Z5TzF4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQWhhWE5PWVU0b2NHRnljMlZKYm5Rb2FXNXVaWElwS1NBL0lGdHZkWFJsY2l3Z0p5ZGRJRG9nVzI5MWRHVnlMQ0JwYm01bGNsMDdYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklHZGxkRU52Ykc5eVFVRlFhWFp2ZENodGIyNXZiV1Z5T2lCemRISnBibWNnUFNBbkp5d2djMk5vWlcxbE9pQW5aM0p2YXljZ1BTQW5aM0p2YXljcE9pQmJjM1J5YVc1bkxDQnpkSEpwYm1jc0lITjBjbWx1Wnl3Z2JuVnRZbVZ5WFNCN1hHNGdJQ0FnTHk5amIyNXpkQ0JqYUdWdFVHRnNaWFIwWlVsdWMzUmhibU5sSUQwZ1FVRlFZV3hsZEhSbGN5NUhjbTlyUjNKdmRYQnpLQ2s3WEc0Z0lDQWdZMjl1YzNRZ1kyaGxiVkJoYkdWMGRHVkpibk4wWVc1alpTQTlJSFJvYVhNdVoyVjBVR0ZzWlhSMFpTaHpZMmhsYldVcE8xeHVJQ0FnSUd4bGRDQmJiM1YwWlhKTmIyNXZiV1Z5TENCcGJtNWxjazF2Ym05dFpYSmRJRDBnZEdocGN5NW5aWFJKYm01bGNrOTFkR1Z5S0cxdmJtOXRaWElwTzF4dUlDQWdJRzkxZEdWeVRXOXViMjFsY2lBOUlDaHZkWFJsY2sxdmJtOXRaWEl1YkdWdVozUm9JRDRnTmlBL0lHQWtlMjkxZEdWeVRXOXViMjFsY2k1emJHbGpaU2d3TENBektYMHVMaTVnSURvZ2IzVjBaWEpOYjI1dmJXVnlLVHRjYmlBZ0lDQnBibTVsY2sxdmJtOXRaWElnUFNBb2FXNXVaWEpOYjI1dmJXVnlMbXhsYm1kMGFDQStJRFlnUHlCZ0pIdHBibTVsY2sxdmJtOXRaWEl1YzJ4cFkyVW9NQ3dnTXlsOUxpNHVZQ0E2SUdsdWJtVnlUVzl1YjIxbGNpazdYRzVjYmlBZ0lDQnBaaUFvYlc5dWIyMWxjaTVzWlc1bmRHZ2dQVDBnTVNCOGZDQnRiMjV2YldWeVd6RmRJRDA5SUNjb0p5a2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ1lXMXBibThnUFNCdGIyNXZiV1Z5V3pCZFB5NTBiMVZ3Y0dWeVEyRnpaU2dwSVR0Y2JpQWdJQ0FnSUhKbGRIVnliaUJoYldsdWJ5QnBiaUJqYUdWdFVHRnNaWFIwWlVsdWMzUmhibU5sSUQ5Y2JpQWdJQ0FnSUNBZ1cyTm9aVzFRWVd4bGRIUmxTVzV6ZEdGdVkyVXVaMlYwS0dGdGFXNXZLU3dnWVcxcGJtOHNJR2x1Ym1WeVRXOXViMjFsY2l3Z01WMGdPbHh1SUNBZ0lDQWdJQ0JiZEdocGN5NTFibVJsWm1sdVpXUkRiMnh2Y2l3Z2IzVjBaWEpOYjI1dmJXVnlMQ0JwYm01bGNrMXZibTl0WlhJc0lERmRPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2h0YjI1dmJXVnlXekJkSUQwOUlDZGtKeUFtSmlCdGIyNXZiV1Z5V3pGZElTQnBiaUJqYUdWdFVHRnNaWFIwWlVsdWMzUmhibU5sS1NCN1hHNGdJQ0FnSUNCcFppQW9iVzl1YjIxbGNpNXNaVzVuZEdnZ1BUMGdNaUI4ZkNCdGIyNXZiV1Z5V3pKZElEMDlJQ2NvSnlrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCaGJXbHVieUE5SUcxdmJtOXRaWEpiTVYwL0xuUnZWWEJ3WlhKRFlYTmxLQ2toTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWVcxcGJtOGdhVzRnWTJobGJWQmhiR1YwZEdWSmJuTjBZVzVqWlNBL1hHNGdJQ0FnSUNBZ0lDQWdXMk5vWlcxUVlXeGxkSFJsU1c1emRHRnVZMlV1WjJWMEtHRnRhVzV2S1N3Z1lXMXBibThzSUdsdWJtVnlUVzl1YjIxbGNpd2dNbDBnT2x4dUlDQWdJQ0FnSUNBZ0lGdDBhR2x6TG5WdVpHVm1hVzVsWkVOdmJHOXlMQ0J2ZFhSbGNrMXZibTl0WlhJc0lHbHVibVZ5VFc5dWIyMWxjaXdnTWwwN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tHMXZibTl0WlhJdWMzVmljM1J5YVc1bktEQXNJRE1wSUdsdUlIUm9hWE11UVVGR2RXeHNUbUZ0WlhNcElIdGNiaUFnSUNBZ0lHbG1JQ2h0YjI1dmJXVnlMbXhsYm1kMGFDQTlQU0F6SUh4OElHMXZibTl0WlhKYk0xMGdQVDBnSnlnbktTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHRnRhVzV2SUQwZ2RHaHBjeTVCUVVaMWJHeE9ZVzFsYzF0dGIyNXZiV1Z5TG5OMVluTjBjbWx1Wnlnd0xDQXpLVjA3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJoYldsdWJ5QnBiaUJqYUdWdFVHRnNaWFIwWlVsdWMzUmhibU5sSUQ5Y2JpQWdJQ0FnSUNBZ0lDQmJZMmhsYlZCaGJHVjBkR1ZKYm5OMFlXNWpaUzVuWlhRb1lXMXBibThwTENCaGJXbHVieXdnYVc1dVpYSk5iMjV2YldWeUxDQXpYU0E2WEc0Z0lDQWdJQ0FnSUNBZ1czUm9hWE11ZFc1a1pXWnBibVZrUTI5c2IzSXNJRzkxZEdWeVRXOXViMjFsY2l3Z2FXNXVaWEpOYjI1dmJXVnlMQ0F6WFR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb2JXOXViMjFsY2xzd1hUOHVkRzlNYjNkbGNrTmhjMlVvS1NBOVBTQnRiMjV2YldWeVd6QmRLU0I3WEc0Z0lDQWdJQ0JwWmlBb2JXOXViMjFsY2k1emRXSnpkSEpwYm1jb01Td2dNeWtnYVc0Z2RHaHBjeTVCUVVaMWJHeE9ZVzFsY3lrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvYlc5dWIyMWxjaTVzWlc1bmRHZ2dQVDBnTkNCOGZDQnRiMjV2YldWeVd6UmRJRDA5SUNjb0p5a2dlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR0Z0YVc1dklEMGdkR2hwY3k1QlFVWjFiR3hPWVcxbGMxdHRiMjV2YldWeUxuTjFZbk4wY21sdVp5Z3hMQ0F6S1YwN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHRnRhVzV2SUdsdUlHTm9aVzFRWVd4bGRIUmxTVzV6ZEdGdVkyVWdQMXh1SUNBZ0lDQWdJQ0FnSUNBZ1cyTm9aVzFRWVd4bGRIUmxTVzV6ZEdGdVkyVXVaMlYwS0dGdGFXNXZLU3dnWVcxcGJtOHNJR2x1Ym1WeVRXOXViMjFsY2l3Z05GMGdPbHh1SUNBZ0lDQWdJQ0FnSUNBZ1czUm9hWE11ZFc1a1pXWnBibVZrUTI5c2IzSXNJRzkxZEdWeVRXOXViMjFsY2l3Z2FXNXVaWEpOYjI1dmJXVnlMQ0EwWFR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUJiZEdocGN5NTFibVJsWm1sdVpXUkRiMnh2Y2l3Z2IzVjBaWEpOYjI1dmJXVnlMQ0JwYm01bGNrMXZibTl0WlhJc0lEQmRPMXh1SUNCOVhHNTlYRzRpWFgwPSIsImltcG9ydCB7IFNlcVBhbGV0dGVCYXNlIH0gZnJvbSAnLi9zZXEtcGFsZXR0ZXMnO1xuZXhwb3J0IGNsYXNzIE51Y2xlb3RpZGVzUGFsZXR0ZXMgZXh0ZW5kcyBTZXFQYWxldHRlQmFzZSB7XG4gICAgc3RhdGljIGdldCBDaHJvbWF0b2dyYW0oKSB7XG4gICAgICAgIGlmICh0aGlzLmNocm9tYXRvZ3JhbSA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgICB0aGlzLmNocm9tYXRvZ3JhbSA9IG5ldyBOdWNsZW90aWRlc1BhbGV0dGVzKHtcbiAgICAgICAgICAgICAgICAnQSc6ICdncmVlbicsXG4gICAgICAgICAgICAgICAgJ0MnOiAnYmx1ZScsXG4gICAgICAgICAgICAgICAgJ0cnOiAnYmxhY2snLFxuICAgICAgICAgICAgICAgICdUJzogJ3JlZCcsXG4gICAgICAgICAgICAgICAgJ1UnOiAncmVkJyxcbiAgICAgICAgICAgICAgICAnb3RoZXJzJzogJ2dyYXknLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuY2hyb21hdG9ncmFtO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBOdWNsZW90aWRlcyB7XG59XG5OdWNsZW90aWRlcy5TZW1UeXBlID0gJ051Y2xlb3RpZGVzJztcbk51Y2xlb3RpZGVzLlNlbVR5cGVNdWx0aXBsZUFsaWdubWVudCA9ICdOdWNsZW90aWRlc011bHRpcGxlQWxpZ25tZW50Jztcbk51Y2xlb3RpZGVzLk5hbWVzID0ge1xuICAgICdBJzogJ0FkZW5pbmUnLFxuICAgICdDJzogJ0N5dG9zaW5lJyxcbiAgICAnRyc6ICdHdWFuaW5lJyxcbiAgICAnVCc6ICdUaHltaW5lJyxcbiAgICAnVSc6ICdVcmFjaWwnLFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWJuVmpiR1Z2ZEdsa1pYTXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKdWRXTnNaVzkwYVdSbGN5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZMUVN4UFFVRlBMRVZCUVdFc1kwRkJZeXhGUVVGRExFMUJRVTBzWjBKQlFXZENMRU5CUVVNN1FVRkZNVVFzVFVGQlRTeFBRVUZQTEcxQ1FVRnZRaXhUUVVGUkxHTkJRV003U1VGSE9VTXNUVUZCVFN4TFFVRkxMRmxCUVZrN1VVRkROVUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNXVUZCV1N4TFFVRkxMRXRCUVVzc1EwRkJReXhGUVVGRk8xbEJRMmhETEVsQlFVa3NRMEZCUXl4WlFVRlpMRWRCUVVjc1NVRkJTU3h0UWtGQmJVSXNRMEZCUXp0blFrRkRNVU1zUjBGQlJ5eEZRVUZGTEU5QlFVODdaMEpCUTFvc1IwRkJSeXhGUVVGRkxFMUJRVTA3WjBKQlExZ3NSMEZCUnl4RlFVRkZMRTlCUVU4N1owSkJRMW9zUjBGQlJ5eEZRVUZGTEV0QlFVczdaMEpCUTFZc1IwRkJSeXhGUVVGRkxFdEJRVXM3WjBKQlExWXNVVUZCVVN4RlFVRkZMRTFCUVUwN1lVRkRha0lzUTBGQlF5eERRVUZETzFOQlEwbzdVVUZEUkN4UFFVRlBMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU03U1VGRE0wSXNRMEZCUXp0RFFVTkdPMEZCUlVRc1RVRkJUU3hQUVVGUExGZEJRVmM3TzBGQlEwNHNiVUpCUVU4c1IwRkJWeXhoUVVGaExFTkJRVU03UVVGRmFFTXNiME5CUVhkQ0xFZEJRVmNzT0VKQlFUaENMRU5CUVVNN1FVRkZjRVVzYVVKQlFVc3NSMEZCY1VJN1NVRkRkRU1zUjBGQlJ5eEZRVUZGTEZOQlFWTTdTVUZEWkN4SFFVRkhMRVZCUVVVc1ZVRkJWVHRKUVVObUxFZEJRVWNzUlVGQlJTeFRRVUZUTzBsQlEyUXNSMEZCUnl4RlFVRkZMRk5CUVZNN1NVRkRaQ3hIUVVGSExFVkJRVVVzVVVGQlVUdERRVU5rTEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdLaUJoY3lCbmNtOXJJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzluY205ckp6dGNibWx0Y0c5eWRDQXFJR0Z6SUhWcElHWnliMjBnSjJSaGRHRm5jbTlyTFdGd2FTOTFhU2M3WEc1cGJYQnZjblFnS2lCaGN5QkVSeUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2Wkdjbk8xeHVYRzVwYlhCdmNuUWdlMU4wY21sdVowUnBZM1JwYjI1aGNubDlJR1p5YjIwZ0owQmtZWFJoWjNKdmF5MXNhV0p5WVhKcFpYTXZkWFJwYkhNdmMzSmpMM1I1Y0dVdFpHVmpiR0Z5WVhScGIyNXpKenRjYm1sdGNHOXlkQ0I3VTJWeFVHRnNaWFIwWlN3Z1UyVnhVR0ZzWlhSMFpVSmhjMlY5SUdaeWIyMGdKeTR2YzJWeExYQmhiR1YwZEdWekp6dGNibHh1Wlhod2IzSjBJR05zWVhOeklFNTFZMnhsYjNScFpHVnpVR0ZzWlhSMFpYTWdaWGgwWlc1a2N5QlRaWEZRWVd4bGRIUmxRbUZ6WlNCN1hHNGdJSEJ5YVhaaGRHVWdjM1JoZEdsaklHTm9jbTl0WVhSdlozSmhiVG9nVTJWeFVHRnNaWFIwWlR0Y2JseHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklHZGxkQ0JEYUhKdmJXRjBiMmR5WVcwb0tUb2dVMlZ4VUdGc1pYUjBaU0I3WEc0Z0lDQWdhV1lnS0hSb2FYTXVZMmh5YjIxaGRHOW5jbUZ0SUQwOVBTQjJiMmxrSURBcElIdGNiaUFnSUNBZ0lIUm9hWE11WTJoeWIyMWhkRzluY21GdElEMGdibVYzSUU1MVkyeGxiM1JwWkdWelVHRnNaWFIwWlhNb2UxeHVJQ0FnSUNBZ0lDQW5RU2M2SUNkbmNtVmxiaWNzWEc0Z0lDQWdJQ0FnSUNkREp6b2dKMkpzZFdVbkxGeHVJQ0FnSUNBZ0lDQW5SeWM2SUNkaWJHRmpheWNzSUM4dklHOXlZVzVuWlNBL1hHNGdJQ0FnSUNBZ0lDZFVKem9nSjNKbFpDY3NYRzRnSUNBZ0lDQWdJQ2RWSnpvZ0ozSmxaQ2NzWEc0Z0lDQWdJQ0FnSUNkdmRHaGxjbk1uT2lBblozSmhlU2NzWEc0Z0lDQWdJQ0I5S1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WTJoeWIyMWhkRzluY21GdE8xeHVJQ0I5WEc1OVhHNWNibVY0Y0c5eWRDQmpiR0Z6Y3lCT2RXTnNaVzkwYVdSbGN5QjdYRzRnSUhOMFlYUnBZeUJ5WldGa2IyNXNlU0JUWlcxVWVYQmxPaUJ6ZEhKcGJtY2dQU0FuVG5WamJHVnZkR2xrWlhNbk8xeHVYRzRnSUhOMFlYUnBZeUJ5WldGa2IyNXNlU0JUWlcxVWVYQmxUWFZzZEdsd2JHVkJiR2xuYm0xbGJuUTZJSE4wY21sdVp5QTlJQ2RPZFdOc1pXOTBhV1JsYzAxMWJIUnBjR3hsUVd4cFoyNXRaVzUwSnp0Y2JseHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklFNWhiV1Z6T2lCVGRISnBibWRFYVdOMGFXOXVZWEo1SUQwZ2UxeHVJQ0FnSUNkQkp6b2dKMEZrWlc1cGJtVW5MRnh1SUNBZ0lDZERKem9nSjBONWRHOXphVzVsSnl4Y2JpQWdJQ0FuUnljNklDZEhkV0Z1YVc1bEp5eGNiaUFnSUNBblZDYzZJQ2RVYUhsdGFXNWxKeXhjYmlBZ0lDQW5WU2M2SUNkVmNtRmphV3duTEZ4dUlDQjlPMXh1ZlZ4dUlsMTkiLCJleHBvcnQgY2xhc3MgU2VxUGFsZXR0ZUJhc2Uge1xuICAgIHN0YXRpYyBtYWtlUGFsZXR0ZShkdCwgc2ltcGxpZmllZCA9IGZhbHNlLCBQYWxldHRlVHlwZSA9IFNlcVBhbGV0dGVCYXNlKSB7XG4gICAgICAgIGNvbnN0IHBhbGV0dGUgPSB7fTtcbiAgICAgICAgZHQuZm9yRWFjaCgoY3ApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9iakxpc3QgPSBjcFswXTtcbiAgICAgICAgICAgIGNvbnN0IGNvbG91ciA9IGNwWzFdO1xuICAgICAgICAgICAgb2JqTGlzdC5mb3JFYWNoKChvYmosIGluZCkgPT4ge1xuICAgICAgICAgICAgICAgIHBhbGV0dGVbb2JqXSA9IHRoaXMuY29sb3VyUGFsZXR0ZVtjb2xvdXJdW3NpbXBsaWZpZWQgPyAwIDogaW5kXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG5ldyBQYWxldHRlVHlwZShwYWxldHRlKTtcbiAgICB9XG4gICAgY29uc3RydWN0b3IocGFsZXR0ZSkge1xuICAgICAgICB0aGlzLl9wYWxldHRlID0gcGFsZXR0ZTtcbiAgICB9XG4gICAgZ2V0KG0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhbGV0dGVbbV07XG4gICAgfVxufVxuU2VxUGFsZXR0ZUJhc2UudW5kZWZpbmVkQ29sb3IgPSAncmdiKDEwMCwxMDAsMTAwKSc7XG4vKiogUGFsZXR0ZSB3aXRoIHNoYWRlcyBvZiBwcmltYXJ5IGNvbG9ycyAqL1xuU2VxUGFsZXR0ZUJhc2UuY29sb3VyUGFsZXR0ZSA9IHtcbiAgICAnb3JhbmdlJzogWydyZ2IoMjU1LDE4NywxMjApJywgJ3JnYigyNDUsMTY3LDEwMCknLCAncmdiKDIzNSwxMzcsNzApJywgJ3JnYigyMDUsIDExMSwgNzEpJ10sXG4gICAgJ2FsbF9ncmVlbic6IFsncmdiKDQ0LDE2MCw0NCknLCAncmdiKDc0LDE2MCw3NCknLCAncmdiKDIzLDEwMyw1NyknLCAncmdiKDMwLDExMCw5NiknLCAncmdiKDYwLDEzMSw5NSknLFxuICAgICAgICAncmdiKDI0LDExMCw3OSknLCAncmdiKDE1MiwyMjMsMTM4KScsICdyZ2IoMTgyLCAyMjMsIDEzOCknLCAncmdiKDE1MiwgMTkzLCAxMzgpJ10sXG4gICAgJ2FsbF9ibHVlJzogWydyZ2IoMzEsMTE5LDE4MCknLCAncmdiKDIzLDE5MCwyMDcpJywgJ3JnYigxMjIsIDEwMiwgMTg5KScsICdyZ2IoMTU4LDIxOCwyMjkpJywgJ3JnYigxNDEsIDEyNCwgMjE3KScsXG4gICAgICAgICdyZ2IoMzEsIDEyMCwgMTUwKSddLFxuICAgICdtYWdlbnRhJzogWydyZ2IoMTYyLDEwNiwxOTIpJywgJ3JnYigxOTcsMTY1LDIyNCknLCAncmdiKDIwOCwxMTMsMjE4KSddLFxuICAgICdyZWQnOiBbJ3JnYigyMTQsMzksNDApJywgJ3JnYigyNTUsMTUyLDE1MCknXSxcbiAgICAnc3RfYmx1ZSc6IFsncmdiKDIzLDE5MCwyMDcpJywgJ3JnYigxNTgsMjE4LDIyOSknLCAncmdiKDMxLDExOSwxODApJ10sXG4gICAgJ2RhcmtfYmx1ZSc6IFsncmdiKDMxLDExOSwxODApJywgJ3JnYigzMSwgMTIwLCAxNTApJ10sXG4gICAgJ2xpZ2h0X2JsdWUnOiBbJ3JnYigyMywxOTAsMjA3KScsICdyZ2IoMTU4LDIxOCwyMjkpJywgJ3JnYigxMDgsIDIxOCwgMjI5KScsICdyZ2IoMjMsMTkwLDIyNyknXSxcbiAgICAnbGlsYWNfYmx1ZSc6IFsncmdiKDEyNCwxMDIsMjExKScsICdyZ2IoMTQ5LDEzNCwyMTcpJywgJ3JnYig5NywgODEsIDE1MCknXSxcbiAgICAnZGFya19ncmVlbic6IFsncmdiKDIzLDEwMyw1NyknLCAncmdiKDMwLDExMCw5NiknLCAncmdiKDYwLDEzMSw5NSknLCAncmdiKDI0LDExMCw3OSknXSxcbiAgICAnZ3JlZW4nOiBbJ3JnYig0NCwxNjAsNDQpJywgJ3JnYig3NCwxNjAsNzQpJ10sXG4gICAgJ2xpZ2h0X2dyZWVuJzogWydyZ2IoMTUyLDIyMywxMzgpJywgJ3JnYigxODIsIDIyMywgMTM4KScsICdyZ2IoMTUyLCAxOTMsIDEzOCknXSxcbiAgICAnc3RfZ3JlZW4nOiBbJ3JnYig0NCwxNjAsNDQpJywgJ3JnYigxNTIsMjIzLDEzOCknLCAncmdiKDM5LCAxNzQsIDk2KScsICdyZ2IoNzQsMTYwLDc0KSddLFxuICAgICdwaW5rJzogWydyZ2IoMjQ3LDE4MiwyMTApJ10sXG4gICAgJ2Jyb3duJzogWydyZ2IoMTQwLDg2LDc1KScsICdyZ2IoMTAyLCA2MiwgNTQpJ10sXG4gICAgJ2dyYXknOiBbJ3JnYigxMjcsMTI3LDEyNyknLCAncmdiKDE5OSwxOTksMTk5KScsICdyZ2IoMTk2LDE1NiwxNDgpJywgJ3JnYigyMjIsIDIyMiwgMTgwKSddLFxuICAgICd5ZWxsb3cnOiBbJ3JnYigxODgsMTg5LDM0KSddLFxuICAgICd3aGl0ZSc6IFsncmdiKDIzMCwyMzAsMjMwKSddLFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWMyVnhMWEJoYkdWMGRHVnpMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaWMyVnhMWEJoYkdWMGRHVnpMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVdsQ1FTeE5RVUZOTEU5QlFVOHNZMEZCWXp0SlFUSkNaaXhOUVVGTkxFTkJRVU1zVjBGQlZ5eERRVUZETEVWQlFYZENMRVZCUTI1RUxGVkJRVlVzUjBGQlJ5eExRVUZMTEVWQlFVVXNZMEZCY1VNc1kwRkJZenRSUVVWMlJTeE5RVUZOTEU5QlFVOHNSMEZCT0VJc1JVRkJSU3hEUVVGRE8xRkJRemxETEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJUdFpRVU5vUWl4TlFVRk5MRTlCUVU4c1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEZEVJc1RVRkJUU3hOUVVGTkxFZEJRVWNzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTNKQ0xFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFVkJRVVU3WjBKQlF6TkNMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNZVUZCWVN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFpRVU5zUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOTUxFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEwZ3NUMEZCVHl4SlFVRkpMRmRCUVZjc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU5zUXl4RFFVRkRPMGxCU1VRc1dVRkJXU3hQUVVGblF6dFJRVU14UXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hIUVVGSExFOUJRVThzUTBGQlF6dEpRVU14UWl4RFFVRkRPMGxCUlUwc1IwRkJSeXhEUVVGRExFTkJRVk03VVVGRGJFSXNUMEZCVHl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlF6RkNMRU5CUVVNN08wRkJhRVJoTERaQ1FVRmpMRWRCUVVjc2EwSkJRV3RDTEVOQlFVTTdRVUZGYkVRc05FTkJRVFJETzBGQlF6bENMRFJDUVVGaExFZEJRV2RETzBsQlEzcEVMRkZCUVZFc1JVRkJSU3hEUVVGRExHdENRVUZyUWl4RlFVRkZMR3RDUVVGclFpeEZRVUZGTEdsQ1FVRnBRaXhGUVVGRkxHMUNRVUZ0UWl4RFFVRkRPMGxCUXpGR0xGZEJRVmNzUlVGQlJTeERRVUZETEdkQ1FVRm5RaXhGUVVGRkxHZENRVUZuUWl4RlFVRkZMR2RDUVVGblFpeEZRVUZGTEdkQ1FVRm5RaXhGUVVGRkxHZENRVUZuUWp0UlFVTndSeXhuUWtGQlowSXNSVUZCUlN4clFrRkJhMElzUlVGQlJTeHZRa0ZCYjBJc1JVRkJSU3h2UWtGQmIwSXNRMEZCUXp0SlFVTnVSaXhWUVVGVkxFVkJRVVVzUTBGQlF5eHBRa0ZCYVVJc1JVRkJSU3hwUWtGQmFVSXNSVUZCUlN4dlFrRkJiMElzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSU3h2UWtGQmIwSTdVVUZETDBjc2JVSkJRVzFDTEVOQlFVTTdTVUZEZEVJc1UwRkJVeXhGUVVGRkxFTkJRVU1zYTBKQlFXdENMRVZCUVVVc2EwSkJRV3RDTEVWQlFVVXNhMEpCUVd0Q0xFTkJRVU03U1VGRGRrVXNTMEZCU3l4RlFVRkZMRU5CUVVNc1owSkJRV2RDTEVWQlFVVXNhMEpCUVd0Q0xFTkJRVU03U1VGRE4wTXNVMEZCVXl4RlFVRkZMRU5CUVVNc2FVSkJRV2xDTEVWQlFVVXNhMEpCUVd0Q0xFVkJRVVVzYVVKQlFXbENMRU5CUVVNN1NVRkRja1VzVjBGQlZ5eEZRVUZGTEVOQlFVTXNhVUpCUVdsQ0xFVkJRVVVzYlVKQlFXMUNMRU5CUVVNN1NVRkRja1FzV1VGQldTeEZRVUZGTEVOQlFVTXNhVUpCUVdsQ0xFVkJRVVVzYTBKQlFXdENMRVZCUVVVc2IwSkJRVzlDTEVWQlFVVXNhVUpCUVdsQ0xFTkJRVU03U1VGRE9VWXNXVUZCV1N4RlFVRkZMRU5CUVVNc2EwSkJRV3RDTEVWQlFVVXNhMEpCUVd0Q0xFVkJRVVVzYTBKQlFXdENMRU5CUVVNN1NVRkRNVVVzV1VGQldTeEZRVUZGTEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVVzWjBKQlFXZENMRVZCUVVVc1owSkJRV2RDTEVWQlFVVXNaMEpCUVdkQ0xFTkJRVU03U1VGRGRFWXNUMEZCVHl4RlFVRkZMRU5CUVVNc1owSkJRV2RDTEVWQlFVVXNaMEpCUVdkQ0xFTkJRVU03U1VGRE4wTXNZVUZCWVN4RlFVRkZMRU5CUVVNc2EwSkJRV3RDTEVWQlFVVXNiMEpCUVc5Q0xFVkJRVVVzYjBKQlFXOUNMRU5CUVVNN1NVRkRMMFVzVlVGQlZTeEZRVUZGTEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVVzYTBKQlFXdENMRVZCUVVVc2EwSkJRV3RDTEVWQlFVVXNaMEpCUVdkQ0xFTkJRVU03U1VGRGVFWXNUVUZCVFN4RlFVRkZMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTTdTVUZETlVJc1QwRkJUeXhGUVVGRkxFTkJRVU1zWjBKQlFXZENMRVZCUVVVc2EwSkJRV3RDTEVOQlFVTTdTVUZETDBNc1RVRkJUU3hGUVVGRkxFTkJRVU1zYTBKQlFXdENMRVZCUVVVc2EwSkJRV3RDTEVWQlFVVXNhMEpCUVd0Q0xFVkJRVVVzYjBKQlFXOUNMRU5CUVVNN1NVRkRNVVlzVVVGQlVTeEZRVUZGTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU03U1VGRE4wSXNUMEZCVHl4RlFVRkZMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTTdRMEZET1VJc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0FxSUdGeklHZHliMnNnWm5KdmJTQW5aR0YwWVdkeWIyc3RZWEJwTDJkeWIyc25PMXh1YVcxd2IzSjBJQ29nWVhNZ2RXa2dabkp2YlNBblpHRjBZV2R5YjJzdFlYQnBMM1ZwSnp0Y2JtbHRjRzl5ZENBcUlHRnpJRVJISUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5a1p5YzdYRzVjYm1WNGNHOXlkQ0JwYm5SbGNtWmhZMlVnVTJWeFVHRnNaWFIwWlNCN1hHNGdJQzh2SUZSb1pYSmxJR0Z5WlNCMGIyOGdiWFZqYUNCd2NtOWliR1Z0SUhkcGRHZ2dhVzVrWlhobGNpQndjbTl3WlhKMGVTQnBiaUIwZVhCbGMyTnlhWEIwTGx4dUlDQXZMeUF2S2lwY2JpQWdMeThnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUcwZ1RXOXViMjFsY2lCamFHRnlZV04wWlhKY2JpQWdMeThnSUNvZ1FISmxkSFZ5YmlCN2MzUnlhVzVuZlNCRGIyeHZjbHh1SUNBdkx5QWdLaTljYmlBZ0x5OGdXMjA2SUhOMGNtbHVaMTA2SUhOMGNtbHVaenRjYmlBZ0x5b3FJRTF2Ym05dFpYSWdZMjlzYjNKY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRzBnVFc5dWIyMWxjbHh1SUNBZ0tpOWNiaUFnWjJWMEtHMDZJSE4wY21sdVp5azZJSE4wY21sdVp6dGNibjFjYmx4dVpYaHdiM0owSUdOc1lYTnpJRk5sY1ZCaGJHVjBkR1ZDWVhObElHbHRjR3hsYldWdWRITWdVMlZ4VUdGc1pYUjBaU0I3WEc0Z0lIQjFZbXhwWXlCemRHRjBhV01nZFc1a1pXWnBibVZrUTI5c2IzSWdQU0FuY21kaUtERXdNQ3d4TURBc01UQXdLU2M3WEc1Y2JpQWdMeW9xSUZCaGJHVjBkR1VnZDJsMGFDQnphR0ZrWlhNZ2IyWWdjSEpwYldGeWVTQmpiMnh2Y25NZ0tpOWNiaUFnY0hWaWJHbGpJSE4wWVhScFl5QmpiMnh2ZFhKUVlXeGxkSFJsT2lCN0lGdHJaWGs2SUhOMGNtbHVaMTA2SUhOMGNtbHVaMXRkSUgwZ1BTQjdYRzRnSUNBZ0oyOXlZVzVuWlNjNklGc25jbWRpS0RJMU5Td3hPRGNzTVRJd0tTY3NJQ2R5WjJJb01qUTFMREUyTnl3eE1EQXBKeXdnSjNKbllpZ3lNelVzTVRNM0xEY3dLU2NzSUNkeVoySW9NakExTENBeE1URXNJRGN4S1NkZExGeHVJQ0FnSUNkaGJHeGZaM0psWlc0bk9pQmJKM0puWWlnME5Dd3hOakFzTkRRcEp5d2dKM0puWWlnM05Dd3hOakFzTnpRcEp5d2dKM0puWWlneU15d3hNRE1zTlRjcEp5d2dKM0puWWlnek1Dd3hNVEFzT1RZcEp5d2dKM0puWWlnMk1Dd3hNekVzT1RVcEp5eGNiaUFnSUNBZ0lDZHlaMklvTWpRc01URXdMRGM1S1Njc0lDZHlaMklvTVRVeUxESXlNeXd4TXpncEp5d2dKM0puWWlneE9ESXNJREl5TXl3Z01UTTRLU2NzSUNkeVoySW9NVFV5TENBeE9UTXNJREV6T0NrblhTeGNiaUFnSUNBbllXeHNYMkpzZFdVbk9pQmJKM0puWWlnek1Td3hNVGtzTVRnd0tTY3NJQ2R5WjJJb01qTXNNVGt3TERJd055a25MQ0FuY21kaUtERXlNaXdnTVRBeUxDQXhPRGtwSnl3Z0ozSm5ZaWd4TlRnc01qRTRMREl5T1NrbkxDQW5jbWRpS0RFME1Td2dNVEkwTENBeU1UY3BKeXhjYmlBZ0lDQWdJQ2R5WjJJb016RXNJREV5TUN3Z01UVXdLU2RkTEZ4dUlDQWdJQ2R0WVdkbGJuUmhKem9nV3lkeVoySW9NVFl5TERFd05pd3hPVElwSnl3Z0ozSm5ZaWd4T1Rjc01UWTFMREl5TkNrbkxDQW5jbWRpS0RJd09Dd3hNVE1zTWpFNEtTZGRMRnh1SUNBZ0lDZHlaV1FuT2lCYkozSm5ZaWd5TVRRc016a3NOREFwSnl3Z0ozSm5ZaWd5TlRVc01UVXlMREUxTUNrblhTeGNiaUFnSUNBbmMzUmZZbXgxWlNjNklGc25jbWRpS0RJekxERTVNQ3d5TURjcEp5d2dKM0puWWlneE5UZ3NNakU0TERJeU9Ta25MQ0FuY21kaUtETXhMREV4T1N3eE9EQXBKMTBzWEc0Z0lDQWdKMlJoY210ZllteDFaU2M2SUZzbmNtZGlLRE14TERFeE9Td3hPREFwSnl3Z0ozSm5ZaWd6TVN3Z01USXdMQ0F4TlRBcEoxMHNYRzRnSUNBZ0oyeHBaMmgwWDJKc2RXVW5PaUJiSjNKbllpZ3lNeXd4T1RBc01qQTNLU2NzSUNkeVoySW9NVFU0TERJeE9Dd3lNamtwSnl3Z0ozSm5ZaWd4TURnc0lESXhPQ3dnTWpJNUtTY3NJQ2R5WjJJb01qTXNNVGt3TERJeU55a25YU3hjYmlBZ0lDQW5iR2xzWVdOZllteDFaU2M2SUZzbmNtZGlLREV5TkN3eE1ESXNNakV4S1Njc0lDZHlaMklvTVRRNUxERXpOQ3d5TVRjcEp5d2dKM0puWWlnNU55d2dPREVzSURFMU1Da25YU3hjYmlBZ0lDQW5aR0Z5YTE5bmNtVmxiaWM2SUZzbmNtZGlLREl6TERFd015dzFOeWtuTENBbmNtZGlLRE13TERFeE1DdzVOaWtuTENBbmNtZGlLRFl3TERFek1TdzVOU2tuTENBbmNtZGlLREkwTERFeE1DdzNPU2tuWFN4Y2JpQWdJQ0FuWjNKbFpXNG5PaUJiSjNKbllpZzBOQ3d4TmpBc05EUXBKeXdnSjNKbllpZzNOQ3d4TmpBc056UXBKMTBzWEc0Z0lDQWdKMnhwWjJoMFgyZHlaV1Z1SnpvZ1d5ZHlaMklvTVRVeUxESXlNeXd4TXpncEp5d2dKM0puWWlneE9ESXNJREl5TXl3Z01UTTRLU2NzSUNkeVoySW9NVFV5TENBeE9UTXNJREV6T0NrblhTeGNiaUFnSUNBbmMzUmZaM0psWlc0bk9pQmJKM0puWWlnME5Dd3hOakFzTkRRcEp5d2dKM0puWWlneE5USXNNakl6TERFek9Da25MQ0FuY21kaUtETTVMQ0F4TnpRc0lEazJLU2NzSUNkeVoySW9OelFzTVRZd0xEYzBLU2RkTEZ4dUlDQWdJQ2R3YVc1ckp6b2dXeWR5WjJJb01qUTNMREU0TWl3eU1UQXBKMTBzWEc0Z0lDQWdKMkp5YjNkdUp6b2dXeWR5WjJJb01UUXdMRGcyTERjMUtTY3NJQ2R5WjJJb01UQXlMQ0EyTWl3Z05UUXBKMTBzWEc0Z0lDQWdKMmR5WVhrbk9pQmJKM0puWWlneE1qY3NNVEkzTERFeU55a25MQ0FuY21kaUtERTVPU3d4T1Rrc01UazVLU2NzSUNkeVoySW9NVGsyTERFMU5pd3hORGdwSnl3Z0ozSm5ZaWd5TWpJc0lESXlNaXdnTVRnd0tTZGRMRnh1SUNBZ0lDZDVaV3hzYjNjbk9pQmJKM0puWWlneE9EZ3NNVGc1TERNMEtTZGRMRnh1SUNBZ0lDZDNhR2wwWlNjNklGc25jbWRpS0RJek1Dd3lNekFzTWpNd0tTZGRMRnh1SUNCOU8xeHVYRzRnSUhCeWIzUmxZM1JsWkNCemRHRjBhV01nYldGclpWQmhiR1YwZEdVb1pIUTZJRnR6ZEhKcGJtZGJYU3dnYzNSeWFXNW5YVnRkTEZ4dUlDQWdJSE5wYlhCc2FXWnBaV1FnUFNCbVlXeHpaU3dnVUdGc1pYUjBaVlI1Y0dVNklIUjVjR1Z2WmlCVFpYRlFZV3hsZEhSbFFtRnpaU0E5SUZObGNWQmhiR1YwZEdWQ1lYTmxYRzRnSUNrZ2UxeHVJQ0FnSUdOdmJuTjBJSEJoYkdWMGRHVTZJSHNnVzJ0bGVUb2djM1J5YVc1blhUb2djM1J5YVc1bklIMGdQU0I3ZlR0Y2JpQWdJQ0JrZEM1bWIzSkZZV05vS0NoamNDa2dQVDRnZTF4dUlDQWdJQ0FnWTI5dWMzUWdiMkpxVEdsemRDQTlJR053V3pCZE8xeHVJQ0FnSUNBZ1kyOXVjM1FnWTI5c2IzVnlJRDBnWTNCYk1WMDdYRzRnSUNBZ0lDQnZZbXBNYVhOMExtWnZja1ZoWTJnb0tHOWlhaXdnYVc1a0tTQTlQaUI3WEc0Z0lDQWdJQ0FnSUhCaGJHVjBkR1ZiYjJKcVhTQTlJSFJvYVhNdVkyOXNiM1Z5VUdGc1pYUjBaVnRqYjJ4dmRYSmRXM05wYlhCc2FXWnBaV1FnUHlBd0lEb2dhVzVrWFR0Y2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUgwcE8xeHVJQ0FnSUhKbGRIVnliaUJ1WlhjZ1VHRnNaWFIwWlZSNWNHVW9jR0ZzWlhSMFpTazdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJSEpsWVdSdmJteDVJRjl3WVd4bGRIUmxPaUI3SUZ0dE9pQnpkSEpwYm1kZE9pQnpkSEpwYm1jZ2ZUdGNibHh1SUNCamIyNXpkSEoxWTNSdmNpaHdZV3hsZEhSbE9pQjdJRnR0T2lCemRISnBibWRkT2lCemRISnBibWNnZlNrZ2UxeHVJQ0FnSUhSb2FYTXVYM0JoYkdWMGRHVWdQU0J3WVd4bGRIUmxPMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJR2RsZENodE9pQnpkSEpwYm1jcE9pQnpkSEpwYm1jZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxsOXdZV3hsZEhSbFcyMWRPMXh1SUNCOVhHNTlYRzRpWFgwPSIsImltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG4vKiogbWFrZXMgdGhlIGNvbG9yIGxlc3Mgd2hpdGUsIG1ha2VzIHRoZSB0cmFuc3BhcmVuY3kgZWZmZWN0IGFsd2F5cyBwZXJjZXB0aWJsZVxuICogQHBhcmFtIHtzdHJpbmd9IGNvbG9yIHggY29vcmRpbmF0ZS5cbiAqICovXG5mdW5jdGlvbiBjb3JyZWN0Q29sb3IoY29sb3IpIHtcbiAgICBpZiAoY29sb3IgPT0gbnVsbClcbiAgICAgICAgcmV0dXJuICdyZ2IoMTAwLDEwMCwxMDApJztcbiAgICBjb25zdCBkZ0NvbG9yID0gREcuQ29sb3IuZnJvbUh0bWwoY29sb3IpO1xuICAgIGNvbnN0IGcgPSBERy5Db2xvci5nKGRnQ29sb3IpO1xuICAgIGNvbnN0IHIgPSBERy5Db2xvci5yKGRnQ29sb3IpO1xuICAgIGNvbnN0IGIgPSBERy5Db2xvci5iKGRnQ29sb3IpO1xuICAgIC8vIGNhbGN1bGF0ZSBldWNsaWRlYW4gZGlzdGFuY2UgdG8gd2hpdGVcbiAgICBjb25zdCBkaXN0VG9CbGFjayA9IE1hdGguc3FydChNYXRoLnBvdygwIC0gciwgMikgKyBNYXRoLnBvdygwIC0gZywgMikgKyBNYXRoLnBvdygwIC0gYiwgMikpO1xuICAgIC8vIG5vcm1hbGl6ZSB2ZWN0b3IgciBnIGJcbiAgICBjb25zdCBub3JtUiA9IHIgLyBkaXN0VG9CbGFjaztcbiAgICBjb25zdCBub3JtRyA9IGcgLyBkaXN0VG9CbGFjaztcbiAgICBjb25zdCBub3JtQiA9IGIgLyBkaXN0VG9CbGFjaztcbiAgICBpZiAoZGlzdFRvQmxhY2sgPiAyMTApIHtcbiAgICAgICAgcmV0dXJuIGByZ2IoJHtub3JtUiAqIDIxMH0sJHtub3JtRyAqIDIxMH0sJHtub3JtQiAqIDIxMH0pYDtcbiAgICB9XG4gICAgcmV0dXJuIERHLkNvbG9yLnRvUmdiKGRnQ29sb3IpO1xufVxuZXhwb3J0IGNsYXNzIFN0cmluZ1V0aWxzIHtcbiAgICBzdGF0aWMgaGFzaENvZGUocykge1xuICAgICAgICBsZXQgaGFzaCA9IDA7XG4gICAgICAgIGlmIChzLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgIHJldHVybiBoYXNoO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGNociA9IHMuY2hhckNvZGVBdChpKTtcbiAgICAgICAgICAgIGhhc2ggPSAoKGhhc2ggPDwgNSkgLSBoYXNoKSArIGNocjtcbiAgICAgICAgICAgIGhhc2ggfD0gMDsgLy8gQ29udmVydCB0byAzMmJpdCBpbnRlZ2VyXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGhhc2g7XG4gICAgfVxufVxuaW1wb3J0IHsgU2VxUGFsZXR0ZUJhc2UgfSBmcm9tICcuL3NlcS1wYWxldHRlcyc7XG5leHBvcnQgY2xhc3MgVW5rbm93blNlcVBhbGV0dGUge1xufVxuZXhwb3J0IGNsYXNzIEdyYXlBbGxQYWxldHRlIGV4dGVuZHMgVW5rbm93blNlcVBhbGV0dGUge1xuICAgIGdldChtKSB7XG4gICAgICAgIHJldHVybiAnIzY2NjY2Nic7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFVua25vd25Db2xvclBhbGV0dGUgZXh0ZW5kcyBVbmtub3duU2VxUGFsZXR0ZSB7XG4gICAgc3RhdGljIGJ1aWxkUGFsZXR0ZSgpIHtcbiAgICAgICAgY29uc3QgcmVzID0gW10uY29uY2F0KC4uLk9iamVjdC52YWx1ZXMoU2VxUGFsZXR0ZUJhc2UuY29sb3VyUGFsZXR0ZSkpO1xuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cbiAgICBnZXQobSkge1xuICAgICAgICBjb25zdCBoYXNoID0gU3RyaW5nVXRpbHMuaGFzaENvZGUobSk7XG4gICAgICAgIGNvbnN0IHBJID0gaGFzaCAlIFVua25vd25Db2xvclBhbGV0dGUucGFsZXR0ZS5sZW5ndGg7XG4gICAgICAgIHJldHVybiBjb3JyZWN0Q29sb3IoVW5rbm93bkNvbG9yUGFsZXR0ZS5wYWxldHRlW3BJXSk7XG4gICAgfVxufVxuVW5rbm93bkNvbG9yUGFsZXR0ZS5wYWxldHRlID0gVW5rbm93bkNvbG9yUGFsZXR0ZS5idWlsZFBhbGV0dGUoKTtcbmV4cG9ydCBjbGFzcyBVbmtub3duU2VxUGFsZXR0ZXMgZXh0ZW5kcyBTZXFQYWxldHRlQmFzZSB7XG4gICAgc3RhdGljIGdldCBHcmF5KCkge1xuICAgICAgICBpZiAodGhpcy5ncmF5ID09PSB2b2lkIDApXG4gICAgICAgICAgICB0aGlzLmdyYXkgPSBuZXcgR3JheUFsbFBhbGV0dGUoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JheTtcbiAgICB9XG4gICAgc3RhdGljIGdldCBDb2xvcigpIHtcbiAgICAgICAgaWYgKHRoaXMuY29sb3IgPT09IHZvaWQgMClcbiAgICAgICAgICAgIHRoaXMuY29sb3IgPSBuZXcgVW5rbm93bkNvbG9yUGFsZXR0ZSgpO1xuICAgICAgICByZXR1cm4gdGhpcy5jb2xvcjtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkVzVyYm05M2JpNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW5WdWEyNXZkMjR1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlJVRXNUMEZCVHl4TFFVRkxMRVZCUVVVc1RVRkJUU3hwUWtGQmFVSXNRMEZCUXp0QlFVVjBRenM3UzBGRlN6dEJRVU5NTEZOQlFWTXNXVUZCV1N4RFFVRkRMRXRCUVc5Q08wbEJRM2hETEVsQlFVa3NTMEZCU3l4SlFVRkpMRWxCUVVrN1VVRkRaaXhQUVVGUExHdENRVUZyUWl4RFFVRkRPMGxCUlRWQ0xFMUJRVTBzVDBGQlR5eEhRVUZYTEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBsQlEycEVMRTFCUVUwc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJRemxDTEUxQlFVMHNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUXpsQ0xFMUJRVTBzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBsQlF6bENMSGREUVVGM1F6dEpRVU40UXl4TlFVRk5MRmRCUVZjc1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRE5VWXNlVUpCUVhsQ08wbEJRM3BDTEUxQlFVMHNTMEZCU3l4SFFVRkhMRU5CUVVNc1IwRkJSeXhYUVVGWExFTkJRVU03U1VGRE9VSXNUVUZCVFN4TFFVRkxMRWRCUVVjc1EwRkJReXhIUVVGSExGZEJRVmNzUTBGQlF6dEpRVU01UWl4TlFVRk5MRXRCUVVzc1IwRkJSeXhEUVVGRExFZEJRVWNzVjBGQlZ5eERRVUZETzBsQlF6bENMRWxCUVVrc1YwRkJWeXhIUVVGSExFZEJRVWNzUlVGQlJUdFJRVU55UWl4UFFVRlBMRTlCUVU4c1MwRkJTeXhIUVVGSExFZEJRVWNzU1VGQlNTeExRVUZMTEVkQlFVY3NSMEZCUnl4SlFVRkpMRXRCUVVzc1IwRkJSeXhIUVVGSExFZEJRVWNzUTBGQlF6dExRVU0xUkR0SlFVTkVMRTlCUVU4c1JVRkJSU3hEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1FVRkRha01zUTBGQlF6dEJRVVZFTEUxQlFVMHNUMEZCVHl4WFFVRlhPMGxCUTJZc1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZUTzFGQlF6bENMRWxCUVVrc1NVRkJTU3hIUVVGWExFTkJRVU1zUTBGQlF6dFJRVU55UWl4SlFVRkpMRU5CUVVNc1EwRkJReXhOUVVGTkxFdEJRVXNzUTBGQlF6dFpRVU5vUWl4UFFVRlBMRWxCUVVrc1EwRkJRenRSUVVOa0xFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFWY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMWxCUTNwRExFMUJRVTBzUjBGQlJ5eEhRVUZYTEVOQlFVTXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGNFTXNTVUZCU1N4SFFVRkhMRU5CUVVNc1EwRkJReXhKUVVGSkxFbEJRVWtzUTBGQlF5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRE8xbEJRMnhETEVsQlFVa3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXd5UWtGQk1rSTdVMEZEZGtNN1VVRkRSQ3hQUVVGUExFbEJRVWtzUTBGQlF6dEpRVU5rTEVOQlFVTTdRMEZEUmp0QlFVVkVMRTlCUVU4c1JVRkJZU3hqUVVGakxFVkJRVU1zVFVGQlRTeG5Ra0ZCWjBJc1EwRkJRenRCUVVVeFJDeE5RVUZOTEU5QlFXZENMR2xDUVVGcFFqdERRVVYwUXp0QlFVVkVMRTFCUVUwc1QwRkJUeXhqUVVGbExGTkJRVkVzYVVKQlFXbENPMGxCUXpWRExFZEJRVWNzUTBGQlF5eERRVUZUTzFGQlEyeENMRTlCUVU4c1UwRkJVeXhEUVVGRE8wbEJRMjVDTEVOQlFVTTdRMEZEUmp0QlFVZEVMRTFCUVUwc1QwRkJUeXh0UWtGQmIwSXNVMEZCVVN4cFFrRkJhVUk3U1VGSGFFUXNUVUZCVFN4RFFVRkRMRmxCUVZrN1VVRkRla0lzVFVGQlRTeEhRVUZITEVkQlFVa3NSVUZCWlN4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNZMEZCWXl4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGNFWXNUMEZCVHl4SFFVRkhMRU5CUVVNN1NVRkRZaXhEUVVGRE8wbEJSVTBzUjBGQlJ5eERRVUZETEVOQlFWTTdVVUZEYkVJc1RVRkJUU3hKUVVGSkxFZEJRVmNzVjBGQlZ5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVNM1F5eE5RVUZOTEVWQlFVVXNSMEZCUnl4SlFVRkpMRWRCUVVjc2JVSkJRVzFDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJRenRSUVVOeVJDeFBRVUZQTEZsQlFWa3NRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOMlJDeERRVUZET3p0QlFWaGhMREpDUVVGUExFZEJRV0VzYlVKQlFXMUNMRU5CUVVNc1dVRkJXU3hGUVVGRkxFTkJRVU03UVVGamRrVXNUVUZCVFN4UFFVRlBMR3RDUVVGdFFpeFRRVUZSTEdOQlFXTTdTVUZITjBNc1RVRkJUU3hMUVVGTExFbEJRVWs3VVVGRGNFSXNTVUZCU1N4SlFVRkpMRU5CUVVNc1NVRkJTU3hMUVVGTExFdEJRVXNzUTBGQlF6dFpRVU4wUWl4SlFVRkpMRU5CUVVNc1NVRkJTU3hIUVVGSExFbEJRVWtzWTBGQll5eEZRVUZGTEVOQlFVTTdVVUZEYmtNc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETzBsQlEyNUNMRU5CUVVNN1NVRkpUU3hOUVVGTkxFdEJRVXNzUzBGQlN6dFJRVU55UWl4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFdEJRVXNzUzBGQlN5eERRVUZETzFsQlEzWkNMRWxCUVVrc1EwRkJReXhMUVVGTExFZEJRVWNzU1VGQlNTeHRRa0ZCYlVJc1JVRkJSU3hEUVVGRE8xRkJRM3BETEU5QlFVOHNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJRenRKUVVOd1FpeERRVUZETzBOQlEwWWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdLaUJoY3lCbmNtOXJJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzluY205ckp6dGNibWx0Y0c5eWRDQXFJR0Z6SUhWcElHWnliMjBnSjJSaGRHRm5jbTlyTFdGd2FTOTFhU2M3WEc1cGJYQnZjblFnS2lCaGN5QkVSeUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2Wkdjbk8xeHVYRzR2S2lvZ2JXRnJaWE1nZEdobElHTnZiRzl5SUd4bGMzTWdkMmhwZEdVc0lHMWhhMlZ6SUhSb1pTQjBjbUZ1YzNCaGNtVnVZM2tnWldabVpXTjBJR0ZzZDJGNWN5QndaWEpqWlhCMGFXSnNaVnh1SUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUdOdmJHOXlJSGdnWTI5dmNtUnBibUYwWlM1Y2JpQXFJQ292WEc1bWRXNWpkR2x2YmlCamIzSnlaV04wUTI5c2IzSW9ZMjlzYjNJNklITjBjbWx1WnlCOElHNTFiR3dwT2lCemRISnBibWNnZTF4dUlDQnBaaUFvWTI5c2IzSWdQVDBnYm5Wc2JDbGNiaUFnSUNCeVpYUjFjbTRnSjNKbllpZ3hNREFzTVRBd0xERXdNQ2tuTzF4dVhHNGdJR052Ym5OMElHUm5RMjlzYjNJNklHNTFiV0psY2lBOUlFUkhMa052Ykc5eUxtWnliMjFJZEcxc0tHTnZiRzl5S1R0Y2JpQWdZMjl1YzNRZ1p5QTlJRVJITGtOdmJHOXlMbWNvWkdkRGIyeHZjaWs3WEc0Z0lHTnZibk4wSUhJZ1BTQkVSeTVEYjJ4dmNpNXlLR1JuUTI5c2IzSXBPMXh1SUNCamIyNXpkQ0JpSUQwZ1JFY3VRMjlzYjNJdVlpaGtaME52Ykc5eUtUdGNiaUFnTHk4Z1kyRnNZM1ZzWVhSbElHVjFZMnhwWkdWaGJpQmthWE4wWVc1alpTQjBieUIzYUdsMFpWeHVJQ0JqYjI1emRDQmthWE4wVkc5Q2JHRmpheUE5SUUxaGRHZ3VjM0Z5ZENoTllYUm9MbkJ2ZHlnd0lDMGdjaXdnTWlrZ0t5Qk5ZWFJvTG5CdmR5Z3dJQzBnWnl3Z01pa2dLeUJOWVhSb0xuQnZkeWd3SUMwZ1lpd2dNaWtwTzF4dUlDQXZMeUJ1YjNKdFlXeHBlbVVnZG1WamRHOXlJSElnWnlCaVhHNGdJR052Ym5OMElHNXZjbTFTSUQwZ2NpQXZJR1JwYzNSVWIwSnNZV05yTzF4dUlDQmpiMjV6ZENCdWIzSnRSeUE5SUdjZ0x5QmthWE4wVkc5Q2JHRmphenRjYmlBZ1kyOXVjM1FnYm05eWJVSWdQU0JpSUM4Z1pHbHpkRlJ2UW14aFkyczdYRzRnSUdsbUlDaGthWE4wVkc5Q2JHRmpheUErSURJeE1Da2dlMXh1SUNBZ0lISmxkSFZ5YmlCZ2NtZGlLQ1I3Ym05eWJWSWdLaUF5TVRCOUxDUjdibTl5YlVjZ0tpQXlNVEI5TENSN2JtOXliVUlnS2lBeU1UQjlLV0E3WEc0Z0lIMWNiaUFnY21WMGRYSnVJRVJITGtOdmJHOXlMblJ2VW1kaUtHUm5RMjlzYjNJcE8xeHVmVnh1WEc1bGVIQnZjblFnWTJ4aGMzTWdVM1J5YVc1blZYUnBiSE1nZTF4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUdoaGMyaERiMlJsS0hNNklITjBjbWx1WnlrNklHNTFiV0psY2lCN1hHNGdJQ0FnYkdWMElHaGhjMmc2SUc1MWJXSmxjaUE5SURBN1hHNGdJQ0FnYVdZZ0tITXViR1Z1WjNSb0lEMDlQU0F3S1Z4dUlDQWdJQ0FnY21WMGRYSnVJR2hoYzJnN1hHNGdJQ0FnWm05eUlDaHNaWFFnYVRvZ2JuVnRZbVZ5SUQwZ01Ec2dhU0E4SUhNdWJHVnVaM1JvT3lCcEt5c3BJSHRjYmlBZ0lDQWdJR052Ym5OMElHTm9jam9nYm5WdFltVnlJRDBnY3k1amFHRnlRMjlrWlVGMEtHa3BPMXh1SUNBZ0lDQWdhR0Z6YUNBOUlDZ29hR0Z6YUNBOFBDQTFLU0F0SUdoaGMyZ3BJQ3NnWTJoeU8xeHVJQ0FnSUNBZ2FHRnphQ0I4UFNBd095QXZMeUJEYjI1MlpYSjBJSFJ2SURNeVltbDBJR2x1ZEdWblpYSmNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJR2hoYzJnN1hHNGdJSDFjYm4xY2JseHVhVzF3YjNKMElIdFRaWEZRWVd4bGRIUmxMQ0JUWlhGUVlXeGxkSFJsUW1GelpYMGdabkp2YlNBbkxpOXpaWEV0Y0dGc1pYUjBaWE1uTzF4dVhHNWxlSEJ2Y25RZ1lXSnpkSEpoWTNRZ1kyeGhjM01nVlc1cmJtOTNibE5sY1ZCaGJHVjBkR1VnYVcxd2JHVnRaVzUwY3lCVFpYRlFZV3hsZEhSbElIdGNiaUFnY0hWaWJHbGpJR0ZpYzNSeVlXTjBJR2RsZENodE9pQnpkSEpwYm1jcE9pQnpkSEpwYm1jN1hHNTlYRzVjYm1WNGNHOXlkQ0JqYkdGemN5QkhjbUY1UVd4c1VHRnNaWFIwWlNCbGVIUmxibVJ6SUZWdWEyNXZkMjVUWlhGUVlXeGxkSFJsSUh0Y2JpQWdjSFZpYkdsaklHZGxkQ2h0T2lCemRISnBibWNwT2lCemRISnBibWNnZTF4dUlDQWdJSEpsZEhWeWJpQW5JelkyTmpZMk5pYzdYRzRnSUgxY2JuMWNibHh1WEc1bGVIQnZjblFnWTJ4aGMzTWdWVzVyYm05M2JrTnZiRzl5VUdGc1pYUjBaU0JsZUhSbGJtUnpJRlZ1YTI1dmQyNVRaWEZRWVd4bGRIUmxJSHRjYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJ3WVd4bGRIUmxPaUJ6ZEhKcGJtZGJYU0E5SUZWdWEyNXZkMjVEYjJ4dmNsQmhiR1YwZEdVdVluVnBiR1JRWVd4bGRIUmxLQ2s3WEc1Y2JpQWdjSEpwZG1GMFpTQnpkR0YwYVdNZ1luVnBiR1JRWVd4bGRIUmxLQ2s2SUhOMGNtbHVaMXRkSUh0Y2JpQWdJQ0JqYjI1emRDQnlaWE1nUFNBb1cxMGdZWE1nYzNSeWFXNW5XMTBwTG1OdmJtTmhkQ2d1TGk1UFltcGxZM1F1ZG1Gc2RXVnpLRk5sY1ZCaGJHVjBkR1ZDWVhObExtTnZiRzkxY2xCaGJHVjBkR1VwS1R0Y2JpQWdJQ0J5WlhSMWNtNGdjbVZ6TzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdkbGRDaHRPaUJ6ZEhKcGJtY3BPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lHTnZibk4wSUdoaGMyZzZJRzUxYldKbGNpQTlJRk4wY21sdVoxVjBhV3h6TG1oaGMyaERiMlJsS0cwcE8xeHVJQ0FnSUdOdmJuTjBJSEJKSUQwZ2FHRnphQ0FsSUZWdWEyNXZkMjVEYjJ4dmNsQmhiR1YwZEdVdWNHRnNaWFIwWlM1c1pXNW5kR2c3WEc0Z0lDQWdjbVYwZFhKdUlHTnZjbkpsWTNSRGIyeHZjaWhWYm10dWIzZHVRMjlzYjNKUVlXeGxkSFJsTG5CaGJHVjBkR1ZiY0VsZEtUdGNiaUFnZlZ4dWZWeHVYRzVsZUhCdmNuUWdZMnhoYzNNZ1ZXNXJibTkzYmxObGNWQmhiR1YwZEdWeklHVjRkR1Z1WkhNZ1UyVnhVR0ZzWlhSMFpVSmhjMlVnZTF4dUlDQndjbWwyWVhSbElITjBZWFJwWXlCbmNtRjVPaUJUWlhGUVlXeGxkSFJsTzF4dVhHNGdJSEIxWW14cFl5QnpkR0YwYVdNZ1oyVjBJRWR5WVhrb0tUb2dVMlZ4VUdGc1pYUjBaU0I3WEc0Z0lDQWdhV1lnS0hSb2FYTXVaM0poZVNBOVBUMGdkbTlwWkNBd0tWeHVJQ0FnSUNBZ2RHaHBjeTVuY21GNUlEMGdibVYzSUVkeVlYbEJiR3hRWVd4bGRIUmxLQ2s3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WjNKaGVUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdjM1JoZEdsaklHTnZiRzl5T2lCVFpYRlFZV3hsZEhSbE8xeHVYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdaMlYwSUVOdmJHOXlLQ2s2SUZObGNWQmhiR1YwZEdVZ2UxeHVJQ0FnSUdsbUlDaDBhR2x6TG1OdmJHOXlJRDA5UFNCMmIybGtJREFwWEc0Z0lDQWdJQ0IwYUdsekxtTnZiRzl5SUQwZ2JtVjNJRlZ1YTI1dmQyNURiMnh2Y2xCaGJHVjBkR1VvS1R0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1amIyeHZjanRjYmlBZ2ZWeHVmVnh1SWwxOSIsImltcG9ydCB7IG1vbm9tZXJUb1Nob3J0IH0gZnJvbSAnLi9tYWNyb21vbGVjdWxlJztcbmNvbnN0IHVuZGVmaW5lZENvbG9yID0gJ3JnYigxMDAsMTAwLDEwMCknO1xuY29uc3QgZ3JheUNvbG9yID0gJyM4MDgwODAnO1xuY29uc3QgYmxhY2tDb2xvciA9ICdyZ2IoMCwwLDApJztcbmNvbnN0IG1vbm9tZXJUb1Nob3J0RnVuY3Rpb24gPSBtb25vbWVyVG9TaG9ydDtcbmV4cG9ydCB2YXIgRHJhd1N0eWxlO1xuKGZ1bmN0aW9uIChEcmF3U3R5bGUpIHtcbiAgICBEcmF3U3R5bGVbXCJNU0FcIl0gPSBcIk1TQVwiO1xuICAgIERyYXdTdHlsZVtcImNsYXNzaWNcIl0gPSBcImNsYXNzaWNcIjtcbn0pKERyYXdTdHlsZSB8fCAoRHJhd1N0eWxlID0ge30pKTtcbi8qKlxuICogQSBmdW5jdGlvbiB0aGF0IHByaW50cyBhIHN0cmluZyBhbGlnbmVkIHRvIGxlZnQgb3IgY2VudGVyZWQuXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IHggeCBjb29yZGluYXRlLlxuICogQHBhcmFtIHtudW1iZXJ9IHkgeSBjb29yZGluYXRlLlxuICogQHBhcmFtIHtudW1iZXJ9IHcgV2lkdGguXG4gKiBAcGFyYW0ge251bWJlcn0gaCBIZWlnaHQuXG4gKiBAcGFyYW0ge0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRH0gZyBDYW52YXMgcmVuZGVyaW5nIGNvbnRleHQuXG4gKiBAcGFyYW0ge3N0cmluZ30gcyBTdHJpbmcgdG8gcHJpbnQuXG4gKiBAcGFyYW0ge3N0cmluZ30gW2NvbG9yPXVuZGVmaW5lZENvbG9yXSBTdHJpbmcgY29sb3IuXG4gKiBAcGFyYW0ge251bWJlcn0gW3Bpdm90PTBdIFBpcnZvdC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2xlZnQ9ZmFsc2VdIElzIGxlZnQgYWxpZ25lZC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbdHJhbnNwYXJlbmN5UmF0ZT0wLjBdIFRyYW5zcGFyZW5jeSByYXRlIHdoZXJlIDEuMCBpcyBmdWxseSB0cmFuc3BhcmVudFxuICogQHBhcmFtIHtzdHJpbmd9IFtzZXBhcmF0b3I9JyddIElzIHNlcGFyYXRvciBmb3Igc2VxdWVuY2UuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtsYXN0PWZhbHNlXSBJcyBjaGVja2VyIGlmIGVsZW1lbnQgbGFzdCBvciBub3QuXG4gKiBAcGFyYW0gZHJhd1N0eWxlIElzIGRyYXcgc3R5bGUuIE1TQSAtIGZvciBtdWx0aWNoYXJTZXEsIGNsYXNzaWMgLSBmb3Igb3RoZXIgc2VxLlxuICogQHBhcmFtIG1heFdvcmQgSXMgYXJyYXkgb2YgbWF4IHdvcmRzIGZvciBlYWNoIGxpbmUuXG4gKiBAcGFyYW0gd29yZElkeCBJcyBpbmRleCBvZiB3b3JkIHdlIGN1cnJlbnRseSBkcmF3LlxuICogQHBhcmFtIGdyaWRDZWxsIElzIGdyaWQgY2VsbC5cbiAqIEBwYXJhbSByZWZlcmVuY2VTZXF1ZW5jZSBJcyByZWZlcmVuY2Ugc2VxdWVuY2UgZm9yIGRpZmYgbW9kZS5cbiAqIEBwYXJhbSBtYXhMZW5ndGhPZk1vbm9tZXIgSXMgbWF4IGxlbmd0aCBvZiBtb25vbWVyLlxuICogQHJldHVybiB7bnVtYmVyfSB4IGNvb3JkaW5hdGUgdG8gc3RhcnQgcHJpbnRpbmcgYXQuXG4gKi9cbmV4cG9ydCBjb25zdCBwcmludExlZnRPckNlbnRlcmVkID0gKHgsIHksIHcsIGgsIGcsIHMsIGNvbG9yID0gdW5kZWZpbmVkQ29sb3IsIHBpdm90ID0gMCwgbGVmdCA9IGZhbHNlLCB0cmFuc3BhcmVuY3lSYXRlID0gMS4wLCBzZXBhcmF0b3IgPSAnJywgbGFzdCA9IGZhbHNlLCBkcmF3U3R5bGUgPSBEcmF3U3R5bGUuY2xhc3NpYywgbWF4V29yZCA9IHt9LCB3b3JkSWR4ID0gMCwgZ3JpZENlbGwgPSBudWxsLCByZWZlcmVuY2VTZXF1ZW5jZSA9IFtdLCBtYXhMZW5ndGhPZk1vbm9tZXIgPSBudWxsKSA9PiB7XG4gICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgZy50ZXh0QWxpZ24gPSAnc3RhcnQnO1xuICAgIGxldCBjb2xvclBhcnQgPSBzLnN1YnN0cmluZygwKTtcbiAgICBsZXQgZ3JheVBhcnQgPSBsYXN0ID8gJycgOiBzZXBhcmF0b3I7XG4gICAgaWYgKGRyYXdTdHlsZSA9PT0gRHJhd1N0eWxlLk1TQSkge1xuICAgICAgICBncmF5UGFydCA9ICcnO1xuICAgIH1cbiAgICBsZXQgY29sb3JDb2RlID0gdHJ1ZTtcbiAgICBsZXQgY29tcGFyZVdpdGhDdXJyZW50ID0gdHJ1ZTtcbiAgICBsZXQgaGlnaGxpZ2h0RGlmZmVyZW5jZSA9ICdkaWZmZXJlbmNlJztcbiAgICBpZiAoKGdyaWRDZWxsICE9IG51bGwpICYmIChncmlkQ2VsbC5jZWxsLmNvbHVtbiAhPSBudWxsKSkge1xuICAgICAgICBjb2xvckNvZGUgPSAoX2EgPSBncmlkQ2VsbC5jZWxsLmNvbHVtbi50ZW1wWydjb2xvci1jb2RlJ10pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHRydWU7XG4gICAgICAgIGNvbXBhcmVXaXRoQ3VycmVudCA9IChfYiA9IGdyaWRDZWxsLmNlbGwuY29sdW1uLnRlbXBbJ2NvbXBhcmUtd2l0aC1jdXJyZW50J10pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IHRydWU7XG4gICAgICAgIGhpZ2hsaWdodERpZmZlcmVuY2UgPSAoX2MgPSBncmlkQ2VsbC5jZWxsLmNvbHVtbi50ZW1wWydoaWdobGlnaHQtZGlmZmVyZW5jZSddKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAnZGlmZmVyZW5jZSc7XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbnRNb25vbWVyID0gcmVmZXJlbmNlU2VxdWVuY2Vbd29yZElkeF07XG4gICAgaWYgKGNvbXBhcmVXaXRoQ3VycmVudCAmJiAocmVmZXJlbmNlU2VxdWVuY2UubGVuZ3RoID4gMCkgJiYgKGhpZ2hsaWdodERpZmZlcmVuY2UgPT09ICdkaWZmZXJlbmNlJykpIHtcbiAgICAgICAgdHJhbnNwYXJlbmN5UmF0ZSA9IChjb2xvclBhcnQgPT0gY3VycmVudE1vbm9tZXIpID8gMC4zIDogdHJhbnNwYXJlbmN5UmF0ZTtcbiAgICB9XG4gICAgaWYgKGNvbXBhcmVXaXRoQ3VycmVudCAmJiAocmVmZXJlbmNlU2VxdWVuY2UubGVuZ3RoID4gMCkgJiYgKGhpZ2hsaWdodERpZmZlcmVuY2UgPT09ICdlcXVhbCcpKSB7XG4gICAgICAgIHRyYW5zcGFyZW5jeVJhdGUgPSAoY29sb3JQYXJ0ICE9IGN1cnJlbnRNb25vbWVyKSA/IDAuMyA6IHRyYW5zcGFyZW5jeVJhdGU7XG4gICAgfVxuICAgIGlmIChtYXhMZW5ndGhPZk1vbm9tZXIgIT0gbnVsbCkge1xuICAgICAgICBjb2xvclBhcnQgPSBtb25vbWVyVG9TaG9ydEZ1bmN0aW9uKGNvbG9yUGFydCwgbWF4TGVuZ3RoT2ZNb25vbWVyKTtcbiAgICB9XG4gICAgbGV0IHRleHRTaXplID0gZy5tZWFzdXJlVGV4dChjb2xvclBhcnQgKyBncmF5UGFydCk7XG4gICAgY29uc3QgaW5kZW50ID0gNTtcbiAgICBsZXQgbWF4Q29sb3JUZXh0U2l6ZSA9IGcubWVhc3VyZVRleHQoY29sb3JQYXJ0KS53aWR0aDtcbiAgICBsZXQgY29sb3JUZXh0U2l6ZSA9IGcubWVhc3VyZVRleHQoY29sb3JQYXJ0KS53aWR0aDtcbiAgICBjb25zdCBkeSA9IGggLyAyIC0gKHRleHRTaXplLmZvbnRCb3VuZGluZ0JveEFzY2VudCArIHRleHRTaXplLmZvbnRCb3VuZGluZ0JveERlc2NlbnQpIC8gMiArIDE7XG4gICAgdGV4dFNpemUgPSB0ZXh0U2l6ZS53aWR0aDtcbiAgICBpZiAoZHJhd1N0eWxlID09PSBEcmF3U3R5bGUuTVNBKSB7XG4gICAgICAgIG1heENvbG9yVGV4dFNpemUgPSBtYXhXb3JkW3dvcmRJZHhdO1xuICAgICAgICB0ZXh0U2l6ZSA9IG1heFdvcmRbd29yZElkeF07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRyYXcoZHgxLCBkeDIpIHtcbiAgICAgICAgY29uc3QgZHJhd0NvbG9yID0gY29sb3JDb2RlID8gY29sb3IgOiBibGFja0NvbG9yO1xuICAgICAgICBnLmZpbGxTdHlsZSA9IGRyYXdDb2xvcjtcbiAgICAgICAgZy5nbG9iYWxBbHBoYSA9IHRyYW5zcGFyZW5jeVJhdGU7XG4gICAgICAgIGlmIChkcmF3U3R5bGUgPT09IERyYXdTdHlsZS5jbGFzc2ljKSB7XG4gICAgICAgICAgICBnLmZpbGxUZXh0KGNvbG9yUGFydCwgeCArIGR4MSwgeSArIGR5KTtcbiAgICAgICAgICAgIGcuZmlsbFN0eWxlID0gZ3JheUNvbG9yO1xuICAgICAgICAgICAgZy5maWxsVGV4dChncmF5UGFydCwgeCArIGR4MiwgeSArIGR5KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZHJhd1N0eWxlID09PSBEcmF3U3R5bGUuTVNBKSB7XG4gICAgICAgICAgICBnLmZpbGxTdHlsZSA9IGRyYXdDb2xvcjtcbiAgICAgICAgICAgIGcuZmlsbFRleHQoY29sb3JQYXJ0LCB4ICsgZHgxICsgKChtYXhXb3JkW3dvcmRJZHhdIC0gY29sb3JUZXh0U2l6ZSkgLyAyKSwgeSArIGR5KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAobGVmdCB8fCB0ZXh0U2l6ZSA+IHcpIHtcbiAgICAgICAgZHJhdyhpbmRlbnQsIGluZGVudCArIG1heENvbG9yVGV4dFNpemUpO1xuICAgICAgICByZXR1cm4geCArIG1heENvbG9yVGV4dFNpemUgKyBnLm1lYXN1cmVUZXh0KGdyYXlQYXJ0KS53aWR0aDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IGR4ID0gKHcgLSB0ZXh0U2l6ZSkgLyAyO1xuICAgICAgICBkcmF3KGR4LCBkeCArIG1heENvbG9yVGV4dFNpemUpO1xuICAgICAgICByZXR1cm4geCArIGR4ICsgbWF4Q29sb3JUZXh0U2l6ZTtcbiAgICB9XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWTJWc2JDMXlaVzVrWlhKbGNpNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW1ObGJHd3RjbVZ1WkdWeVpYSXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUlVFc1QwRkJUeXhGUVVGRExHTkJRV01zUlVGQlF5eE5RVUZOTEdsQ1FVRnBRaXhEUVVGRE8wRkJSUzlETEUxQlFVMHNZMEZCWXl4SFFVRkhMR3RDUVVGclFpeERRVUZETzBGQlF6RkRMRTFCUVUwc1UwRkJVeXhIUVVGSExGTkJRVk1zUTBGQlF6dEJRVU0xUWl4TlFVRk5MRlZCUVZVc1IwRkJSeXhaUVVGWkxFTkJRVU03UVVGRGFFTXNUVUZCVFN4elFrRkJjMElzUjBGQk1FUXNZMEZCWXl4RFFVRkRPMEZCUlhKSExFMUJRVTBzUTBGQlRpeEpRVUZaTEZOQlIxZzdRVUZJUkN4WFFVRlpMRk5CUVZNN1NVRkRia0lzZDBKQlFWY3NRMEZCUVR0SlFVTllMR2REUVVGdFFpeERRVUZCTzBGQlEzSkNMRU5CUVVNc1JVRklWeXhUUVVGVExFdEJRVlFzVTBGQlV5eFJRVWR3UWp0QlFVVkVPenM3T3pzN096czdPenM3T3pzN096czdPenM3TzBkQmMwSkhPMEZCUTBnc1RVRkJUU3hEUVVGRExFMUJRVTBzYlVKQlFXMUNMRWRCUVVjc1EwRkRha01zUTBGQlV5eEZRVUZGTEVOQlFWTXNSVUZCUlN4RFFVRlRMRVZCUVVVc1EwRkJVeXhGUVVNeFF5eERRVUV5UWl4RlFVRkZMRU5CUVZNc1JVRkJSU3hSUVVGblFpeGpRVUZqTEVWQlEzUkZMRkZCUVdkQ0xFTkJRVU1zUlVGQlJTeEpRVUZKTEVkQlFVY3NTMEZCU3l4RlFVRkZMRzFDUVVFeVFpeEhRVUZITEVWQlF5OUVMRmxCUVc5Q0xFVkJRVVVzUlVGQlJTeFBRVUZuUWl4TFFVRkxMRVZCUVVVc1dVRkJkVUlzVTBGQlV5eERRVUZETEU5QlFVOHNSVUZCUlN4VlFVRjFReXhGUVVGRkxFVkJRVVVzVlVGQmEwSXNRMEZCUXl4RlFVRkZMRmRCUVN0Q0xFbEJRVWtzUlVGQlJTeHZRa0ZCT0VJc1JVRkJSU3hGUVVGRkxIRkNRVUZ2UXl4SlFVRkpMRVZCUVZVc1JVRkJSVHM3U1VGRGNGSXNRMEZCUXl4RFFVRkRMRk5CUVZNc1IwRkJSeXhQUVVGUExFTkJRVU03U1VGRGRFSXNTVUZCU1N4VFFVRlRMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTXZRaXhKUVVGSkxGRkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETzBsQlEzSkRMRWxCUVVrc1UwRkJVeXhMUVVGTExGTkJRVk1zUTBGQlF5eEhRVUZITEVWQlFVVTdVVUZETDBJc1VVRkJVU3hIUVVGSExFVkJRVVVzUTBGQlF6dExRVU5tTzBsQlEwUXNTVUZCU1N4VFFVRlRMRWRCUVVjc1NVRkJTU3hEUVVGRE8wbEJRM0pDTEVsQlFVa3NhMEpCUVd0Q0xFZEJRVWNzU1VGQlNTeERRVUZETzBsQlF6bENMRWxCUVVrc2JVSkJRVzFDTEVkQlFVY3NXVUZCV1N4RFFVRkRPMGxCUTNaRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVsQlFVa3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNTVUZCU1N4SlFVRkpMRU5CUVVNc1JVRkJSVHRSUVVONFJDeFRRVUZUTEVkQlFVY3NUVUZCUVN4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRzFEUVVGSkxFbEJRVWtzUTBGQlF6dFJRVU0xUkN4clFrRkJhMElzUjBGQlJ5eE5RVUZCTEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eHpRa0ZCYzBJc1EwRkJReXh0UTBGQlNTeEpRVUZKTEVOQlFVTTdVVUZETDBVc2JVSkJRVzFDTEVkQlFVY3NUVUZCUVN4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNjMEpCUVhOQ0xFTkJRVU1zYlVOQlFVa3NXVUZCV1N4RFFVRkRPMHRCUlhwR08wbEJRMFFzVFVGQlRTeGpRVUZqTEVkQlFWY3NhVUpCUVdsQ0xFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdTVUZETVVRc1NVRkJTU3hyUWtGQmEwSXNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4TFFVRkxMRmxCUVZrc1EwRkJReXhGUVVGRk8xRkJRMnhITEdkQ1FVRm5RaXhIUVVGSExFTkJRVU1zVTBGQlV5eEpRVUZKTEdOQlFXTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhEUVVGRE8wdEJRek5GTzBsQlEwUXNTVUZCU1N4clFrRkJhMElzU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeExRVUZMTEU5QlFVOHNRMEZCUXl4RlFVRkZPMUZCUXpkR0xHZENRVUZuUWl4SFFVRkhMRU5CUVVNc1UwRkJVeXhKUVVGSkxHTkJRV01zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRPMHRCUXpORk8wbEJRMFFzU1VGQlNTeHJRa0ZCYTBJc1NVRkJTU3hKUVVGSkxFVkJRVVU3VVVGRE9VSXNVMEZCVXl4SFFVRkhMSE5DUVVGelFpeERRVUZETEZOQlFWTXNSVUZCUlN4clFrRkJhMElzUTBGQlF5eERRVUZETzB0QlEyNUZPMGxCUjBRc1NVRkJTU3hSUVVGUkxFZEJRVkVzUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4VFFVRlRMRWRCUVVjc1VVRkJVU3hEUVVGRExFTkJRVU03U1VGRGVFUXNUVUZCVFN4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJSV3BDTEVsQlFVa3NaMEpCUVdkQ0xFZEJRVWNzUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU03U1VGRGRFUXNTVUZCU1N4aFFVRmhMRWRCUVVjc1EwRkJReXhEUVVGRExGZEJRVmNzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNN1NVRkRia1FzVFVGQlRTeEZRVUZGTEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExGRkJRVkVzUTBGQlF5eHhRa0ZCY1VJc1IwRkJSeXhSUVVGUkxFTkJRVU1zYzBKQlFYTkNMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzBsQlF6bEdMRkZCUVZFc1IwRkJSeXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETzBsQlF6RkNMRWxCUVVrc1UwRkJVeXhMUVVGTExGTkJRVk1zUTBGQlF5eEhRVUZITEVWQlFVVTdVVUZETDBJc1owSkJRV2RDTEVkQlFVY3NUMEZCVHl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRM0JETEZGQlFWRXNSMEZCUnl4UFFVRlBMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03UzBGRE4wSTdTVUZGUkN4VFFVRlRMRWxCUVVrc1EwRkJReXhIUVVGWExFVkJRVVVzUjBGQlZ6dFJRVU53UXl4TlFVRk5MRk5CUVZNc1IwRkJSeXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1ZVRkJWU3hEUVVGRE8xRkJRMnBFTEVOQlFVTXNRMEZCUXl4VFFVRlRMRWRCUVVjc1UwRkJVeXhEUVVGRE8xRkJRM2hDTEVOQlFVTXNRMEZCUXl4WFFVRlhMRWRCUVVjc1owSkJRV2RDTEVOQlFVTTdVVUZEYWtNc1NVRkJTU3hUUVVGVExFdEJRVXNzVTBGQlV5eERRVUZETEU5QlFVOHNSVUZCUlR0WlFVTnVReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1IwRkJSeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXp0WlFVTjJReXhEUVVGRExFTkJRVU1zVTBGQlV5eEhRVUZITEZOQlFWTXNRMEZCUXp0WlFVTjRRaXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRMRWRCUVVjc1IwRkJSeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXp0VFFVTjJRenRSUVVORUxFbEJRVWtzVTBGQlV5eExRVUZMTEZOQlFWTXNRMEZCUXl4SFFVRkhMRVZCUVVVN1dVRkRMMElzUTBGQlF5eERRVUZETEZOQlFWTXNSMEZCUnl4VFFVRlRMRU5CUVVNN1dVRkRlRUlzUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJReXhIUVVGSExFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExHRkJRV0VzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF6dFRRVU51Ump0SlFVTklMRU5CUVVNN1NVRkZSQ3hKUVVGSkxFbEJRVWtzU1VGQlNTeFJRVUZSTEVkQlFVY3NRMEZCUXl4RlFVRkZPMUZCUTNoQ0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNUVUZCVFN4SFFVRkhMR2RDUVVGblFpeERRVUZETEVOQlFVTTdVVUZEZUVNc1QwRkJUeXhEUVVGRExFZEJRVWNzWjBKQlFXZENMRWRCUVVjc1EwRkJReXhEUVVGRExGZEJRVmNzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNN1MwRkZOMFE3VTBGQlRUdFJRVU5NTEUxQlFVMHNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTTVRaXhKUVVGSkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNSMEZCUnl4blFrRkJaMElzUTBGQlF5eERRVUZETzFGQlEyaERMRTlCUVU4c1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eG5Ra0ZCWjBJc1EwRkJRenRMUVVOc1F6dEJRVU5JTEVOQlFVTXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENBcUlHRnpJRVJISUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5a1p5YzdYRzVjYm1sdGNHOXlkQ0I3Ylc5dWIyMWxjbFJ2VTJodmNuUjlJR1p5YjIwZ0p5NHZiV0ZqY205dGIyeGxZM1ZzWlNjN1hHNWNibU52Ym5OMElIVnVaR1ZtYVc1bFpFTnZiRzl5SUQwZ0ozSm5ZaWd4TURBc01UQXdMREV3TUNrbk8xeHVZMjl1YzNRZ1ozSmhlVU52Ykc5eUlEMGdKeU00TURnd09EQW5PMXh1WTI5dWMzUWdZbXhoWTJ0RGIyeHZjaUE5SUNkeVoySW9NQ3d3TERBcEp6dGNibU52Ym5OMElHMXZibTl0WlhKVWIxTm9iM0owUm5WdVkzUnBiMjQ2SUNoaGJXbHViem9nYzNSeWFXNW5MQ0J0WVhoTVpXNW5kR2hQWmsxdmJtOXRaWEk2SUc1MWJXSmxjaWtnUFQ0Z2MzUnlhVzVuSUQwZ2JXOXViMjFsY2xSdlUyaHZjblE3WEc1Y2JtVjRjRzl5ZENCbGJuVnRJRVJ5WVhkVGRIbHNaU0I3WEc0Z0lFMVRRU0E5SUNkTlUwRW5MRnh1SUNCamJHRnpjMmxqSUQwZ0oyTnNZWE56YVdNbkxGeHVmVnh1WEc0dktpcGNiaUFxSUVFZ1puVnVZM1JwYjI0Z2RHaGhkQ0J3Y21sdWRITWdZU0J6ZEhKcGJtY2dZV3hwWjI1bFpDQjBieUJzWldaMElHOXlJR05sYm5SbGNtVmtMbHh1SUNwY2JpQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQjRJSGdnWTI5dmNtUnBibUYwWlM1Y2JpQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQjVJSGtnWTI5dmNtUnBibUYwWlM1Y2JpQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQjNJRmRwWkhSb0xseHVJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJR2dnU0dWcFoyaDBMbHh1SUNvZ1FIQmhjbUZ0SUh0RFlXNTJZWE5TWlc1a1pYSnBibWREYjI1MFpYaDBNa1I5SUdjZ1EyRnVkbUZ6SUhKbGJtUmxjbWx1WnlCamIyNTBaWGgwTGx4dUlDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlITWdVM1J5YVc1bklIUnZJSEJ5YVc1MExseHVJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRnRqYjJ4dmNqMTFibVJsWm1sdVpXUkRiMnh2Y2wwZ1UzUnlhVzVuSUdOdmJHOXlMbHh1SUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUZ0d2FYWnZkRDB3WFNCUWFYSjJiM1F1WEc0Z0tpQkFjR0Z5WVcwZ2UySnZiMnhsWVc1OUlGdHNaV1owUFdaaGJITmxYU0JKY3lCc1pXWjBJR0ZzYVdkdVpXUXVYRzRnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnVzNSeVlXNXpjR0Z5Wlc1amVWSmhkR1U5TUM0d1hTQlVjbUZ1YzNCaGNtVnVZM2tnY21GMFpTQjNhR1Z5WlNBeExqQWdhWE1nWm5Wc2JIa2dkSEpoYm5Od1lYSmxiblJjYmlBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYmMyVndZWEpoZEc5eVBTY25YU0JKY3lCelpYQmhjbUYwYjNJZ1ptOXlJSE5sY1hWbGJtTmxMbHh1SUNvZ1FIQmhjbUZ0SUh0aWIyOXNaV0Z1ZlNCYmJHRnpkRDFtWVd4elpWMGdTWE1nWTJobFkydGxjaUJwWmlCbGJHVnRaVzUwSUd4aGMzUWdiM0lnYm05MExseHVJQ29nUUhCaGNtRnRJR1J5WVhkVGRIbHNaU0JKY3lCa2NtRjNJSE4wZVd4bExpQk5VMEVnTFNCbWIzSWdiWFZzZEdsamFHRnlVMlZ4TENCamJHRnpjMmxqSUMwZ1ptOXlJRzkwYUdWeUlITmxjUzVjYmlBcUlFQndZWEpoYlNCdFlYaFhiM0prSUVseklHRnljbUY1SUc5bUlHMWhlQ0IzYjNKa2N5Qm1iM0lnWldGamFDQnNhVzVsTGx4dUlDb2dRSEJoY21GdElIZHZjbVJKWkhnZ1NYTWdhVzVrWlhnZ2IyWWdkMjl5WkNCM1pTQmpkWEp5Wlc1MGJIa2daSEpoZHk1Y2JpQXFJRUJ3WVhKaGJTQm5jbWxrUTJWc2JDQkpjeUJuY21sa0lHTmxiR3d1WEc0Z0tpQkFjR0Z5WVcwZ2NtVm1aWEpsYm1ObFUyVnhkV1Z1WTJVZ1NYTWdjbVZtWlhKbGJtTmxJSE5sY1hWbGJtTmxJR1p2Y2lCa2FXWm1JRzF2WkdVdVhHNGdLaUJBY0dGeVlXMGdiV0Y0VEdWdVozUm9UMlpOYjI1dmJXVnlJRWx6SUcxaGVDQnNaVzVuZEdnZ2IyWWdiVzl1YjIxbGNpNWNiaUFxSUVCeVpYUjFjbTRnZTI1MWJXSmxjbjBnZUNCamIyOXlaR2x1WVhSbElIUnZJSE4wWVhKMElIQnlhVzUwYVc1bklHRjBMbHh1SUNvdlhHNWxlSEJ2Y25RZ1kyOXVjM1FnY0hKcGJuUk1aV1owVDNKRFpXNTBaWEpsWkNBOUlDaGNiaUFnZURvZ2JuVnRZbVZ5TENCNU9pQnVkVzFpWlhJc0lIYzZJRzUxYldKbGNpd2dhRG9nYm5WdFltVnlMRnh1SUNCbk9pQkRZVzUyWVhOU1pXNWtaWEpwYm1kRGIyNTBaWGgwTWtRc0lITTZJSE4wY21sdVp5d2dZMjlzYjNJNklITjBjbWx1WnlBOUlIVnVaR1ZtYVc1bFpFTnZiRzl5TEZ4dUlDQndhWFp2ZERvZ2JuVnRZbVZ5SUQwZ01Dd2diR1ZtZENBOUlHWmhiSE5sTENCMGNtRnVjM0JoY21WdVkzbFNZWFJsT2lCdWRXMWlaWElnUFNBeExqQXNYRzRnSUhObGNHRnlZWFJ2Y2pvZ2MzUnlhVzVuSUQwZ0p5Y3NJR3hoYzNRNklHSnZiMnhsWVc0Z1BTQm1ZV3h6WlN3Z1pISmhkMU4wZVd4bE9pQkVjbUYzVTNSNWJHVWdQU0JFY21GM1UzUjViR1V1WTJ4aGMzTnBZeXdnYldGNFYyOXlaRG9nZXlCYmFXNWtaWGc2SUhOMGNtbHVaMTA2SUc1MWJXSmxjaUI5SUQwZ2UzMHNJSGR2Y21SSlpIZzZJRzUxYldKbGNpQTlJREFzSUdkeWFXUkRaV3hzT2lCRVJ5NUhjbWxrUTJWc2JDQjhJRzUxYkd3Z1BTQnVkV3hzTENCeVpXWmxjbVZ1WTJWVFpYRjFaVzVqWlRvZ2MzUnlhVzVuVzEwZ1BTQmJYU3dnYldGNFRHVnVaM1JvVDJaTmIyNXZiV1Z5T2lCdWRXMWlaWElnZkNCdWRXeHNJRDBnYm5Wc2JDazZJRzUxYldKbGNpQTlQaUI3WEc0Z0lHY3VkR1Y0ZEVGc2FXZHVJRDBnSjNOMFlYSjBKenRjYmlBZ2JHVjBJR052Ykc5eVVHRnlkQ0E5SUhNdWMzVmljM1J5YVc1bktEQXBPMXh1SUNCc1pYUWdaM0poZVZCaGNuUWdQU0JzWVhOMElEOGdKeWNnT2lCelpYQmhjbUYwYjNJN1hHNGdJR2xtSUNoa2NtRjNVM1I1YkdVZ1BUMDlJRVJ5WVhkVGRIbHNaUzVOVTBFcElIdGNiaUFnSUNCbmNtRjVVR0Z5ZENBOUlDY25PMXh1SUNCOVhHNGdJR3hsZENCamIyeHZja052WkdVZ1BTQjBjblZsTzF4dUlDQnNaWFFnWTI5dGNHRnlaVmRwZEdoRGRYSnlaVzUwSUQwZ2RISjFaVHRjYmlBZ2JHVjBJR2hwWjJoc2FXZG9kRVJwWm1abGNtVnVZMlVnUFNBblpHbG1abVZ5Wlc1alpTYzdYRzRnSUdsbUlDZ29aM0pwWkVObGJHd2dJVDBnYm5Wc2JDa2dKaVlnS0dkeWFXUkRaV3hzTG1ObGJHd3VZMjlzZFcxdUlDRTlJRzUxYkd3cEtTQjdYRzRnSUNBZ1kyOXNiM0pEYjJSbElEMGdaM0pwWkVObGJHd3VZMlZzYkM1amIyeDFiVzR1ZEdWdGNGc25ZMjlzYjNJdFkyOWtaU2RkSUQ4L0lIUnlkV1U3WEc0Z0lDQWdZMjl0Y0dGeVpWZHBkR2hEZFhKeVpXNTBJRDBnWjNKcFpFTmxiR3d1WTJWc2JDNWpiMngxYlc0dWRHVnRjRnNuWTI5dGNHRnlaUzEzYVhSb0xXTjFjbkpsYm5RblhTQS9QeUIwY25WbE8xeHVJQ0FnSUdocFoyaHNhV2RvZEVScFptWmxjbVZ1WTJVZ1BTQm5jbWxrUTJWc2JDNWpaV3hzTG1OdmJIVnRiaTUwWlcxd1d5ZG9hV2RvYkdsbmFIUXRaR2xtWm1WeVpXNWpaU2RkSUQ4L0lDZGthV1ptWlhKbGJtTmxKenRjYmx4dUlDQjlYRzRnSUdOdmJuTjBJR04xY25KbGJuUk5iMjV2YldWeU9pQnpkSEpwYm1jZ1BTQnlaV1psY21WdVkyVlRaWEYxWlc1alpWdDNiM0prU1dSNFhUdGNiaUFnYVdZZ0tHTnZiWEJoY21WWGFYUm9RM1Z5Y21WdWRDQW1KaUFvY21WbVpYSmxibU5sVTJWeGRXVnVZMlV1YkdWdVozUm9JRDRnTUNrZ0ppWWdLR2hwWjJoc2FXZG9kRVJwWm1abGNtVnVZMlVnUFQwOUlDZGthV1ptWlhKbGJtTmxKeWtwSUh0Y2JpQWdJQ0IwY21GdWMzQmhjbVZ1WTNsU1lYUmxJRDBnS0dOdmJHOXlVR0Z5ZENBOVBTQmpkWEp5Wlc1MFRXOXViMjFsY2lrZ1B5QXdMak1nT2lCMGNtRnVjM0JoY21WdVkzbFNZWFJsTzF4dUlDQjlYRzRnSUdsbUlDaGpiMjF3WVhKbFYybDBhRU4xY25KbGJuUWdKaVlnS0hKbFptVnlaVzVqWlZObGNYVmxibU5sTG14bGJtZDBhQ0ErSURBcElDWW1JQ2hvYVdkb2JHbG5hSFJFYVdabVpYSmxibU5sSUQwOVBTQW5aWEYxWVd3bktTa2dlMXh1SUNBZ0lIUnlZVzV6Y0dGeVpXNWplVkpoZEdVZ1BTQW9ZMjlzYjNKUVlYSjBJQ0U5SUdOMWNuSmxiblJOYjI1dmJXVnlLU0EvSURBdU15QTZJSFJ5WVc1emNHRnlaVzVqZVZKaGRHVTdYRzRnSUgxY2JpQWdhV1lnS0cxaGVFeGxibWQwYUU5bVRXOXViMjFsY2lBaFBTQnVkV3hzS1NCN1hHNGdJQ0FnWTI5c2IzSlFZWEowSUQwZ2JXOXViMjFsY2xSdlUyaHZjblJHZFc1amRHbHZiaWhqYjJ4dmNsQmhjblFzSUcxaGVFeGxibWQwYUU5bVRXOXViMjFsY2lrN1hHNGdJSDFjYmx4dVhHNGdJR3hsZENCMFpYaDBVMmw2WlRvZ1lXNTVJRDBnWnk1dFpXRnpkWEpsVkdWNGRDaGpiMnh2Y2xCaGNuUWdLeUJuY21GNVVHRnlkQ2s3WEc0Z0lHTnZibk4wSUdsdVpHVnVkQ0E5SURVN1hHNWNiaUFnYkdWMElHMWhlRU52Ykc5eVZHVjRkRk5wZW1VZ1BTQm5MbTFsWVhOMWNtVlVaWGgwS0dOdmJHOXlVR0Z5ZENrdWQybGtkR2c3WEc0Z0lHeGxkQ0JqYjJ4dmNsUmxlSFJUYVhwbElEMGdaeTV0WldGemRYSmxWR1Y0ZENoamIyeHZjbEJoY25RcExuZHBaSFJvTzF4dUlDQmpiMjV6ZENCa2VTQTlJR2dnTHlBeUlDMGdLSFJsZUhSVGFYcGxMbVp2Ym5SQ2IzVnVaR2x1WjBKdmVFRnpZMlZ1ZENBcklIUmxlSFJUYVhwbExtWnZiblJDYjNWdVpHbHVaMEp2ZUVSbGMyTmxiblFwSUM4Z01pQXJJREU3WEc0Z0lIUmxlSFJUYVhwbElEMGdkR1Y0ZEZOcGVtVXVkMmxrZEdnN1hHNGdJR2xtSUNoa2NtRjNVM1I1YkdVZ1BUMDlJRVJ5WVhkVGRIbHNaUzVOVTBFcElIdGNiaUFnSUNCdFlYaERiMnh2Y2xSbGVIUlRhWHBsSUQwZ2JXRjRWMjl5WkZ0M2IzSmtTV1I0WFR0Y2JpQWdJQ0IwWlhoMFUybDZaU0E5SUcxaGVGZHZjbVJiZDI5eVpFbGtlRjA3WEc0Z0lIMWNibHh1SUNCbWRXNWpkR2x2YmlCa2NtRjNLR1I0TVRvZ2JuVnRZbVZ5TENCa2VESTZJRzUxYldKbGNpazZJSFp2YVdRZ2UxeHVJQ0FnSUdOdmJuTjBJR1J5WVhkRGIyeHZjaUE5SUdOdmJHOXlRMjlrWlNBL0lHTnZiRzl5SURvZ1lteGhZMnREYjJ4dmNqdGNiaUFnSUNCbkxtWnBiR3hUZEhsc1pTQTlJR1J5WVhkRGIyeHZjanRjYmlBZ0lDQm5MbWRzYjJKaGJFRnNjR2hoSUQwZ2RISmhibk53WVhKbGJtTjVVbUYwWlR0Y2JpQWdJQ0JwWmlBb1pISmhkMU4wZVd4bElEMDlQU0JFY21GM1UzUjViR1V1WTJ4aGMzTnBZeWtnZTF4dUlDQWdJQ0FnWnk1bWFXeHNWR1Y0ZENoamIyeHZjbEJoY25Rc0lIZ2dLeUJrZURFc0lIa2dLeUJrZVNrN1hHNGdJQ0FnSUNCbkxtWnBiR3hUZEhsc1pTQTlJR2R5WVhsRGIyeHZjanRjYmlBZ0lDQWdJR2N1Wm1sc2JGUmxlSFFvWjNKaGVWQmhjblFzSUhnZ0t5QmtlRElzSUhrZ0t5QmtlU2s3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2hrY21GM1UzUjViR1VnUFQwOUlFUnlZWGRUZEhsc1pTNU5VMEVwSUh0Y2JpQWdJQ0FnSUdjdVptbHNiRk4wZVd4bElEMGdaSEpoZDBOdmJHOXlPMXh1SUNBZ0lDQWdaeTVtYVd4c1ZHVjRkQ2hqYjJ4dmNsQmhjblFzSUhnZ0t5QmtlREVnS3lBb0tHMWhlRmR2Y21SYmQyOXlaRWxrZUYwZ0xTQmpiMnh2Y2xSbGVIUlRhWHBsS1NBdklESXBMQ0I1SUNzZ1pIa3BPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJR2xtSUNoc1pXWjBJSHg4SUhSbGVIUlRhWHBsSUQ0Z2R5a2dlMXh1SUNBZ0lHUnlZWGNvYVc1a1pXNTBMQ0JwYm1SbGJuUWdLeUJ0WVhoRGIyeHZjbFJsZUhSVGFYcGxLVHRjYmlBZ0lDQnlaWFIxY200Z2VDQXJJRzFoZUVOdmJHOXlWR1Y0ZEZOcGVtVWdLeUJuTG0xbFlYTjFjbVZVWlhoMEtHZHlZWGxRWVhKMEtTNTNhV1IwYUR0Y2JseHVJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lHTnZibk4wSUdSNElEMGdLSGNnTFNCMFpYaDBVMmw2WlNrZ0x5QXlPMXh1SUNBZ0lHUnlZWGNvWkhnc0lHUjRJQ3NnYldGNFEyOXNiM0pVWlhoMFUybDZaU2s3WEc0Z0lDQWdjbVYwZFhKdUlIZ2dLeUJrZUNBcklHMWhlRU52Ykc5eVZHVjRkRk5wZW1VN1hHNGdJSDFjYm4wN1hHNWNiaUpkZlE9PSIsImltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgd3UgZnJvbSAnd3UnO1xuaW1wb3J0IHsgVmVjdG9yIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvdHlwZS1kZWNsYXJhdGlvbnMnO1xuaW1wb3J0IHsgdmVjdG9yTGVuZ3RoLCB2ZWN0b3JEb3RQcm9kdWN0IH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvdmVjdG9yLW9wZXJhdGlvbnMnO1xuaW1wb3J0IHsgQW1pbm9hY2lkc1BhbGV0dGVzIH0gZnJvbSAnLi4vYW1pbm9hY2lkcyc7XG5pbXBvcnQgeyBOdWNsZW90aWRlc1BhbGV0dGVzIH0gZnJvbSAnLi4vbnVjbGVvdGlkZXMnO1xuaW1wb3J0IHsgVW5rbm93blNlcVBhbGV0dGVzIH0gZnJvbSAnLi4vdW5rbm93bic7XG5pbXBvcnQgeyBVbml0c0hhbmRsZXIgfSBmcm9tICcuLi91dGlscy91bml0cy1oYW5kbGVyJztcbjtcbi8qKiBTdGF0cyBvZiBzZXF1ZW5jZXMgd2l0aCBzcGVjaWZpZWQgc3BsaXR0ZXIgZnVuYywgcmV0dXJucyB7IGZyZXEsIHNhbWVMZW5ndGggfS5cbiAqIEBwYXJhbSB7REcuQ29sdW1ufSBzZXFDb2xcbiAqIEBwYXJhbSB7bnVtYmVyfSBtaW5MZW5ndGhcbiAqIEBwYXJhbSB7U3BsaXR0ZXJGdW5jfSBzcGxpdHRlclxuICogQHJldHVybiB7IFNlcUNvbFN0YXRzIH0sIHNhbWVMZW5ndGg6IGJvb2xlYW4gfSBzdGF0cyBvZiBjb2x1bW4gc2VxdWVuY2VzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGF0cyhzZXFDb2wsIG1pbkxlbmd0aCwgc3BsaXR0ZXIpIHtcbiAgICBjb25zdCBmcmVxID0ge307XG4gICAgbGV0IHNhbWVMZW5ndGggPSB0cnVlO1xuICAgIGxldCBmaXJzdExlbmd0aCA9IG51bGw7XG4gICAgZm9yIChjb25zdCBzZXEgb2Ygc2VxQ29sLmNhdGVnb3JpZXMpIHtcbiAgICAgICAgY29uc3QgbVNlcSA9IHNwbGl0dGVyKHNlcSk7XG4gICAgICAgIGlmIChmaXJzdExlbmd0aCA9PSBudWxsKVxuICAgICAgICAgICAgZmlyc3RMZW5ndGggPSBtU2VxLmxlbmd0aDtcbiAgICAgICAgZWxzZSBpZiAobVNlcS5sZW5ndGggIT09IGZpcnN0TGVuZ3RoKVxuICAgICAgICAgICAgc2FtZUxlbmd0aCA9IGZhbHNlO1xuICAgICAgICBpZiAobVNlcS5sZW5ndGggPj0gbWluTGVuZ3RoKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IG0gb2YgbVNlcSkge1xuICAgICAgICAgICAgICAgIGlmICghKG0gaW4gZnJlcSkpXG4gICAgICAgICAgICAgICAgICAgIGZyZXFbbV0gPSAwO1xuICAgICAgICAgICAgICAgIGZyZXFbbV0gKz0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyBmcmVxOiBmcmVxLCBzYW1lTGVuZ3RoOiBzYW1lTGVuZ3RoIH07XG59XG5leHBvcnQgY29uc3QgbW9ub21lclJlID0gL1xcWyhcXHcrKVxcXXwoXFx3KXwoLSkvZztcbi8qKiBTcGxpdCBzZXF1ZW5jZSBmb3Igc2luZ2xlIGNoYXJhY3RlciBtb25vbWVycywgc3F1YXJlIGJyYWNrZXRzIG11bHRpY2hhciBtb25vbWVyIG5hbWVzIG9yIGdhcCBzeW1ib2wuXG4gKiBAcGFyYW0ge2FueX0gc2VxIG9iamVjdCB3aXRoIHNlcXVlbmNlXG4gKiBAcmV0dXJuIHtzdHJpbmdbXX0gYXJyYXkgb2YgbW9ub21lcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0dGVyQXNGYXN0YShzZXEpIHtcbiAgICByZXR1cm4gd3Uoc2VxLnRvU3RyaW5nKCkubWF0Y2hBbGwobW9ub21lclJlKSlcbiAgICAgICAgLm1hcCgobWEpID0+IHtcbiAgICAgICAgbGV0IG1SZXM7XG4gICAgICAgIGNvbnN0IG0gPSBtYVswXTtcbiAgICAgICAgaWYgKG0ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgbVJlcyA9IG1hWzFdO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbVJlcyA9IG07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1SZXM7XG4gICAgfSkudG9BcnJheSgpO1xufVxuLyoqIEdldHMgbWV0aG9kIHRvIHNwbGl0IHNlcXVlbmNlIGJ5IHNlcGFyYXRvclxuICogQHBhcmFtIHtzdHJpbmd9IHNlcGFyYXRvclxuICogQHBhcmFtIGxpbWl0XG4gKiBAcmV0dXJuIHtTcGxpdHRlckZ1bmN9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTcGxpdHRlcldpdGhTZXBhcmF0b3Ioc2VwYXJhdG9yLCBsaW1pdCA9IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiAoc2VxKSA9PiB7XG4gICAgICAgIHJldHVybiBzZXEuc3BsaXQoc2VwYXJhdG9yLCBsaW1pdCk7XG4gICAgfTtcbn1cbmNvbnN0IGhlbG1SZSA9IC8oUEVQVElERTF8RE5BMXxSTkExKVxceyhbXn1dKyl9L2c7XG5jb25zdCBoZWxtUHAxUmUgPSAvXFxbKFteXFxbXFxdXSspXS9nO1xuLyoqIFNwbGl0cyBIZWxtIHN0cmluZyB0byBtb25vbWVycywgYnV0IGRvZXMgbm90IHJlcGxhY2UgbW9ub21lciBuYW1lcyB0byBvdGhlciBub3RhdGlvbiAoZS5nLiBmb3IgUk5BKS5cbiAqIE9ubHkgZm9yIGxpbmVhciBwb2x5bWVycywgZG9lcyBub3Qgc3BsaXQgUk5BIGZvciByaWJvc2UgYW5kIHBob3NwaGF0ZSBtb25vbWVycy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBzZXEgU291cmNlIHN0cmluZyBvZiBIRUxNIG5vdGF0aW9uXG4gKiBAcmV0dXJuIHtzdHJpbmdbXX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0dGVyQXNIZWxtKHNlcSkge1xuICAgIGhlbG1SZS5sYXN0SW5kZXggPSAwO1xuICAgIGNvbnN0IGVhID0gaGVsbVJlLmV4ZWMoc2VxLnRvU3RyaW5nKCkpO1xuICAgIGNvbnN0IGluU2VxID0gZWEgPyBlYVsyXSA6IG51bGw7XG4gICAgY29uc3QgbW1Qb3N0UHJvY2VzcyA9IChtbSkgPT4ge1xuICAgICAgICBoZWxtUHAxUmUubGFzdEluZGV4ID0gMDtcbiAgICAgICAgY29uc3QgcHAxTSA9IGhlbG1QcDFSZS5leGVjKG1tKTtcbiAgICAgICAgaWYgKHBwMU0gJiYgcHAxTS5sZW5ndGggPj0gMilcbiAgICAgICAgICAgIHJldHVybiBwcDFNWzFdO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICByZXR1cm4gbW07XG4gICAgfTtcbiAgICBjb25zdCBtbUxpc3QgPSBpblNlcSA/IGluU2VxLnNwbGl0KCcuJykgOiBbXTtcbiAgICByZXR1cm4gbW1MaXN0Lm1hcChtbVBvc3RQcm9jZXNzKTtcbn1cbi8qKiBHZXQgc3BsaXR0ZXIgbWV0aG9kIHRvIHNwbGl0IHNlcXVlbmNlcyB0byBtb25vbWVyc1xuICogQHBhcmFtIHtzdHJpbmd9IHVuaXRzXG4gKiBAcGFyYW0ge3N0cmluZ30gc2VwYXJhdG9yXG4gKiBAcGFyYW0gbGltaXRcbiAqIEByZXR1cm4ge1NwbGl0dGVyRnVuY31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNwbGl0dGVyKHVuaXRzLCBzZXBhcmF0b3IsIGxpbWl0ID0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKHVuaXRzLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi8pKVxuICAgICAgICByZXR1cm4gc3BsaXR0ZXJBc0Zhc3RhO1xuICAgIGVsc2UgaWYgKHVuaXRzLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChcInNlcGFyYXRvclwiIC8qIE5PVEFUSU9OLlNFUEFSQVRPUiAqLykpXG4gICAgICAgIHJldHVybiBnZXRTcGxpdHRlcldpdGhTZXBhcmF0b3Ioc2VwYXJhdG9yLCBsaW1pdCk7XG4gICAgZWxzZSBpZiAodW5pdHMudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi8pKVxuICAgICAgICByZXR1cm4gc3BsaXR0ZXJBc0hlbG07XG4gICAgZWxzZVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgdW5pdHMgJHt1bml0c30gLmApO1xuICAgIC8vIFRPRE86IFNwbGl0dGVyIGZvciBIRUxNXG59XG4vKiogR2VuZXJhdGUgc3BsaXR0ZXIgZnVuY3Rpb24gZm9yIHNlcXVlbmNlIGNvbHVtblxuICogQHBhcmFtIHtERy5Db2x1bW59IGNvbFxuICogQHJldHVybiB7U3BsaXR0ZXJGdW5jfSBTcGxpdHRlciBmdW5jdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3BsaXR0ZXJGb3JDb2x1bW4oY29sKSB7XG4gICAgaWYgKGNvbC5zZW1UeXBlICE9PSBERy5TRU1UWVBFLk1BQ1JPTU9MRUNVTEUpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgR2V0IHNwbGl0dGVyIGZvciBzZW1UeXBlIFwiJHtERy5TRU1UWVBFLk1BQ1JPTU9MRUNVTEV9XCIgb25seS5gKTtcbiAgICBjb25zdCB1bml0cyA9IGNvbC5nZXRUYWcoREcuVEFHUy5VTklUUyk7XG4gICAgY29uc3Qgc2VwYXJhdG9yID0gY29sLmdldFRhZyhcInNlcGFyYXRvclwiIC8qIFRBR1Muc2VwYXJhdG9yICovKTtcbiAgICByZXR1cm4gZ2V0U3BsaXR0ZXIodW5pdHMsIHNlcGFyYXRvcik7XG59XG5jb25zdCBsb25nTW9ub21lclBhcnRSZSA9IC8oXFx3KykvZztcbi8qKiBDb252ZXJ0IGxvbmcgbW9ub21lciBuYW1lcyB0byBzaG9ydCBvbmVzICovXG5leHBvcnQgZnVuY3Rpb24gbW9ub21lclRvU2hvcnQoYW1pbm8sIG1heExlbmd0aE9mTW9ub21lcikge1xuICAgIHZhciBfYSwgX2I7XG4gICAgY29uc3Qgc2hvcnRBbWlub01hdGNoID0gYW1pbm8ubWF0Y2gobG9uZ01vbm9tZXJQYXJ0UmUpO1xuICAgIGNvbnN0IG5lZWRBZGREb3RzID0gYW1pbm8ubGVuZ3RoID4gbWF4TGVuZ3RoT2ZNb25vbWVyIHx8ICgoX2EgPSBzaG9ydEFtaW5vTWF0Y2ggPT09IG51bGwgfHwgc2hvcnRBbWlub01hdGNoID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzaG9ydEFtaW5vTWF0Y2gubGVuZ3RoKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAwKSA+IDE7XG4gICAgY29uc3Qgc2hvcnRBbWlubyA9IChfYiA9IHNob3J0QW1pbm9NYXRjaCA9PT0gbnVsbCB8fCBzaG9ydEFtaW5vTWF0Y2ggPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNob3J0QW1pbm9NYXRjaFswXSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogJyAnO1xuICAgIHJldHVybiAhbmVlZEFkZERvdHMgPyBzaG9ydEFtaW5vIDogc2hvcnRBbWluby5zdWJzdHJpbmcoMCwgbWF4TGVuZ3RoT2ZNb25vbWVyKSArICfigKYnO1xufVxuLyoqICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxwaGFiZXQoYWxwaGFiZXQpIHtcbiAgICBzd2l0Y2ggKGFscGhhYmV0KSB7XG4gICAgICAgIGNhc2UgXCJETkFcIiAvKiBBTFBIQUJFVC5ETkEgKi86XG4gICAgICAgICAgICByZXR1cm4gVW5pdHNIYW5kbGVyLkRuYUZhc3RhQWxwaGFiZXQ7XG4gICAgICAgIGNhc2UgXCJSTkFcIiAvKiBBTFBIQUJFVC5STkEgKi86XG4gICAgICAgICAgICByZXR1cm4gVW5pdHNIYW5kbGVyLlJuYUZhc3RhQWxwaGFiZXQ7XG4gICAgICAgIGNhc2UgXCJQVFwiIC8qIEFMUEhBQkVULlBUICovOlxuICAgICAgICAgICAgcmV0dXJuIFVuaXRzSGFuZGxlci5QZXB0aWRlRmFzdGFBbHBoYWJldDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgYWxwaGFiZXQgJyR7YWxwaGFiZXR9Jy5gKTtcbiAgICB9XG59XG4vKiogQ2FsY3VsYXRlIHNpbWlsYXJpdHkgaW4gY3VycmVudCBzZXF1ZW5jZSBhbmQgYWxwaGFiZXQuXG4gKiBAcGFyYW0ge01vbm9tZXJGcmVxc30gZnJlcVxuICogQHBhcmFtIHtTZXQ8c3RyaW5nPn0gYWxwaGFiZXRcbiAqIEBwYXJhbSB7c3RyaW5nfSBnYXBTeW1ib2xcbiAqIEByZXR1cm4ge251bWJlcn0gQ29zaW5lIHNpbWlsYXJpdHlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFscGhhYmV0U2ltaWxhcml0eShmcmVxLCBhbHBoYWJldCwgZ2FwU3ltYm9sID0gJy0nKSB7XG4gICAgY29uc3Qga2V5cyA9IG5ldyBTZXQoWy4uLm5ldyBTZXQoT2JqZWN0LmtleXMoZnJlcSkpLCAuLi5hbHBoYWJldF0pO1xuICAgIGtleXMuZGVsZXRlKGdhcFN5bWJvbCk7XG4gICAgY29uc3QgZnJlcUEgPSBbXTtcbiAgICBjb25zdCBhbHBoYWJldEEgPSBbXTtcbiAgICBmb3IgKGNvbnN0IG0gb2Yga2V5cykge1xuICAgICAgICBmcmVxQS5wdXNoKG0gaW4gZnJlcSA/IGZyZXFbbV0gOiAwKTtcbiAgICAgICAgYWxwaGFiZXRBLnB1c2goYWxwaGFiZXQuaGFzKG0pID8gMSA6IDApO1xuICAgIH1cbiAgICAvKiBUaGVyZSB3ZXJlIGEgZmV3IGlkZWFzOiBjaGktc3F1YXJlZCwgcGVhcnNvbiBjb3JyZWxhdGlvbiAodmFyaWFuY2U/KSwgc2NhbGFyIHByb2R1Y3QgKi9cbiAgICBjb25zdCBmcmVxViA9IG5ldyBWZWN0b3IoZnJlcUEpO1xuICAgIGNvbnN0IGFscGhhYmV0ViA9IG5ldyBWZWN0b3IoYWxwaGFiZXRBKTtcbiAgICByZXR1cm4gdmVjdG9yRG90UHJvZHVjdChmcmVxViwgYWxwaGFiZXRWKSAvICh2ZWN0b3JMZW5ndGgoZnJlcVYpICogdmVjdG9yTGVuZ3RoKGFscGhhYmV0VikpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGRldGVjdEFscGhhYmV0KHN0YXRzKSB7XG4gICAgY29uc3QgYWxwaGFiZXRDYW5kaWRhdGVzID0gW1xuICAgICAgICBbXCJQVFwiIC8qIEFMUEhBQkVULlBUICovLCBVbml0c0hhbmRsZXIuUGVwdGlkZUZhc3RhQWxwaGFiZXRdLFxuICAgICAgICBbXCJETkFcIiAvKiBBTFBIQUJFVC5ETkEgKi8sIFVuaXRzSGFuZGxlci5EbmFGYXN0YUFscGhhYmV0XSxcbiAgICAgICAgW1wiUk5BXCIgLyogQUxQSEFCRVQuUk5BICovLCBVbml0c0hhbmRsZXIuUm5hRmFzdGFBbHBoYWJldF0sXG4gICAgXTtcbiAgICAvLyBDYWxjdWxhdGUgbGlrZWxpaG9vZHMgZm9yIGFscGhhYmV0X2NhbmRpZGF0ZXNcbiAgICBjb25zdCBhbHBoYWJldENhbmRpZGF0ZXNTaW0gPSBhbHBoYWJldENhbmRpZGF0ZXMubWFwKChjKSA9PiBnZXRBbHBoYWJldFNpbWlsYXJpdHkoc3RhdHMuZnJlcSwgY1sxXSkpO1xuICAgIGNvbnN0IG1heENvcyA9IE1hdGgubWF4KC4uLmFscGhhYmV0Q2FuZGlkYXRlc1NpbSk7XG4gICAgY29uc3QgYWxwaGFiZXQgPSBtYXhDb3MgPiAwLjY1ID8gYWxwaGFiZXRDYW5kaWRhdGVzW2FscGhhYmV0Q2FuZGlkYXRlc1NpbS5pbmRleE9mKG1heENvcyldWzBdIDogJ1VOJztcbiAgICByZXR1cm4gYWxwaGFiZXQ7XG59XG4vKiogU2VsZWN0cyBhIHN1aXRhYmxlIHBhbGV0dGUgYmFzZWQgb24gY29sdW1uIGRhdGFcbiAqIEBwYXJhbSB7REcuQ29sdW1ufSBzZXFDb2wgQ29sdW1uIHRvIGxvb2sgZm9yIGEgcGFsZXR0ZVxuICogQHBhcmFtIHtudW1iZXJ9ICBtaW5MZW5ndGggbWluaW11bSBsZW5ndGggb2Ygc2VxdWVuY2UgdG8gZGV0ZWN0IHBhbGV0dGUgKGVtcHR5IHN0cmluZ3MgYXJlIGFsbG93ZWQpXG4gKiBAcmV0dXJuIHtTZXFQYWxldHRlfSBQYWxldHRlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGFscGhhYmV0IG9mIHRoZSBzZXF1ZW5jZXMgaW4gdGhlIGNvbHVtblxuICovXG5leHBvcnQgZnVuY3Rpb24gcGlja1VwUGFsZXR0ZShzZXFDb2wsIG1pbkxlbmd0aCA9IDUpIHtcbiAgICBsZXQgYWxwaGFiZXQ7XG4gICAgaWYgKHNlcUNvbC5zZW1UeXBlID09IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRSkge1xuICAgICAgICBjb25zdCB1aCA9IG5ldyBVbml0c0hhbmRsZXIoc2VxQ29sKTtcbiAgICAgICAgYWxwaGFiZXQgPSB1aC5hbHBoYWJldDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IHN0YXRzID0gZ2V0U3RhdHMoc2VxQ29sLCBtaW5MZW5ndGgsIHNwbGl0dGVyQXNGYXN0YSk7XG4gICAgICAgIGFscGhhYmV0ID0gZGV0ZWN0QWxwaGFiZXQoc3RhdHMpO1xuICAgIH1cbiAgICBjb25zdCByZXMgPSBnZXRQYWxldHRlQnlUeXBlKGFscGhhYmV0KTtcbiAgICByZXR1cm4gcmVzO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFBhbGV0dGVCeVR5cGUocGFsZXR0ZVR5cGUpIHtcbiAgICBzd2l0Y2ggKHBhbGV0dGVUeXBlKSB7XG4gICAgICAgIGNhc2UgJ1BUJzpcbiAgICAgICAgICAgIHJldHVybiBBbWlub2FjaWRzUGFsZXR0ZXMuR3Jva0dyb3VwcztcbiAgICAgICAgY2FzZSAnTlQnOlxuICAgICAgICBjYXNlICdETkEnOlxuICAgICAgICBjYXNlICdSTkEnOlxuICAgICAgICAgICAgcmV0dXJuIE51Y2xlb3RpZGVzUGFsZXR0ZXMuQ2hyb21hdG9ncmFtO1xuICAgICAgICAvLyBvdGhlclxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIFVua25vd25TZXFQYWxldHRlcy5Db2xvcjtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gcGlja1VwU2VxQ29sKGRmKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IHNlbVR5cGVDb2xMaXN0ID0gZGYuY29sdW1ucy5ieVNlbVR5cGVBbGwoREcuU0VNVFlQRS5NQUNST01PTEVDVUxFKTtcbiAgICBsZXQgcmVzQ29sID0gKF9hID0gc2VtVHlwZUNvbExpc3QuZmluZCgoY29sKSA9PiB7XG4gICAgICAgIGNvbnN0IHVuaXRzID0gY29sLmdldFRhZyhERy5UQUdTLlVOSVRTKTtcbiAgICAgICAgcmV0dXJuIHVuaXRzID8gdW5pdHMuaW5kZXhPZignTVNBJykgIT09IC0xIDogZmFsc2U7XG4gICAgfSkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IG51bGw7XG4gICAgaWYgKCFyZXNDb2wgJiYgc2VtVHlwZUNvbExpc3QubGVuZ3RoID4gMClcbiAgICAgICAgcmVzQ29sID0gc2VtVHlwZUNvbExpc3RbMF07XG4gICAgcmV0dXJuIHJlc0NvbDtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWJXRmpjbTl0YjJ4bFkzVnNaUzVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYkltMWhZM0p2Ylc5c1pXTjFiR1V1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlJVRXNUMEZCVHl4TFFVRkxMRVZCUVVVc1RVRkJUU3hwUWtGQmFVSXNRMEZCUXp0QlFVTjBReXhQUVVGUExFVkJRVVVzVFVGQlRTeEpRVUZKTEVOQlFVTTdRVUZGY0VJc1QwRkJUeXhGUVVGRExFMUJRVTBzUlVGQlF5eE5RVUZOTEdsRVFVRnBSQ3hEUVVGRE8wRkJRM1pGTEU5QlFVOHNSVUZCUXl4WlFVRlpMRVZCUVVVc1owSkJRV2RDTEVWQlFVTXNUVUZCVFN4cFJFRkJhVVFzUTBGQlF6dEJRVVV2Uml4UFFVRlBMRVZCUVdFc2EwSkJRV3RDTEVWQlFVTXNUVUZCVFN4bFFVRmxMRU5CUVVNN1FVRkROMFFzVDBGQlR5eEZRVUZqTEcxQ1FVRnRRaXhGUVVGRExFMUJRVTBzWjBKQlFXZENMRU5CUVVNN1FVRkRhRVVzVDBGQlR5eEZRVUZETEd0Q1FVRnJRaXhGUVVGRExFMUJRVTBzV1VGQldTeERRVUZETzBGQlF6bERMRTlCUVU4c1JVRkJReXhaUVVGWkxFVkJRVU1zVFVGQlRTeDNRa0ZCZDBJc1EwRkJRenRCUVRSQ2JrUXNRMEZCUXp0QlFVMUdPenM3T3p0SFFVdEhPMEZCUTBnc1RVRkJUU3hWUVVGVkxGRkJRVkVzUTBGQlF5eE5RVUZwUWl4RlFVRkZMRk5CUVdsQ0xFVkJRVVVzVVVGQmMwSTdTVUZEYmtZc1RVRkJUU3hKUVVGSkxFZEJRVFJDTEVWQlFVVXNRMEZCUXp0SlFVTjZReXhKUVVGSkxGVkJRVlVzUjBGQlJ5eEpRVUZKTEVOQlFVTTdTVUZEZEVJc1NVRkJTU3hYUVVGWExFZEJRVWNzU1VGQlNTeERRVUZETzBsQlJYWkNMRXRCUVVzc1RVRkJUU3hIUVVGSExFbEJRVWtzVFVGQlRTeERRVUZETEZWQlFWVXNSVUZCUlR0UlFVTnVReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eFJRVUZSTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkZNMElzU1VGQlNTeFhRVUZYTEVsQlFVa3NTVUZCU1R0WlFVTnlRaXhYUVVGWExFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXp0aFFVTjJRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEV0QlFVc3NWMEZCVnp0WlFVTnNReXhWUVVGVkxFZEJRVWNzUzBGQlN5eERRVUZETzFGQlJYSkNMRWxCUVVrc1NVRkJTU3hEUVVGRExFMUJRVTBzU1VGQlNTeFRRVUZUTEVWQlFVVTdXVUZETlVJc1MwRkJTeXhOUVVGTkxFTkJRVU1zU1VGQlNTeEpRVUZKTEVWQlFVVTdaMEpCUTNCQ0xFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4SlFVRkpMRU5CUVVNN2IwSkJRMlFzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRuUWtGRFpDeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8yRkJRMlE3VTBGRFJqdExRVU5HTzBsQlEwUXNUMEZCVHl4RlFVRkRMRWxCUVVrc1JVRkJSU3hKUVVGSkxFVkJRVVVzVlVGQlZTeEZRVUZGTEZWQlFWVXNSVUZCUXl4RFFVRkRPMEZCUXpsRExFTkJRVU03UVVGRlJDeE5RVUZOTEVOQlFVTXNUVUZCVFN4VFFVRlRMRWRCUVZjc2NVSkJRWEZDTEVOQlFVTTdRVUZGZGtRN096dEhRVWRITzBGQlEwZ3NUVUZCVFN4VlFVRlZMR1ZCUVdVc1EwRkJReXhIUVVGUk8wbEJRM1JETEU5QlFVOHNSVUZCUlN4RFFVRnRRaXhIUVVGSExFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlFVTXNVVUZCVVN4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8xTkJRelZFTEVkQlFVY3NRMEZCUXl4RFFVRkRMRVZCUVc5Q0xFVkJRVVVzUlVGQlJUdFJRVU0xUWl4SlFVRkpMRWxCUVZrc1EwRkJRenRSUVVOcVFpeE5RVUZOTEVOQlFVTXNSMEZCVnl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGVFSXNTVUZCU1N4RFFVRkRMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUlVGQlJUdFpRVU5vUWl4SlFVRkpMRWRCUVVjc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFOQlEyUTdZVUZCVFR0WlFVTk1MRWxCUVVrc1IwRkJSeXhEUVVGRExFTkJRVU03VTBGRFZqdFJRVU5FTEU5QlFVOHNTVUZCU1N4RFFVRkRPMGxCUTJRc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdRVUZEYWtJc1EwRkJRenRCUVVWRU96czdPMGRCU1VjN1FVRkRTQ3hOUVVGTkxGVkJRVlVzZDBKQlFYZENMRU5CUVVNc1UwRkJhVUlzUlVGQlJTeFJRVUUwUWl4VFFVRlRPMGxCUXk5R0xFOUJRVThzUTBGQlF5eEhRVUZYTEVWQlFVVXNSVUZCUlR0UlFVTnlRaXhQUVVGUExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNVMEZCVXl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8wbEJRM0pETEVOQlFVTXNRMEZCUXp0QlFVTktMRU5CUVVNN1FVRkZSQ3hOUVVGTkxFMUJRVTBzUjBGQlZ5eHBRMEZCYVVNc1EwRkJRenRCUVVONlJDeE5RVUZOTEZOQlFWTXNSMEZCVnl4blFrRkJaMElzUTBGQlF6dEJRVVV6UXpzN096dEhRVWxITzBGQlEwZ3NUVUZCVFN4VlFVRlZMR05CUVdNc1EwRkJReXhIUVVGUk8wbEJRM0pETEUxQlFVMHNRMEZCUXl4VFFVRlRMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRM0pDTEUxQlFVMHNSVUZCUlN4SFFVRXlRaXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4UlFVRlJMRVZCUVVVc1EwRkJReXhEUVVGRE8wbEJReTlFTEUxQlFVMHNTMEZCU3l4SFFVRnJRaXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETzBsQlJTOURMRTFCUVUwc1lVRkJZU3hIUVVGSExFTkJRVU1zUlVGQlZTeEZRVUZWTEVWQlFVVTdVVUZETTBNc1UwRkJVeXhEUVVGRExGTkJRVk1zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEZUVJc1RVRkJUU3hKUVVGSkxFZEJRVWNzVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVOb1F5eEpRVUZKTEVsQlFVa3NTVUZCU1N4SlFVRkpMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU03V1VGRE1VSXNUMEZCVHl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03TzFsQlJXWXNUMEZCVHl4RlFVRkZMRU5CUVVNN1NVRkRaQ3hEUVVGRExFTkJRVU03U1VGRlJpeE5RVUZOTEUxQlFVMHNSMEZCWVN4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF6dEpRVU4yUkN4UFFVRlBMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTTdRVUZEYmtNc1EwRkJRenRCUVVWRU96czdPenRIUVV0SE8wRkJRMGdzVFVGQlRTeFZRVUZWTEZkQlFWY3NRMEZCUXl4TFFVRmhMRVZCUVVVc1UwRkJhVUlzUlVGQlJTeFJRVUUwUWl4VFFVRlRPMGxCUTJwSExFbEJRVWtzUzBGQlN5eERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRMRlZCUVZVc09FSkJRV2RDTzFGQlEyaEVMRTlCUVU4c1pVRkJaU3hEUVVGRE8xTkJRM0JDTEVsQlFVa3NTMEZCU3l4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRExGVkJRVlVzYzBOQlFXOUNPMUZCUTNwRUxFOUJRVThzZDBKQlFYZENMRU5CUVVNc1UwRkJVeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFOQlF5OURMRWxCUVVrc1MwRkJTeXhEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEZWQlFWVXNORUpCUVdVN1VVRkRjRVFzVDBGQlR5eGpRVUZqTEVOQlFVTTdPMUZCUlhSQ0xFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNiMEpCUVc5Q0xFdEJRVXNzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZGYWtRc01FSkJRVEJDTzBGQlF6VkNMRU5CUVVNN1FVRkZSRHM3TzBkQlIwYzdRVUZEU0N4TlFVRk5MRlZCUVZVc2IwSkJRVzlDTEVOQlFVTXNSMEZCWXp0SlFVTnFSQ3hKUVVGSkxFZEJRVWNzUTBGQlF5eFBRVUZQTEV0QlFVc3NSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXhoUVVGaE8xRkJRekZETEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc05rSkJRVFpDTEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1lVRkJZU3hUUVVGVExFTkJRVU1zUTBGQlF6dEpRVVZzUml4TlFVRk5MRXRCUVVzc1IwRkJSeXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03U1VGRGVFTXNUVUZCVFN4VFFVRlRMRWRCUVVjc1IwRkJSeXhEUVVGRExFMUJRVTBzYTBOQlFXZENMRU5CUVVNN1NVRkROME1zVDBGQlR5eFhRVUZYTEVOQlFVTXNTMEZCU3l4RlFVRkZMRk5CUVZNc1EwRkJReXhEUVVGRE8wRkJRM1pETEVOQlFVTTdRVUZGUkN4TlFVRk5MR2xDUVVGcFFpeEhRVUZYTEZGQlFWRXNRMEZCUXp0QlFVVXpReXdyUTBGQkswTTdRVUZETDBNc1RVRkJUU3hWUVVGVkxHTkJRV01zUTBGQlF5eExRVUZoTEVWQlFVVXNhMEpCUVRCQ096dEpRVU4wUlN4TlFVRk5MR1ZCUVdVc1IwRkJORUlzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eERRVUZETzBsQlEyaEdMRTFCUVUwc1YwRkJWeXhIUVVGWkxFdEJRVXNzUTBGQlF5eE5RVUZOTEVkQlFVY3NhMEpCUVd0Q0xFbEJRVWtzUTBGQlF5eE5RVUZCTEdWQlFXVXNZVUZCWml4bFFVRmxMSFZDUVVGbUxHVkJRV1VzUTBGQlJTeE5RVUZOTEcxRFFVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dEpRVU55Unl4TlFVRk5MRlZCUVZVc1IwRkJSeXhOUVVGQkxHVkJRV1VzWVVGQlppeGxRVUZsTEhWQ1FVRm1MR1ZCUVdVc1EwRkJSeXhEUVVGRExFTkJRVU1zYlVOQlFVa3NSMEZCUnl4RFFVRkRPMGxCUXk5RExFOUJRVThzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zVlVGQlZTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRVZCUVVVc2EwSkJRV3RDTEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNN1FVRkRka1lzUTBGQlF6dEJRVVZFTEUxQlFVMDdRVUZEVGl4TlFVRk5MRlZCUVZVc1YwRkJWeXhEUVVGRExGRkJRV3RDTzBsQlF6VkRMRkZCUVZFc1VVRkJVU3hGUVVGRk8xRkJRMnhDTzFsQlEwVXNUMEZCVHl4WlFVRlpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTTdVVUZEZGtNN1dVRkRSU3hQUVVGUExGbEJRVmtzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJRenRSUVVOMlF6dFpRVU5GTEU5QlFVOHNXVUZCV1N4RFFVRkRMRzlDUVVGdlFpeERRVUZETzFGQlF6TkRPMWxCUTBVc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eDVRa0ZCZVVJc1VVRkJVU3hKUVVGSkxFTkJRVU1zUTBGQlF6dExRVU40UkR0QlFVTklMRU5CUVVNN1FVRkZSRHM3T3pzN1IwRkxSenRCUVVOSUxFMUJRVTBzVlVGQlZTeHhRa0ZCY1VJc1EwRkJReXhKUVVGclFpeEZRVUZGTEZGQlFYRkNMRVZCUVVVc1dVRkJiMElzUjBGQlJ6dEpRVU4wUnl4TlFVRk5MRWxCUVVrc1IwRkJSeXhKUVVGSkxFZEJRVWNzUTBGQlV5eERRVUZETEVkQlFVY3NTVUZCU1N4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RlFVRkZMRWRCUVVjc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU16UlN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzBsQlJYWkNMRTFCUVUwc1MwRkJTeXhIUVVGaExFVkJRVVVzUTBGQlF6dEpRVU16UWl4TlFVRk5MRk5CUVZNc1IwRkJZU3hGUVVGRkxFTkJRVU03U1VGREwwSXNTMEZCU3l4TlFVRk5MRU5CUVVNc1NVRkJTU3hKUVVGSkxFVkJRVVU3VVVGRGNFSXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFbEJRVWtzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNCRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dExRVU42UXp0SlFVTkVMREJHUVVFd1JqdEpRVU14Uml4TlFVRk5MRXRCUVVzc1IwRkJWeXhKUVVGSkxFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0SlFVTjRReXhOUVVGTkxGTkJRVk1zUjBGQlZ5eEpRVUZKTEUxQlFVMHNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRKUVVOb1JDeFBRVUZQTEdkQ1FVRm5RaXhEUVVGRExFdEJRVXNzUlVGQlJTeFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMRmxCUVZrc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eFpRVUZaTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNNVJpeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMR05CUVdNc1EwRkJReXhMUVVGclFqdEpRVU12UXl4TlFVRk5MR3RDUVVGclFpeEhRVUUwUWp0UlFVTnNSQ3g1UWtGQll5eFpRVUZaTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU03VVVGRGFFUXNNa0pCUVdVc1dVRkJXU3hEUVVGRExHZENRVUZuUWl4RFFVRkRPMUZCUXpkRExESkNRVUZsTEZsQlFWa3NRMEZCUXl4blFrRkJaMElzUTBGQlF6dExRVU01UXl4RFFVRkRPMGxCUlVZc1owUkJRV2RFTzBsQlEyaEVMRTFCUVUwc2NVSkJRWEZDTEVkQlFXRXNhMEpCUVd0Q0xFTkJRVU1zUjBGQlJ5eERRVU0xUkN4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRMnhFTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eHhRa0ZCY1VJc1EwRkJReXhEUVVGRE8wbEJRMnhFTEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEd0Q1FVRnJRaXhEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU03U1VGRGNrY3NUMEZCVHl4UlFVRlJMRU5CUVVNN1FVRkRiRUlzUTBGQlF6dEJRVVZFT3pzN08wZEJTVWM3UVVGRFNDeE5RVUZOTEZWQlFWVXNZVUZCWVN4RFFVRkRMRTFCUVdsQ0xFVkJRVVVzV1VGQmIwSXNRMEZCUXp0SlFVTndSU3hKUVVGSkxGRkJRV2RDTEVOQlFVTTdTVUZEY2tJc1NVRkJTU3hOUVVGTkxFTkJRVU1zVDBGQlR5eEpRVUZKTEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1lVRkJZU3hGUVVGRk8xRkJRemxETEUxQlFVMHNSVUZCUlN4SFFVRnBRaXhKUVVGSkxGbEJRVmtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVTnNSQ3hSUVVGUkxFZEJRVWNzUlVGQlJTeERRVUZETEZGQlFWRXNRMEZCUXp0TFFVTjRRanRUUVVGTk8xRkJRMHdzVFVGQlRTeExRVUZMTEVkQlFXZENMRkZCUVZFc1EwRkJReXhOUVVGTkxFVkJRVVVzVTBGQlV5eEZRVUZGTEdWQlFXVXNRMEZCUXl4RFFVRkRPMUZCUTNoRkxGRkJRVkVzUjBGQlJ5eGpRVUZqTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1MwRkRiRU03U1VGRlJDeE5RVUZOTEVkQlFVY3NSMEZCUnl4blFrRkJaMElzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0SlFVTjJReXhQUVVGUExFZEJRVWNzUTBGQlF6dEJRVU5pTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc1owSkJRV2RDTEVOQlFVTXNWMEZCYlVJN1NVRkRiRVFzVVVGQlVTeFhRVUZYTEVWQlFVVTdVVUZEY2tJc1MwRkJTeXhKUVVGSk8xbEJRMUFzVDBGQlR5eHJRa0ZCYTBJc1EwRkJReXhWUVVGVkxFTkJRVU03VVVGRGRrTXNTMEZCU3l4SlFVRkpMRU5CUVVNN1VVRkRWaXhMUVVGTExFdEJRVXNzUTBGQlF6dFJRVU5ZTEV0QlFVc3NTMEZCU3p0WlFVTlNMRTlCUVU4c2JVSkJRVzFDTEVOQlFVTXNXVUZCV1N4RFFVRkRPMUZCUTNoRExGRkJRVkU3VVVGRFZqdFpRVU5GTEU5QlFVOHNhMEpCUVd0Q0xFTkJRVU1zUzBGQlN5eERRVUZETzB0QlEycERPMEZCUTBnc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeFpRVUZaTEVOQlFVTXNSVUZCWjBJN08wbEJRek5ETEUxQlFVMHNZMEZCWXl4SFFVRkhMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zV1VGQldTeERRVUZETEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU03U1VGRGVrVXNTVUZCU1N4TlFVRk5MRWRCUVhGQ0xFMUJRVUVzWTBGQll5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hGUVVGRk8xRkJRM3BFTEUxQlFVMHNTMEZCU3l4SFFVRkhMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVONFF5eFBRVUZQTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETzBsQlEzSkVMRU5CUVVNc1EwRkJReXh0UTBGQlNTeEpRVUZKTEVOQlFVTTdTVUZEV0N4SlFVRkpMRU5CUVVNc1RVRkJUU3hKUVVGSkxHTkJRV01zUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXp0UlFVTjBReXhOUVVGTkxFZEJRVWNzWTBGQll5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUXpkQ0xFOUJRVThzVFVGQlRTeERRVUZETzBGQlEyaENMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ0tpQmhjeUJuY205cklHWnliMjBnSjJSaGRHRm5jbTlyTFdGd2FTOW5jbTlySnp0Y2JtbHRjRzl5ZENBcUlHRnpJSFZwSUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5MWFTYzdYRzVwYlhCdmNuUWdLaUJoY3lCRVJ5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaR2NuTzF4dWFXMXdiM0owSUhkMUlHWnliMjBnSjNkMUp6dGNibHh1YVcxd2IzSjBJSHRXWldOMGIzSjlJR1p5YjIwZ0owQmtZWFJoWjNKdmF5MXNhV0p5WVhKcFpYTXZkWFJwYkhNdmMzSmpMM1I1Y0dVdFpHVmpiR0Z5WVhScGIyNXpKenRjYm1sdGNHOXlkQ0I3ZG1WamRHOXlUR1Z1WjNSb0xDQjJaV04wYjNKRWIzUlFjbTlrZFdOMGZTQm1jbTl0SUNkQVpHRjBZV2R5YjJzdGJHbGljbUZ5YVdWekwzVjBhV3h6TDNOeVl5OTJaV04wYjNJdGIzQmxjbUYwYVc5dWN5YzdYRzVwYlhCdmNuUWdlMU5sY1ZCaGJHVjBkR1Y5SUdaeWIyMGdKeTR1TDNObGNTMXdZV3hsZEhSbGN5YzdYRzVwYlhCdmNuUWdlMEZ0YVc1dllXTnBaSE1zSUVGdGFXNXZZV05wWkhOUVlXeGxkSFJsYzMwZ1puSnZiU0FuTGk0dllXMXBibTloWTJsa2N5YzdYRzVwYlhCdmNuUWdlMDUxWTJ4bGIzUnBaR1Z6TENCT2RXTnNaVzkwYVdSbGMxQmhiR1YwZEdWemZTQm1jbTl0SUNjdUxpOXVkV05zWlc5MGFXUmxjeWM3WEc1cGJYQnZjblFnZTFWdWEyNXZkMjVUWlhGUVlXeGxkSFJsYzMwZ1puSnZiU0FuTGk0dmRXNXJibTkzYmljN1hHNXBiWEJ2Y25RZ2UxVnVhWFJ6U0dGdVpHeGxjbjBnWm5KdmJTQW5MaTR2ZFhScGJITXZkVzVwZEhNdGFHRnVaR3hsY2ljN1hHNWNibHh1THlvcUlHVnVkVzBnZEhsd1pTQjBieUJ6YVcxd2JHbG1lU0J6WlhSMGFXNW5JRndpZFhObGNpMW1jbWxsYm1Sc2VWd2lJRzV2ZEdGMGFXOXVJR2xtSUc1bFkyVnpjMkZ5ZVNBcUwxeHVaWGh3YjNKMElHTnZibk4wSUdWdWRXMGdUazlVUVZSSlQwNGdlMXh1SUNCR1FWTlVRU0E5SUNkbVlYTjBZU2NzWEc0Z0lGTkZVRUZTUVZSUFVpQTlJQ2R6WlhCaGNtRjBiM0luTEZ4dUlDQklSVXhOSUQwZ0oyaGxiRzBuTEZ4dWZWeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1pXNTFiU0JCVEVsSFRrMUZUbFFnZTF4dUlDQlRSVkZmVFZOQklEMGdKMU5GVVM1TlUwRW5MRnh1SUNCVFJWRWdQU0FuVTBWUkp5eGNibjFjYmx4dVpYaHdiM0owSUdOdmJuTjBJR1Z1ZFcwZ1FVeFFTRUZDUlZRZ2UxeHVJQ0JFVGtFZ1BTQW5SRTVCSnl4Y2JpQWdVazVCSUQwZ0oxSk9RU2NzWEc0Z0lGQlVJRDBnSjFCVUp5eGNiaUFnVlU0Z1BTQW5WVTRuTEZ4dWZWeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1pXNTFiU0JVUVVkVElIdGNiaUFnWVd4cFoyNWxaQ0E5SUNkaGJHbG5ibVZrSnl4Y2JpQWdZV3h3YUdGaVpYUWdQU0FuWVd4d2FHRmlaWFFuTEZ4dUlDQmhiSEJvWVdKbGRGTnBlbVVnUFNBbkxtRnNjR2hoWW1WMFUybDZaU2NzWEc0Z0lHRnNjR2hoWW1WMFNYTk5kV3gwYVdOb1lYSWdQU0FuTG1Gc2NHaGhZbVYwU1hOTmRXeDBhV05vWVhJbkxGeHVJQ0J6WlhCaGNtRjBiM0lnUFNBbmMyVndZWEpoZEc5eUp5eGNibjA3WEc1Y2JtVjRjRzl5ZENCMGVYQmxJRk5sY1VOdmJGTjBZWFJ6SUQwZ2V5Qm1jbVZ4T2lCTmIyNXZiV1Z5Um5KbGNYTXNJSE5oYldWTVpXNW5kR2c2SUdKdmIyeGxZVzRnZlZ4dVpYaHdiM0owSUhSNWNHVWdVM0JzYVhSMFpYSkdkVzVqSUQwZ0tITmxjVG9nYzNSeWFXNW5LU0E5UGlCemRISnBibWRiWFR0Y2JtVjRjRzl5ZENCMGVYQmxJRTF2Ym05dFpYSkdjbVZ4Y3lBOUlIc2dXMjA2SUhOMGNtbHVaMTA2SUc1MWJXSmxjaUI5TzF4dVhHNHZLaW9nVTNSaGRITWdiMllnYzJWeGRXVnVZMlZ6SUhkcGRHZ2djM0JsWTJsbWFXVmtJSE53YkdsMGRHVnlJR1oxYm1Nc0lISmxkSFZ5Ym5NZ2V5Qm1jbVZ4TENCellXMWxUR1Z1WjNSb0lIMHVYRzRnS2lCQWNHRnlZVzBnZTBSSExrTnZiSFZ0Ym4wZ2MyVnhRMjlzWEc0Z0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ2JXbHVUR1Z1WjNSb1hHNGdLaUJBY0dGeVlXMGdlMU53YkdsMGRHVnlSblZ1WTMwZ2MzQnNhWFIwWlhKY2JpQXFJRUJ5WlhSMWNtNGdleUJUWlhGRGIyeFRkR0YwY3lCOUxDQnpZVzFsVEdWdVozUm9PaUJpYjI5c1pXRnVJSDBnYzNSaGRITWdiMllnWTI5c2RXMXVJSE5sY1hWbGJtTmxjMXh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1oyVjBVM1JoZEhNb2MyVnhRMjlzT2lCRVJ5NURiMngxYlc0c0lHMXBia3hsYm1kMGFEb2diblZ0WW1WeUxDQnpjR3hwZEhSbGNqb2dVM0JzYVhSMFpYSkdkVzVqS1RvZ1UyVnhRMjlzVTNSaGRITWdlMXh1SUNCamIyNXpkQ0JtY21WeE9pQjdJRnR0T2lCemRISnBibWRkT2lCdWRXMWlaWElnZlNBOUlIdDlPMXh1SUNCc1pYUWdjMkZ0WlV4bGJtZDBhQ0E5SUhSeWRXVTdYRzRnSUd4bGRDQm1hWEp6ZEV4bGJtZDBhQ0E5SUc1MWJHdzdYRzVjYmlBZ1ptOXlJQ2hqYjI1emRDQnpaWEVnYjJZZ2MyVnhRMjlzTG1OaGRHVm5iM0pwWlhNcElIdGNiaUFnSUNCamIyNXpkQ0J0VTJWeElEMGdjM0JzYVhSMFpYSW9jMlZ4S1R0Y2JseHVJQ0FnSUdsbUlDaG1hWEp6ZEV4bGJtZDBhQ0E5UFNCdWRXeHNLVnh1SUNBZ0lDQWdabWx5YzNSTVpXNW5kR2dnUFNCdFUyVnhMbXhsYm1kMGFEdGNiaUFnSUNCbGJITmxJR2xtSUNodFUyVnhMbXhsYm1kMGFDQWhQVDBnWm1seWMzUk1aVzVuZEdncFhHNGdJQ0FnSUNCellXMWxUR1Z1WjNSb0lEMGdabUZzYzJVN1hHNWNiaUFnSUNCcFppQW9iVk5sY1M1c1pXNW5kR2dnUGowZ2JXbHVUR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJRzBnYjJZZ2JWTmxjU2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9JU2h0SUdsdUlHWnlaWEVwS1Z4dUlDQWdJQ0FnSUNBZ0lHWnlaWEZiYlYwZ1BTQXdPMXh1SUNBZ0lDQWdJQ0JtY21WeFcyMWRJQ3M5SURFN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQjlYRzRnSUhKbGRIVnliaUI3Wm5KbGNUb2dabkpsY1N3Z2MyRnRaVXhsYm1kMGFEb2djMkZ0WlV4bGJtZDBhSDA3WEc1OVhHNWNibVY0Y0c5eWRDQmpiMjV6ZENCdGIyNXZiV1Z5VW1VNklGSmxaMFY0Y0NBOUlDOWNYRnNvWEZ4M0t5bGNYRjE4S0Z4Y2R5bDhLQzBwTDJjN1hHNWNiaThxS2lCVGNHeHBkQ0J6WlhGMVpXNWpaU0JtYjNJZ2MybHVaMnhsSUdOb1lYSmhZM1JsY2lCdGIyNXZiV1Z5Y3l3Z2MzRjFZWEpsSUdKeVlXTnJaWFJ6SUcxMWJIUnBZMmhoY2lCdGIyNXZiV1Z5SUc1aGJXVnpJRzl5SUdkaGNDQnplVzFpYjJ3dVhHNGdLaUJBY0dGeVlXMGdlMkZ1ZVgwZ2MyVnhJRzlpYW1WamRDQjNhWFJvSUhObGNYVmxibU5sWEc0Z0tpQkFjbVYwZFhKdUlIdHpkSEpwYm1kYlhYMGdZWEp5WVhrZ2IyWWdiVzl1YjIxbGNuTmNiaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhOd2JHbDBkR1Z5UVhOR1lYTjBZU2h6WlhFNklHRnVlU2s2SUhOMGNtbHVaMXRkSUh0Y2JpQWdjbVYwZFhKdUlIZDFQRkpsWjBWNGNFMWhkR05vUVhKeVlYaytLSE5sY1M1MGIxTjBjbWx1WnlncExtMWhkR05vUVd4c0tHMXZibTl0WlhKU1pTa3BYRzRnSUNBZ0xtMWhjQ2dvYldFNklGSmxaMFY0Y0UxaGRHTm9RWEp5WVhrcElEMCtJSHRjYmlBZ0lDQWdJR3hsZENCdFVtVnpPaUJ6ZEhKcGJtYzdYRzRnSUNBZ0lDQmpiMjV6ZENCdE9pQnpkSEpwYm1jZ1BTQnRZVnN3WFR0Y2JpQWdJQ0FnSUdsbUlDaHRMbXhsYm1kMGFDQStJREVwSUh0Y2JpQWdJQ0FnSUNBZ2JWSmxjeUE5SUcxaFd6RmRPMXh1SUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdiVkpsY3lBOUlHMDdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnlaWFIxY200Z2JWSmxjenRjYmlBZ0lDQjlLUzUwYjBGeWNtRjVLQ2s3WEc1OVhHNWNiaThxS2lCSFpYUnpJRzFsZEdodlpDQjBieUJ6Y0d4cGRDQnpaWEYxWlc1alpTQmllU0J6WlhCaGNtRjBiM0pjYmlBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCelpYQmhjbUYwYjNKY2JpQXFJRUJ3WVhKaGJTQnNhVzFwZEZ4dUlDb2dRSEpsZEhWeWJpQjdVM0JzYVhSMFpYSkdkVzVqZlZ4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdaMlYwVTNCc2FYUjBaWEpYYVhSb1UyVndZWEpoZEc5eUtITmxjR0Z5WVhSdmNqb2djM1J5YVc1bkxDQnNhVzFwZERvZ2JuVnRZbVZ5SUh3Z2RXNWtaV1pwYm1Wa0lEMGdkVzVrWldacGJtVmtLVG9nVTNCc2FYUjBaWEpHZFc1aklIdGNiaUFnY21WMGRYSnVJQ2h6WlhFNklITjBjbWx1WnlrZ1BUNGdlMXh1SUNBZ0lISmxkSFZ5YmlCelpYRXVjM0JzYVhRb2MyVndZWEpoZEc5eUxDQnNhVzFwZENrN1hHNGdJSDA3WEc1OVhHNWNibU52Ym5OMElHaGxiRzFTWlRvZ1VtVm5SWGh3SUQwZ0x5aFFSVkJVU1VSRk1YeEVUa0V4ZkZKT1FURXBYRng3S0Z0ZWZWMHJLWDB2Wnp0Y2JtTnZibk4wSUdobGJHMVFjREZTWlRvZ1VtVm5SWGh3SUQwZ0wxeGNXeWhiWGx4Y1cxeGNYVjByS1Ywdlp6dGNibHh1THlvcUlGTndiR2wwY3lCSVpXeHRJSE4wY21sdVp5QjBieUJ0YjI1dmJXVnljeXdnWW5WMElHUnZaWE1nYm05MElISmxjR3hoWTJVZ2JXOXViMjFsY2lCdVlXMWxjeUIwYnlCdmRHaGxjaUJ1YjNSaGRHbHZiaUFvWlM1bkxpQm1iM0lnVWs1QktTNWNiaUFxSUU5dWJIa2dabTl5SUd4cGJtVmhjaUJ3YjJ4NWJXVnljeXdnWkc5bGN5QnViM1FnYzNCc2FYUWdVazVCSUdadmNpQnlhV0p2YzJVZ1lXNWtJSEJvYjNOd2FHRjBaU0J0YjI1dmJXVnljeTVjYmlBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCelpYRWdVMjkxY21ObElITjBjbWx1WnlCdlppQklSVXhOSUc1dmRHRjBhVzl1WEc0Z0tpQkFjbVYwZFhKdUlIdHpkSEpwYm1kYlhYMWNiaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhOd2JHbDBkR1Z5UVhOSVpXeHRLSE5sY1RvZ1lXNTVLVG9nYzNSeWFXNW5XMTBnZTF4dUlDQm9aV3h0VW1VdWJHRnpkRWx1WkdWNElEMGdNRHRjYmlBZ1kyOXVjM1FnWldFNklGSmxaMFY0Y0VWNFpXTkJjbkpoZVNCOElHNTFiR3dnUFNCb1pXeHRVbVV1WlhobFl5aHpaWEV1ZEc5VGRISnBibWNvS1NrN1hHNGdJR052Ym5OMElHbHVVMlZ4T2lCemRISnBibWNnZkNCdWRXeHNJRDBnWldFZ1B5QmxZVnN5WFNBNklHNTFiR3c3WEc1Y2JpQWdZMjl1YzNRZ2JXMVFiM04wVUhKdlkyVnpjeUE5SUNodGJUb2djM1J5YVc1bktUb2djM1J5YVc1bklEMCtJSHRjYmlBZ0lDQm9aV3h0VUhBeFVtVXViR0Z6ZEVsdVpHVjRJRDBnTUR0Y2JpQWdJQ0JqYjI1emRDQndjREZOSUQwZ2FHVnNiVkJ3TVZKbExtVjRaV01vYlcwcE8xeHVJQ0FnSUdsbUlDaHdjREZOSUNZbUlIQndNVTB1YkdWdVozUm9JRDQ5SURJcFhHNGdJQ0FnSUNCeVpYUjFjbTRnY0hBeFRWc3hYVHRjYmlBZ0lDQmxiSE5sWEc0Z0lDQWdJQ0J5WlhSMWNtNGdiVzA3WEc0Z0lIMDdYRzVjYmlBZ1kyOXVjM1FnYlcxTWFYTjBPaUJ6ZEhKcGJtZGJYU0E5SUdsdVUyVnhJRDhnYVc1VFpYRXVjM0JzYVhRb0p5NG5LU0E2SUZ0ZE8xeHVJQ0J5WlhSMWNtNGdiVzFNYVhOMExtMWhjQ2h0YlZCdmMzUlFjbTlqWlhOektUdGNibjFjYmx4dUx5b3FJRWRsZENCemNHeHBkSFJsY2lCdFpYUm9iMlFnZEc4Z2MzQnNhWFFnYzJWeGRXVnVZMlZ6SUhSdklHMXZibTl0WlhKelhHNGdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdkVzVwZEhOY2JpQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnpaWEJoY21GMGIzSmNiaUFxSUVCd1lYSmhiU0JzYVcxcGRGeHVJQ29nUUhKbGRIVnliaUI3VTNCc2FYUjBaWEpHZFc1amZWeHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWjJWMFUzQnNhWFIwWlhJb2RXNXBkSE02SUhOMGNtbHVaeXdnYzJWd1lYSmhkRzl5T2lCemRISnBibWNzSUd4cGJXbDBPaUJ1ZFcxaVpYSWdmQ0IxYm1SbFptbHVaV1FnUFNCMWJtUmxabWx1WldRcE9pQlRjR3hwZEhSbGNrWjFibU1nZTF4dUlDQnBaaUFvZFc1cGRITXVkRzlNYjNkbGNrTmhjMlVvS1M1emRHRnlkSE5YYVhSb0tFNVBWRUZVU1U5T0xrWkJVMVJCS1NsY2JpQWdJQ0J5WlhSMWNtNGdjM0JzYVhSMFpYSkJjMFpoYzNSaE8xeHVJQ0JsYkhObElHbG1JQ2gxYm1sMGN5NTBiMHh2ZDJWeVEyRnpaU2dwTG5OMFlYSjBjMWRwZEdnb1RrOVVRVlJKVDA0dVUwVlFRVkpCVkU5U0tTbGNiaUFnSUNCeVpYUjFjbTRnWjJWMFUzQnNhWFIwWlhKWGFYUm9VMlZ3WVhKaGRHOXlLSE5sY0dGeVlYUnZjaXdnYkdsdGFYUXBPMXh1SUNCbGJITmxJR2xtSUNoMWJtbDBjeTUwYjB4dmQyVnlRMkZ6WlNncExuTjBZWEowYzFkcGRHZ29UazlVUVZSSlQwNHVTRVZNVFNrcFhHNGdJQ0FnY21WMGRYSnVJSE53YkdsMGRHVnlRWE5JWld4dE8xeHVJQ0JsYkhObFhHNGdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLR0JWYm1WNGNHVmpkR1ZrSUhWdWFYUnpJQ1I3ZFc1cGRITjlJQzVnS1R0Y2JseHVJQ0F2THlCVVQwUlBPaUJUY0d4cGRIUmxjaUJtYjNJZ1NFVk1UVnh1ZlZ4dVhHNHZLaW9nUjJWdVpYSmhkR1VnYzNCc2FYUjBaWElnWm5WdVkzUnBiMjRnWm05eUlITmxjWFZsYm1ObElHTnZiSFZ0Ymx4dUlDb2dRSEJoY21GdElIdEVSeTVEYjJ4MWJXNTlJR052YkZ4dUlDb2dRSEpsZEhWeWJpQjdVM0JzYVhSMFpYSkdkVzVqZlNCVGNHeHBkSFJsY2lCbWRXNWpkR2x2Ymx4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdaMlYwVTNCc2FYUjBaWEpHYjNKRGIyeDFiVzRvWTI5c09pQkVSeTVEYjJ4MWJXNHBPaUJUY0d4cGRIUmxja1oxYm1NZ2UxeHVJQ0JwWmlBb1kyOXNMbk5sYlZSNWNHVWdJVDA5SUVSSExsTkZUVlJaVUVVdVRVRkRVazlOVDB4RlExVk1SU2xjYmlBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb1lFZGxkQ0J6Y0d4cGRIUmxjaUJtYjNJZ2MyVnRWSGx3WlNCY0lpUjdSRWN1VTBWTlZGbFFSUzVOUVVOU1QwMVBURVZEVlV4RmZWd2lJRzl1YkhrdVlDazdYRzVjYmlBZ1kyOXVjM1FnZFc1cGRITWdQU0JqYjJ3dVoyVjBWR0ZuS0VSSExsUkJSMU11VlU1SlZGTXBPMXh1SUNCamIyNXpkQ0J6WlhCaGNtRjBiM0lnUFNCamIyd3VaMlYwVkdGbktGUkJSMU11YzJWd1lYSmhkRzl5S1R0Y2JpQWdjbVYwZFhKdUlHZGxkRk53YkdsMGRHVnlLSFZ1YVhSekxDQnpaWEJoY21GMGIzSXBPMXh1ZlZ4dVhHNWpiMjV6ZENCc2IyNW5UVzl1YjIxbGNsQmhjblJTWlRvZ1VtVm5SWGh3SUQwZ0x5aGNYSGNyS1M5bk8xeHVYRzR2S2lvZ1EyOXVkbVZ5ZENCc2IyNW5JRzF2Ym05dFpYSWdibUZ0WlhNZ2RHOGdjMmh2Y25RZ2IyNWxjeUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUcxdmJtOXRaWEpVYjFOb2IzSjBLR0Z0YVc1dk9pQnpkSEpwYm1jc0lHMWhlRXhsYm1kMGFFOW1UVzl1YjIxbGNqb2diblZ0WW1WeUtUb2djM1J5YVc1bklIdGNiaUFnWTI5dWMzUWdjMmh2Y25SQmJXbHViMDFoZEdOb09pQlNaV2RGZUhCTllYUmphRUZ5Y21GNUlId2diblZzYkNBOUlHRnRhVzV2TG0xaGRHTm9LR3h2Ym1kTmIyNXZiV1Z5VUdGeWRGSmxLVHRjYmlBZ1kyOXVjM1FnYm1WbFpFRmtaRVJ2ZEhNNklHSnZiMnhsWVc0Z1BTQmhiV2x1Ynk1c1pXNW5kR2dnUGlCdFlYaE1aVzVuZEdoUFprMXZibTl0WlhJZ2ZId2dLSE5vYjNKMFFXMXBibTlOWVhSamFEOHViR1Z1WjNSb0lEOC9JREFwSUQ0Z01UdGNiaUFnWTI5dWMzUWdjMmh2Y25SQmJXbHVieUE5SUhOb2IzSjBRVzFwYm05TllYUmphRDh1V3pCZElEOC9JQ2NnSnp0Y2JpQWdjbVYwZFhKdUlDRnVaV1ZrUVdSa1JHOTBjeUEvSUhOb2IzSjBRVzFwYm04Z09pQnphRzl5ZEVGdGFXNXZMbk4xWW5OMGNtbHVaeWd3TENCdFlYaE1aVzVuZEdoUFprMXZibTl0WlhJcElDc2dKK0tBcGljN1hHNTlYRzVjYmk4cUtpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2RsZEVGc2NHaGhZbVYwS0dGc2NHaGhZbVYwT2lCQlRGQklRVUpGVkNrNklGTmxkRHh6ZEhKcGJtYytJSHRjYmlBZ2MzZHBkR05vSUNoaGJIQm9ZV0psZENrZ2UxeHVJQ0JqWVhObElFRk1VRWhCUWtWVUxrUk9RVHBjYmlBZ0lDQnlaWFIxY200Z1ZXNXBkSE5JWVc1a2JHVnlMa1J1WVVaaGMzUmhRV3h3YUdGaVpYUTdYRzRnSUdOaGMyVWdRVXhRU0VGQ1JWUXVVazVCT2x4dUlDQWdJSEpsZEhWeWJpQlZibWwwYzBoaGJtUnNaWEl1VW01aFJtRnpkR0ZCYkhCb1lXSmxkRHRjYmlBZ1kyRnpaU0JCVEZCSVFVSkZWQzVRVkRwY2JpQWdJQ0J5WlhSMWNtNGdWVzVwZEhOSVlXNWtiR1Z5TGxCbGNIUnBaR1ZHWVhOMFlVRnNjR2hoWW1WME8xeHVJQ0JrWldaaGRXeDBPbHh1SUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2loZ1ZXNXpkWEJ3YjNKMFpXUWdZV3h3YUdGaVpYUWdKeVI3WVd4d2FHRmlaWFI5Snk1Z0tUdGNiaUFnZlZ4dWZWeHVYRzR2S2lvZ1EyRnNZM1ZzWVhSbElITnBiV2xzWVhKcGRIa2dhVzRnWTNWeWNtVnVkQ0J6WlhGMVpXNWpaU0JoYm1RZ1lXeHdhR0ZpWlhRdVhHNGdLaUJBY0dGeVlXMGdlMDF2Ym05dFpYSkdjbVZ4YzMwZ1puSmxjVnh1SUNvZ1FIQmhjbUZ0SUh0VFpYUThjM1J5YVc1blBuMGdZV3h3YUdGaVpYUmNiaUFxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JuWVhCVGVXMWliMnhjYmlBcUlFQnlaWFIxY200Z2UyNTFiV0psY24wZ1EyOXphVzVsSUhOcGJXbHNZWEpwZEhsY2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2RsZEVGc2NHaGhZbVYwVTJsdGFXeGhjbWwwZVNobWNtVnhPaUJOYjI1dmJXVnlSbkpsY1hNc0lHRnNjR2hoWW1WME9pQlRaWFE4YzNSeWFXNW5QaXdnWjJGd1UzbHRZbTlzT2lCemRISnBibWNnUFNBbkxTY3BPaUJ1ZFcxaVpYSWdlMXh1SUNCamIyNXpkQ0JyWlhseklEMGdibVYzSUZObGREeHpkSEpwYm1jK0tGc3VMaTV1WlhjZ1UyVjBLRTlpYW1WamRDNXJaWGx6S0daeVpYRXBLU3dnTGk0dVlXeHdhR0ZpWlhSZEtUdGNiaUFnYTJWNWN5NWtaV3hsZEdVb1oyRndVM2x0WW05c0tUdGNibHh1SUNCamIyNXpkQ0JtY21WeFFUb2diblZ0WW1WeVcxMGdQU0JiWFR0Y2JpQWdZMjl1YzNRZ1lXeHdhR0ZpWlhSQk9pQnVkVzFpWlhKYlhTQTlJRnRkTzF4dUlDQm1iM0lnS0dOdmJuTjBJRzBnYjJZZ2EyVjVjeWtnZTF4dUlDQWdJR1p5WlhGQkxuQjFjMmdvYlNCcGJpQm1jbVZ4SUQ4Z1puSmxjVnR0WFNBNklEQXBPMXh1SUNBZ0lHRnNjR2hoWW1WMFFTNXdkWE5vS0dGc2NHaGhZbVYwTG1oaGN5aHRLU0EvSURFZ09pQXdLVHRjYmlBZ2ZWeHVJQ0F2S2lCVWFHVnlaU0IzWlhKbElHRWdabVYzSUdsa1pXRnpPaUJqYUdrdGMzRjFZWEpsWkN3Z2NHVmhjbk52YmlCamIzSnlaV3hoZEdsdmJpQW9kbUZ5YVdGdVkyVS9LU3dnYzJOaGJHRnlJSEJ5YjJSMVkzUWdLaTljYmlBZ1kyOXVjM1FnWm5KbGNWWTZJRlpsWTNSdmNpQTlJRzVsZHlCV1pXTjBiM0lvWm5KbGNVRXBPMXh1SUNCamIyNXpkQ0JoYkhCb1lXSmxkRlk2SUZabFkzUnZjaUE5SUc1bGR5QldaV04wYjNJb1lXeHdhR0ZpWlhSQktUdGNiaUFnY21WMGRYSnVJSFpsWTNSdmNrUnZkRkJ5YjJSMVkzUW9abkpsY1ZZc0lHRnNjR2hoWW1WMFZpa2dMeUFvZG1WamRHOXlUR1Z1WjNSb0tHWnlaWEZXS1NBcUlIWmxZM1J2Y2t4bGJtZDBhQ2hoYkhCb1lXSmxkRllwS1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR1JsZEdWamRFRnNjR2hoWW1WMEtITjBZWFJ6T2lCVFpYRkRiMnhUZEdGMGN5azZJSE4wY21sdVp5QjdYRzRnSUdOdmJuTjBJR0ZzY0doaFltVjBRMkZ1Wkdsa1lYUmxjem9nVzNOMGNtbHVaeXdnVTJWMFBITjBjbWx1Wno1ZFcxMGdQU0JiWEc0Z0lDQWdXMEZNVUVoQlFrVlVMbEJVTENCVmJtbDBjMGhoYm1Sc1pYSXVVR1Z3ZEdsa1pVWmhjM1JoUVd4d2FHRmlaWFJkTEZ4dUlDQWdJRnRCVEZCSVFVSkZWQzVFVGtFc0lGVnVhWFJ6U0dGdVpHeGxjaTVFYm1GR1lYTjBZVUZzY0doaFltVjBYU3hjYmlBZ0lDQmJRVXhRU0VGQ1JWUXVVazVCTENCVmJtbDBjMGhoYm1Sc1pYSXVVbTVoUm1GemRHRkJiSEJvWVdKbGRGMHNYRzRnSUYwN1hHNWNiaUFnTHk4Z1EyRnNZM1ZzWVhSbElHeHBhMlZzYVdodmIyUnpJR1p2Y2lCaGJIQm9ZV0psZEY5allXNWthV1JoZEdWelhHNGdJR052Ym5OMElHRnNjR2hoWW1WMFEyRnVaR2xrWVhSbGMxTnBiVG9nYm5WdFltVnlXMTBnUFNCaGJIQm9ZV0psZEVOaGJtUnBaR0YwWlhNdWJXRndLRnh1SUNBZ0lDaGpLU0E5UGlCblpYUkJiSEJvWVdKbGRGTnBiV2xzWVhKcGRIa29jM1JoZEhNdVpuSmxjU3dnWTFzeFhTa3BPMXh1SUNCamIyNXpkQ0J0WVhoRGIzTWdQU0JOWVhSb0xtMWhlQ2d1TGk1aGJIQm9ZV0psZEVOaGJtUnBaR0YwWlhOVGFXMHBPMXh1SUNCamIyNXpkQ0JoYkhCb1lXSmxkQ0E5SUcxaGVFTnZjeUErSURBdU5qVWdQeUJoYkhCb1lXSmxkRU5oYm1ScFpHRjBaWE5iWVd4d2FHRmlaWFJEWVc1a2FXUmhkR1Z6VTJsdExtbHVaR1Y0VDJZb2JXRjRRMjl6S1YxYk1GMGdPaUFuVlU0bk8xeHVJQ0J5WlhSMWNtNGdZV3h3YUdGaVpYUTdYRzU5WEc1Y2JpOHFLaUJUWld4bFkzUnpJR0VnYzNWcGRHRmliR1VnY0dGc1pYUjBaU0JpWVhObFpDQnZiaUJqYjJ4MWJXNGdaR0YwWVZ4dUlDb2dRSEJoY21GdElIdEVSeTVEYjJ4MWJXNTlJSE5sY1VOdmJDQkRiMngxYlc0Z2RHOGdiRzl2YXlCbWIzSWdZU0J3WVd4bGRIUmxYRzRnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnSUcxcGJreGxibWQwYUNCdGFXNXBiWFZ0SUd4bGJtZDBhQ0J2WmlCelpYRjFaVzVqWlNCMGJ5QmtaWFJsWTNRZ2NHRnNaWFIwWlNBb1pXMXdkSGtnYzNSeWFXNW5jeUJoY21VZ1lXeHNiM2RsWkNsY2JpQXFJRUJ5WlhSMWNtNGdlMU5sY1ZCaGJHVjBkR1Y5SUZCaGJHVjBkR1VnWTI5eWNtVnpjRzl1WkdsdVp5QjBieUIwYUdVZ1lXeHdhR0ZpWlhRZ2IyWWdkR2hsSUhObGNYVmxibU5sY3lCcGJpQjBhR1VnWTI5c2RXMXVYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCd2FXTnJWWEJRWVd4bGRIUmxLSE5sY1VOdmJEb2dSRWN1UTI5c2RXMXVMQ0J0YVc1TVpXNW5kR2c2SUc1MWJXSmxjaUE5SURVcE9pQlRaWEZRWVd4bGRIUmxJSHRjYmlBZ2JHVjBJR0ZzY0doaFltVjBPaUJ6ZEhKcGJtYzdYRzRnSUdsbUlDaHpaWEZEYjJ3dWMyVnRWSGx3WlNBOVBTQkVSeTVUUlUxVVdWQkZMazFCUTFKUFRVOU1SVU5WVEVVcElIdGNiaUFnSUNCamIyNXpkQ0IxYURvZ1ZXNXBkSE5JWVc1a2JHVnlJRDBnYm1WM0lGVnVhWFJ6U0dGdVpHeGxjaWh6WlhGRGIyd3BPMXh1SUNBZ0lHRnNjR2hoWW1WMElEMGdkV2d1WVd4d2FHRmlaWFE3WEc0Z0lIMGdaV3h6WlNCN1hHNGdJQ0FnWTI5dWMzUWdjM1JoZEhNNklGTmxjVU52YkZOMFlYUnpJRDBnWjJWMFUzUmhkSE1vYzJWeFEyOXNMQ0J0YVc1TVpXNW5kR2dzSUhOd2JHbDBkR1Z5UVhOR1lYTjBZU2s3WEc0Z0lDQWdZV3h3YUdGaVpYUWdQU0JrWlhSbFkzUkJiSEJvWVdKbGRDaHpkR0YwY3lrN1hHNGdJSDFjYmx4dUlDQmpiMjV6ZENCeVpYTWdQU0JuWlhSUVlXeGxkSFJsUW5sVWVYQmxLR0ZzY0doaFltVjBLVHRjYmlBZ2NtVjBkWEp1SUhKbGN6dGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdkbGRGQmhiR1YwZEdWQ2VWUjVjR1VvY0dGc1pYUjBaVlI1Y0dVNklITjBjbWx1WnlrNklGTmxjVkJoYkdWMGRHVWdlMXh1SUNCemQybDBZMmdnS0hCaGJHVjBkR1ZVZVhCbEtTQjdYRzRnSUdOaGMyVWdKMUJVSnpwY2JpQWdJQ0J5WlhSMWNtNGdRVzFwYm05aFkybGtjMUJoYkdWMGRHVnpMa2R5YjJ0SGNtOTFjSE03WEc0Z0lHTmhjMlVnSjA1VUp6cGNiaUFnWTJGelpTQW5SRTVCSnpwY2JpQWdZMkZ6WlNBblVrNUJKenBjYmlBZ0lDQnlaWFIxY200Z1RuVmpiR1Z2ZEdsa1pYTlFZV3hsZEhSbGN5NURhSEp2YldGMGIyZHlZVzA3WEc0Z0lDQWdMeThnYjNSb1pYSmNiaUFnWkdWbVlYVnNkRHBjYmlBZ0lDQnlaWFIxY200Z1ZXNXJibTkzYmxObGNWQmhiR1YwZEdWekxrTnZiRzl5TzF4dUlDQjlYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCd2FXTnJWWEJUWlhGRGIyd29aR1k2SUVSSExrUmhkR0ZHY21GdFpTazZJRVJITGtOdmJIVnRiaUI4SUc1MWJHd2dlMXh1SUNCamIyNXpkQ0J6WlcxVWVYQmxRMjlzVEdsemRDQTlJR1JtTG1OdmJIVnRibk11WW5sVFpXMVVlWEJsUVd4c0tFUkhMbE5GVFZSWlVFVXVUVUZEVWs5TlQweEZRMVZNUlNrN1hHNGdJR3hsZENCeVpYTkRiMnc2SUVSSExrTnZiSFZ0YmlCOElHNTFiR3dnUFNCelpXMVVlWEJsUTI5c1RHbHpkQzVtYVc1a0tDaGpiMndwSUQwK0lIdGNiaUFnSUNCamIyNXpkQ0IxYm1sMGN5QTlJR052YkM1blpYUlVZV2NvUkVjdVZFRkhVeTVWVGtsVVV5azdYRzRnSUNBZ2NtVjBkWEp1SUhWdWFYUnpJRDhnZFc1cGRITXVhVzVrWlhoUFppZ25UVk5CSnlrZ0lUMDlJQzB4SURvZ1ptRnNjMlU3WEc0Z0lIMHBJRDgvSUc1MWJHdzdYRzRnSUdsbUlDZ2hjbVZ6UTI5c0lDWW1JSE5sYlZSNWNHVkRiMnhNYVhOMExteGxibWQwYUNBK0lEQXBYRzRnSUNBZ2NtVnpRMjlzSUQwZ2MyVnRWSGx3WlVOdmJFeHBjM1JiTUYwN1hHNGdJSEpsZEhWeWJpQnlaWE5EYjJ3N1hHNTlYRzRpWFgwPSIsImltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgeyBVbml0c0hhbmRsZXIgfSBmcm9tICcuL3VuaXRzLWhhbmRsZXInO1xuaW1wb3J0IHsgZ2V0U3BsaXR0ZXJGb3JDb2x1bW4sIGdldFN0YXRzIH0gZnJvbSAnLi9tYWNyb21vbGVjdWxlJztcbi8qKiBDbGFzcyBmb3IgaGFuZGxpbmcgY29udmVyc2lvbiBvZiBub3RhdGlvbiBzeXN0ZW1zIGluIE1hY3JvbW9sZWN1bGUgY29sdW1ucyAqL1xuZXhwb3J0IGNsYXNzIE5vdGF0aW9uQ29udmVydGVyIGV4dGVuZHMgVW5pdHNIYW5kbGVyIHtcbiAgICBnZXQgc3BsaXR0ZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLl9zcGxpdHRlciA9PT0gbnVsbClcbiAgICAgICAgICAgIHRoaXMuX3NwbGl0dGVyID0gZ2V0U3BsaXR0ZXJGb3JDb2x1bW4odGhpcy5jb2x1bW4pO1xuICAgICAgICByZXR1cm4gdGhpcy5fc3BsaXR0ZXI7XG4gICAgfVxuICAgIHRvRmFzdGEodGFyZ2V0Tm90YXRpb24pIHsgcmV0dXJuIHRhcmdldE5vdGF0aW9uID09PSBcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi87IH1cbiAgICB0b1NlcGFyYXRvcih0YXJnZXROb3RhdGlvbikgeyByZXR1cm4gdGFyZ2V0Tm90YXRpb24gPT09IFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovOyB9XG4gICAgdG9IZWxtKHRhcmdldE5vdGF0aW9uKSB7IHJldHVybiB0YXJnZXROb3RhdGlvbiA9PT0gXCJoZWxtXCIgLyogTk9UQVRJT04uSEVMTSAqLzsgfVxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgYSBNYWNyb21vbGVjdWxlIGNvbHVtbiBmcm9tIEZBU1RBIHRvIFNFUEFSQVRPUiBub3RhdGlvblxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHNlcGFyYXRvciAgQSBzcGVjaWZpYyBzZXBhcmF0b3IgdG8gYmUgdXNlZFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBmYXN0YUdhcFN5bWJvbCAgR2FwIHN5bWJvbCBpbiBGQVNUQSwgJy0nIGJ5IGRlZmF1bHRcbiAgICAgKiBAcmV0dXJuIHtERy5Db2x1bW59ICAgICAgICBBIG5ldyBjb2x1bW4gaW4gU0VQQVJBVE9SIG5vdGF0aW9uXG4gICAgICovXG4gICAgY29udmVydEZhc3RhVG9TZXBhcmF0b3Ioc2VwYXJhdG9yLCBmYXN0YUdhcFN5bWJvbCA9IG51bGwpIHtcbiAgICAgICAgaWYgKGZhc3RhR2FwU3ltYm9sID09PSBudWxsKVxuICAgICAgICAgICAgZmFzdGFHYXBTeW1ib2wgPSB0aGlzLmRlZmF1bHRHYXBTeW1ib2w7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbiA9IHRoaXMuZ2V0TmV3Q29sdW1uKFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovKTtcbiAgICAgICAgLy8gYXNzaWduIHRoZSB2YWx1ZXMgdG8gdGhlIG5ld2x5IGNyZWF0ZWQgZW1wdHkgY29sdW1uXG4gICAgICAgIG5ld0NvbHVtbi5pbml0KChpZHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZhc3RhUG9seW1lciA9IHRoaXMuY29sdW1uLmdldChpZHgpO1xuICAgICAgICAgICAgY29uc3QgZmFzdGFNb25vbWVyc0FycmF5ID0gdGhpcy5zcGxpdHRlcihmYXN0YVBvbHltZXIpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmYXN0YU1vbm9tZXJzQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoZmFzdGFNb25vbWVyc0FycmF5W2ldID09PSBmYXN0YUdhcFN5bWJvbClcbiAgICAgICAgICAgICAgICAgICAgZmFzdGFNb25vbWVyc0FycmF5W2ldID0gVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QuU0VQQVJBVE9SO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZhc3RhTW9ub21lcnNBcnJheS5qb2luKHNlcGFyYXRvcik7XG4gICAgICAgIH0pO1xuICAgICAgICBuZXdDb2x1bW4uc2V0VGFnKERHLlRBR1MuVU5JVFMsIFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovKTtcbiAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhcInNlcGFyYXRvclwiIC8qIFRBR1Muc2VwYXJhdG9yICovLCBzZXBhcmF0b3IpO1xuICAgICAgICByZXR1cm4gbmV3Q29sdW1uO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIHdyYXBwZXIgc3RyaW5ncyBmb3IgSEVMTSwgZGVwZW5kaW5nIG9uIHRoZSB0eXBlIG9mIHRoZVxuICAgICAqIG1hY3JvbW9sZWN1bGUgKHBlcHRpZGUsIEROQSwgUk5BKVxuICAgICAqXG4gICAgICogQHJldHVybiB7c3RyaW5nW119IEFycmF5IG9mIHdyYXBwZXJzXG4gICAgICovXG4gICAgZ2V0SGVsbVdyYXBwZXJzKCkge1xuICAgICAgICBjb25zdCBwcmVmaXggPSAodGhpcy5pc0RuYSgpKSA/ICdETkExeycgOlxuICAgICAgICAgICAgKHRoaXMuaXNSbmEoKSkgPyAnUk5BMXsnIDpcbiAgICAgICAgICAgICAgICAodGhpcy5pc1BlcHRpZGUoKSkgPyAnUEVQVElERTF7JyA6XG4gICAgICAgICAgICAgICAgICAgICdVbmtub3duJzsgLy8gdGhpcyBjYXNlIHNob3VsZCBiZSBoYW5kbGVkIGFzIGV4Y2VwdGlvbmFsXG4gICAgICAgIGlmIChwcmVmaXggPT09ICdVbmtub3duJylcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTmVpdGhlciBwZXB0aWRlLCBub3IgbnVjbGVvdGlkZScpO1xuICAgICAgICBjb25zdCBwb3N0Zml4ID0gJ30kJCQnO1xuICAgICAgICBjb25zdCBsZWZ0V3JhcHBlciA9ICh0aGlzLmlzRG5hKCkpID8gJ0QoJyA6XG4gICAgICAgICAgICAodGhpcy5pc1JuYSgpKSA/ICdSKCcgOiAnJzsgLy8gbm8gd3JhcHBlciBmb3IgcGVwdGlkZXNcbiAgICAgICAgY29uc3QgcmlnaHRXcmFwcGVyID0gKHRoaXMuaXNEbmEoKSB8fCB0aGlzLmlzUm5hKCkpID8gJylQJyA6ICcnOyAvLyBubyB3cmFwcGVyIGZvciBwZXB0aWRlc1xuICAgICAgICByZXR1cm4gW3ByZWZpeCwgbGVmdFdyYXBwZXIsIHJpZ2h0V3JhcHBlciwgcG9zdGZpeF07XG4gICAgfVxuICAgIC8vIEEgaGVscGVyIGZ1bmN0aW9uIGZvciBjb252ZXJ0aW5nIHN0cmluZ3MgdG8gSEVMTVxuICAgIGNvbnZlcnRUb0hlbG1IZWxwZXIoc291cmNlUG9seW1lciwgc291cmNlR2FwU3ltYm9sLCBwcmVmaXgsIGxlZnRXcmFwcGVyLCByaWdodFdyYXBwZXIsIHBvc3RmaXgpIHtcbiAgICAgICAgY29uc3QgbW9ub21lckFycmF5ID0gdGhpcy5zcGxpdHRlcihzb3VyY2VQb2x5bWVyKTtcbiAgICAgICAgY29uc3QgbW9ub21lckhlbG1BcnJheSA9IG1vbm9tZXJBcnJheS5tYXAoKG1tKSA9PiB7XG4gICAgICAgICAgICBpZiAobW0gPT09IHNvdXJjZUdhcFN5bWJvbClcbiAgICAgICAgICAgICAgICByZXR1cm4gVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QuSEVMTTtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7bGVmdFdyYXBwZXJ9JHttbX0ke3JpZ2h0V3JhcHBlcn1gO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGAke3ByZWZpeH0ke21vbm9tZXJIZWxtQXJyYXkuam9pbignLicpfSR7cG9zdGZpeH1gO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IGEgc3RyaW5nIHdpdGggU0VQQVJBVE9SL0ZBU1RBIG5vdGF0aW9uIHRvIEhFTE1cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzb3VyY2VQb2x5bWVyICBBIHN0cmluZyB0byBiZSBjb252ZXJ0ZWRcbiAgICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGx9IHNvdXJjZUdhcFN5bWJvbCAgQW4gb3B0aW9uYWwgZ2FwIHN5bWJvbCwgc2V0IHRvXG4gICAgICogZGVmYXVsdCB2YWx1ZXMgKCctJyBmb3IgRkFTVEEgYW5kICcnIGZvciBTRVBBUkFUT1IpIHVubGVzcyBzcGVjaWZpZWRcbiAgICAgKiBAcmV0dXJuIHtzdHJpbmd9ICBUaGUgdGFyZ2V0IEhFTE0gc3RyaW5nXG4gICAgICovXG4gICAgY29udmVydFN0cmluZ1RvSGVsbShzb3VyY2VQb2x5bWVyLCBzb3VyY2VHYXBTeW1ib2wgPSBudWxsKSB7XG4gICAgICAgIGlmIChzb3VyY2VHYXBTeW1ib2wgPT09IG51bGwpXG4gICAgICAgICAgICBzb3VyY2VHYXBTeW1ib2wgPSB0aGlzLmRlZmF1bHRHYXBTeW1ib2w7XG4gICAgICAgIGNvbnN0IFtwcmVmaXgsIGxlZnRXcmFwcGVyLCByaWdodFdyYXBwZXIsIHBvc3RmaXhdID0gdGhpcy5nZXRIZWxtV3JhcHBlcnMoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udmVydFRvSGVsbUhlbHBlcihzb3VyY2VQb2x5bWVyLCBzb3VyY2VHYXBTeW1ib2wsIHByZWZpeCwgbGVmdFdyYXBwZXIsIHJpZ2h0V3JhcHBlciwgcG9zdGZpeCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgYSBjb2x1bW4gdG8gSEVMTVxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsfSBzb3VyY2VHYXBTeW1ib2xcbiAgICAgKiBAcmV0dXJuIHtERy5Db2x1bW59XG4gICAgICovXG4gICAgY29udmVydFRvSGVsbShzb3VyY2VHYXBTeW1ib2wgPSBudWxsKSB7XG4gICAgICAgIGlmIChzb3VyY2VHYXBTeW1ib2wgPT09IG51bGwpXG4gICAgICAgICAgICBzb3VyY2VHYXBTeW1ib2wgPSB0aGlzLmRlZmF1bHRHYXBTeW1ib2w7XG4gICAgICAgIGNvbnN0IFtwcmVmaXgsIGxlZnRXcmFwcGVyLCByaWdodFdyYXBwZXIsIHBvc3RmaXhdID0gdGhpcy5nZXRIZWxtV3JhcHBlcnMoKTtcbiAgICAgICAgY29uc3QgbmV3Q29sdW1uID0gdGhpcy5nZXROZXdDb2x1bW4oXCJoZWxtXCIgLyogTk9UQVRJT04uSEVMTSAqLyk7XG4gICAgICAgIC8vIGFzc2lnbiB0aGUgdmFsdWVzIHRvIHRoZSBlbXB0eSBjb2x1bW5cbiAgICAgICAgbmV3Q29sdW1uLmluaXQoKGlkeCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc291cmNlUG9seW1lciA9IHRoaXMuY29sdW1uLmdldChpZHgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udmVydFRvSGVsbUhlbHBlcihzb3VyY2VQb2x5bWVyLCBzb3VyY2VHYXBTeW1ib2wsIHByZWZpeCwgbGVmdFdyYXBwZXIsIHJpZ2h0V3JhcHBlciwgcG9zdGZpeCk7XG4gICAgICAgIH0pO1xuICAgICAgICBuZXdDb2x1bW4uc2V0VGFnKERHLlRBR1MuVU5JVFMsIFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi8pO1xuICAgICAgICByZXR1cm4gbmV3Q29sdW1uO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IFNFUEFSQVRPUiBjb2x1bW4gdG8gRkFTVEEgbm90YXRpb25cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbH0gZmFzdGFHYXBTeW1ib2wgT3B0aW9uYWwgZ2FwIHN5bWJvbCBmb3IgRkFTVEFcbiAgICAgKiBAcmV0dXJuIHtERy5Db2x1bW59ICBDb252ZXJ0ZWQgY29sdW1uXG4gICAgICovXG4gICAgY29udmVydFNlcGFyYXRvclRvRmFzdGEoZmFzdGFHYXBTeW1ib2wgPSBudWxsKSB7XG4gICAgICAgIGlmIChmYXN0YUdhcFN5bWJvbCA9PT0gbnVsbClcbiAgICAgICAgICAgIGZhc3RhR2FwU3ltYm9sID0gVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QuRkFTVEE7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbiA9IHRoaXMuZ2V0TmV3Q29sdW1uKFwiZmFzdGFcIiAvKiBOT1RBVElPTi5GQVNUQSAqLyk7XG4gICAgICAgIC8vIGFzc2lnbiB0aGUgdmFsdWVzIHRvIHRoZSBlbXB0eSBjb2x1bW5cbiAgICAgICAgbmV3Q29sdW1uLmluaXQoKGlkeCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VwYXJhdG9yUG9seW1lciA9IHRoaXMuY29sdW1uLmdldChpZHgpO1xuICAgICAgICAgICAgLy8gaXRlbXMgY2FuIGJlIG1vbm9tZXJzIG9yIHNlcGFyYXRvcnNcbiAgICAgICAgICAgIGNvbnN0IHNlcGFyYXRvckl0ZW1zQXJyYXkgPSB0aGlzLnNwbGl0dGVyKHNlcGFyYXRvclBvbHltZXIpO1xuICAgICAgICAgICAgY29uc3QgZmFzdGFNb25vbWVyc0FycmF5ID0gW107XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcGFyYXRvckl0ZW1zQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gc2VwYXJhdG9ySXRlbXNBcnJheVtpXTtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZmFzdGFNb25vbWVyc0FycmF5LnB1c2goZmFzdGFHYXBTeW1ib2wpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChpdGVtLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGNhc2Ugb2YgYSBtdWx0aS1jaGFyYWN0ZXIgbW9ub21lclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb25vbWVyID0gJ1snICsgaXRlbSArICddJztcbiAgICAgICAgICAgICAgICAgICAgZmFzdGFNb25vbWVyc0FycmF5LnB1c2gobW9ub21lcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBmYXN0YU1vbm9tZXJzQXJyYXkucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmFzdGFNb25vbWVyc0FycmF5LmpvaW4oJycpO1xuICAgICAgICB9KTtcbiAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhERy5UQUdTLlVOSVRTLCBcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi8pO1xuICAgICAgICByZXR1cm4gbmV3Q29sdW1uO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiAgQ29udmVydCBIRUxNIGNvbHVtbiB0byBGQVNUQS9TRVBBUkFUT1JcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0Z3ROb3RhdGlvbiAgICBUYXJnZXQgbm90YXRpb246IEZBU1RBIG9yIFNFUEFSQVRPUlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0Z3RTZXBhcmF0b3IgICBPcHRpb25hbCB0YXJnZXQgc2VwYXJhdG9yIChmb3IgSEVMTSAtPlxuICAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbH0gdGd0R2FwU3ltYm9sICAgT3B0aW9uYWwgdGFyZ2V0IGdhcCBzeW1ib2xcbiAgICAgKiBTRVBBUkFUT1IpXG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufSBDb252ZXJ0ZWQgY29sdW1uXG4gICAgICovXG4gICAgY29udmVydEhlbG0odGd0Tm90YXRpb24sIHRndFNlcGFyYXRvciwgdGd0R2FwU3ltYm9sKSB7XG4gICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gbXVzdCBub3QgY29udGFpbiBjYWxscyBvZiBpc0RuYSgpIGFuZCBpc1JuYSgpLCBmb3JcbiAgICAgICAgLy8gc291cmNlIGhlbG0gY29sdW1ucyBtYXkgY29udGFpbiBSTkEsIEROQSBhbmQgUFQgYWNyb3NzIGRpZmZlcmVudCByb3dzXG4gICAgICAgIGlmICghdGd0R2FwU3ltYm9sKSB7XG4gICAgICAgICAgICB0Z3RHYXBTeW1ib2wgPSAodGhpcy50b0Zhc3RhKHRndE5vdGF0aW9uKSkgP1xuICAgICAgICAgICAgICAgIFVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LkZBU1RBIDpcbiAgICAgICAgICAgICAgICBVbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdC5TRVBBUkFUT1I7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0Z3RTZXBhcmF0b3IpIHtcbiAgICAgICAgICAgIHRndFNlcGFyYXRvciA9ICh0aGlzLnRvRmFzdGEodGd0Tm90YXRpb24pKSA/ICcnIDogdGhpcy5zZXBhcmF0b3I7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaGVsbVdyYXBwZXJzUmUgPSAvKFJcXCh8RFxcKHxcXCl8UCkvZztcbiAgICAgICAgY29uc3QgbmV3Q29sdW1uID0gdGhpcy5nZXROZXdDb2x1bW4odGd0Tm90YXRpb24pO1xuICAgICAgICAvLyBhc3NpZ24gdGhlIHZhbHVlcyB0byB0aGUgZW1wdHkgY29sdW1uXG4gICAgICAgIG5ld0NvbHVtbi5pbml0KChpZHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGhlbG1Qb2x5bWVyID0gdGhpcy5jb2x1bW4uZ2V0KGlkeCk7XG4gICAgICAgICAgICAvLyB3ZSBjYW5ub3QgdXNlIGlzRG5hKCkgb3IgaXNSbmEoKSBiZWNhdXNlIHNvdXJjZSBoZWxtIGNvbHVtbnMgY2FuXG4gICAgICAgICAgICAvLyBjb250YWluIEROQSwgUk5BIGFuZCBQVCBpbiBkaWZmZXJlbnQgY2VsbHMsIHNvIHRoZSBjb3JyZXNwb25kaW5nXG4gICAgICAgICAgICAvLyB0YWdzIGNhbm5vdCBiZSBzZXQgZm9yIHRoZSB3aG9sZSBjb2x1bW5cbiAgICAgICAgICAgIGNvbnN0IGlzTnVjbGVvdGlkZSA9IGhlbG1Qb2x5bWVyLnN0YXJ0c1dpdGgoJ0ROQScpIHx8IGhlbG1Qb2x5bWVyLnN0YXJ0c1dpdGgoJ1JOQScpO1xuICAgICAgICAgICAgLy8gaXRlbXMgY2FuIGJlIG1vbm9tZXJzIG9yIGhlbG1zXG4gICAgICAgICAgICBjb25zdCBoZWxtSXRlbXNBcnJheSA9IHRoaXMuc3BsaXR0ZXIoaGVsbVBvbHltZXIpO1xuICAgICAgICAgICAgY29uc3QgdGd0TW9ub21lcnNBcnJheSA9IFtdO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBoZWxtSXRlbXNBcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGxldCBpdGVtID0gaGVsbUl0ZW1zQXJyYXlbaV07XG4gICAgICAgICAgICAgICAgaWYgKGlzTnVjbGVvdGlkZSlcbiAgICAgICAgICAgICAgICAgICAgaXRlbSA9IGl0ZW0ucmVwbGFjZShoZWxtV3JhcHBlcnNSZSwgJycpO1xuICAgICAgICAgICAgICAgIGlmIChpdGVtID09PSBVbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdC5IRUxNKSB7XG4gICAgICAgICAgICAgICAgICAgIHRndE1vbm9tZXJzQXJyYXkucHVzaCh0Z3RHYXBTeW1ib2wpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLnRvRmFzdGEodGd0Tm90YXRpb24pICYmIGl0ZW0ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGUgY2FzZSBvZiBhIG11bHRpLWNoYXJhY3RlciBtb25vbWVyIGNvbnZlcnRlZCB0byBGQVNUQVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb25vbWVyID0gJ1snICsgaXRlbSArICddJztcbiAgICAgICAgICAgICAgICAgICAgdGd0TW9ub21lcnNBcnJheS5wdXNoKG1vbm9tZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGd0TW9ub21lcnNBcnJheS5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0Z3RNb25vbWVyc0FycmF5LmpvaW4odGd0U2VwYXJhdG9yKTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIFRBR1MuYWxpZ25lZCBpcyBtYW5kYXRvcnkgZm9yIGNvbHVtbnMgb2YgTk9UQVRJT04uRkFTVEEgYW5kIE5PVEFUSU9OLlNFUEFSQVRPUlxuICAgICAgICBjb25zdCBzcGxpdHRlciA9IGdldFNwbGl0dGVyRm9yQ29sdW1uKG5ld0NvbHVtbik7XG4gICAgICAgIGNvbnN0IHN0YXRzID0gZ2V0U3RhdHMobmV3Q29sdW1uLCA1LCBzcGxpdHRlcik7XG4gICAgICAgIGNvbnN0IGFsaWduZWQgPSBzdGF0cy5zYW1lTGVuZ3RoID8gJ1NFUS5NU0EnIDogJ1NFUSc7XG4gICAgICAgIG5ld0NvbHVtbi5zZXRUYWcoXCJhbGlnbmVkXCIgLyogVEFHUy5hbGlnbmVkICovLCBhbGlnbmVkKTtcbiAgICAgICAgcmV0dXJuIG5ld0NvbHVtbjtcbiAgICB9XG4gICAgY29udmVydEhlbG1Ub1NlcGFyYXRvcigpIHtcbiAgICAgICAgLy8gVE9ETzogaW1wbGVtZW50YXRpb3JldHVybiB0aGlzLmdldE5ld0NvbHVtbigpO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXROZXdDb2x1bW4oXCJzZXBhcmF0b3JcIiAvKiBOT1RBVElPTi5TRVBBUkFUT1IgKi8pO1xuICAgIH1cbiAgICAvKiogRGlzcGF0Y2hlciBtZXRob2QgZm9yIG5vdGF0aW9uIGNvbnZlcnNpb25cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Tk9UQVRJT059IHRndE5vdGF0aW9uICAgTm90YXRpb24gd2Ugd2FudCB0byBjb252ZXJ0IHRvXG4gICAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsfSB0Z3RTZXBhcmF0b3IgICBQb3NzaWJsZSBzZXBhcmF0b3JcbiAgICAgKiBAcmV0dXJuIHtERy5Db2x1bW59ICAgICAgICAgICAgICAgIENvbnZlcnRlZCBjb2x1bW5cbiAgICAgKi9cbiAgICBjb252ZXJ0KHRndE5vdGF0aW9uLCB0Z3RTZXBhcmF0b3IgPSBudWxsKSB7XG4gICAgICAgIC8vIHBvc3NpYmxlIGV4Y2VwdGlvbnNcbiAgICAgICAgaWYgKHRoaXMubm90YXRpb24gPT09IHRndE5vdGF0aW9uKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd0Z3Qgbm90YXRpb24gaXMgaW52YWxpZCcpO1xuICAgICAgICBpZiAodGhpcy50b1NlcGFyYXRvcih0Z3ROb3RhdGlvbikgJiYgdGd0U2VwYXJhdG9yID09PSBudWxsKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd0Z3Qgc2VwYXJhdG9yIGlzIG5vdCBzcGVjaWZpZWQnKTtcbiAgICAgICAgaWYgKHRoaXMuaXNGYXN0YSgpICYmIHRoaXMudG9TZXBhcmF0b3IodGd0Tm90YXRpb24pICYmIHRndFNlcGFyYXRvciAhPT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRGYXN0YVRvU2VwYXJhdG9yKHRndFNlcGFyYXRvcik7XG4gICAgICAgIGVsc2UgaWYgKCh0aGlzLmlzRmFzdGEoKSB8fCB0aGlzLmlzU2VwYXJhdG9yKCkpICYmIHRoaXMudG9IZWxtKHRndE5vdGF0aW9uKSlcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRUb0hlbG0oKTtcbiAgICAgICAgZWxzZSBpZiAodGhpcy5pc1NlcGFyYXRvcigpICYmIHRoaXMudG9GYXN0YSh0Z3ROb3RhdGlvbikpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0U2VwYXJhdG9yVG9GYXN0YSgpO1xuICAgICAgICBlbHNlIGlmICh0aGlzLmlzSGVsbSgpICYmIHRoaXMudG9GYXN0YSh0Z3ROb3RhdGlvbikpIC8vIHRoZSBjYXNlIG9mIEhFTE1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRIZWxtKHRndE5vdGF0aW9uKTtcbiAgICAgICAgZWxzZSBpZiAodGhpcy5pc0hlbG0oKSAmJiB0aGlzLnRvU2VwYXJhdG9yKHRndE5vdGF0aW9uKSlcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRIZWxtKHRndE5vdGF0aW9uLCB0Z3RTZXBhcmF0b3IpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBzdXBwb3J0ZWQgY29udmVyc2lvbiAnICtcbiAgICAgICAgICAgICAgICBgZnJvbSBzb3VyY2Ugbm90YXRpb24gJyR7dGhpcy5ub3RhdGlvbn0nIHRvIHRhcmdldCBub3RhdGlvbiAnJHt0Z3ROb3RhdGlvbn0nLmApO1xuICAgIH1cbiAgICBjb25zdHJ1Y3Rvcihjb2wpIHtcbiAgICAgICAgc3VwZXIoY29sKTtcbiAgICAgICAgdGhpcy5fc3BsaXR0ZXIgPSBudWxsO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWJtOTBZWFJwYjI0dFkyOXVkbVZ5ZEdWeUxtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpYm05MFlYUnBiMjR0WTI5dWRtVnlkR1Z5TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVZEJMRTlCUVU4c1MwRkJTeXhGUVVGRkxFMUJRVTBzYVVKQlFXbENMRU5CUVVNN1FVRkZkRU1zVDBGQlR5eEZRVUZETEZsQlFWa3NSVUZCUXl4TlFVRk5MR2xDUVVGcFFpeERRVUZETzBGQlF6ZERMRTlCUVU4c1JVRkJReXh2UWtGQmIwSXNSVUZCUlN4UlFVRlJMRVZCUVRSRExFMUJRVTBzYVVKQlFXbENMRU5CUVVNN1FVRkZNVWNzYVVaQlFXbEdPMEZCUTJwR0xFMUJRVTBzVDBGQlR5eHBRa0ZCYTBJc1UwRkJVU3haUVVGWk8wbEJSMnBFTEVsQlFXTXNVVUZCVVR0UlFVTndRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eFRRVUZUTEV0QlFVc3NTVUZCU1R0WlFVTjZRaXhKUVVGSkxFTkJRVU1zVTBGQlV5eEhRVUZITEc5Q1FVRnZRaXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVTnlSQ3hQUVVGUExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTTdTVUZEZUVJc1EwRkJRenRKUVVWTkxFOUJRVThzUTBGQlF5eGpRVUYzUWl4SlFVRmhMRTlCUVU4c1kwRkJZeXhwUTBGQmJVSXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZlRVlzVjBGQlZ5eERRVUZETEdOQlFYZENMRWxCUVdFc1QwRkJUeXhqUVVGakxIbERRVUYxUWl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVWb1J5eE5RVUZOTEVOQlFVTXNZMEZCZDBJc1NVRkJZU3hQUVVGUExHTkJRV01zSzBKQlFXdENMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJSVGRHT3pzN096czdUMEZOUnp0SlFVTkxMSFZDUVVGMVFpeERRVUZETEZOQlFXbENMRVZCUVVVc2FVSkJRV2RETEVsQlFVazdVVUZEY2tZc1NVRkJTU3hqUVVGakxFdEJRVXNzU1VGQlNUdFpRVU42UWl4alFVRmpMRWRCUVVjc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRPMUZCUlhwRExFMUJRVTBzVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXl4WlFVRlpMSE5EUVVGdlFpeERRVUZETzFGQlEzaEVMSE5FUVVGelJEdFJRVU4wUkN4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUjBGQlZ5eEZRVUZGTEVWQlFVVTdXVUZETjBJc1RVRkJUU3haUVVGWkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03V1VGRE1VTXNUVUZCVFN4clFrRkJhMElzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8xbEJRM1pFTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eHJRa0ZCYTBJc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdaMEpCUTJ4RUxFbEJRVWtzYTBKQlFXdENMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzWTBGQll6dHZRa0ZETVVNc2EwSkJRV3RDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1dVRkJXU3hEUVVGRExITkNRVUZ6UWl4RFFVRkRMRk5CUVZNc1EwRkJRenRoUVVONlJUdFpRVU5FTEU5QlFVOHNhMEpCUVd0Q0xFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMUZCUXpWRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEwZ3NVMEZCVXl4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NkVU5CUVhGQ0xFTkJRVU03VVVGRGNFUXNVMEZCVXl4RFFVRkRMRTFCUVUwc2JVTkJRV2xDTEZOQlFWTXNRMEZCUXl4RFFVRkRPMUZCUXpWRExFOUJRVThzVTBGQlV5eERRVUZETzBsQlEyNUNMRU5CUVVNN1NVRkZSRHM3T3pzN1QwRkxSenRKUVVOTExHVkJRV1U3VVVGRGNrSXNUVUZCVFN4TlFVRk5MRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03V1VGRGRrTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1owSkJRM2hDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMjlDUVVOb1F5eFRRVUZUTEVOQlFVTXNRMEZCUXl3MlEwRkJOa003VVVGRk9VUXNTVUZCU1N4TlFVRk5MRXRCUVVzc1UwRkJVenRaUVVOMFFpeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMR2xEUVVGcFF5eERRVUZETEVOQlFVTTdVVUZGY2tRc1RVRkJUU3hQUVVGUExFZEJRVWNzVFVGQlRTeERRVUZETzFGQlEzWkNMRTFCUVUwc1YwRkJWeXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFsQlEzcERMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNNRUpCUVRCQ08xRkJRM2hFTEUxQlFVMHNXVUZCV1N4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUlVGQlJTeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExEQkNRVUV3UWp0UlFVTXpSaXhQUVVGUExFTkJRVU1zVFVGQlRTeEZRVUZGTEZkQlFWY3NSVUZCUlN4WlFVRlpMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGRFUXNRMEZCUXp0SlFVVkVMRzFFUVVGdFJEdEpRVU16UXl4dFFrRkJiVUlzUTBGRGVrSXNZVUZCY1VJc1JVRkRja0lzWlVGQmRVSXNSVUZEZGtJc1RVRkJZeXhGUVVOa0xGZEJRVzFDTEVWQlEyNUNMRmxCUVc5Q0xFVkJRM0JDTEU5QlFXVTdVVUZGWml4TlFVRk5MRmxCUVZrc1IwRkJSeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRPMUZCUTJ4RUxFMUJRVTBzWjBKQlFXZENMRWRCUVdFc1dVRkJXU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVWQlFWVXNSVUZCUlN4RlFVRkZPMWxCUTJwRkxFbEJRVWtzUlVGQlJTeExRVUZMTEdWQlFXVTdaMEpCUTNoQ0xFOUJRVThzV1VGQldTeERRVUZETEhOQ1FVRnpRaXhEUVVGRExFbEJRVWtzUTBGQlF6czdaMEpCUldoRUxFOUJRVThzUjBGQlJ5eFhRVUZYTEVkQlFVY3NSVUZCUlN4SFFVRkhMRmxCUVZrc1JVRkJSU3hEUVVGRE8xRkJRMmhFTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTBnc1QwRkJUeXhIUVVGSExFMUJRVTBzUjBGQlJ5eG5Ra0ZCWjBJc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NUMEZCVHl4RlFVRkZMRU5CUVVNN1NVRkROVVFzUTBGQlF6dEpRVVZFT3pzN096czdPMDlCVDBjN1NVRkRTU3h0UWtGQmJVSXNRMEZEZUVJc1lVRkJjVUlzUlVGRGNrSXNhMEpCUVdsRExFbEJRVWs3VVVGRmNrTXNTVUZCU1N4bFFVRmxMRXRCUVVzc1NVRkJTVHRaUVVNeFFpeGxRVUZsTEVkQlFVY3NTVUZCU1N4RFFVRkRMR2RDUVVGblFpeERRVUZETzFGQlF6RkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFVkJRVVVzVjBGQlZ5eEZRVUZGTEZsQlFWa3NSVUZCUlN4UFFVRlBMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zWlVGQlpTeEZRVUZGTEVOQlFVTTdVVUZETlVVc1QwRkJUeXhKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1lVRkJZU3hGUVVGRkxHVkJRV1VzUlVGQlJTeE5RVUZOTEVWQlFVVXNWMEZCVnl4RlFVRkZMRmxCUVZrc1JVRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU01Unl4RFFVRkRPMGxCUlVRN096czdPMDlCUzBjN1NVRkRTeXhoUVVGaExFTkJRVU1zYTBKQlFXbERMRWxCUVVrN1VVRkRla1FzU1VGQlNTeGxRVUZsTEV0QlFVc3NTVUZCU1R0WlFVTXhRaXhsUVVGbExFZEJRVWNzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRE8xRkJSVEZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRVZCUVVVc1YwRkJWeXhGUVVGRkxGbEJRVmtzUlVGQlJTeFBRVUZQTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1pVRkJaU3hGUVVGRkxFTkJRVU03VVVGRk5VVXNUVUZCVFN4VFFVRlRMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzTkVKQlFXVXNRMEZCUXp0UlFVTnVSQ3gzUTBGQmQwTTdVVUZEZUVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVkQlFWY3NSVUZCUlN4RlFVRkZPMWxCUXpkQ0xFMUJRVTBzWVVGQllTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlF6TkRMRTlCUVU4c1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMR0ZCUVdFc1JVRkJSU3hsUVVGblFpeEZRVUZGTEUxQlFVMHNSVUZCUlN4WFFVRlhMRVZCUVVVc1dVRkJXU3hGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETzFGQlF5OUhMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMGdzVTBGQlV5eERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzTmtKQlFXZENMRU5CUVVNN1VVRkRMME1zVDBGQlR5eFRRVUZUTEVOQlFVTTdTVUZEYmtJc1EwRkJRenRKUVVWRU96czdPenRQUVV0SE8wbEJRMHNzZFVKQlFYVkNMRU5CUVVNc2FVSkJRV2RETEVsQlFVazdVVUZEYkVVc1NVRkJTU3hqUVVGakxFdEJRVXNzU1VGQlNUdFpRVU42UWl4alFVRmpMRWRCUVVjc1dVRkJXU3hEUVVGRExITkNRVUZ6UWl4RFFVRkRMRXRCUVVzc1EwRkJRenRSUVVVM1JDeE5RVUZOTEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1dVRkJXU3c0UWtGQlowSXNRMEZCUXp0UlFVTndSQ3gzUTBGQmQwTTdVVUZEZUVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVkQlFWY3NSVUZCUlN4RlFVRkZPMWxCUXpkQ0xFMUJRVTBzWjBKQlFXZENMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1dVRkRPVU1zYzBOQlFYTkRPMWxCUTNSRExFMUJRVTBzYlVKQlFXMUNMRWRCUVVjc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRE8xbEJRelZFTEUxQlFVMHNhMEpCUVd0Q0xFZEJRV0VzUlVGQlJTeERRVUZETzFsQlEzaERMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4dFFrRkJiVUlzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1owSkJRMjVFTEUxQlFVMHNTVUZCU1N4SFFVRkhMRzFDUVVGdFFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMmRDUVVOd1F5eEpRVUZKTEVsQlFVa3NRMEZCUXl4TlFVRk5MRXRCUVVzc1EwRkJReXhGUVVGRk8yOUNRVU55UWl4clFrRkJhMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNZMEZCWlN4RFFVRkRMRU5CUVVNN2FVSkJRekZETzNGQ1FVRk5MRWxCUVVrc1NVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVWQlFVVTdiMEpCUXpGQ0xIZERRVUYzUXp0dlFrRkRlRU1zVFVGQlRTeFBRVUZQTEVkQlFVY3NSMEZCUnl4SFFVRkhMRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU03YjBKQlEycERMR3RDUVVGclFpeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRwUWtGRGJFTTdjVUpCUVUwN2IwSkJRMHdzYTBKQlFXdENMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzJsQ1FVTXZRanRoUVVOR08xbEJRMFFzVDBGQlR5eHJRa0ZCYTBJc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTTdVVUZEY2tNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRFNDeFRRVUZUTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5d3JRa0ZCYVVJc1EwRkJRenRSUVVOb1JDeFBRVUZQTEZOQlFWTXNRMEZCUXp0SlFVTnVRaXhEUVVGRE8wbEJSVVE3T3pzN096czdPMDlCVVVjN1NVRkRTeXhYUVVGWExFTkJRVU1zVjBGQmJVSXNSVUZCUlN4WlFVRnhRaXhGUVVGRkxGbEJRWEZDTzFGQlEyNUdMRzFGUVVGdFJUdFJRVU51UlN4M1JVRkJkMFU3VVVGRGVFVXNTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSVHRaUVVOcVFpeFpRVUZaTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExGZEJRWFZDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRM1JFTEZsQlFWa3NRMEZCUXl4elFrRkJjMElzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0blFrRkRNME1zV1VGQldTeERRVUZETEhOQ1FVRnpRaXhEUVVGRExGTkJRVk1zUTBGQlF6dFRRVU5xUkR0UlFVVkVMRWxCUVVrc1EwRkJReXhaUVVGWkxFVkJRVVU3V1VGRGFrSXNXVUZCV1N4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eFhRVUYxUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRE8xTkJRemxGTzFGQlJVUXNUVUZCVFN4alFVRmpMRWRCUVVjc2FVSkJRV2xDTEVOQlFVTTdVVUZEZWtNc1RVRkJUU3hUUVVGVExFZEJRVWNzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4WFFVRjFRaXhEUVVGRExFTkJRVU03VVVGRE4wUXNkME5CUVhkRE8xRkJRM2hETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhIUVVGWExFVkJRVVVzUlVGQlJUdFpRVU0zUWl4TlFVRk5MRmRCUVZjc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRaUVVWNlF5eHRSVUZCYlVVN1dVRkRia1VzYlVWQlFXMUZPMWxCUTI1RkxEQkRRVUV3UXp0WlFVTXhReXhOUVVGTkxGbEJRVmtzUjBGQlJ5eFhRVUZYTEVOQlFVTXNWVUZCVlN4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxGZEJRVmNzUTBGQlF5eFZRVUZWTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1dVRkZjRVlzYVVOQlFXbERPMWxCUTJwRExFMUJRVTBzWTBGQll5eEhRVUZITEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU03V1VGRGJFUXNUVUZCVFN4blFrRkJaMElzUjBGQllTeEZRVUZGTEVOQlFVTTdXVUZEZEVNc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMR05CUVdNc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdaMEpCUXpsRExFbEJRVWtzU1VGQlNTeEhRVUZITEdOQlFXTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRE4wSXNTVUZCU1N4WlFVRlpPMjlDUVVOa0xFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMR05CUVdNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF6dG5Ra0ZETVVNc1NVRkJTU3hKUVVGSkxFdEJRVXNzV1VGQldTeERRVUZETEhOQ1FVRnpRaXhEUVVGRExFbEJRVWtzUlVGQlJUdHZRa0ZEY2tRc1owSkJRV2RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVdFc1EwRkJReXhEUVVGRE8ybENRVU4wUXp0eFFrRkJUU3hKUVVGSkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNWMEZCZFVJc1EwRkJReXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RlFVRkZPMjlDUVVOdVJTd3lSRUZCTWtRN2IwSkJRek5FTEUxQlFVMHNUMEZCVHl4SFFVRkhMRWRCUVVjc1IwRkJSeXhKUVVGSkxFZEJRVWNzUjBGQlJ5eERRVUZETzI5Q1FVTnFReXhuUWtGQlowSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03YVVKQlEyaERPM0ZDUVVGTk8yOUNRVU5NTEdkQ1FVRm5RaXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0cFFrRkROMEk3WVVGRFJqdFpRVU5FTEU5QlFVOHNaMEpCUVdkQ0xFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMUZCUXpkRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlJVZ3NhVVpCUVdsR08xRkJRMnBHTEUxQlFVMHNVVUZCVVN4SFFVRnBRaXh2UWtGQmIwSXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRSUVVNdlJDeE5RVUZOTEV0QlFVc3NSMEZCWjBJc1VVRkJVU3hEUVVGRExGTkJRVk1zUlVGQlJTeERRVUZETEVWQlFVVXNVVUZCVVN4RFFVRkRMRU5CUVVNN1VVRkROVVFzVFVGQlRTeFBRVUZQTEVkQlFVY3NTMEZCU3l4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNN1VVRkRja1FzVTBGQlV5eERRVUZETEUxQlFVMHNLMEpCUVdVc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRmVFTXNUMEZCVHl4VFFVRlRMRU5CUVVNN1NVRkRia0lzUTBGQlF6dEpRVVZQTEhOQ1FVRnpRanRSUVVNMVFpeHBSRUZCYVVRN1VVRkRha1FzVDBGQlR5eEpRVUZKTEVOQlFVTXNXVUZCV1N4elEwRkJiMElzUTBGQlF6dEpRVU12UXl4RFFVRkRPMGxCUlVRN096czdPMDlCUzBjN1NVRkRTU3hQUVVGUExFTkJRVU1zVjBGQmNVSXNSVUZCUlN4bFFVRTRRaXhKUVVGSk8xRkJRM1JGTEhOQ1FVRnpRanRSUVVOMFFpeEpRVUZKTEVsQlFVa3NRMEZCUXl4UlFVRlJMRXRCUVVzc1YwRkJWenRaUVVNdlFpeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMSGxDUVVGNVFpeERRVUZETEVOQlFVTTdVVUZETjBNc1NVRkJTU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEZkQlFWY3NRMEZCUXl4SlFVRkpMRmxCUVZrc1MwRkJTeXhKUVVGSk8xbEJRM2hFTEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc1owTkJRV2RETEVOQlFVTXNRMEZCUXp0UlFVVndSQ3hKUVVGSkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVWQlFVVXNTVUZCU1N4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExGZEJRVmNzUTBGQlF5eEpRVUZKTEZsQlFWa3NTMEZCU3l4SlFVRkpPMWxCUXpGRkxFOUJRVThzU1VGQlNTeERRVUZETEhWQ1FVRjFRaXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzJGQlF5OURMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR5eEZRVUZGTEVsQlFVa3NTVUZCU1N4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRExFbEJRVWtzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4WFFVRlhMRU5CUVVNN1dVRkRla1VzVDBGQlR5eEpRVUZKTEVOQlFVTXNZVUZCWVN4RlFVRkZMRU5CUVVNN1lVRkRla0lzU1VGQlNTeEpRVUZKTEVOQlFVTXNWMEZCVnl4RlFVRkZMRWxCUVVrc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eFhRVUZYTEVOQlFVTTdXVUZEZEVRc1QwRkJUeXhKUVVGSkxFTkJRVU1zZFVKQlFYVkNMRVZCUVVVc1EwRkJRenRoUVVOdVF5eEpRVUZKTEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1NVRkJTU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEZkQlFWY3NRMEZCUXl4RlFVRkZMRzFDUVVGdFFqdFpRVU4wUlN4UFFVRlBMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTTdZVUZEYkVNc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVsQlFVa3NTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhYUVVGWExFTkJRVU03V1VGRGNrUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExGZEJRVmNzUlVGQlJTeFpRVUZoTEVOQlFVTXNRMEZCUXpzN1dVRkZjRVFzVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl3eVFrRkJNa0k3WjBKQlEzcERMSGxDUVVGNVFpeEpRVUZKTEVOQlFVTXNVVUZCVVN4NVFrRkJlVUlzVjBGQlZ5eEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTjBSaXhEUVVGRE8wbEJSVVFzV1VGQmJVSXNSMEZCWXp0UlFVTXZRaXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUUzVUV3c1kwRkJVeXhIUVVGM1FpeEpRVUZKTEVOQlFVTTdTVUU0VURsRExFTkJRVU03UTBGRFJpSXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJaThxSUVSdklHNXZkQ0JqYUdGdVoyVWdkR2hsYzJVZ2FXMXdiM0owSUd4cGJtVnpJSFJ2SUcxaGRHTm9JR1Y0ZEdWeWJtRnNJRzF2WkhWc1pYTWdhVzRnZDJWaWNHRmpheUJqYjI1bWFXZDFjbUYwYVc5dUlDb3ZYRzVwYlhCdmNuUWdLaUJoY3lCbmNtOXJJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzluY205ckp6dGNibWx0Y0c5eWRDQXFJR0Z6SUhWcElHWnliMjBnSjJSaGRHRm5jbTlyTFdGd2FTOTFhU2M3WEc1cGJYQnZjblFnS2lCaGN5QkVSeUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2Wkdjbk8xeHVYRzVwYlhCdmNuUWdlMVZ1YVhSelNHRnVaR3hsY24wZ1puSnZiU0FuTGk5MWJtbDBjeTFvWVc1a2JHVnlKenRjYm1sdGNHOXlkQ0I3WjJWMFUzQnNhWFIwWlhKR2IzSkRiMngxYlc0c0lHZGxkRk4wWVhSekxDQk9UMVJCVkVsUFRpd2dVMlZ4UTI5c1UzUmhkSE1zSUZOd2JHbDBkR1Z5Um5WdVl5d2dWRUZIVTMwZ1puSnZiU0FuTGk5dFlXTnliMjF2YkdWamRXeGxKenRjYmx4dUx5b3FJRU5zWVhOeklHWnZjaUJvWVc1a2JHbHVaeUJqYjI1MlpYSnphVzl1SUc5bUlHNXZkR0YwYVc5dUlITjVjM1JsYlhNZ2FXNGdUV0ZqY205dGIyeGxZM1ZzWlNCamIyeDFiVzV6SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nVG05MFlYUnBiMjVEYjI1MlpYSjBaWElnWlhoMFpXNWtjeUJWYm1sMGMwaGhibVJzWlhJZ2UxeHVJQ0J3Y21sMllYUmxJRjl6Y0d4cGRIUmxjam9nVTNCc2FYUjBaWEpHZFc1aklId2diblZzYkNBOUlHNTFiR3c3WEc1Y2JpQWdjSEp2ZEdWamRHVmtJR2RsZENCemNHeHBkSFJsY2lncE9pQlRjR3hwZEhSbGNrWjFibU1nZTF4dUlDQWdJR2xtSUNoMGFHbHpMbDl6Y0d4cGRIUmxjaUE5UFQwZ2JuVnNiQ2xjYmlBZ0lDQWdJSFJvYVhNdVgzTndiR2wwZEdWeUlEMGdaMlYwVTNCc2FYUjBaWEpHYjNKRGIyeDFiVzRvZEdocGN5NWpiMngxYlc0cE8xeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxsOXpjR3hwZEhSbGNqdGNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5QjBiMFpoYzNSaEtIUmhjbWRsZEU1dmRHRjBhVzl1T2lCT1QxUkJWRWxQVGlrNklHSnZiMnhsWVc0Z2V5QnlaWFIxY200Z2RHRnlaMlYwVG05MFlYUnBiMjRnUFQwOUlFNVBWRUZVU1U5T0xrWkJVMVJCT3lCOVhHNWNiaUFnY0hWaWJHbGpJSFJ2VTJWd1lYSmhkRzl5S0hSaGNtZGxkRTV2ZEdGMGFXOXVPaUJPVDFSQlZFbFBUaWs2SUdKdmIyeGxZVzRnZXlCeVpYUjFjbTRnZEdGeVoyVjBUbTkwWVhScGIyNGdQVDA5SUU1UFZFRlVTVTlPTGxORlVFRlNRVlJQVWpzZ2ZWeHVYRzRnSUhCMVlteHBZeUIwYjBobGJHMG9kR0Z5WjJWMFRtOTBZWFJwYjI0NklFNVBWRUZVU1U5T0tUb2dZbTl2YkdWaGJpQjdJSEpsZEhWeWJpQjBZWEpuWlhST2IzUmhkR2x2YmlBOVBUMGdUazlVUVZSSlQwNHVTRVZNVFRzZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCRGIyNTJaWEowSUdFZ1RXRmpjbTl0YjJ4bFkzVnNaU0JqYjJ4MWJXNGdabkp2YlNCR1FWTlVRU0IwYnlCVFJWQkJVa0ZVVDFJZ2JtOTBZWFJwYjI1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlITmxjR0Z5WVhSdmNpQWdRU0J6Y0dWamFXWnBZeUJ6WlhCaGNtRjBiM0lnZEc4Z1ltVWdkWE5sWkZ4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdabUZ6ZEdGSFlYQlRlVzFpYjJ3Z0lFZGhjQ0J6ZVcxaWIyd2dhVzRnUmtGVFZFRXNJQ2N0SnlCaWVTQmtaV1poZFd4MFhHNGdJQ0FxSUVCeVpYUjFjbTRnZTBSSExrTnZiSFZ0Ym4wZ0lDQWdJQ0FnSUVFZ2JtVjNJR052YkhWdGJpQnBiaUJUUlZCQlVrRlVUMUlnYm05MFlYUnBiMjVjYmlBZ0lDb3ZYRzRnSUhCeWFYWmhkR1VnWTI5dWRtVnlkRVpoYzNSaFZHOVRaWEJoY21GMGIzSW9jMlZ3WVhKaGRHOXlPaUJ6ZEhKcGJtY3NJR1poYzNSaFIyRndVM2x0WW05c09pQnpkSEpwYm1jZ2ZDQnVkV3hzSUQwZ2JuVnNiQ2s2SUVSSExrTnZiSFZ0YmlCN1hHNGdJQ0FnYVdZZ0tHWmhjM1JoUjJGd1UzbHRZbTlzSUQwOVBTQnVkV3hzS1Z4dUlDQWdJQ0FnWm1GemRHRkhZWEJUZVcxaWIyd2dQU0IwYUdsekxtUmxabUYxYkhSSFlYQlRlVzFpYjJ3N1hHNWNiaUFnSUNCamIyNXpkQ0J1WlhkRGIyeDFiVzRnUFNCMGFHbHpMbWRsZEU1bGQwTnZiSFZ0YmloT1QxUkJWRWxQVGk1VFJWQkJVa0ZVVDFJcE8xeHVJQ0FnSUM4dklHRnpjMmxuYmlCMGFHVWdkbUZzZFdWeklIUnZJSFJvWlNCdVpYZHNlU0JqY21WaGRHVmtJR1Z0Y0hSNUlHTnZiSFZ0Ymx4dUlDQWdJRzVsZDBOdmJIVnRiaTVwYm1sMEtDaHBaSGc2SUc1MWJXSmxjaWtnUFQ0Z2UxeHVJQ0FnSUNBZ1kyOXVjM1FnWm1GemRHRlFiMng1YldWeUlEMGdkR2hwY3k1amIyeDFiVzR1WjJWMEtHbGtlQ2s3WEc0Z0lDQWdJQ0JqYjI1emRDQm1ZWE4wWVUxdmJtOXRaWEp6UVhKeVlYa2dQU0IwYUdsekxuTndiR2wwZEdWeUtHWmhjM1JoVUc5c2VXMWxjaWs3WEc0Z0lDQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUdaaGMzUmhUVzl1YjIxbGNuTkJjbkpoZVM1c1pXNW5kR2c3SUdrckt5a2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb1ptRnpkR0ZOYjI1dmJXVnljMEZ5Y21GNVcybGRJRDA5UFNCbVlYTjBZVWRoY0ZONWJXSnZiQ2xjYmlBZ0lDQWdJQ0FnSUNCbVlYTjBZVTF2Ym05dFpYSnpRWEp5WVhsYmFWMGdQU0JWYm1sMGMwaGhibVJzWlhJdVgyUmxabUYxYkhSSFlYQlRlVzFpYjJ4elJHbGpkQzVUUlZCQlVrRlVUMUk3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J5WlhSMWNtNGdabUZ6ZEdGTmIyNXZiV1Z5YzBGeWNtRjVMbXB2YVc0b2MyVndZWEpoZEc5eUtUdGNiaUFnSUNCOUtUdGNiaUFnSUNCdVpYZERiMngxYlc0dWMyVjBWR0ZuS0VSSExsUkJSMU11VlU1SlZGTXNJRTVQVkVGVVNVOU9MbE5GVUVGU1FWUlBVaWs3WEc0Z0lDQWdibVYzUTI5c2RXMXVMbk5sZEZSaFp5aFVRVWRUTG5ObGNHRnlZWFJ2Y2l3Z2MyVndZWEpoZEc5eUtUdGNiaUFnSUNCeVpYUjFjbTRnYm1WM1EyOXNkVzF1TzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFZGxkQ0IwYUdVZ2QzSmhjSEJsY2lCemRISnBibWR6SUdadmNpQklSVXhOTENCa1pYQmxibVJwYm1jZ2IyNGdkR2hsSUhSNWNHVWdiMllnZEdobFhHNGdJQ0FxSUcxaFkzSnZiVzlzWldOMWJHVWdLSEJsY0hScFpHVXNJRVJPUVN3Z1VrNUJLVnh1SUNBZ0tseHVJQ0FnS2lCQWNtVjBkWEp1SUh0emRISnBibWRiWFgwZ1FYSnlZWGtnYjJZZ2QzSmhjSEJsY25OY2JpQWdJQ292WEc0Z0lIQnlhWFpoZEdVZ1oyVjBTR1ZzYlZkeVlYQndaWEp6S0NrNklITjBjbWx1WjF0ZElIdGNiaUFnSUNCamIyNXpkQ0J3Y21WbWFYZ2dQU0FvZEdocGN5NXBjMFJ1WVNncEtTQS9JQ2RFVGtFeGV5Y2dPbHh1SUNBZ0lDQWdLSFJvYVhNdWFYTlNibUVvS1NrZ1B5QW5VazVCTVhzbklEcGNiaUFnSUNBZ0lDQWdLSFJvYVhNdWFYTlFaWEIwYVdSbEtDa3BJRDhnSjFCRlVGUkpSRVV4ZXljZ09seHVJQ0FnSUNBZ0lDQWdJQ2RWYm10dWIzZHVKenNnTHk4Z2RHaHBjeUJqWVhObElITm9iM1ZzWkNCaVpTQm9ZVzVrYkdWa0lHRnpJR1Y0WTJWd2RHbHZibUZzWEc1Y2JpQWdJQ0JwWmlBb2NISmxabWw0SUQwOVBTQW5WVzVyYm05M2JpY3BYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb0owNWxhWFJvWlhJZ2NHVndkR2xrWlN3Z2JtOXlJRzUxWTJ4bGIzUnBaR1VuS1R0Y2JseHVJQ0FnSUdOdmJuTjBJSEJ2YzNSbWFYZ2dQU0FuZlNRa0pDYzdYRzRnSUNBZ1kyOXVjM1FnYkdWbWRGZHlZWEJ3WlhJZ1BTQW9kR2hwY3k1cGMwUnVZU2dwS1NBL0lDZEVLQ2NnT2x4dUlDQWdJQ0FnS0hSb2FYTXVhWE5TYm1Fb0tTa2dQeUFuVWlnbklEb2dKeWM3SUM4dklHNXZJSGR5WVhCd1pYSWdabTl5SUhCbGNIUnBaR1Z6WEc0Z0lDQWdZMjl1YzNRZ2NtbG5hSFJYY21Gd2NHVnlJRDBnS0hSb2FYTXVhWE5FYm1Fb0tTQjhmQ0IwYUdsekxtbHpVbTVoS0NrcElEOGdKeWxRSnlBNklDY25PeUF2THlCdWJ5QjNjbUZ3Y0dWeUlHWnZjaUJ3WlhCMGFXUmxjMXh1SUNBZ0lISmxkSFZ5YmlCYmNISmxabWw0TENCc1pXWjBWM0poY0hCbGNpd2djbWxuYUhSWGNtRndjR1Z5TENCd2IzTjBabWw0WFR0Y2JpQWdmVnh1WEc0Z0lDOHZJRUVnYUdWc2NHVnlJR1oxYm1OMGFXOXVJR1p2Y2lCamIyNTJaWEowYVc1bklITjBjbWx1WjNNZ2RHOGdTRVZNVFZ4dUlDQndjbWwyWVhSbElHTnZiblpsY25SVWIwaGxiRzFJWld4d1pYSW9YRzRnSUNBZ2MyOTFjbU5sVUc5c2VXMWxjam9nYzNSeWFXNW5MRnh1SUNBZ0lITnZkWEpqWlVkaGNGTjViV0p2YkRvZ2MzUnlhVzVuTEZ4dUlDQWdJSEJ5WldacGVEb2djM1J5YVc1bkxGeHVJQ0FnSUd4bFpuUlhjbUZ3Y0dWeU9pQnpkSEpwYm1jc1hHNGdJQ0FnY21sbmFIUlhjbUZ3Y0dWeU9pQnpkSEpwYm1jc1hHNGdJQ0FnY0c5emRHWnBlRG9nYzNSeWFXNW5YRzRnSUNrNklITjBjbWx1WnlCN1hHNGdJQ0FnWTI5dWMzUWdiVzl1YjIxbGNrRnljbUY1SUQwZ2RHaHBjeTV6Y0d4cGRIUmxjaWh6YjNWeVkyVlFiMng1YldWeUtUdGNiaUFnSUNCamIyNXpkQ0J0YjI1dmJXVnlTR1ZzYlVGeWNtRjVPaUJ6ZEhKcGJtZGJYU0E5SUcxdmJtOXRaWEpCY25KaGVTNXRZWEFvS0cxdE9pQnpkSEpwYm1jcElEMCtJSHRjYmlBZ0lDQWdJR2xtSUNodGJTQTlQVDBnYzI5MWNtTmxSMkZ3VTNsdFltOXNLVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdWVzVwZEhOSVlXNWtiR1Z5TGw5a1pXWmhkV3gwUjJGd1UzbHRZbTlzYzBScFkzUXVTRVZNVFR0Y2JpQWdJQ0FnSUdWc2MyVmNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHQWtlMnhsWm5SWGNtRndjR1Z5ZlNSN2JXMTlKSHR5YVdkb2RGZHlZWEJ3WlhKOVlEdGNiaUFnSUNCOUtUdGNiaUFnSUNCeVpYUjFjbTRnWUNSN2NISmxabWw0ZlNSN2JXOXViMjFsY2tobGJHMUJjbkpoZVM1cWIybHVLQ2N1SnlsOUpIdHdiM04wWm1sNGZXQTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUTI5dWRtVnlkQ0JoSUhOMGNtbHVaeUIzYVhSb0lGTkZVRUZTUVZSUFVpOUdRVk5VUVNCdWIzUmhkR2x2YmlCMGJ5QklSVXhOWEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCemIzVnlZMlZRYjJ4NWJXVnlJQ0JCSUhOMGNtbHVaeUIwYnlCaVpTQmpiMjUyWlhKMFpXUmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWNnZkNCdWRXeHNmU0J6YjNWeVkyVkhZWEJUZVcxaWIyd2dJRUZ1SUc5d2RHbHZibUZzSUdkaGNDQnplVzFpYjJ3c0lITmxkQ0IwYjF4dUlDQWdLaUJrWldaaGRXeDBJSFpoYkhWbGN5QW9KeTBuSUdadmNpQkdRVk5VUVNCaGJtUWdKeWNnWm05eUlGTkZVRUZTUVZSUFVpa2dkVzVzWlhOeklITndaV05wWm1sbFpGeHVJQ0FnS2lCQWNtVjBkWEp1SUh0emRISnBibWQ5SUNCVWFHVWdkR0Z5WjJWMElFaEZURTBnYzNSeWFXNW5YRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdZMjl1ZG1WeWRGTjBjbWx1WjFSdlNHVnNiU2hjYmlBZ0lDQnpiM1Z5WTJWUWIyeDViV1Z5T2lCemRISnBibWNzWEc0Z0lDQWdjMjkxY21ObFIyRndVM2x0WW05c09pQnpkSEpwYm1jZ2ZDQnVkV3hzSUQwZ2JuVnNiRnh1SUNBcE9pQnpkSEpwYm1jZ2UxeHVJQ0FnSUdsbUlDaHpiM1Z5WTJWSFlYQlRlVzFpYjJ3Z1BUMDlJRzUxYkd3cFhHNGdJQ0FnSUNCemIzVnlZMlZIWVhCVGVXMWliMndnUFNCMGFHbHpMbVJsWm1GMWJIUkhZWEJUZVcxaWIydzdYRzRnSUNBZ1kyOXVjM1FnVzNCeVpXWnBlQ3dnYkdWbWRGZHlZWEJ3WlhJc0lISnBaMmgwVjNKaGNIQmxjaXdnY0c5emRHWnBlRjBnUFNCMGFHbHpMbWRsZEVobGJHMVhjbUZ3Y0dWeWN5Z3BPMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbU52Ym5abGNuUlViMGhsYkcxSVpXeHdaWElvYzI5MWNtTmxVRzlzZVcxbGNpd2djMjkxY21ObFIyRndVM2x0WW05c0xDQndjbVZtYVhnc0lHeGxablJYY21Gd2NHVnlMQ0J5YVdkb2RGZHlZWEJ3WlhJc0lIQnZjM1JtYVhncE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU52Ym5abGNuUWdZU0JqYjJ4MWJXNGdkRzhnU0VWTVRWeHVJQ0FnS2x4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVp5QjhJRzUxYkd4OUlITnZkWEpqWlVkaGNGTjViV0p2YkZ4dUlDQWdLaUJBY21WMGRYSnVJSHRFUnk1RGIyeDFiVzU5WEc0Z0lDQXFMMXh1SUNCd2NtbDJZWFJsSUdOdmJuWmxjblJVYjBobGJHMG9jMjkxY21ObFIyRndVM2x0WW05c09pQnpkSEpwYm1jZ2ZDQnVkV3hzSUQwZ2JuVnNiQ2s2SUVSSExrTnZiSFZ0YmlCN1hHNGdJQ0FnYVdZZ0tITnZkWEpqWlVkaGNGTjViV0p2YkNBOVBUMGdiblZzYkNsY2JpQWdJQ0FnSUhOdmRYSmpaVWRoY0ZONWJXSnZiQ0E5SUhSb2FYTXVaR1ZtWVhWc2RFZGhjRk41YldKdmJEdGNibHh1SUNBZ0lHTnZibk4wSUZ0d2NtVm1hWGdzSUd4bFpuUlhjbUZ3Y0dWeUxDQnlhV2RvZEZkeVlYQndaWElzSUhCdmMzUm1hWGhkSUQwZ2RHaHBjeTVuWlhSSVpXeHRWM0poY0hCbGNuTW9LVHRjYmx4dUlDQWdJR052Ym5OMElHNWxkME52YkhWdGJpQTlJSFJvYVhNdVoyVjBUbVYzUTI5c2RXMXVLRTVQVkVGVVNVOU9Ma2hGVEUwcE8xeHVJQ0FnSUM4dklHRnpjMmxuYmlCMGFHVWdkbUZzZFdWeklIUnZJSFJvWlNCbGJYQjBlU0JqYjJ4MWJXNWNiaUFnSUNCdVpYZERiMngxYlc0dWFXNXBkQ2dvYVdSNE9pQnVkVzFpWlhJcElEMCtJSHRjYmlBZ0lDQWdJR052Ym5OMElITnZkWEpqWlZCdmJIbHRaWElnUFNCMGFHbHpMbU52YkhWdGJpNW5aWFFvYVdSNEtUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbU52Ym5abGNuUlViMGhsYkcxSVpXeHdaWElvYzI5MWNtTmxVRzlzZVcxbGNpd2djMjkxY21ObFIyRndVM2x0WW05c0lTd2djSEpsWm1sNExDQnNaV1owVjNKaGNIQmxjaXdnY21sbmFIUlhjbUZ3Y0dWeUxDQndiM04wWm1sNEtUdGNiaUFnSUNCOUtUdGNiaUFnSUNCdVpYZERiMngxYlc0dWMyVjBWR0ZuS0VSSExsUkJSMU11VlU1SlZGTXNJRTVQVkVGVVNVOU9Ma2hGVEUwcE8xeHVJQ0FnSUhKbGRIVnliaUJ1WlhkRGIyeDFiVzQ3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1EyOXVkbVZ5ZENCVFJWQkJVa0ZVVDFJZ1kyOXNkVzF1SUhSdklFWkJVMVJCSUc1dmRHRjBhVzl1WEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuSUh3Z2JuVnNiSDBnWm1GemRHRkhZWEJUZVcxaWIyd2dUM0IwYVc5dVlXd2daMkZ3SUhONWJXSnZiQ0JtYjNJZ1JrRlRWRUZjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSRWN1UTI5c2RXMXVmU0FnUTI5dWRtVnlkR1ZrSUdOdmJIVnRibHh1SUNBZ0tpOWNiaUFnY0hKcGRtRjBaU0JqYjI1MlpYSjBVMlZ3WVhKaGRHOXlWRzlHWVhOMFlTaG1ZWE4wWVVkaGNGTjViV0p2YkRvZ2MzUnlhVzVuSUh3Z2JuVnNiQ0E5SUc1MWJHd3BPaUJFUnk1RGIyeDFiVzRnZTF4dUlDQWdJR2xtSUNobVlYTjBZVWRoY0ZONWJXSnZiQ0E5UFQwZ2JuVnNiQ2xjYmlBZ0lDQWdJR1poYzNSaFIyRndVM2x0WW05c0lEMGdWVzVwZEhOSVlXNWtiR1Z5TGw5a1pXWmhkV3gwUjJGd1UzbHRZbTlzYzBScFkzUXVSa0ZUVkVFN1hHNWNiaUFnSUNCamIyNXpkQ0J1WlhkRGIyeDFiVzRnUFNCMGFHbHpMbWRsZEU1bGQwTnZiSFZ0YmloT1QxUkJWRWxQVGk1R1FWTlVRU2s3WEc0Z0lDQWdMeThnWVhOemFXZHVJSFJvWlNCMllXeDFaWE1nZEc4Z2RHaGxJR1Z0Y0hSNUlHTnZiSFZ0Ymx4dUlDQWdJRzVsZDBOdmJIVnRiaTVwYm1sMEtDaHBaSGc2SUc1MWJXSmxjaWtnUFQ0Z2UxeHVJQ0FnSUNBZ1kyOXVjM1FnYzJWd1lYSmhkRzl5VUc5c2VXMWxjaUE5SUhSb2FYTXVZMjlzZFcxdUxtZGxkQ2hwWkhncE8xeHVJQ0FnSUNBZ0x5OGdhWFJsYlhNZ1kyRnVJR0psSUcxdmJtOXRaWEp6SUc5eUlITmxjR0Z5WVhSdmNuTmNiaUFnSUNBZ0lHTnZibk4wSUhObGNHRnlZWFJ2Y2tsMFpXMXpRWEp5WVhrZ1BTQjBhR2x6TG5Od2JHbDBkR1Z5S0hObGNHRnlZWFJ2Y2xCdmJIbHRaWElwTzF4dUlDQWdJQ0FnWTI5dWMzUWdabUZ6ZEdGTmIyNXZiV1Z5YzBGeWNtRjVPaUJ6ZEhKcGJtZGJYU0E5SUZ0ZE8xeHVJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnpaWEJoY21GMGIzSkpkR1Z0YzBGeWNtRjVMbXhsYm1kMGFEc2dhU3NyS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdsMFpXMGdQU0J6WlhCaGNtRjBiM0pKZEdWdGMwRnljbUY1VzJsZE8xeHVJQ0FnSUNBZ0lDQnBaaUFvYVhSbGJTNXNaVzVuZEdnZ1BUMDlJREFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQm1ZWE4wWVUxdmJtOXRaWEp6UVhKeVlYa3VjSFZ6YUNobVlYTjBZVWRoY0ZONWJXSnZiQ0VwTzF4dUlDQWdJQ0FnSUNCOUlHVnNjMlVnYVdZZ0tHbDBaVzB1YkdWdVozUm9JRDRnTVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQzh2SUhSb1pTQmpZWE5sSUc5bUlHRWdiWFZzZEdrdFkyaGhjbUZqZEdWeUlHMXZibTl0WlhKY2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCdGIyNXZiV1Z5SUQwZ0oxc25JQ3NnYVhSbGJTQXJJQ2RkSnp0Y2JpQWdJQ0FnSUNBZ0lDQm1ZWE4wWVUxdmJtOXRaWEp6UVhKeVlYa3VjSFZ6YUNodGIyNXZiV1Z5S1R0Y2JpQWdJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQm1ZWE4wWVUxdmJtOXRaWEp6UVhKeVlYa3VjSFZ6YUNocGRHVnRLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnY21WMGRYSnVJR1poYzNSaFRXOXViMjFsY25OQmNuSmhlUzVxYjJsdUtDY25LVHRjYmlBZ0lDQjlLVHRjYmlBZ0lDQnVaWGREYjJ4MWJXNHVjMlYwVkdGbktFUkhMbFJCUjFNdVZVNUpWRk1zSUU1UFZFRlVTVTlPTGtaQlUxUkJLVHRjYmlBZ0lDQnlaWFIxY200Z2JtVjNRMjlzZFcxdU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJQ0JEYjI1MlpYSjBJRWhGVEUwZ1kyOXNkVzF1SUhSdklFWkJVMVJCTDFORlVFRlNRVlJQVWx4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2RHZDBUbTkwWVhScGIyNGdJQ0FnVkdGeVoyVjBJRzV2ZEdGMGFXOXVPaUJHUVZOVVFTQnZjaUJUUlZCQlVrRlVUMUpjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlIUm5kRk5sY0dGeVlYUnZjaUFnSUU5d2RHbHZibUZzSUhSaGNtZGxkQ0J6WlhCaGNtRjBiM0lnS0dadmNpQklSVXhOSUMwK1hHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5JSHdnYm5Wc2JIMGdkR2QwUjJGd1UzbHRZbTlzSUNBZ1QzQjBhVzl1WVd3Z2RHRnlaMlYwSUdkaGNDQnplVzFpYjJ4Y2JpQWdJQ29nVTBWUVFWSkJWRTlTS1Z4dUlDQWdLaUJBY21WMGRYSnVJSHRFUnk1RGIyeDFiVzU5SUVOdmJuWmxjblJsWkNCamIyeDFiVzVjYmlBZ0lDb3ZYRzRnSUhCeWFYWmhkR1VnWTI5dWRtVnlkRWhsYkcwb2RHZDBUbTkwWVhScGIyNDZJSE4wY21sdVp5d2dkR2QwVTJWd1lYSmhkRzl5UHpvZ2MzUnlhVzVuTENCMFozUkhZWEJUZVcxaWIydy9PaUJ6ZEhKcGJtY3BPaUJFUnk1RGIyeDFiVzRnZTF4dUlDQWdJQzh2SUZSb2FYTWdablZ1WTNScGIyNGdiWFZ6ZENCdWIzUWdZMjl1ZEdGcGJpQmpZV3hzY3lCdlppQnBjMFJ1WVNncElHRnVaQ0JwYzFKdVlTZ3BMQ0JtYjNKY2JpQWdJQ0F2THlCemIzVnlZMlVnYUdWc2JTQmpiMngxYlc1eklHMWhlU0JqYjI1MFlXbHVJRkpPUVN3Z1JFNUJJR0Z1WkNCUVZDQmhZM0p2YzNNZ1pHbG1abVZ5Wlc1MElISnZkM05jYmlBZ0lDQnBaaUFvSVhSbmRFZGhjRk41YldKdmJDa2dlMXh1SUNBZ0lDQWdkR2QwUjJGd1UzbHRZbTlzSUQwZ0tIUm9hWE11ZEc5R1lYTjBZU2gwWjNST2IzUmhkR2x2YmlCaGN5Qk9UMVJCVkVsUFRpa3BJRDljYmlBZ0lDQWdJQ0FnVlc1cGRITklZVzVrYkdWeUxsOWtaV1poZFd4MFIyRndVM2x0WW05c2MwUnBZM1F1UmtGVFZFRWdPbHh1SUNBZ0lDQWdJQ0JWYm1sMGMwaGhibVJzWlhJdVgyUmxabUYxYkhSSFlYQlRlVzFpYjJ4elJHbGpkQzVUUlZCQlVrRlVUMUk3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0NGMFozUlRaWEJoY21GMGIzSXBJSHRjYmlBZ0lDQWdJSFJuZEZObGNHRnlZWFJ2Y2lBOUlDaDBhR2x6TG5SdlJtRnpkR0VvZEdkMFRtOTBZWFJwYjI0Z1lYTWdUazlVUVZSSlQwNHBLU0EvSUNjbklEb2dkR2hwY3k1elpYQmhjbUYwYjNJN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdhR1ZzYlZkeVlYQndaWEp6VW1VZ1BTQXZLRkpjWENoOFJGeGNLSHhjWENsOFVDa3ZaenRjYmlBZ0lDQmpiMjV6ZENCdVpYZERiMngxYlc0Z1BTQjBhR2x6TG1kbGRFNWxkME52YkhWdGJpaDBaM1JPYjNSaGRHbHZiaUJoY3lCT1QxUkJWRWxQVGlrN1hHNGdJQ0FnTHk4Z1lYTnphV2R1SUhSb1pTQjJZV3gxWlhNZ2RHOGdkR2hsSUdWdGNIUjVJR052YkhWdGJseHVJQ0FnSUc1bGQwTnZiSFZ0Ymk1cGJtbDBLQ2hwWkhnNklHNTFiV0psY2lrZ1BUNGdlMXh1SUNBZ0lDQWdZMjl1YzNRZ2FHVnNiVkJ2YkhsdFpYSWdQU0IwYUdsekxtTnZiSFZ0Ymk1blpYUW9hV1I0S1R0Y2JseHVJQ0FnSUNBZ0x5OGdkMlVnWTJGdWJtOTBJSFZ6WlNCcGMwUnVZU2dwSUc5eUlHbHpVbTVoS0NrZ1ltVmpZWFZ6WlNCemIzVnlZMlVnYUdWc2JTQmpiMngxYlc1eklHTmhibHh1SUNBZ0lDQWdMeThnWTI5dWRHRnBiaUJFVGtFc0lGSk9RU0JoYm1RZ1VGUWdhVzRnWkdsbVptVnlaVzUwSUdObGJHeHpMQ0J6YnlCMGFHVWdZMjl5Y21WemNHOXVaR2x1WjF4dUlDQWdJQ0FnTHk4Z2RHRm5jeUJqWVc1dWIzUWdZbVVnYzJWMElHWnZjaUIwYUdVZ2QyaHZiR1VnWTI5c2RXMXVYRzRnSUNBZ0lDQmpiMjV6ZENCcGMwNTFZMnhsYjNScFpHVWdQU0JvWld4dFVHOXNlVzFsY2k1emRHRnlkSE5YYVhSb0tDZEVUa0VuS1NCOGZDQm9aV3h0VUc5c2VXMWxjaTV6ZEdGeWRITlhhWFJvS0NkU1RrRW5LVHRjYmx4dUlDQWdJQ0FnTHk4Z2FYUmxiWE1nWTJGdUlHSmxJRzF2Ym05dFpYSnpJRzl5SUdobGJHMXpYRzRnSUNBZ0lDQmpiMjV6ZENCb1pXeHRTWFJsYlhOQmNuSmhlU0E5SUhSb2FYTXVjM0JzYVhSMFpYSW9hR1ZzYlZCdmJIbHRaWElwTzF4dUlDQWdJQ0FnWTI5dWMzUWdkR2QwVFc5dWIyMWxjbk5CY25KaGVUb2djM1J5YVc1blcxMGdQU0JiWFR0Y2JpQWdJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2FHVnNiVWwwWlcxelFYSnlZWGt1YkdWdVozUm9PeUJwS3lzcElIdGNiaUFnSUNBZ0lDQWdiR1YwSUdsMFpXMGdQU0JvWld4dFNYUmxiWE5CY25KaGVWdHBYVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHbHpUblZqYkdWdmRHbGtaU2xjYmlBZ0lDQWdJQ0FnSUNCcGRHVnRJRDBnYVhSbGJTNXlaWEJzWVdObEtHaGxiRzFYY21Gd2NHVnljMUpsTENBbkp5azdYRzRnSUNBZ0lDQWdJR2xtSUNocGRHVnRJRDA5UFNCVmJtbDBjMGhoYm1Sc1pYSXVYMlJsWm1GMWJIUkhZWEJUZVcxaWIyeHpSR2xqZEM1SVJVeE5LU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RHZDBUVzl1YjIxbGNuTkJjbkpoZVM1d2RYTm9LSFJuZEVkaGNGTjViV0p2YkNFcE8xeHVJQ0FnSUNBZ0lDQjlJR1ZzYzJVZ2FXWWdLSFJvYVhNdWRHOUdZWE4wWVNoMFozUk9iM1JoZEdsdmJpQmhjeUJPVDFSQlZFbFBUaWtnSmlZZ2FYUmxiUzVzWlc1bmRHZ2dQaUF4S1NCN1hHNGdJQ0FnSUNBZ0lDQWdMeThnZEdobElHTmhjMlVnYjJZZ1lTQnRkV3gwYVMxamFHRnlZV04wWlhJZ2JXOXViMjFsY2lCamIyNTJaWEowWldRZ2RHOGdSa0ZUVkVGY2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCdGIyNXZiV1Z5SUQwZ0oxc25JQ3NnYVhSbGJTQXJJQ2RkSnp0Y2JpQWdJQ0FnSUNBZ0lDQjBaM1JOYjI1dmJXVnljMEZ5Y21GNUxuQjFjMmdvYlc5dWIyMWxjaWs3WEc0Z0lDQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RHZDBUVzl1YjIxbGNuTkJjbkpoZVM1d2RYTm9LR2wwWlcwcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnlaWFIxY200Z2RHZDBUVzl1YjIxbGNuTkJjbkpoZVM1cWIybHVLSFJuZEZObGNHRnlZWFJ2Y2lrN1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNBdkx5QlVRVWRUTG1Gc2FXZHVaV1FnYVhNZ2JXRnVaR0YwYjNKNUlHWnZjaUJqYjJ4MWJXNXpJRzltSUU1UFZFRlVTVTlPTGtaQlUxUkJJR0Z1WkNCT1QxUkJWRWxQVGk1VFJWQkJVa0ZVVDFKY2JpQWdJQ0JqYjI1emRDQnpjR3hwZEhSbGNqb2dVM0JzYVhSMFpYSkdkVzVqSUQwZ1oyVjBVM0JzYVhSMFpYSkdiM0pEYjJ4MWJXNG9ibVYzUTI5c2RXMXVLVHRjYmlBZ0lDQmpiMjV6ZENCemRHRjBjem9nVTJWeFEyOXNVM1JoZEhNZ1BTQm5aWFJUZEdGMGN5aHVaWGREYjJ4MWJXNHNJRFVzSUhOd2JHbDBkR1Z5S1R0Y2JpQWdJQ0JqYjI1emRDQmhiR2xuYm1Wa0lEMGdjM1JoZEhNdWMyRnRaVXhsYm1kMGFDQS9JQ2RUUlZFdVRWTkJKeUE2SUNkVFJWRW5PMXh1SUNBZ0lHNWxkME52YkhWdGJpNXpaWFJVWVdjb1ZFRkhVeTVoYkdsbmJtVmtMQ0JoYkdsbmJtVmtLVHRjYmx4dUlDQWdJSEpsZEhWeWJpQnVaWGREYjJ4MWJXNDdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR052Ym5abGNuUklaV3h0Vkc5VFpYQmhjbUYwYjNJb0tUb2dSRWN1UTI5c2RXMXVJSHRjYmlBZ0lDQXZMeUJVVDBSUE9pQnBiWEJzWlcxbGJuUmhkR2x2Y21WMGRYSnVJSFJvYVhNdVoyVjBUbVYzUTI5c2RXMXVLQ2s3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WjJWMFRtVjNRMjlzZFcxdUtFNVBWRUZVU1U5T0xsTkZVRUZTUVZSUFVpazdYRzRnSUgxY2JseHVJQ0F2S2lvZ1JHbHpjR0YwWTJobGNpQnRaWFJvYjJRZ1ptOXlJRzV2ZEdGMGFXOXVJR052Ym5abGNuTnBiMjVjYmlBZ0lDcGNiaUFnSUNvZ1FIQmhjbUZ0SUh0T1QxUkJWRWxQVG4wZ2RHZDBUbTkwWVhScGIyNGdJQ0JPYjNSaGRHbHZiaUIzWlNCM1lXNTBJSFJ2SUdOdmJuWmxjblFnZEc5Y2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtY2dmQ0J1ZFd4c2ZTQjBaM1JUWlhCaGNtRjBiM0lnSUNCUWIzTnphV0pzWlNCelpYQmhjbUYwYjNKY2JpQWdJQ29nUUhKbGRIVnliaUI3UkVjdVEyOXNkVzF1ZlNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JEYjI1MlpYSjBaV1FnWTI5c2RXMXVYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdZMjl1ZG1WeWRDaDBaM1JPYjNSaGRHbHZiam9nVGs5VVFWUkpUMDRzSUhSbmRGTmxjR0Z5WVhSdmNqb2djM1J5YVc1bklId2diblZzYkNBOUlHNTFiR3dwT2lCRVJ5NURiMngxYlc0Z2UxeHVJQ0FnSUM4dklIQnZjM05wWW14bElHVjRZMlZ3ZEdsdmJuTmNiaUFnSUNCcFppQW9kR2hwY3k1dWIzUmhkR2x2YmlBOVBUMGdkR2QwVG05MFlYUnBiMjRwWEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9KM1JuZENCdWIzUmhkR2x2YmlCcGN5QnBiblpoYkdsa0p5azdYRzRnSUNBZ2FXWWdLSFJvYVhNdWRHOVRaWEJoY21GMGIzSW9kR2QwVG05MFlYUnBiMjRwSUNZbUlIUm5kRk5sY0dGeVlYUnZjaUE5UFQwZ2JuVnNiQ2xjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpZ25kR2QwSUhObGNHRnlZWFJ2Y2lCcGN5QnViM1FnYzNCbFkybG1hV1ZrSnlrN1hHNWNiaUFnSUNCcFppQW9kR2hwY3k1cGMwWmhjM1JoS0NrZ0ppWWdkR2hwY3k1MGIxTmxjR0Z5WVhSdmNpaDBaM1JPYjNSaGRHbHZiaWtnSmlZZ2RHZDBVMlZ3WVhKaGRHOXlJQ0U5UFNCdWRXeHNLVnh1SUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11WTI5dWRtVnlkRVpoYzNSaFZHOVRaWEJoY21GMGIzSW9kR2QwVTJWd1lYSmhkRzl5S1R0Y2JpQWdJQ0JsYkhObElHbG1JQ2dvZEdocGN5NXBjMFpoYzNSaEtDa2dmSHdnZEdocGN5NXBjMU5sY0dGeVlYUnZjaWdwS1NBbUppQjBhR2x6TG5SdlNHVnNiU2gwWjNST2IzUmhkR2x2YmlrcFhHNGdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NWpiMjUyWlhKMFZHOUlaV3h0S0NrN1hHNGdJQ0FnWld4elpTQnBaaUFvZEdocGN5NXBjMU5sY0dGeVlYUnZjaWdwSUNZbUlIUm9hWE11ZEc5R1lYTjBZU2gwWjNST2IzUmhkR2x2YmlrcFhHNGdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NWpiMjUyWlhKMFUyVndZWEpoZEc5eVZHOUdZWE4wWVNncE8xeHVJQ0FnSUdWc2MyVWdhV1lnS0hSb2FYTXVhWE5JWld4dEtDa2dKaVlnZEdocGN5NTBiMFpoYzNSaEtIUm5kRTV2ZEdGMGFXOXVLU2tnTHk4Z2RHaGxJR05oYzJVZ2IyWWdTRVZNVFZ4dUlDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVkyOXVkbVZ5ZEVobGJHMG9kR2QwVG05MFlYUnBiMjRwTzF4dUlDQWdJR1ZzYzJVZ2FXWWdLSFJvYVhNdWFYTklaV3h0S0NrZ0ppWWdkR2hwY3k1MGIxTmxjR0Z5WVhSdmNpaDBaM1JPYjNSaGRHbHZiaWtwWEc0Z0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1amIyNTJaWEowU0dWc2JTaDBaM1JPYjNSaGRHbHZiaXdnZEdkMFUyVndZWEpoZEc5eUlTazdYRzRnSUNBZ1pXeHpaVnh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtDZE9iM1FnYzNWd2NHOXlkR1ZrSUdOdmJuWmxjbk5wYjI0Z0p5QXJYRzRnSUNBZ0lDQWdJR0JtY205dElITnZkWEpqWlNCdWIzUmhkR2x2YmlBbkpIdDBhR2x6TG01dmRHRjBhVzl1ZlNjZ2RHOGdkR0Z5WjJWMElHNXZkR0YwYVc5dUlDY2tlM1JuZEU1dmRHRjBhVzl1ZlNjdVlDazdYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdZMjl1YzNSeWRXTjBiM0lvWTI5c09pQkVSeTVEYjJ4MWJXNHBJSHRjYmlBZ0lDQnpkWEJsY2loamIyd3BPMXh1SUNCOVhHNTlYRzRpWFgwPSIsImltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgeyBkZXRlY3RBbHBoYWJldCwgZ2V0U3BsaXR0ZXJGb3JDb2x1bW4sIGdldFN0YXRzLCBzcGxpdHRlckFzRmFzdGEgfSBmcm9tICcuL21hY3JvbW9sZWN1bGUnO1xuLyoqIENsYXNzIGZvciBoYW5kbGluZyBub3RhdGlvbiB1bml0cyBpbiBNYWNyb21vbGVjdWxlIGNvbHVtbnMgKi9cbmV4cG9ydCBjbGFzcyBVbml0c0hhbmRsZXIge1xuICAgIHN0YXRpYyBzZXRVbml0c1RvRmFzdGFDb2x1bW4oY29sKSB7XG4gICAgICAgIGlmIChjb2wuc2VtVHlwZSAhPT0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYXN0YSBjb2x1bW4gbXVzdCBiZSBNQUNST01PTEVDVUxFJyk7XG4gICAgICAgIGNvbnN0IHN0YXRzID0gZ2V0U3RhdHMoY29sLCA1LCBzcGxpdHRlckFzRmFzdGEpO1xuICAgICAgICBjb25zdCBhbGlnbmVkID0gc3RhdHMuc2FtZUxlbmd0aCA/ICdTRVEuTVNBJyA6ICdTRVEnO1xuICAgICAgICBjb25zdCBhbHBoYWJldCA9IGRldGVjdEFscGhhYmV0KHN0YXRzKTtcbiAgICAgICAgY29sLnNldFRhZyhERy5UQUdTLlVOSVRTLCBcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi8pO1xuICAgICAgICBjb2wuc2V0VGFnKFwiYWxpZ25lZFwiIC8qIFRBR1MuYWxpZ25lZCAqLywgYWxpZ25lZCk7XG4gICAgICAgIGNvbC5zZXRUYWcoXCJhbHBoYWJldFwiIC8qIFRBR1MuYWxwaGFiZXQgKi8sIGFscGhhYmV0KTtcbiAgICB9XG4gICAgZ2V0IHVuaXRzKCkgeyByZXR1cm4gdGhpcy5fdW5pdHM7IH1cbiAgICBnZXQgY29sdW1uKCkgeyByZXR1cm4gdGhpcy5fY29sdW1uOyB9XG4gICAgZ2V0IG5vdGF0aW9uKCkgeyByZXR1cm4gdGhpcy5fbm90YXRpb247IH1cbiAgICBnZXQgZGVmYXVsdEdhcFN5bWJvbCgpIHsgcmV0dXJuIHRoaXMuX2RlZmF1bHRHYXBTeW1ib2w7IH1cbiAgICBnZXQgc2VwYXJhdG9yKCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IChfYSA9IHRoaXMuY29sdW1uLmdldFRhZyhcInNlcGFyYXRvclwiIC8qIFRBR1Muc2VwYXJhdG9yICovKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdW5kZWZpbmVkO1xuICAgICAgICBpZiAodGhpcy5ub3RhdGlvbiA9PT0gXCJzZXBhcmF0b3JcIiAvKiBOT1RBVElPTi5TRVBBUkFUT1IgKi8gJiYgc2VwYXJhdG9yID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFNlcGFyYXRvciBpcyBtYW5kYXRvcnkgIGZvciBjb2x1bW4gJyR7dGhpcy5jb2x1bW4ubmFtZX0nIG9mIG5vdGF0aW9uICcke3RoaXMubm90YXRpb259Jy5gKTtcbiAgICAgICAgcmV0dXJuIHNlcGFyYXRvcjtcbiAgICB9XG4gICAgZ2V0IGFsaWduZWQoKSB7XG4gICAgICAgIGNvbnN0IGFsaWduZWQgPSB0aGlzLmNvbHVtbi5nZXRUYWcoXCJhbGlnbmVkXCIgLyogVEFHUy5hbGlnbmVkICovKTtcbiAgICAgICAgLy8gVEFHUy5hbGlnbmVkIGlzIG1hbmRhdG9yeSBmb3IgY29sdW1ucyBvZiBOT1RBVElPTi5GQVNUQSBhbmQgTk9UQVRJT04uU0VQQVJBVE9SXG4gICAgICAgIGlmICghYWxpZ25lZCAmJiAodGhpcy5pc0Zhc3RhKCkgfHwgdGhpcy5pc1NlcGFyYXRvcigpKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVGFnIGFsaWduZWQgbm90IHNldCcpO1xuICAgICAgICByZXR1cm4gYWxpZ25lZDtcbiAgICB9XG4gICAgLyoqIEFscGhhYmV0IG5hbWUgKHVwcGVyIGNhc2UpICovXG4gICAgZ2V0IGFscGhhYmV0KCkge1xuICAgICAgICBjb25zdCBhbHBoYWJldCA9IHRoaXMuY29sdW1uLmdldFRhZyhcImFscGhhYmV0XCIgLyogVEFHUy5hbHBoYWJldCAqLyk7XG4gICAgICAgIC8vIFRBR1MuYWxwaGFiZXQgaXMgbWFuZGF0b3J5IGZvciBjb2x1bW5zIG9mIE5PVEFUSU9OLkZBU1RBIGFuZCBOT1RBVElPTi5TRVBBUkFUT1JcbiAgICAgICAgaWYgKCFhbHBoYWJldCAmJiAodGhpcy5pc0Zhc3RhKCkgfHwgdGhpcy5pc1NlcGFyYXRvcigpKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVGFnIGFscGhhYmV0IG5vdCBzZXQnKTtcbiAgICAgICAgcmV0dXJuIGFscGhhYmV0O1xuICAgIH1cbiAgICBnZXRBbHBoYWJldFNpemUoKSB7XG4gICAgICAgIGlmICh0aGlzLm5vdGF0aW9uID09IFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi8gfHwgdGhpcy5hbHBoYWJldCA9PSBcIlVOXCIgLyogQUxQSEFCRVQuVU4gKi8pIHtcbiAgICAgICAgICAgIGNvbnN0IGFscGhhYmV0U2l6ZVN0ciA9IHRoaXMuY29sdW1uLmdldFRhZyhcIi5hbHBoYWJldFNpemVcIiAvKiBUQUdTLmFscGhhYmV0U2l6ZSAqLyk7XG4gICAgICAgICAgICBsZXQgYWxwaGFiZXRTaXplO1xuICAgICAgICAgICAgaWYgKGFscGhhYmV0U2l6ZVN0cikge1xuICAgICAgICAgICAgICAgIGFscGhhYmV0U2l6ZSA9IHBhcnNlSW50KGFscGhhYmV0U2l6ZVN0cik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBjYWxjdWxhdGUgYWxwaGFiZXRTaXplIG9uIGRlbWFuZFxuICAgICAgICAgICAgICAgIGNvbnN0IHNwbGl0dGVyID0gZ2V0U3BsaXR0ZXJGb3JDb2x1bW4odGhpcy5jb2x1bW4pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXRzID0gZ2V0U3RhdHModGhpcy5jb2x1bW4sIDEsIHNwbGl0dGVyKTtcbiAgICAgICAgICAgICAgICBhbHBoYWJldFNpemUgPSBPYmplY3Qua2V5cyhzdGF0cy5mcmVxKS5sZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYWxwaGFiZXRTaXplO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgc3dpdGNoICh0aGlzLmFscGhhYmV0KSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcIlBUXCIgLyogQUxQSEFCRVQuUFQgKi86XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAyMDtcbiAgICAgICAgICAgICAgICBjYXNlIFwiRE5BXCIgLyogQUxQSEFCRVQuRE5BICovOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJSTkFcIiAvKiBBTFBIQUJFVC5STkEgKi86XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA0O1xuICAgICAgICAgICAgICAgIGNhc2UgJ05UJzpcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBVbmV4cGVjdGVkIGFscGhhYmV0ICdOVCcuYCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA0O1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBhbHBoYWJldCAnJHt0aGlzLmFscGhhYmV0fScuYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0QWxwaGFiZXRJc011bHRpY2hhcigpIHtcbiAgICAgICAgaWYgKHRoaXMubm90YXRpb24gPT0gXCJoZWxtXCIgLyogTk9UQVRJT04uSEVMTSAqLyB8fCB0aGlzLmFscGhhYmV0ID09IFwiVU5cIiAvKiBBTFBIQUJFVC5VTiAqLylcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5nZXRUYWcoXCIuYWxwaGFiZXRJc011bHRpY2hhclwiIC8qIFRBR1MuYWxwaGFiZXRJc011bHRpY2hhciAqLykgPT0gJ3RydWUnO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlzRmFzdGEoKSB7IHJldHVybiB0aGlzLm5vdGF0aW9uID09PSBcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi87IH1cbiAgICBpc1NlcGFyYXRvcigpIHsgcmV0dXJuIHRoaXMubm90YXRpb24gPT09IFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovOyB9XG4gICAgaXNIZWxtKCkgeyByZXR1cm4gdGhpcy5ub3RhdGlvbiA9PT0gXCJoZWxtXCIgLyogTk9UQVRJT04uSEVMTSAqLzsgfVxuICAgIGlzUm5hKCkgeyByZXR1cm4gdGhpcy5hbHBoYWJldCA9PT0gXCJSTkFcIiAvKiBBTFBIQUJFVC5STkEgKi87IH1cbiAgICBpc0RuYSgpIHsgcmV0dXJuIHRoaXMuYWxwaGFiZXQgPT09IFwiRE5BXCIgLyogQUxQSEFCRVQuRE5BICovOyB9XG4gICAgaXNQZXB0aWRlKCkgeyByZXR1cm4gdGhpcy5hbHBoYWJldCA9PT0gXCJQVFwiIC8qIEFMUEhBQkVULlBUICovOyB9XG4gICAgaXNNc2EoKSB7IHJldHVybiB0aGlzLmFsaWduZWQgPyB0aGlzLmFsaWduZWQudG9VcHBlckNhc2UoKS5pbmNsdWRlcygnTVNBJykgOiBmYWxzZTsgfVxuICAgIC8qKiBBc3NvY2lhdGUgbm90YXRpb24gdHlwZXMgd2l0aCB0aGUgY29ycmVzcG9uZGluZyB1bml0cyAqL1xuICAgIC8qKlxuICAgICAqIEByZXR1cm4ge05PVEFUSU9OfSAgICAgTm90YXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSB1bml0cyB0eXBlXG4gICAgICovXG4gICAgZ2V0Tm90YXRpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLnVuaXRzLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi8pKVxuICAgICAgICAgICAgcmV0dXJuIFwiZmFzdGFcIiAvKiBOT1RBVElPTi5GQVNUQSAqLztcbiAgICAgICAgZWxzZSBpZiAodGhpcy51bml0cy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJzZXBhcmF0b3JcIiAvKiBOT1RBVElPTi5TRVBBUkFUT1IgKi8pKVxuICAgICAgICAgICAgcmV0dXJuIFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovO1xuICAgICAgICBlbHNlIGlmICh0aGlzLnVuaXRzLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovKSlcbiAgICAgICAgICAgIHJldHVybiBcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbHVtbiAnJHt0aGlzLmNvbHVtbi5uYW1lfScgaGFzIHVuZXhwZWN0ZWQgbm90YXRpb24gJyR7dGhpcy51bml0c30nLmApO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBuZXcgZW1wdHkgY29sdW1uIG9mIHRoZSBzcGVjaWZpZWQgbm90YXRpb24gdHlwZSBhbmQgdGhlIHNhbWVcbiAgICAgKiBsZW5ndGggYXMgY29sdW1uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge05PVEFUSU9OfSB0YXJnZXROb3RhdGlvblxuICAgICAqIEByZXR1cm4ge0RHLkNvbHVtbn1cbiAgICAgKi9cbiAgICBnZXROZXdDb2x1bW4odGFyZ2V0Tm90YXRpb24pIHtcbiAgICAgICAgY29uc3QgY29sID0gdGhpcy5jb2x1bW47XG4gICAgICAgIGNvbnN0IGxlbiA9IGNvbC5sZW5ndGg7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB0YXJnZXROb3RhdGlvbi50b0xvd2VyQ2FzZSgpICsgJygnICsgY29sLm5hbWUgKyAnKSc7XG4gICAgICAgIGNvbnN0IG5ld0NvbE5hbWUgPSBjb2wuZGF0YUZyYW1lLmNvbHVtbnMuZ2V0VW51c2VkTmFtZShuYW1lKTtcbiAgICAgICAgY29uc3QgbmV3Q29sdW1uID0gREcuQ29sdW1uLmZyb21MaXN0KCdzdHJpbmcnLCBuZXdDb2xOYW1lLCBuZXcgQXJyYXkobGVuKS5maWxsKCcnKSk7XG4gICAgICAgIG5ld0NvbHVtbi5zZW1UeXBlID0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFO1xuICAgICAgICBuZXdDb2x1bW4uc2V0VGFnKERHLlRBR1MuVU5JVFMsIHRhcmdldE5vdGF0aW9uKTtcbiAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhERy5UQUdTLkNFTExfUkVOREVSRVIsICdNYWNyb21vbGVjdWxlJyk7XG4gICAgICAgIGNvbnN0IHNyY0FsaWduZWQgPSBjb2wuZ2V0VGFnKFwiYWxpZ25lZFwiIC8qIFRBR1MuYWxpZ25lZCAqLyk7XG4gICAgICAgIGlmIChzcmNBbGlnbmVkKVxuICAgICAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhcImFsaWduZWRcIiAvKiBUQUdTLmFsaWduZWQgKi8sIHNyY0FsaWduZWQpO1xuICAgICAgICBjb25zdCBzcmNBbHBoYWJldCA9IGNvbC5nZXRUYWcoXCJhbHBoYWJldFwiIC8qIFRBR1MuYWxwaGFiZXQgKi8pO1xuICAgICAgICBpZiAoc3JjQWxwaGFiZXQpXG4gICAgICAgICAgICBuZXdDb2x1bW4uc2V0VGFnKFwiYWxwaGFiZXRcIiAvKiBUQUdTLmFscGhhYmV0ICovLCBzcmNBbHBoYWJldCk7XG4gICAgICAgIGxldCBzcmNBbHBoYWJldFNpemUgPSBjb2wuZ2V0VGFnKFwiLmFscGhhYmV0U2l6ZVwiIC8qIFRBR1MuYWxwaGFiZXRTaXplICovKTtcbiAgICAgICAgaWYgKHNyY0FscGhhYmV0U2l6ZSlcbiAgICAgICAgICAgIG5ld0NvbHVtbi5zZXRUYWcoXCIuYWxwaGFiZXRTaXplXCIgLyogVEFHUy5hbHBoYWJldFNpemUgKi8sIHNyY0FscGhhYmV0U2l6ZSk7XG4gICAgICAgIGNvbnN0IHNyY0FscGhhYmV0SXNNdWx0aWNoYXIgPSBjb2wuZ2V0VGFnKFwiLmFscGhhYmV0SXNNdWx0aWNoYXJcIiAvKiBUQUdTLmFscGhhYmV0SXNNdWx0aWNoYXIgKi8pO1xuICAgICAgICBpZiAoc3JjQWxwaGFiZXRJc011bHRpY2hhciAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhcIi5hbHBoYWJldElzTXVsdGljaGFyXCIgLyogVEFHUy5hbHBoYWJldElzTXVsdGljaGFyICovLCBzcmNBbHBoYWJldElzTXVsdGljaGFyKTtcbiAgICAgICAgaWYgKHRhcmdldE5vdGF0aW9uID09IFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi8pIHtcbiAgICAgICAgICAgIHNyY0FscGhhYmV0U2l6ZSA9IHRoaXMuZ2V0QWxwaGFiZXRTaXplKCkudG9TdHJpbmcoKTtcbiAgICAgICAgICAgIG5ld0NvbHVtbi5zZXRUYWcoXCIuYWxwaGFiZXRTaXplXCIgLyogVEFHUy5hbHBoYWJldFNpemUgKi8sIHNyY0FscGhhYmV0U2l6ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ld0NvbHVtbjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgbmV3IGVtcHR5IGNvbHVtbiB1c2luZyB0ZW1wbGF0ZUNvbCBhcyBhIHRlbXBsYXRlXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0RHLkNvbHVtbn0gdGVtcGxhdGVDb2wgIHRoZSBwcm9wZXJ0aWVzIGFuZCB1bml0cyBvZiB0aGlzIGNvbHVtbiBhcmUgdXNlZCBhcyBhXG4gICAgICogdGVtcGxhdGUgdG8gYnVpbGQgdGhlIG5ldyBvbmVcbiAgICAgKiBAcmV0dXJuIHtERy5Db2x1bW59XG4gICAgICovXG4gICAgc3RhdGljIGdldE5ld0NvbHVtbih0ZW1wbGF0ZUNvbCkge1xuICAgICAgICBjb25zdCBjb2wgPSBuZXcgVW5pdHNIYW5kbGVyKHRlbXBsYXRlQ29sKTtcbiAgICAgICAgY29uc3QgdGFyZ2V0Tm90YXRpb24gPSBjb2wubm90YXRpb247XG4gICAgICAgIHJldHVybiBjb2wuZ2V0TmV3Q29sdW1uKHRhcmdldE5vdGF0aW9uKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQSBoZWxwZXIgZnVuY3Rpb24gY2hlY2tpbmcgdGhlIHZhbGlkaXR5IG9mIHRoZSAndW5pdHMnIHN0cmluZ1xuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXRzICB0aGUgc3RyaW5nIHRvIGJlIHZhbGlkYXRlZFxuICAgICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAgICovXG4gICAgc3RhdGljIHVuaXRzU3RyaW5nSXNWYWxpZCh1bml0cykge1xuICAgICAgICB1bml0cyA9IHVuaXRzLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IHByZWZpeGVzID0gW1wiZmFzdGFcIiAvKiBOT1RBVElPTi5GQVNUQSAqLywgXCJzZXBhcmF0b3JcIiAvKiBOT1RBVElPTi5TRVBBUkFUT1IgKi8sIFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi9dO1xuICAgICAgICBjb25zdCBwb3N0Zml4ZXMgPSBbJ3JuYScsICdkbmEnLCAncHQnXTtcbiAgICAgICAgY29uc3QgcHJlZml4Q3JpdGVyaW9uID0gcHJlZml4ZXMuc29tZSgocCkgPT4gdW5pdHMuc3RhcnRzV2l0aChwLnRvTG93ZXJDYXNlKCkpKTtcbiAgICAgICAgcmV0dXJuIHByZWZpeENyaXRlcmlvbjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0IGEgbmV3IGNvbHVtbiBvZiBzZW1hbnRpYyB0eXBlIE1BQ1JPTU9MRUNVTEUgZnJvbSB0aGUgbGlzdCBvZlxuICAgICAqIHNwZWNpZmllZCBwYXJhbWV0ZXJzXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gICAgbGVuICB0aGUgbGVuZ3RoIG9mIHRoZSBuZXcgY29sdW1uXG4gICAgICogQHBhcmFtIHtzdHJpbmd9ICAgIG5hbWUgIHRoZSBuYW1lIG9mIHRoZSBuZXcgY29sdW1uXG4gICAgICogQHBhcmFtIHtzdHJpbmd9ICAgIHVuaXRzICB0aGUgdW5pdHMgb2YgdGhlIG5ldyBjb2x1bW5cbiAgICAgKiBAcmV0dXJuIHtERy5Db2x1bW59XG4gICAgICovXG4gICAgc3RhdGljIGdldE5ld0NvbHVtbkZyb21QYXJhbXMobGVuLCBuYW1lLCB1bml0cykge1xuICAgICAgICAvLyBXQVJOSU5HOiBpbiB0aGlzIGltcGxlbWVudGF0aW9uIGlzIGlzIGltcG9zc2libGUgdG8gdmVyaWZ5IHRoZSB1bmlxdWVuZXNzXG4gICAgICAgIC8vIG9mIHRoZSBuZXcgY29sdW1uJ3MgbmFtZVxuICAgICAgICAvLyBUT0RPOiB2ZXJpZnkgdGhlIHZhbGlkaXR5IG9mIHVuaXRzIHBhcmFtZXRlclxuICAgICAgICBpZiAoIVVuaXRzSGFuZGxlci51bml0c1N0cmluZ0lzVmFsaWQodW5pdHMpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGZvcm1hdCBvZiBcXCd1bml0c1xcJyBwYXJhbWV0ZXInKTtcbiAgICAgICAgY29uc3QgbmV3Q29sdW1uID0gREcuQ29sdW1uLmZyb21MaXN0KCdzdHJpbmcnLCBuYW1lLCBuZXcgQXJyYXkobGVuKS5maWxsKCcnKSk7XG4gICAgICAgIG5ld0NvbHVtbi5zZW1UeXBlID0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFO1xuICAgICAgICBuZXdDb2x1bW4uc2V0VGFnKERHLlRBR1MuVU5JVFMsIHVuaXRzKTtcbiAgICAgICAgcmV0dXJuIG5ld0NvbHVtbjtcbiAgICB9XG4gICAgY29uc3RydWN0b3IoY29sKSB7XG4gICAgICAgIHRoaXMuX2NvbHVtbiA9IGNvbDtcbiAgICAgICAgY29uc3QgdW5pdHMgPSB0aGlzLl9jb2x1bW4udGFnc1tERy5UQUdTLlVOSVRTXTtcbiAgICAgICAgaWYgKHVuaXRzICE9PSBudWxsKVxuICAgICAgICAgICAgdGhpcy5fdW5pdHMgPSB1bml0cztcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbml0cyBhcmUgbm90IHNwZWNpZmllZCBpbiBjb2x1bW4nKTtcbiAgICAgICAgdGhpcy5fbm90YXRpb24gPSB0aGlzLmdldE5vdGF0aW9uKCk7XG4gICAgICAgIHRoaXMuX2RlZmF1bHRHYXBTeW1ib2wgPSAodGhpcy5pc0Zhc3RhKCkpID8gVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QuRkFTVEEgOlxuICAgICAgICAgICAgKHRoaXMuaXNIZWxtKCkpID8gVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QuSEVMTSA6XG4gICAgICAgICAgICAgICAgVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QuU0VQQVJBVE9SO1xuICAgICAgICBpZiAoIXRoaXMuY29sdW1uLnRhZ3MuaGFzKFwiYWxpZ25lZFwiIC8qIFRBR1MuYWxpZ25lZCAqLykpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRmFzdGEoKSB8fCB0aGlzLmlzU2VwYXJhdG9yKCkpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGb3IgY29sdW1uICcke3RoaXMuY29sdW1uLm5hbWV9JyBvZiBub3RhdGlvbiAnJHt0aGlzLm5vdGF0aW9ufScgYCArXG4gICAgICAgICAgICAgICAgICAgIGB0YWcgJyR7XCJhbGlnbmVkXCIgLyogVEFHUy5hbGlnbmVkICovfScgaXMgbWFuZGF0b3J5LmApO1xuICAgICAgICB9XG4gICAgICAgIC8vIGlmICghdGhpcy5jb2x1bW4udGFncy5oYXMoVEFHUy5hbHBoYWJldFNpemUpKSB7XG4gICAgICAgIC8vICAgaWYgKHRoaXMuaXNIZWxtKCkpXG4gICAgICAgIC8vICAgICB0aHJvdyBuZXcgRXJyb3IoYEZvciBjb2x1bW4gJyR7dGhpcy5jb2x1bW4ubmFtZX0nIG9mIG5vdGF0aW9uICcke3RoaXMubm90YXRpb259JyBgICtcbiAgICAgICAgLy8gICAgICAgYHRhZyAnJHtUQUdTLmFscGhhYmV0U2l6ZX0nIGlzIG1hbmRhdG9yeS5gKTtcbiAgICAgICAgLy8gICBlbHNlIGlmIChbJ1VOJ10uaW5jbHVkZXModGhpcy5hbHBoYWJldCkpXG4gICAgICAgIC8vICAgICB0aHJvdyBuZXcgRXJyb3IoYEZvciBjb2x1bW4gJyR7dGhpcy5jb2x1bW4ubmFtZX0nIG9mIGFscGhhYmV0ICcke3RoaXMuYWxwaGFiZXR9JyBgICtcbiAgICAgICAgLy8gICAgICAgYHRhZyAnJHtUQUdTLmFscGhhYmV0U2l6ZX0nIGlzIG1hbmRhdG9yeS5gKTtcbiAgICAgICAgLy8gfVxuICAgICAgICBpZiAoIXRoaXMuY29sdW1uLnRhZ3MuaGFzKFwiLmFscGhhYmV0SXNNdWx0aWNoYXJcIiAvKiBUQUdTLmFscGhhYmV0SXNNdWx0aWNoYXIgKi8pKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0hlbG0oKSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZvciBjb2x1bW4gJyR7dGhpcy5jb2x1bW4ubmFtZX0nIG9mIG5vdGF0aW9uICcke3RoaXMubm90YXRpb259JyBgICtcbiAgICAgICAgICAgICAgICAgICAgYHRhZyAnJHtcIi5hbHBoYWJldElzTXVsdGljaGFyXCIgLyogVEFHUy5hbHBoYWJldElzTXVsdGljaGFyICovfScgaXMgbWFuZGF0b3J5LmApO1xuICAgICAgICAgICAgZWxzZSBpZiAoWydVTiddLmluY2x1ZGVzKHRoaXMuYWxwaGFiZXQpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRm9yIGNvbHVtbiAnJHt0aGlzLmNvbHVtbi5uYW1lfScgb2YgYWxwaGFiZXQgJyR7dGhpcy5hbHBoYWJldH0nIGAgK1xuICAgICAgICAgICAgICAgICAgICBgdGFnICcke1wiLmFscGhhYmV0SXNNdWx0aWNoYXJcIiAvKiBUQUdTLmFscGhhYmV0SXNNdWx0aWNoYXIgKi99JyBpcyBtYW5kYXRvcnkuYCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5Vbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdCA9IHtcbiAgICBIRUxNOiAnKicsXG4gICAgU0VQQVJBVE9SOiAnJyxcbiAgICBGQVNUQTogJy0nLFxufTtcblVuaXRzSGFuZGxlci5QZXB0aWRlRmFzdGFBbHBoYWJldCA9IG5ldyBTZXQoW1xuICAgICdHJywgJ0wnLCAnWScsICdTJywgJ0UnLCAnUScsICdEJywgJ04nLCAnRicsICdBJyxcbiAgICAnSycsICdSJywgJ0gnLCAnQycsICdWJywgJ1AnLCAnVycsICdJJywgJ00nLCAnVCcsXG5dKTtcblVuaXRzSGFuZGxlci5EbmFGYXN0YUFscGhhYmV0ID0gbmV3IFNldChbJ0EnLCAnQycsICdHJywgJ1QnXSk7XG5Vbml0c0hhbmRsZXIuUm5hRmFzdGFBbHBoYWJldCA9IG5ldyBTZXQoWydBJywgJ0MnLCAnRycsICdVJ10pO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZFc1cGRITXRhR0Z1Wkd4bGNpNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW5WdWFYUnpMV2hoYm1Sc1pYSXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc1QwRkJUeXhMUVVGTExFVkJRVVVzVFVGQlRTeHBRa0ZCYVVJc1EwRkJRenRCUVVWMFF5eFBRVUZQTEVWQlJVd3NZMEZCWXl4RlFVTmtMRzlDUVVGdlFpeEZRVU53UWl4UlFVRlJMRVZCUjFJc1pVRkJaU3hGUVVkb1FpeE5RVUZOTEdsQ1FVRnBRaXhEUVVGRE8wRkJSWHBDTEdsRlFVRnBSVHRCUVVOcVJTeE5RVUZOTEU5QlFVOHNXVUZCV1R0SlFXdENhRUlzVFVGQlRTeERRVUZETEhGQ1FVRnhRaXhEUVVGRExFZEJRV003VVVGRGFFUXNTVUZCU1N4SFFVRkhMRU5CUVVNc1QwRkJUeXhMUVVGTExFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVR0WlFVTXhReXhOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEc5RFFVRnZReXhEUVVGRExFTkJRVU03VVVGRmVFUXNUVUZCVFN4TFFVRkxMRWRCUVdkQ0xGRkJRVkVzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4RlFVRkZMR1ZCUVdVc1EwRkJReXhEUVVGRE8xRkJRemRFTEUxQlFVMHNUMEZCVHl4SFFVRkhMRXRCUVVzc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRE8xRkJRM0pFTEUxQlFVMHNVVUZCVVN4SFFVRkhMR05CUVdNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRVVYyUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l3clFrRkJhVUlzUTBGQlF6dFJRVU14UXl4SFFVRkhMRU5CUVVNc1RVRkJUU3dyUWtGQlpTeFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTnNReXhIUVVGSExFTkJRVU1zVFVGQlRTeHBRMEZCWjBJc1VVRkJVU3hEUVVGRExFTkJRVU03U1VGRGRFTXNRMEZCUXp0SlFVVkVMRWxCUVdNc1MwRkJTeXhMUVVGaExFOUJRVThzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZja1FzU1VGQll5eE5RVUZOTEV0QlFXZENMRTlCUVU4c1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGTVVRc1NVRkJWeXhSUVVGUkxFdEJRV1VzVDBGQlR5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVVeFJDeEpRVUZYTEdkQ1FVRm5RaXhMUVVGaExFOUJRVThzU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVY0UlN4SlFVRlhMRk5CUVZNN08xRkJRMnhDTEUxQlFVMHNVMEZCVXl4SFFVRjFRaXhOUVVGQkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4clEwRkJaMElzYlVOQlFVa3NVMEZCVXl4RFFVRkRPMUZCUTNSR0xFbEJRVWtzU1VGQlNTeERRVUZETEZGQlFWRXNlVU5CUVhWQ0xFbEJRVWtzVTBGQlV5eExRVUZMTEZOQlFWTTdXVUZEYWtVc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eDFRMEZCZFVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEd0Q1FVRnJRaXhKUVVGSkxFTkJRVU1zVVVGQlVTeEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTTVSeXhQUVVGUExGTkJRVk1zUTBGQlF6dEpRVU51UWl4RFFVRkRPMGxCUlVRc1NVRkJWeXhQUVVGUE8xRkJRMmhDTEUxQlFVMHNUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTdzRRa0ZCWXl4RFFVRkRPMUZCUldwRUxHbEdRVUZwUmp0UlFVTnFSaXhKUVVGSkxFTkJRVU1zVDBGQlR5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hKUVVGSkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXp0WlFVTndSQ3hOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEhGQ1FVRnhRaXhEUVVGRExFTkJRVU03VVVGRmVrTXNUMEZCVHl4UFFVRlBMRU5CUVVNN1NVRkRha0lzUTBGQlF6dEpRVVZFTEdsRFFVRnBRenRKUVVOcVF5eEpRVUZYTEZGQlFWRTdVVUZEYWtJc1RVRkJUU3hSUVVGUkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MR2REUVVGbExFTkJRVU03VVVGRmJrUXNhMFpCUVd0R08xRkJRMnhHTEVsQlFVa3NRMEZCUXl4UlFVRlJMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR5eEZRVUZGTEVsQlFVa3NTVUZCU1N4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRE8xbEJRM0pFTEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc2MwSkJRWE5DTEVOQlFVTXNRMEZCUXp0UlFVVXhReXhQUVVGUExGRkJRVkVzUTBGQlF6dEpRVU5zUWl4RFFVRkRPMGxCUlUwc1pVRkJaVHRSUVVOd1FpeEpRVUZKTEVsQlFVa3NRMEZCUXl4UlFVRlJMRGhDUVVGcFFpeEpRVUZKTEVsQlFVa3NRMEZCUXl4UlFVRlJMREJDUVVGbExFVkJRVVU3V1VGRGJFVXNUVUZCVFN4bFFVRmxMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEhsRFFVRnRRaXhEUVVGRE8xbEJRemxFTEVsQlFVa3NXVUZCYjBJc1EwRkJRenRaUVVONlFpeEpRVUZKTEdWQlFXVXNSVUZCUlR0blFrRkRia0lzV1VGQldTeEhRVUZITEZGQlFWRXNRMEZCUXl4bFFVRmxMRU5CUVVNc1EwRkJRenRoUVVNeFF6dHBRa0ZCVFR0blFrRkRUQ3h0UTBGQmJVTTdaMEpCUTI1RExFMUJRVTBzVVVGQlVTeEhRVUZwUWl4dlFrRkJiMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1owSkJRMnBGTEUxQlFVMHNTMEZCU3l4SFFVRkhMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNSVUZCUlN4UlFVRlJMRU5CUVVNc1EwRkJRenRuUWtGRGFrUXNXVUZCV1N4SFFVRkhMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJRenRoUVVNdlF6dFpRVU5FTEU5QlFVOHNXVUZCV1N4RFFVRkRPMU5CUTNKQ08yRkJRVTA3V1VGRFRDeFJRVUZSTEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVN1owSkJRM1pDTzI5Q1FVTkZMRTlCUVU4c1JVRkJSU3hEUVVGRE8yZENRVU5hTERoQ1FVRnJRanRuUWtGRGJFSTdiMEpCUTBVc1QwRkJUeXhEUVVGRExFTkJRVU03WjBKQlExZ3NTMEZCU3l4SlFVRkpPMjlDUVVOUUxFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNNa0pCUVRKQ0xFTkJRVU1zUTBGQlF6dHZRa0ZETVVNc1QwRkJUeXhEUVVGRExFTkJRVU03WjBKQlExZzdiMEpCUTBVc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eDNRa0ZCZDBJc1NVRkJTU3hEUVVGRExGRkJRVkVzU1VGQlNTeERRVUZETEVOQlFVTTdZVUZETlVRN1UwRkRSanRKUVVOSUxFTkJRVU03U1VGRlRTeHpRa0ZCYzBJN1VVRkRNMElzU1VGQlNTeEpRVUZKTEVOQlFVTXNVVUZCVVN3NFFrRkJhVUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNVVUZCVVN3d1FrRkJaVHRaUVVOb1JTeFBRVUZQTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3gxUkVGQk1FSXNTVUZCU1N4TlFVRk5MRU5CUVVNN08xbEJSVGxFTEU5QlFVOHNTMEZCU3l4RFFVRkRPMGxCUTJwQ0xFTkJRVU03U1VGRlRTeFBRVUZQTEV0QlFXTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1VVRkJVU3hwUTBGQmJVSXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZMMFFzVjBGQlZ5eExRVUZqTEU5QlFVOHNTVUZCU1N4RFFVRkRMRkZCUVZFc2VVTkJRWFZDTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlhaRkxFMUJRVTBzUzBGQll5eFBRVUZQTEVsQlFVa3NRMEZCUXl4UlFVRlJMQ3RDUVVGclFpeERRVUZETEVOQlFVTXNRMEZCUXp0SlFVVTNSQ3hMUVVGTExFdEJRV01zVDBGQlR5eEpRVUZKTEVOQlFVTXNVVUZCVVN3MlFrRkJhVUlzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGTTBRc1MwRkJTeXhMUVVGakxFOUJRVThzU1VGQlNTeERRVUZETEZGQlFWRXNOa0pCUVdsQ0xFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJUTkVMRk5CUVZNc1MwRkJZeXhQUVVGUExFbEJRVWtzUTBGQlF5eFJRVUZSTERKQ1FVRm5RaXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVU1UkN4TFFVRkxMRXRCUVdNc1QwRkJUeXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVVnlSeXcwUkVGQk5FUTdTVUZETlVRN08wOUJSVWM3U1VGRFR5eFhRVUZYTzFGQlEyNUNMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXl4VlFVRlZMRGhDUVVGblFqdFpRVU55UkN4dlEwRkJjMEk3WVVGRGJrSXNTVUZCU1N4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEZWQlFWVXNjME5CUVc5Q08xbEJRemxFTERSRFFVRXdRanRoUVVOMlFpeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU1zVlVGQlZTdzBRa0ZCWlR0WlFVTjZSQ3hyUTBGQmNVSTdPMWxCUlhKQ0xFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNWMEZCVnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzT0VKQlFUaENMRWxCUVVrc1EwRkJReXhMUVVGTExFbEJRVWtzUTBGQlF5eERRVUZETzBsQlF6ZEdMRU5CUVVNN1NVRkZSRHM3T3pzN08wOUJUVWM3U1VGRFR5eFpRVUZaTEVOQlFVTXNZMEZCZDBJN1VVRkROME1zVFVGQlRTeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJRenRSUVVONFFpeE5RVUZOTEVkQlFVY3NSMEZCUnl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRE8xRkJRM1pDTEUxQlFVMHNTVUZCU1N4SFFVRkhMR05CUVdNc1EwRkJReXhYUVVGWExFVkJRVVVzUjBGQlJ5eEhRVUZITEVkQlFVY3NSMEZCUnl4RFFVRkRMRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU03VVVGRGFrVXNUVUZCVFN4VlFVRlZMRWRCUVVjc1IwRkJSeXhEUVVGRExGTkJRVk1zUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRemRFTEUxQlFVMHNVMEZCVXl4SFFVRkhMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zVVVGQlVTeERRVUZETEZGQlFWRXNSVUZCUlN4VlFVRlZMRVZCUVVVc1NVRkJTU3hMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGNFWXNVMEZCVXl4RFFVRkRMRTlCUVU4c1IwRkJSeXhGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEdGQlFXRXNRMEZCUXp0UlFVTTNReXhUUVVGVExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhGUVVGRkxHTkJRV01zUTBGQlF5eERRVUZETzFGQlEyaEVMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4aFFVRmhMRVZCUVVVc1pVRkJaU3hEUVVGRExFTkJRVU03VVVGRmVrUXNUVUZCVFN4VlFVRlZMRWRCUVVjc1IwRkJSeXhEUVVGRExFMUJRVTBzT0VKQlFXTXNRMEZCUXp0UlFVTTFReXhKUVVGSkxGVkJRVlU3V1VGRFdpeFRRVUZUTEVOQlFVTXNUVUZCVFN3clFrRkJaU3hWUVVGVkxFTkJRVU1zUTBGQlF6dFJRVVUzUXl4TlFVRk5MRmRCUVZjc1IwRkJSeXhIUVVGSExFTkJRVU1zVFVGQlRTeG5RMEZCWlN4RFFVRkRPMUZCUXpsRExFbEJRVWtzVjBGQlZ6dFpRVU5pTEZOQlFWTXNRMEZCUXl4TlFVRk5MR2xEUVVGblFpeFhRVUZYTEVOQlFVTXNRMEZCUXp0UlFVVXZReXhKUVVGSkxHVkJRV1VzUjBGQlZ5eEhRVUZITEVOQlFVTXNUVUZCVFN4NVEwRkJiVUlzUTBGQlF6dFJRVU0xUkN4SlFVRkpMR1ZCUVdVN1dVRkRha0lzVTBGQlV5eERRVUZETEUxQlFVMHNNRU5CUVc5Q0xHVkJRV1VzUTBGQlF5eERRVUZETzFGQlJYWkVMRTFCUVUwc2MwSkJRWE5DTEVkQlFWY3NSMEZCUnl4RFFVRkRMRTFCUVUwc2RVUkJRVEJDTEVOQlFVTTdVVUZETlVVc1NVRkJTU3h6UWtGQmMwSXNTMEZCU3l4VFFVRlRPMWxCUTNSRExGTkJRVk1zUTBGQlF5eE5RVUZOTEhkRVFVRXlRaXh6UWtGQmMwSXNRMEZCUXl4RFFVRkRPMUZCUlhKRkxFbEJRVWtzWTBGQll5dzRRa0ZCYVVJc1JVRkJSVHRaUVVOdVF5eGxRVUZsTEVkQlFVY3NTVUZCU1N4RFFVRkRMR1ZCUVdVc1JVRkJSU3hEUVVGRExGRkJRVkVzUlVGQlJTeERRVUZETzFsQlEzQkVMRk5CUVZNc1EwRkJReXhOUVVGTkxEQkRRVUZ2UWl4bFFVRmxMRU5CUVVNc1EwRkJRenRUUVVOMFJEdFJRVVZFTEU5QlFVOHNVMEZCVXl4RFFVRkRPMGxCUTI1Q0xFTkJRVU03U1VGRlJEczdPenM3TzA5QlRVYzdTVUZEU1N4TlFVRk5MRU5CUVVNc1dVRkJXU3hEUVVGRExGZEJRWE5DTzFGQlF5OURMRTFCUVUwc1IwRkJSeXhIUVVGcFFpeEpRVUZKTEZsQlFWa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJRenRSUVVONFJDeE5RVUZOTEdOQlFXTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRE8xRkJRM0JETEU5QlFVOHNSMEZCUnl4RFFVRkRMRmxCUVZrc1EwRkJReXhqUVVGakxFTkJRVU1zUTBGQlF6dEpRVU14UXl4RFFVRkRPMGxCUlVRN096czdPMDlCUzBjN1NVRkRTU3hOUVVGTkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1MwRkJZVHRSUVVNMVF5eExRVUZMTEVkQlFVY3NTMEZCU3l4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRE8xRkJRelZDTEUxQlFVMHNVVUZCVVN4SFFVRkhMR2RIUVVGdFJDeERRVUZETzFGQlEzSkZMRTFCUVUwc1UwRkJVeXhIUVVGSExFTkJRVU1zUzBGQlN5eEZRVUZGTEV0QlFVc3NSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVWMlF5eE5RVUZOTEdWQlFXVXNSMEZCUnl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRhRVlzVDBGQlR5eGxRVUZsTEVOQlFVTTdTVUZEZWtJc1EwRkJRenRKUVVWRU96czdPenM3T3p0UFFWRkhPMGxCUTBrc1RVRkJUU3hEUVVGRExITkNRVUZ6UWl4RFFVTnNReXhIUVVGWExFVkJRMWdzU1VGQldTeEZRVU5hTEV0QlFXRTdVVUZGWWl3MFJVRkJORVU3VVVGRE5VVXNNa0pCUVRKQ08xRkJRek5DTEN0RFFVRXJRenRSUVVNdlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMR3RDUVVGclFpeERRVUZETEV0QlFVc3NRMEZCUXp0WlFVTjZReXhOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEhWRFFVRjFReXhEUVVGRExFTkJRVU03VVVGRE0wUXNUVUZCVFN4VFFVRlRMRWRCUVVjc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eFJRVUZSTEVOQlFVTXNVVUZCVVN4RlFVRkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU01UlN4VFFVRlRMRU5CUVVNc1QwRkJUeXhIUVVGSExFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVN4RFFVRkRPMUZCUXpkRExGTkJRVk1zUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdVVUZEZGtNc1QwRkJUeXhUUVVGVExFTkJRVU03U1VGRGJrSXNRMEZCUXp0SlFVVkVMRmxCUVcxQ0xFZEJRV003VVVGREwwSXNTVUZCU1N4RFFVRkRMRTlCUVU4c1IwRkJSeXhIUVVGSExFTkJRVU03VVVGRGJrSXNUVUZCVFN4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU12UXl4SlFVRkpMRXRCUVVzc1MwRkJTeXhKUVVGSk8xbEJRMmhDTEVsQlFVa3NRMEZCUXl4TlFVRk5MRWRCUVVjc1MwRkJTeXhEUVVGRE96dFpRVVZ3UWl4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExHMURRVUZ0UXl4RFFVRkRMRU5CUVVNN1VVRkRka1FzU1VGQlNTeERRVUZETEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU03VVVGRGNFTXNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZsQlFWa3NRMEZCUXl4elFrRkJjMElzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0WlFVTnlSaXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhaUVVGWkxFTkJRVU1zYzBKQlFYTkNMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03WjBKQlF6RkVMRmxCUVZrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4VFFVRlRMRU5CUVVNN1VVRkZiRVFzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzT0VKQlFXTXNSVUZCUlR0WlFVTjJReXhKUVVGSkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVWQlFVVXNTVUZCU1N4SlFVRkpMRU5CUVVNc1YwRkJWeXhGUVVGRk8yZENRVU4wUXl4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExHVkJRV1VzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMR3RDUVVGclFpeEpRVUZKTEVOQlFVTXNVVUZCVVN4SlFVRkpPMjlDUVVOb1JpeFJRVUZSTERSQ1FVRlpMR2xDUVVGcFFpeERRVUZETEVOQlFVTTdVMEZETlVNN1VVRkZSQ3hyUkVGQmEwUTdVVUZEYkVRc2RVSkJRWFZDTzFGQlEzWkNMREpHUVVFeVJqdFJRVU16Uml4eFJFRkJjVVE3VVVGRGNrUXNOa05CUVRaRE8xRkJRemRETERKR1FVRXlSanRSUVVNelJpeHhSRUZCY1VRN1VVRkRja1FzU1VGQlNUdFJRVVZLTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEhWRVFVRXdRaXhGUVVGRk8xbEJRMjVFTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSVHRuUWtGRFppeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMR1ZCUVdVc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEd0Q1FVRnJRaXhKUVVGSkxFTkJRVU1zVVVGQlVTeEpRVUZKTzI5Q1FVTm9SaXhSUVVGUkxIRkVRVUYzUWl4cFFrRkJhVUlzUTBGQlF5eERRVUZETzJsQ1FVTnNSQ3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU03WjBKQlEzSkRMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zWlVGQlpTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc2EwSkJRV3RDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRWxCUVVrN2IwSkJRMmhHTEZGQlFWRXNjVVJCUVhkQ0xHbENRVUZwUWl4RFFVRkRMRU5CUVVNN1UwRkRlRVE3U1VGRFNDeERRVUZET3p0QlFXaFJlVUlzYlVOQlFYTkNMRWRCUVVjN1NVRkRha1FzU1VGQlNTeEZRVUZGTEVkQlFVYzdTVUZEVkN4VFFVRlRMRVZCUVVVc1JVRkJSVHRKUVVOaUxFdEJRVXNzUlVGQlJTeEhRVUZITzBOQlExZ3NRMEZCUXp0QlFVVnhRaXhwUTBGQmIwSXNSMEZCUnl4SlFVRkpMRWRCUVVjc1EwRkJVenRKUVVNMVJDeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITzBsQlEyaEVMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjN1EwRkRha1FzUTBGQlF5eERRVUZETzBGQlEyOUNMRFpDUVVGblFpeEhRVUZITEVsQlFVa3NSMEZCUnl4RFFVRlRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVONlJDdzJRa0ZCWjBJc1IwRkJSeXhKUVVGSkxFZEJRVWNzUTBGQlV5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdLaUJoY3lCRVJ5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaR2NuTzF4dVhHNXBiWEJ2Y25RZ2UxeHVJQ0JCVEZCSVFVSkZWQ3hjYmlBZ1pHVjBaV04wUVd4d2FHRmlaWFFzWEc0Z0lHZGxkRk53YkdsMGRHVnlSbTl5UTI5c2RXMXVMRnh1SUNCblpYUlRkR0YwY3l4Y2JpQWdUazlVUVZSSlQwNHNYRzRnSUZObGNVTnZiRk4wWVhSekxGeHVJQ0J6Y0d4cGRIUmxja0Z6Um1GemRHRXNYRzRnSUZOd2JHbDBkR1Z5Um5WdVl5eGNiaUFnVkVGSFUxeHVmU0JtY205dElDY3VMMjFoWTNKdmJXOXNaV04xYkdVbk8xeHVYRzR2S2lvZ1EyeGhjM01nWm05eUlHaGhibVJzYVc1bklHNXZkR0YwYVc5dUlIVnVhWFJ6SUdsdUlFMWhZM0p2Ylc5c1pXTjFiR1VnWTI5c2RXMXVjeUFxTDF4dVpYaHdiM0owSUdOc1lYTnpJRlZ1YVhSelNHRnVaR3hsY2lCN1hHNGdJSEJ5YjNSbFkzUmxaQ0J5WldGa2IyNXNlU0JmWTI5c2RXMXVPaUJFUnk1RGIyeDFiVzQ3SUM4dklIUm9aU0JqYjJ4MWJXNGdkRzhnWW1VZ1kyOXVkbVZ5ZEdWa1hHNGdJSEJ5YjNSbFkzUmxaQ0JmZFc1cGRITTZJSE4wY21sdVp6c2dMeThnZFc1cGRITXNJRzltSUhSb1pTQm1iM0p0SUdaaGMzUmhMQ0J6WlhCaGNtRjBiM0pjYmlBZ2NISnZkR1ZqZEdWa0lGOXViM1JoZEdsdmJqb2dUazlVUVZSSlQwNDdJQzh2SUdOMWNuSmxiblFnYm05MFlYUnBiMjRnS0hkcGRHaHZkWFFnT2xORlVUcE9WQ3dnWlhSakxpbGNiaUFnY0hKdmRHVmpkR1ZrSUY5a1pXWmhkV3gwUjJGd1UzbHRZbTlzT2lCemRISnBibWM3WEc0Z0lIQnliM1JsWTNSbFpDQnpkR0YwYVdNZ2NtVmhaRzl1YkhrZ1gyUmxabUYxYkhSSFlYQlRlVzFpYjJ4elJHbGpkQ0E5SUh0Y2JpQWdJQ0JJUlV4Tk9pQW5LaWNzWEc0Z0lDQWdVMFZRUVZKQlZFOVNPaUFuSnl4Y2JpQWdJQ0JHUVZOVVFUb2dKeTBuTEZ4dUlDQjlPMXh1WEc0Z0lIQjFZbXhwWXlCemRHRjBhV01nY21WaFpHOXViSGtnVUdWd2RHbGtaVVpoYzNSaFFXeHdhR0ZpWlhRZ1BTQnVaWGNnVTJWMFBITjBjbWx1Wno0b1cxeHVJQ0FnSUNkSEp5d2dKMHduTENBbldTY3NJQ2RUSnl3Z0owVW5MQ0FuVVNjc0lDZEVKeXdnSjA0bkxDQW5SaWNzSUNkQkp5eGNiaUFnSUNBblN5Y3NJQ2RTSnl3Z0owZ25MQ0FuUXljc0lDZFdKeXdnSjFBbkxDQW5WeWNzSUNkSkp5d2dKMDBuTENBblZDY3NYRzRnSUYwcE8xeHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklISmxZV1J2Ym14NUlFUnVZVVpoYzNSaFFXeHdhR0ZpWlhRZ1BTQnVaWGNnVTJWMFBITjBjbWx1Wno0b1d5ZEJKeXdnSjBNbkxDQW5SeWNzSUNkVUoxMHBPMXh1SUNCd2RXSnNhV01nYzNSaGRHbGpJSEpsWVdSdmJteDVJRkp1WVVaaGMzUmhRV3h3YUdGaVpYUWdQU0J1WlhjZ1UyVjBQSE4wY21sdVp6NG9XeWRCSnl3Z0owTW5MQ0FuUnljc0lDZFZKMTBwTzF4dVhHNGdJSEIxWW14cFl5QnpkR0YwYVdNZ2MyVjBWVzVwZEhOVWIwWmhjM1JoUTI5c2RXMXVLR052YkRvZ1JFY3VRMjlzZFcxdUtTQjdYRzRnSUNBZ2FXWWdLR052YkM1elpXMVVlWEJsSUNFOVBTQkVSeTVUUlUxVVdWQkZMazFCUTFKUFRVOU1SVU5WVEVVcFhHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjBaaGMzUmhJR052YkhWdGJpQnRkWE4wSUdKbElFMUJRMUpQVFU5TVJVTlZURVVuS1R0Y2JseHVJQ0FnSUdOdmJuTjBJSE4wWVhSek9pQlRaWEZEYjJ4VGRHRjBjeUE5SUdkbGRGTjBZWFJ6S0dOdmJDd2dOU3dnYzNCc2FYUjBaWEpCYzBaaGMzUmhLVHRjYmlBZ0lDQmpiMjV6ZENCaGJHbG5ibVZrSUQwZ2MzUmhkSE11YzJGdFpVeGxibWQwYUNBL0lDZFRSVkV1VFZOQkp5QTZJQ2RUUlZFbk8xeHVJQ0FnSUdOdmJuTjBJR0ZzY0doaFltVjBJRDBnWkdWMFpXTjBRV3h3YUdGaVpYUW9jM1JoZEhNcE8xeHVYRzRnSUNBZ1kyOXNMbk5sZEZSaFp5aEVSeTVVUVVkVExsVk9TVlJUTENCT1QxUkJWRWxQVGk1R1FWTlVRU2s3WEc0Z0lDQWdZMjlzTG5ObGRGUmhaeWhVUVVkVExtRnNhV2R1WldRc0lHRnNhV2R1WldRcE8xeHVJQ0FnSUdOdmJDNXpaWFJVWVdjb1ZFRkhVeTVoYkhCb1lXSmxkQ3dnWVd4d2FHRmlaWFFwTzF4dUlDQjlYRzVjYmlBZ2NISnZkR1ZqZEdWa0lHZGxkQ0IxYm1sMGN5Z3BPaUJ6ZEhKcGJtY2dleUJ5WlhSMWNtNGdkR2hwY3k1ZmRXNXBkSE03SUgxY2JseHVJQ0J3Y205MFpXTjBaV1FnWjJWMElHTnZiSFZ0YmlncE9pQkVSeTVEYjJ4MWJXNGdleUJ5WlhSMWNtNGdkR2hwY3k1ZlkyOXNkVzF1T3lCOVhHNWNiaUFnY0hWaWJHbGpJR2RsZENCdWIzUmhkR2x2YmlncE9pQk9UMVJCVkVsUFRpQjdJSEpsZEhWeWJpQjBhR2x6TGw5dWIzUmhkR2x2YmpzZ2ZWeHVYRzRnSUhCMVlteHBZeUJuWlhRZ1pHVm1ZWFZzZEVkaGNGTjViV0p2YkNncE9pQnpkSEpwYm1jZ2V5QnlaWFIxY200Z2RHaHBjeTVmWkdWbVlYVnNkRWRoY0ZONWJXSnZiRHNnZlZ4dVhHNGdJSEIxWW14cFl5Qm5aWFFnYzJWd1lYSmhkRzl5S0NrNklITjBjbWx1WnlCOElIVnVaR1ZtYVc1bFpDQjdYRzRnSUNBZ1kyOXVjM1FnYzJWd1lYSmhkRzl5T2lCemRISnBibWNnZkNCMWJtUmxabWx1WldRZ1BTQjBhR2x6TG1OdmJIVnRiaTVuWlhSVVlXY29WRUZIVXk1elpYQmhjbUYwYjNJcElEOC9JSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQnBaaUFvZEdocGN5NXViM1JoZEdsdmJpQTlQVDBnVGs5VVFWUkpUMDR1VTBWUVFWSkJWRTlTSUNZbUlITmxjR0Z5WVhSdmNpQTlQVDBnZFc1a1pXWnBibVZrS1Z4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLR0JUWlhCaGNtRjBiM0lnYVhNZ2JXRnVaR0YwYjNKNUlDQm1iM0lnWTI5c2RXMXVJQ2NrZTNSb2FYTXVZMjlzZFcxdUxtNWhiV1Y5SnlCdlppQnViM1JoZEdsdmJpQW5KSHQwYUdsekxtNXZkR0YwYVc5dWZTY3VZQ2s3WEc0Z0lDQWdjbVYwZFhKdUlITmxjR0Z5WVhSdmNqdGNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5Qm5aWFFnWVd4cFoyNWxaQ2dwT2lCemRISnBibWNnZTF4dUlDQWdJR052Ym5OMElHRnNhV2R1WldRZ1BTQjBhR2x6TG1OdmJIVnRiaTVuWlhSVVlXY29WRUZIVXk1aGJHbG5ibVZrS1R0Y2JseHVJQ0FnSUM4dklGUkJSMU11WVd4cFoyNWxaQ0JwY3lCdFlXNWtZWFJ2Y25rZ1ptOXlJR052YkhWdGJuTWdiMllnVGs5VVFWUkpUMDR1UmtGVFZFRWdZVzVrSUU1UFZFRlVTVTlPTGxORlVFRlNRVlJQVWx4dUlDQWdJR2xtSUNnaFlXeHBaMjVsWkNBbUppQW9kR2hwY3k1cGMwWmhjM1JoS0NrZ2ZId2dkR2hwY3k1cGMxTmxjR0Z5WVhSdmNpZ3BLU2xjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpZ25WR0ZuSUdGc2FXZHVaV1FnYm05MElITmxkQ2NwTzF4dVhHNGdJQ0FnY21WMGRYSnVJR0ZzYVdkdVpXUTdYRzRnSUgxY2JseHVJQ0F2S2lvZ1FXeHdhR0ZpWlhRZ2JtRnRaU0FvZFhCd1pYSWdZMkZ6WlNrZ0tpOWNiaUFnY0hWaWJHbGpJR2RsZENCaGJIQm9ZV0psZENncE9pQnpkSEpwYm1jZ2UxeHVJQ0FnSUdOdmJuTjBJR0ZzY0doaFltVjBJRDBnZEdocGN5NWpiMngxYlc0dVoyVjBWR0ZuS0ZSQlIxTXVZV3h3YUdGaVpYUXBPMXh1WEc0Z0lDQWdMeThnVkVGSFV5NWhiSEJvWVdKbGRDQnBjeUJ0WVc1a1lYUnZjbmtnWm05eUlHTnZiSFZ0Ym5NZ2IyWWdUazlVUVZSSlQwNHVSa0ZUVkVFZ1lXNWtJRTVQVkVGVVNVOU9MbE5GVUVGU1FWUlBVbHh1SUNBZ0lHbG1JQ2doWVd4d2FHRmlaWFFnSmlZZ0tIUm9hWE11YVhOR1lYTjBZU2dwSUh4OElIUm9hWE11YVhOVFpYQmhjbUYwYjNJb0tTa3BYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb0oxUmhaeUJoYkhCb1lXSmxkQ0J1YjNRZ2MyVjBKeWs3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdZV3h3YUdGaVpYUTdYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdaMlYwUVd4d2FHRmlaWFJUYVhwbEtDazZJRzUxYldKbGNpQjdYRzRnSUNBZ2FXWWdLSFJvYVhNdWJtOTBZWFJwYjI0Z1BUMGdUazlVUVZSSlQwNHVTRVZNVFNCOGZDQjBhR2x6TG1Gc2NHaGhZbVYwSUQwOUlFRk1VRWhCUWtWVUxsVk9LU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmhiSEJvWVdKbGRGTnBlbVZUZEhJZ1BTQjBhR2x6TG1OdmJIVnRiaTVuWlhSVVlXY29WRUZIVXk1aGJIQm9ZV0psZEZOcGVtVXBPMXh1SUNBZ0lDQWdiR1YwSUdGc2NHaGhZbVYwVTJsNlpUb2diblZ0WW1WeU8xeHVJQ0FnSUNBZ2FXWWdLR0ZzY0doaFltVjBVMmw2WlZOMGNpa2dlMXh1SUNBZ0lDQWdJQ0JoYkhCb1lXSmxkRk5wZW1VZ1BTQndZWEp6WlVsdWRDaGhiSEJvWVdKbGRGTnBlbVZUZEhJcE8xeHVJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0x5OGdZMkZzWTNWc1lYUmxJR0ZzY0doaFltVjBVMmw2WlNCdmJpQmtaVzFoYm1SY2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYzNCc2FYUjBaWEk2SUZOd2JHbDBkR1Z5Um5WdVl5QTlJR2RsZEZOd2JHbDBkR1Z5Um05eVEyOXNkVzF1S0hSb2FYTXVZMjlzZFcxdUtUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2MzUmhkSE1nUFNCblpYUlRkR0YwY3loMGFHbHpMbU52YkhWdGJpd2dNU3dnYzNCc2FYUjBaWElwTzF4dUlDQWdJQ0FnSUNCaGJIQm9ZV0psZEZOcGVtVWdQU0JQWW1wbFkzUXVhMlY1Y3loemRHRjBjeTVtY21WeEtTNXNaVzVuZEdnN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnWVd4d2FHRmlaWFJUYVhwbE8xeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0J6ZDJsMFkyZ2dLSFJvYVhNdVlXeHdhR0ZpWlhRcElIdGNiaUFnSUNBZ0lHTmhjMlVnUVV4UVNFRkNSVlF1VUZRNlhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlBeU1EdGNiaUFnSUNBZ0lHTmhjMlVnUVV4UVNFRkNSVlF1UkU1Qk9seHVJQ0FnSUNBZ1kyRnpaU0JCVEZCSVFVSkZWQzVTVGtFNlhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlBME8xeHVJQ0FnSUNBZ1kyRnpaU0FuVGxRbk9seHVJQ0FnSUNBZ0lDQmpiMjV6YjJ4bExuZGhjbTRvWUZWdVpYaHdaV04wWldRZ1lXeHdhR0ZpWlhRZ0owNVVKeTVnS1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SURRN1hHNGdJQ0FnSUNCa1pXWmhkV3gwT2x4dUlDQWdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvWUZWdVpYaHdaV04wWldRZ1lXeHdhR0ZpWlhRZ0p5UjdkR2hwY3k1aGJIQm9ZV0psZEgwbkxtQXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5Qm5aWFJCYkhCb1lXSmxkRWx6VFhWc2RHbGphR0Z5S0NrNklHSnZiMnhsWVc0Z2UxeHVJQ0FnSUdsbUlDaDBhR2x6TG01dmRHRjBhVzl1SUQwOUlFNVBWRUZVU1U5T0xraEZURTBnZkh3Z2RHaHBjeTVoYkhCb1lXSmxkQ0E5UFNCQlRGQklRVUpGVkM1VlRpbGNiaUFnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbU52YkhWdGJpNW5aWFJVWVdjb1ZFRkhVeTVoYkhCb1lXSmxkRWx6VFhWc2RHbGphR0Z5S1NBOVBTQW5kSEoxWlNjN1hHNGdJQ0FnWld4elpWeHVJQ0FnSUNBZ2NtVjBkWEp1SUdaaGJITmxPMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJR2x6Um1GemRHRW9LVG9nWW05dmJHVmhiaUI3SUhKbGRIVnliaUIwYUdsekxtNXZkR0YwYVc5dUlEMDlQU0JPVDFSQlZFbFBUaTVHUVZOVVFUc2dmVnh1WEc0Z0lIQjFZbXhwWXlCcGMxTmxjR0Z5WVhSdmNpZ3BPaUJpYjI5c1pXRnVJSHNnY21WMGRYSnVJSFJvYVhNdWJtOTBZWFJwYjI0Z1BUMDlJRTVQVkVGVVNVOU9MbE5GVUVGU1FWUlBVanNnZlZ4dVhHNGdJSEIxWW14cFl5QnBjMGhsYkcwb0tUb2dZbTl2YkdWaGJpQjdJSEpsZEhWeWJpQjBhR2x6TG01dmRHRjBhVzl1SUQwOVBTQk9UMVJCVkVsUFRpNUlSVXhOT3lCOVhHNWNiaUFnY0hWaWJHbGpJR2x6VW01aEtDazZJR0p2YjJ4bFlXNGdleUJ5WlhSMWNtNGdkR2hwY3k1aGJIQm9ZV0psZENBOVBUMGdRVXhRU0VGQ1JWUXVVazVCT3lCOVhHNWNiaUFnY0hWaWJHbGpJR2x6Ukc1aEtDazZJR0p2YjJ4bFlXNGdleUJ5WlhSMWNtNGdkR2hwY3k1aGJIQm9ZV0psZENBOVBUMGdRVXhRU0VGQ1JWUXVSRTVCT3lCOVhHNWNiaUFnY0hWaWJHbGpJR2x6VUdWd2RHbGtaU2dwT2lCaWIyOXNaV0Z1SUhzZ2NtVjBkWEp1SUhSb2FYTXVZV3h3YUdGaVpYUWdQVDA5SUVGTVVFaEJRa1ZVTGxCVU95QjlYRzVjYmlBZ2NIVmliR2xqSUdselRYTmhLQ2s2SUdKdmIyeGxZVzRnZXlCeVpYUjFjbTRnZEdocGN5NWhiR2xuYm1Wa0lEOGdkR2hwY3k1aGJHbG5ibVZrTG5SdlZYQndaWEpEWVhObEtDa3VhVzVqYkhWa1pYTW9KMDFUUVNjcElEb2dabUZzYzJVN0lIMWNibHh1SUNBdktpb2dRWE56YjJOcFlYUmxJRzV2ZEdGMGFXOXVJSFI1Y0dWeklIZHBkR2dnZEdobElHTnZjbkpsYzNCdmJtUnBibWNnZFc1cGRITWdLaTljYmlBZ0x5b3FYRzRnSUNBcUlFQnlaWFIxY200Z2UwNVBWRUZVU1U5T2ZTQWdJQ0FnVG05MFlYUnBiMjRnWVhOemIyTnBZWFJsWkNCM2FYUm9JSFJvWlNCMWJtbDBjeUIwZVhCbFhHNGdJQ0FxTDF4dUlDQndjbTkwWldOMFpXUWdaMlYwVG05MFlYUnBiMjRvS1RvZ1RrOVVRVlJKVDA0Z2UxeHVJQ0FnSUdsbUlDaDBhR2x6TG5WdWFYUnpMblJ2VEc5M1pYSkRZWE5sS0NrdWMzUmhjblJ6VjJsMGFDaE9UMVJCVkVsUFRpNUdRVk5VUVNrcFhHNGdJQ0FnSUNCeVpYUjFjbTRnVGs5VVFWUkpUMDR1UmtGVFZFRTdYRzRnSUNBZ1pXeHpaU0JwWmlBb2RHaHBjeTUxYm1sMGN5NTBiMHh2ZDJWeVEyRnpaU2dwTG5OMFlYSjBjMWRwZEdnb1RrOVVRVlJKVDA0dVUwVlFRVkpCVkU5U0tTbGNiaUFnSUNBZ0lISmxkSFZ5YmlCT1QxUkJWRWxQVGk1VFJWQkJVa0ZVVDFJN1hHNGdJQ0FnWld4elpTQnBaaUFvZEdocGN5NTFibWwwY3k1MGIweHZkMlZ5UTJGelpTZ3BMbk4wWVhKMGMxZHBkR2dvVGs5VVFWUkpUMDR1U0VWTVRTa3BYRzRnSUNBZ0lDQnlaWFIxY200Z1RrOVVRVlJKVDA0dVNFVk1UVHRjYmlBZ0lDQmxiSE5sWEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9ZRU52YkhWdGJpQW5KSHQwYUdsekxtTnZiSFZ0Ymk1dVlXMWxmU2NnYUdGeklIVnVaWGh3WldOMFpXUWdibTkwWVhScGIyNGdKeVI3ZEdocGN5NTFibWwwYzMwbkxtQXBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOeVpXRjBaU0JoSUc1bGR5QmxiWEIwZVNCamIyeDFiVzRnYjJZZ2RHaGxJSE53WldOcFptbGxaQ0J1YjNSaGRHbHZiaUIwZVhCbElHRnVaQ0IwYUdVZ2MyRnRaVnh1SUNBZ0tpQnNaVzVuZEdnZ1lYTWdZMjlzZFcxdVhHNGdJQ0FxWEc0Z0lDQXFJRUJ3WVhKaGJTQjdUazlVUVZSSlQwNTlJSFJoY21kbGRFNXZkR0YwYVc5dVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTBSSExrTnZiSFZ0Ym4xY2JpQWdJQ292WEc0Z0lIQnliM1JsWTNSbFpDQm5aWFJPWlhkRGIyeDFiVzRvZEdGeVoyVjBUbTkwWVhScGIyNDZJRTVQVkVGVVNVOU9LVG9nUkVjdVEyOXNkVzF1SUh0Y2JpQWdJQ0JqYjI1emRDQmpiMndnUFNCMGFHbHpMbU52YkhWdGJqdGNiaUFnSUNCamIyNXpkQ0JzWlc0Z1BTQmpiMnd1YkdWdVozUm9PMXh1SUNBZ0lHTnZibk4wSUc1aGJXVWdQU0IwWVhKblpYUk9iM1JoZEdsdmJpNTBiMHh2ZDJWeVEyRnpaU2dwSUNzZ0p5Z25JQ3NnWTI5c0xtNWhiV1VnS3lBbktTYzdYRzRnSUNBZ1kyOXVjM1FnYm1WM1EyOXNUbUZ0WlNBOUlHTnZiQzVrWVhSaFJuSmhiV1V1WTI5c2RXMXVjeTVuWlhSVmJuVnpaV1JPWVcxbEtHNWhiV1VwTzF4dUlDQWdJR052Ym5OMElHNWxkME52YkhWdGJpQTlJRVJITGtOdmJIVnRiaTVtY205dFRHbHpkQ2duYzNSeWFXNW5KeXdnYm1WM1EyOXNUbUZ0WlN3Z2JtVjNJRUZ5Y21GNUtHeGxiaWt1Wm1sc2JDZ25KeWtwTzF4dUlDQWdJRzVsZDBOdmJIVnRiaTV6WlcxVWVYQmxJRDBnUkVjdVUwVk5WRmxRUlM1TlFVTlNUMDFQVEVWRFZVeEZPMXh1SUNBZ0lHNWxkME52YkhWdGJpNXpaWFJVWVdjb1JFY3VWRUZIVXk1VlRrbFVVeXdnZEdGeVoyVjBUbTkwWVhScGIyNHBPMXh1SUNBZ0lHNWxkME52YkhWdGJpNXpaWFJVWVdjb1JFY3VWRUZIVXk1RFJVeE1YMUpGVGtSRlVrVlNMQ0FuVFdGamNtOXRiMnhsWTNWc1pTY3BPMXh1WEc0Z0lDQWdZMjl1YzNRZ2MzSmpRV3hwWjI1bFpDQTlJR052YkM1blpYUlVZV2NvVkVGSFV5NWhiR2xuYm1Wa0tUdGNiaUFnSUNCcFppQW9jM0pqUVd4cFoyNWxaQ2xjYmlBZ0lDQWdJRzVsZDBOdmJIVnRiaTV6WlhSVVlXY29WRUZIVXk1aGJHbG5ibVZrTENCemNtTkJiR2xuYm1Wa0tUdGNibHh1SUNBZ0lHTnZibk4wSUhOeVkwRnNjR2hoWW1WMElEMGdZMjlzTG1kbGRGUmhaeWhVUVVkVExtRnNjR2hoWW1WMEtUdGNiaUFnSUNCcFppQW9jM0pqUVd4d2FHRmlaWFFwWEc0Z0lDQWdJQ0J1WlhkRGIyeDFiVzR1YzJWMFZHRm5LRlJCUjFNdVlXeHdhR0ZpWlhRc0lITnlZMEZzY0doaFltVjBLVHRjYmx4dUlDQWdJR3hsZENCemNtTkJiSEJvWVdKbGRGTnBlbVU2SUhOMGNtbHVaeUE5SUdOdmJDNW5aWFJVWVdjb1ZFRkhVeTVoYkhCb1lXSmxkRk5wZW1VcE8xeHVJQ0FnSUdsbUlDaHpjbU5CYkhCb1lXSmxkRk5wZW1VcFhHNGdJQ0FnSUNCdVpYZERiMngxYlc0dWMyVjBWR0ZuS0ZSQlIxTXVZV3h3YUdGaVpYUlRhWHBsTENCemNtTkJiSEJvWVdKbGRGTnBlbVVwTzF4dVhHNGdJQ0FnWTI5dWMzUWdjM0pqUVd4d2FHRmlaWFJKYzAxMWJIUnBZMmhoY2pvZ2MzUnlhVzVuSUQwZ1kyOXNMbWRsZEZSaFp5aFVRVWRUTG1Gc2NHaGhZbVYwU1hOTmRXeDBhV05vWVhJcE8xeHVJQ0FnSUdsbUlDaHpjbU5CYkhCb1lXSmxkRWx6VFhWc2RHbGphR0Z5SUNFOVBTQjFibVJsWm1sdVpXUXBYRzRnSUNBZ0lDQnVaWGREYjJ4MWJXNHVjMlYwVkdGbktGUkJSMU11WVd4d2FHRmlaWFJKYzAxMWJIUnBZMmhoY2l3Z2MzSmpRV3h3YUdGaVpYUkpjMDExYkhScFkyaGhjaWs3WEc1Y2JpQWdJQ0JwWmlBb2RHRnlaMlYwVG05MFlYUnBiMjRnUFQwZ1RrOVVRVlJKVDA0dVNFVk1UU2tnZTF4dUlDQWdJQ0FnYzNKalFXeHdhR0ZpWlhSVGFYcGxJRDBnZEdocGN5NW5aWFJCYkhCb1lXSmxkRk5wZW1Vb0tTNTBiMU4wY21sdVp5Z3BPMXh1SUNBZ0lDQWdibVYzUTI5c2RXMXVMbk5sZEZSaFp5aFVRVWRUTG1Gc2NHaGhZbVYwVTJsNlpTd2djM0pqUVd4d2FHRmlaWFJUYVhwbEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnYm1WM1EyOXNkVzF1TzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFTnlaV0YwWlNCaElHNWxkeUJsYlhCMGVTQmpiMngxYlc0Z2RYTnBibWNnZEdWdGNHeGhkR1ZEYjJ3Z1lYTWdZU0IwWlcxd2JHRjBaVnh1SUNBZ0tseHVJQ0FnS2lCQWNHRnlZVzBnZTBSSExrTnZiSFZ0Ym4wZ2RHVnRjR3hoZEdWRGIyd2dJSFJvWlNCd2NtOXdaWEowYVdWeklHRnVaQ0IxYm1sMGN5QnZaaUIwYUdseklHTnZiSFZ0YmlCaGNtVWdkWE5sWkNCaGN5QmhYRzRnSUNBcUlIUmxiWEJzWVhSbElIUnZJR0oxYVd4a0lIUm9aU0J1WlhjZ2IyNWxYRzRnSUNBcUlFQnlaWFIxY200Z2UwUkhMa052YkhWdGJuMWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QnpkR0YwYVdNZ1oyVjBUbVYzUTI5c2RXMXVLSFJsYlhCc1lYUmxRMjlzT2lCRVJ5NURiMngxYlc0cE9pQkVSeTVEYjJ4MWJXNGdlMXh1SUNBZ0lHTnZibk4wSUdOdmJEb2dWVzVwZEhOSVlXNWtiR1Z5SUQwZ2JtVjNJRlZ1YVhSelNHRnVaR3hsY2loMFpXMXdiR0YwWlVOdmJDazdYRzRnSUNBZ1kyOXVjM1FnZEdGeVoyVjBUbTkwWVhScGIyNGdQU0JqYjJ3dWJtOTBZWFJwYjI0N1hHNGdJQ0FnY21WMGRYSnVJR052YkM1blpYUk9aWGREYjJ4MWJXNG9kR0Z5WjJWMFRtOTBZWFJwYjI0cE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUVnYUdWc2NHVnlJR1oxYm1OMGFXOXVJR05vWldOcmFXNW5JSFJvWlNCMllXeHBaR2wwZVNCdlppQjBhR1VnSjNWdWFYUnpKeUJ6ZEhKcGJtZGNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJSFZ1YVhSeklDQjBhR1VnYzNSeWFXNW5JSFJ2SUdKbElIWmhiR2xrWVhSbFpGeHVJQ0FnS2lCQWNtVjBkWEp1SUh0aWIyOXNaV0Z1ZlZ4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUIxYm1sMGMxTjBjbWx1WjBselZtRnNhV1FvZFc1cGRITTZJSE4wY21sdVp5azZJR0p2YjJ4bFlXNGdlMXh1SUNBZ0lIVnVhWFJ6SUQwZ2RXNXBkSE11ZEc5TWIzZGxja05oYzJVb0tUdGNiaUFnSUNCamIyNXpkQ0J3Y21WbWFYaGxjeUE5SUZ0T1QxUkJWRWxQVGk1R1FWTlVRU3dnVGs5VVFWUkpUMDR1VTBWUVFWSkJWRTlTTENCT1QxUkJWRWxQVGk1SVJVeE5YVHRjYmlBZ0lDQmpiMjV6ZENCd2IzTjBabWw0WlhNZ1BTQmJKM0p1WVNjc0lDZGtibUVuTENBbmNIUW5YVHRjYmx4dUlDQWdJR052Ym5OMElIQnlaV1pwZUVOeWFYUmxjbWx2YmlBOUlIQnlaV1pwZUdWekxuTnZiV1VvS0hBcElEMCtJSFZ1YVhSekxuTjBZWEowYzFkcGRHZ29jQzUwYjB4dmQyVnlRMkZ6WlNncEtTazdYRzRnSUNBZ2NtVjBkWEp1SUhCeVpXWnBlRU55YVhSbGNtbHZianRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCRGIyNXpkSEoxWTNRZ1lTQnVaWGNnWTI5c2RXMXVJRzltSUhObGJXRnVkR2xqSUhSNWNHVWdUVUZEVWs5TlQweEZRMVZNUlNCbWNtOXRJSFJvWlNCc2FYTjBJRzltWEc0Z0lDQXFJSE53WldOcFptbGxaQ0J3WVhKaGJXVjBaWEp6WEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNBZ0lDQnNaVzRnSUhSb1pTQnNaVzVuZEdnZ2IyWWdkR2hsSUc1bGR5QmpiMngxYlc1Y2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJQ0FnSUc1aGJXVWdJSFJvWlNCdVlXMWxJRzltSUhSb1pTQnVaWGNnWTI5c2RXMXVYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNBZ0lDQjFibWwwY3lBZ2RHaGxJSFZ1YVhSeklHOW1JSFJvWlNCdVpYY2dZMjlzZFcxdVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTBSSExrTnZiSFZ0Ym4xY2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCemRHRjBhV01nWjJWMFRtVjNRMjlzZFcxdVJuSnZiVkJoY21GdGN5aGNiaUFnSUNCc1pXNDZJRzUxYldKbGNpeGNiaUFnSUNCdVlXMWxPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2RXNXBkSE02SUhOMGNtbHVaMXh1SUNBcE9pQkVSeTVEYjJ4MWJXNGdlMXh1SUNBZ0lDOHZJRmRCVWs1SlRrYzZJR2x1SUhSb2FYTWdhVzF3YkdWdFpXNTBZWFJwYjI0Z2FYTWdhWE1nYVcxd2IzTnphV0pzWlNCMGJ5QjJaWEpwWm5rZ2RHaGxJSFZ1YVhGMVpXNWxjM05jYmlBZ0lDQXZMeUJ2WmlCMGFHVWdibVYzSUdOdmJIVnRiaWR6SUc1aGJXVmNiaUFnSUNBdkx5QlVUMFJQT2lCMlpYSnBabmtnZEdobElIWmhiR2xrYVhSNUlHOW1JSFZ1YVhSeklIQmhjbUZ0WlhSbGNseHVJQ0FnSUdsbUlDZ2hWVzVwZEhOSVlXNWtiR1Z5TG5WdWFYUnpVM1J5YVc1blNYTldZV3hwWkNoMWJtbDBjeWtwWEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9KMGx1ZG1Gc2FXUWdabTl5YldGMElHOW1JRnhjSjNWdWFYUnpYRnduSUhCaGNtRnRaWFJsY2ljcE8xeHVJQ0FnSUdOdmJuTjBJRzVsZDBOdmJIVnRiaUE5SUVSSExrTnZiSFZ0Ymk1bWNtOXRUR2x6ZENnbmMzUnlhVzVuSnl3Z2JtRnRaU3dnYm1WM0lFRnljbUY1S0d4bGJpa3VabWxzYkNnbkp5a3BPMXh1SUNBZ0lHNWxkME52YkhWdGJpNXpaVzFVZVhCbElEMGdSRWN1VTBWTlZGbFFSUzVOUVVOU1QwMVBURVZEVlV4Rk8xeHVJQ0FnSUc1bGQwTnZiSFZ0Ymk1elpYUlVZV2NvUkVjdVZFRkhVeTVWVGtsVVV5d2dkVzVwZEhNcE8xeHVJQ0FnSUhKbGRIVnliaUJ1WlhkRGIyeDFiVzQ3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWTI5dWMzUnlkV04wYjNJb1kyOXNPaUJFUnk1RGIyeDFiVzRwSUh0Y2JpQWdJQ0IwYUdsekxsOWpiMngxYlc0Z1BTQmpiMnc3WEc0Z0lDQWdZMjl1YzNRZ2RXNXBkSE1nUFNCMGFHbHpMbDlqYjJ4MWJXNHVkR0ZuYzF0RVJ5NVVRVWRUTGxWT1NWUlRYVHRjYmlBZ0lDQnBaaUFvZFc1cGRITWdJVDA5SUc1MWJHd3BYRzRnSUNBZ0lDQjBhR2x6TGw5MWJtbDBjeUE5SUhWdWFYUnpPMXh1SUNBZ0lHVnNjMlZjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpZ25WVzVwZEhNZ1lYSmxJRzV2ZENCemNHVmphV1pwWldRZ2FXNGdZMjlzZFcxdUp5azdYRzRnSUNBZ2RHaHBjeTVmYm05MFlYUnBiMjRnUFNCMGFHbHpMbWRsZEU1dmRHRjBhVzl1S0NrN1hHNGdJQ0FnZEdocGN5NWZaR1ZtWVhWc2RFZGhjRk41YldKdmJDQTlJQ2gwYUdsekxtbHpSbUZ6ZEdFb0tTa2dQeUJWYm1sMGMwaGhibVJzWlhJdVgyUmxabUYxYkhSSFlYQlRlVzFpYjJ4elJHbGpkQzVHUVZOVVFTQTZYRzRnSUNBZ0lDQW9kR2hwY3k1cGMwaGxiRzBvS1NrZ1B5QlZibWwwYzBoaGJtUnNaWEl1WDJSbFptRjFiSFJIWVhCVGVXMWliMnh6UkdsamRDNUlSVXhOSURwY2JpQWdJQ0FnSUNBZ1ZXNXBkSE5JWVc1a2JHVnlMbDlrWldaaGRXeDBSMkZ3VTNsdFltOXNjMFJwWTNRdVUwVlFRVkpCVkU5U08xeHVYRzRnSUNBZ2FXWWdLQ0YwYUdsekxtTnZiSFZ0Ymk1MFlXZHpMbWhoY3loVVFVZFRMbUZzYVdkdVpXUXBLU0I3WEc0Z0lDQWdJQ0JwWmlBb2RHaHBjeTVwYzBaaGMzUmhLQ2tnZkh3Z2RHaHBjeTVwYzFObGNHRnlZWFJ2Y2lncEtWeHVJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb1lFWnZjaUJqYjJ4MWJXNGdKeVI3ZEdocGN5NWpiMngxYlc0dWJtRnRaWDBuSUc5bUlHNXZkR0YwYVc5dUlDY2tlM1JvYVhNdWJtOTBZWFJwYjI1OUp5QmdJQ3RjYmlBZ0lDQWdJQ0FnSUNCZ2RHRm5JQ2NrZTFSQlIxTXVZV3hwWjI1bFpIMG5JR2x6SUcxaGJtUmhkRzl5ZVM1Z0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdkx5QnBaaUFvSVhSb2FYTXVZMjlzZFcxdUxuUmhaM011YUdGektGUkJSMU11WVd4d2FHRmlaWFJUYVhwbEtTa2dlMXh1SUNBZ0lDOHZJQ0FnYVdZZ0tIUm9hWE11YVhOSVpXeHRLQ2twWEc0Z0lDQWdMeThnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2loZ1JtOXlJR052YkhWdGJpQW5KSHQwYUdsekxtTnZiSFZ0Ymk1dVlXMWxmU2NnYjJZZ2JtOTBZWFJwYjI0Z0p5UjdkR2hwY3k1dWIzUmhkR2x2Ym4wbklHQWdLMXh1SUNBZ0lDOHZJQ0FnSUNBZ0lHQjBZV2NnSnlSN1ZFRkhVeTVoYkhCb1lXSmxkRk5wZW1WOUp5QnBjeUJ0WVc1a1lYUnZjbmt1WUNrN1hHNGdJQ0FnTHk4Z0lDQmxiSE5sSUdsbUlDaGJKMVZPSjEwdWFXNWpiSFZrWlhNb2RHaHBjeTVoYkhCb1lXSmxkQ2twWEc0Z0lDQWdMeThnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2loZ1JtOXlJR052YkhWdGJpQW5KSHQwYUdsekxtTnZiSFZ0Ymk1dVlXMWxmU2NnYjJZZ1lXeHdhR0ZpWlhRZ0p5UjdkR2hwY3k1aGJIQm9ZV0psZEgwbklHQWdLMXh1SUNBZ0lDOHZJQ0FnSUNBZ0lHQjBZV2NnSnlSN1ZFRkhVeTVoYkhCb1lXSmxkRk5wZW1WOUp5QnBjeUJ0WVc1a1lYUnZjbmt1WUNrN1hHNGdJQ0FnTHk4Z2ZWeHVYRzRnSUNBZ2FXWWdLQ0YwYUdsekxtTnZiSFZ0Ymk1MFlXZHpMbWhoY3loVVFVZFRMbUZzY0doaFltVjBTWE5OZFd4MGFXTm9ZWElwS1NCN1hHNGdJQ0FnSUNCcFppQW9kR2hwY3k1cGMwaGxiRzBvS1NsY2JpQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0dCR2IzSWdZMjlzZFcxdUlDY2tlM1JvYVhNdVkyOXNkVzF1TG01aGJXVjlKeUJ2WmlCdWIzUmhkR2x2YmlBbkpIdDBhR2x6TG01dmRHRjBhVzl1ZlNjZ1lDQXJYRzRnSUNBZ0lDQWdJQ0FnWUhSaFp5QW5KSHRVUVVkVExtRnNjR2hoWW1WMFNYTk5kV3gwYVdOb1lYSjlKeUJwY3lCdFlXNWtZWFJ2Y25rdVlDazdYRzRnSUNBZ0lDQmxiSE5sSUdsbUlDaGJKMVZPSjEwdWFXNWpiSFZrWlhNb2RHaHBjeTVoYkhCb1lXSmxkQ2twWEc0Z0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhnUm05eUlHTnZiSFZ0YmlBbkpIdDBhR2x6TG1OdmJIVnRiaTV1WVcxbGZTY2diMllnWVd4d2FHRmlaWFFnSnlSN2RHaHBjeTVoYkhCb1lXSmxkSDBuSUdBZ0sxeHVJQ0FnSUNBZ0lDQWdJR0IwWVdjZ0p5UjdWRUZIVXk1aGJIQm9ZV0psZEVselRYVnNkR2xqYUdGeWZTY2dhWE1nYldGdVpHRjBiM0o1TG1BcE8xeHVJQ0FnSUgxY2JpQWdmVnh1ZlZ4dUlsMTkiLCJpbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB7IGZpbmRNb25vbWVycywgcGFyc2VIZWxtLCBnZXRQYXJ0cyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgcHJpbnRMZWZ0T3JDZW50ZXJlZCB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy9jZWxsLXJlbmRlcmVyJztcbmV4cG9ydCBjbGFzcyBIZWxtQ2VsbFJlbmRlcmVyIGV4dGVuZHMgREcuR3JpZENlbGxSZW5kZXJlciB7XG4gICAgZ2V0IG5hbWUoKSB7IHJldHVybiAnaGVsbSc7IH1cbiAgICBnZXQgY2VsbFR5cGUoKSB7IHJldHVybiAnaGVsbSc7IH1cbiAgICBnZXQgZGVmYXVsdFdpZHRoKCkgeyByZXR1cm4gNDAwOyB9XG4gICAgZ2V0IGRlZmF1bHRIZWlnaHQoKSB7IHJldHVybiAxMDA7IH1cbiAgICBvbk1vdXNlTW92ZShncmlkQ2VsbCwgZSkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgY29uc3QgbWF4TGVuZ3RoV29yZHNTdW0gPSBncmlkQ2VsbC5jZWxsLmNvbHVtbi50ZW1wWydoZWxtLXN1bS1tYXhMZW5ndGhXb3JkcyddO1xuICAgICAgICBjb25zdCBtYXhJbmRleCA9IE9iamVjdC52YWx1ZXMoZ3JpZENlbGwuY2VsbC5jb2x1bW4udGVtcFsnaGVsbS1tYXhMZW5ndGhXb3JkcyddKS5sZW5ndGggLSAxO1xuICAgICAgICBjb25zdCBhcmdzWCA9IGUub2Zmc2V0WCAtIGdyaWRDZWxsLmdyaWRDb2x1bW4ubGVmdCArIChncmlkQ2VsbC5ncmlkQ29sdW1uLmxlZnQgLSBncmlkQ2VsbC5ib3VuZHMueCk7XG4gICAgICAgIGxldCBsZWZ0ID0gMDtcbiAgICAgICAgbGV0IHJpZ2h0ID0gbWF4SW5kZXg7XG4gICAgICAgIGxldCBmb3VuZCA9IGZhbHNlO1xuICAgICAgICBtYXhMZW5ndGhXb3Jkc1N1bVttYXhJbmRleCArIDFdID0gYXJnc1ggKyAxO1xuICAgICAgICBsZXQgbWlkID0gMDtcbiAgICAgICAgaWYgKGFyZ3NYID4gbWF4TGVuZ3RoV29yZHNTdW1bMF0pIHtcbiAgICAgICAgICAgIHdoaWxlICghZm91bmQpIHtcbiAgICAgICAgICAgICAgICBtaWQgPSBNYXRoLmZsb29yKChyaWdodCArIGxlZnQpIC8gMik7XG4gICAgICAgICAgICAgICAgaWYgKGFyZ3NYID49IG1heExlbmd0aFdvcmRzU3VtW21pZF0gJiYgYXJnc1ggPD0gbWF4TGVuZ3RoV29yZHNTdW1bbWlkICsgMV0pIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdCA9IG1pZDtcbiAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChhcmdzWCA8IG1heExlbmd0aFdvcmRzU3VtW21pZF0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQgPSBtaWQgLSAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChhcmdzWCA+IG1heExlbmd0aFdvcmRzU3VtW21pZCArIDFdKSB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSBtaWQgKyAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobGVmdCA9PSByaWdodCkge1xuICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGxlZnQgPSAoYXJnc1ggPj0gbWF4TGVuZ3RoV29yZHNTdW1bbGVmdF0pID8gbGVmdCArIDEgOiBsZWZ0O1xuICAgICAgICBjb25zdCBtb25vbWVycyA9IGZpbmRNb25vbWVycyhncmlkQ2VsbC5jZWxsLnZhbHVlKTtcbiAgICAgICAgbGV0IHMgPSAoX2EgPSBncmlkQ2VsbC5jZWxsLnZhbHVlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnJztcbiAgICAgICAgbGV0IHN1YlBhcnRzID0gcGFyc2VIZWxtKHMpO1xuICAgICAgICBsZXQgYWxsUGFydHMgPSBnZXRQYXJ0cyhzdWJQYXJ0cywgcyk7XG4gICAgICAgIGxldCB0b29sdGlwTWVzc2FnZSA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFsbFBhcnRzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICBpZiAobW9ub21lcnMuaGFzKGFsbFBhcnRzW2ldKSlcbiAgICAgICAgICAgICAgICB0b29sdGlwTWVzc2FnZVtpXSA9IHVpLmRpdlYoW1xuICAgICAgICAgICAgICAgICAgICB1aS5kaXZUZXh0KGBNb25vbWVyICR7YWxsUGFydHNbaV19IG5vdCBmb3VuZC5gKSxcbiAgICAgICAgICAgICAgICAgICAgdWkuZGl2VGV4dCgnT3BlbiB0aGUgQ29udGV4dCBQYW5lbCwgdGhlbiBleHBhbmQgTWFuYWdlIExpYnJhcmllcycpXG4gICAgICAgICAgICAgICAgXSk7XG4gICAgICAgIH1cbiAgICAgICAgKCgoKF9jID0gKF9iID0gdG9vbHRpcE1lc3NhZ2VbbGVmdF0pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jaGlsZE5vZGVzLmxlbmd0aCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogMCkgPiAwKSlcbiAgICAgICAgICAgID8gdWkudG9vbHRpcC5zaG93KHVpLmRpdih0b29sdGlwTWVzc2FnZVtsZWZ0XSksIGUueCArIDE2LCBlLnkgKyAxNilcbiAgICAgICAgICAgIDogdWkudG9vbHRpcC5oaWRlKCk7XG4gICAgfVxuICAgIHJlbmRlcihnLCB4LCB5LCB3LCBoLCBncmlkQ2VsbCwgY2VsbFN0eWxlKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3QgZ3JpZCA9IGdyaWRDZWxsLmdyaWRSb3cgIT09IC0xID8gZ3JpZENlbGwuZ3JpZCA6IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgdW5kZWZpbmVkQ29sb3IgPSAncmdiKDEwMCwxMDAsMTAwKSc7XG4gICAgICAgIGNvbnN0IGdyYXlDb2xvciA9ICcjODA4MDgwJztcbiAgICAgICAgY29uc3QgbW9ub21lcnMgPSBmaW5kTW9ub21lcnMoZ3JpZENlbGwuY2VsbC52YWx1ZSk7XG4gICAgICAgIGxldCBzID0gKF9hID0gZ3JpZENlbGwuY2VsbC52YWx1ZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJyc7XG4gICAgICAgIGxldCBzdWJQYXJ0cyA9IHBhcnNlSGVsbShzKTtcbiAgICAgICAgaWYgKG1vbm9tZXJzLnNpemUgPT0gMCkge1xuICAgICAgICAgICAgY29uc3QgaG9zdCA9IHVpLmRpdihbXSwgeyBzdHlsZTogeyB3aWR0aDogYCR7d31weGAsIGhlaWdodDogYCR7aH1weGAgfSB9KTtcbiAgICAgICAgICAgIGhvc3Quc2V0QXR0cmlidXRlKCdkYXRhZm9ybWF0JywgJ2hlbG0nKTtcbiAgICAgICAgICAgIGhvc3Quc2V0QXR0cmlidXRlKCdkYXRhJywgZ3JpZENlbGwuY2VsbC52YWx1ZSk7XG4gICAgICAgICAgICBncmlkQ2VsbC5lbGVtZW50ID0gaG9zdDtcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICAgICAgY29uc3QgY2FudmFzID0gbmV3IEpTRHJhdzIuRWRpdG9yKGhvc3QsIHsgd2lkdGg6IHcsIGhlaWdodDogaCwgc2tpbjogJ3c4Jywgdmlld29ubHk6IHRydWUgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1vbm9tZXJzLnNpemUgPiAwKSB7XG4gICAgICAgICAgICB3ID0gZ3JpZCA/IE1hdGgubWluKGdyaWQuY2FudmFzLndpZHRoIC0geCwgdykgOiBnLmNhbnZhcy53aWR0aCAtIHg7XG4gICAgICAgICAgICBnLnNhdmUoKTtcbiAgICAgICAgICAgIGcuYmVnaW5QYXRoKCk7XG4gICAgICAgICAgICBnLnJlY3QoeCwgeSwgdywgaCk7XG4gICAgICAgICAgICBnLmNsaXAoKTtcbiAgICAgICAgICAgIGcuZm9udCA9ICcxMnB4IG1vbm9zcGFjZSc7XG4gICAgICAgICAgICBnLnRleHRCYXNlbGluZSA9ICd0b3AnO1xuICAgICAgICAgICAgbGV0IHgxID0geDtcbiAgICAgICAgICAgIGxldCBtYXhMZW5ndGhXb3JkcyA9IHt9O1xuICAgICAgICAgICAgbGV0IG1heExlbmd0aFdvcmRTdW0gPSB7fTtcbiAgICAgICAgICAgIGxldCBhbGxQYXJ0cyA9IGdldFBhcnRzKHN1YlBhcnRzLCBzKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsUGFydHMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgICAgICBtYXhMZW5ndGhXb3Jkc1tpXSA9IGFsbFBhcnRzW2ldLmxlbmd0aCAqIDc7XG4gICAgICAgICAgICAgICAgbGV0IGNvbG9yID0gbW9ub21lcnMuaGFzKGFsbFBhcnRzW2ldKSA/ICdyZWQnIDogZ3JheUNvbG9yO1xuICAgICAgICAgICAgICAgIGcuZmlsbFN0eWxlID0gdW5kZWZpbmVkQ29sb3I7XG4gICAgICAgICAgICAgICAgeDEgPSBwcmludExlZnRPckNlbnRlcmVkKHgxLCB5LCB3LCBoLCBnLCBhbGxQYXJ0c1tpXSwgY29sb3IsIDAsIHRydWUsIDEuMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBtYXhMZW5ndGhXb3JkU3VtWzBdID0gbWF4TGVuZ3RoV29yZHNbMF07XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IGFsbFBhcnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbWF4TGVuZ3RoV29yZFN1bVtpXSA9IG1heExlbmd0aFdvcmRTdW1baSAtIDFdICsgbWF4TGVuZ3RoV29yZHNbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBncmlkQ2VsbC5jZWxsLmNvbHVtbi50ZW1wID0ge1xuICAgICAgICAgICAgICAgICdoZWxtLXN1bS1tYXhMZW5ndGhXb3Jkcyc6IG1heExlbmd0aFdvcmRTdW0sXG4gICAgICAgICAgICAgICAgJ2hlbG0tbWF4TGVuZ3RoV29yZHMnOiBtYXhMZW5ndGhXb3Jkc1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGcucmVzdG9yZSgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiZXhwb3J0IGNvbnN0IGpzb25TZGZNb25vbWVyTGliRGljdCA9IHtcbiAgICBcIm1vbm9tZXJUeXBlXCI6IG51bGwsXG4gICAgXCJzbWlsZXNcIjogbnVsbCxcbiAgICBcIm5hbWVcIjogXCJNb25vbWVyTmFtZVwiLFxuICAgIFwiYXV0aG9yXCI6IG51bGwsXG4gICAgXCJtb2xmaWxlXCI6IFwibW9sZWN1bGVcIixcbiAgICBcIm5hdHVyYWxBbmFsb2dcIjogXCJNb25vbWVyTmF0dXJhbEFuYWxvZ0NvZGVcIixcbiAgICBcInJncm91cHNcIjogXCJNb25vbWVyQ2Fwc1wiLFxuICAgIFwiY3JlYXRlRGF0ZVwiOiBudWxsLFxuICAgIFwiaWRcIjogbnVsbCxcbiAgICBcInBvbHltZXJUeXBlXCI6IFwiTW9ub21lclR5cGVcIixcbiAgICBcInN5bWJvbFwiOiBcIk1vbm9tZXJDb2RlXCJcbn07XG5leHBvcnQgY29uc3QgU01JTEVTID0gJ3NtaWxlcyc7XG5leHBvcnQgY29uc3QgUkdST1VQUyA9IFwicmdyb3Vwc1wiO1xuZXhwb3J0IGNvbnN0IE1PTk9NRVJfU1lNQk9MID0gXCJzeW1ib2xcIjtcbmV4cG9ydCBjb25zdCBSR1JPVVBfQ0FQX0dST1VQX1NNSUxFUyA9IFwiY2FwR3JvdXBTbWlsZXNcIjtcbmV4cG9ydCBjb25zdCBSR1JPVVBfQUxURVJfSUQgPSBcImFsdGVybmF0ZUlkXCI7XG5leHBvcnQgY29uc3QgUkdST1VQX0NBUF9HUk9VUF9OQU1FID0gXCJjYXBHcm91cE5hbWVcIjtcbmV4cG9ydCBjb25zdCBSR1JPVVBfTEFCRUwgPSBcImxhYmVsXCI7XG5leHBvcnQgY29uc3QgU0RGX01PTk9NRVJfTkFNRSA9IFwiTW9ub21lck5hbWVcIjtcbiIsImltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5leHBvcnQgY2xhc3MgSGVsbVdlYkVkaXRvciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMudyA9IDIwMDtcbiAgICAgICAgdGhpcy5oID0gMTAwO1xuICAgICAgICB0aGlzLmhvc3QgPSB1aS5kaXYoW10sIHsgc3R5bGU6IHsgd2lkdGg6IGAke3RoaXMud31weGAsIGhlaWdodDogYCR7dGhpcy5ofXB4YCB9IH0pO1xuICAgICAgICB0aGlzLmVkaXRvciA9IG5ldyBKU0RyYXcyLkVkaXRvcih0aGlzLmhvc3QsIHsgd2lkdGg6IHRoaXMudywgaGVpZ2h0OiB0aGlzLmgsIHZpZXdvbmx5OiB0cnVlIH0pO1xuICAgIH1cbiAgICByZXNpemVFZGl0b3IodywgaCkge1xuICAgICAgICB0aGlzLmVkaXRvci5zZXRTaXplKHcsIGgpO1xuICAgIH1cbiAgICBjcmVhdGVXZWJFZGl0b3IodmFsdWUpIHtcbiAgICAgICAgY29uc3QgZWRpdG9yVmlldyA9IHVpLmRpdigpO1xuICAgICAgICBvcmcuaGVsbS53ZWJlZGl0b3IuTW9sVmlld2VyLm1vbHNjYWxlID0gMC44O1xuICAgICAgICBjb25zdCB3ZWJFZGl0b3IgPSBuZXcgc2NpbC5oZWxtLkFwcChlZGl0b3JWaWV3LCB7XG4gICAgICAgICAgICBzaG93YWJvdXQ6IGZhbHNlLFxuICAgICAgICAgICAgbWV4Zm9udHNpemU6ICc5MCUnLFxuICAgICAgICAgICAgbWV4cm5hcGlub250YWI6IHRydWUsXG4gICAgICAgICAgICB0b3BtYXJnaW46IDIwLFxuICAgICAgICAgICAgbWV4bW9ub21lcnN0YWI6IHRydWUsXG4gICAgICAgICAgICBzZXF1ZW5jZXZpZXdvbmx5OiBmYWxzZSxcbiAgICAgICAgICAgIG1leGZhdm9yaXRlZmlyc3Q6IHRydWUsXG4gICAgICAgICAgICBtZXhmaWx0ZXI6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHNpemVzID0gd2ViRWRpdG9yLmNhbGN1bGF0ZVNpemVzKCk7XG4gICAgICAgIHdlYkVkaXRvci5jYW52YXMucmVzaXplKHNpemVzLnJpZ2h0d2lkdGggLSAxMDAsIHNpemVzLnRvcGhlaWdodCAtIDIxMCk7XG4gICAgICAgIGxldCBzID0geyB3aWR0aDogc2l6ZXMucmlnaHR3aWR0aCAtIDEwMCArICdweCcsIGhlaWdodDogc2l6ZXMuYm90dG9taGVpZ2h0ICsgJ3B4JyB9O1xuICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgc2NpbC5hcHBseSh3ZWJFZGl0b3Iuc2VxdWVuY2Uuc3R5bGUsIHMpO1xuICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgc2NpbC5hcHBseSh3ZWJFZGl0b3Iubm90YXRpb24uc3R5bGUsIHMpO1xuICAgICAgICBzID0geyB3aWR0aDogc2l6ZXMucmlnaHR3aWR0aCArICdweCcsIGhlaWdodDogKHNpemVzLmJvdHRvbWhlaWdodCArIHdlYkVkaXRvci50b29sYmFyaGVpZ2h0KSArICdweCcgfTtcbiAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgIHNjaWwuYXBwbHkod2ViRWRpdG9yLnByb3BlcnRpZXMucGFyZW50LnN0eWxlLCBzKTtcbiAgICAgICAgd2ViRWRpdG9yLnN0cnVjdHVyZXZpZXcucmVzaXplKHNpemVzLnJpZ2h0d2lkdGgsIHNpemVzLmJvdHRvbWhlaWdodCArIHdlYkVkaXRvci50b29sYmFyaGVpZ2h0KTtcbiAgICAgICAgd2ViRWRpdG9yLm1leC5yZXNpemUoc2l6ZXMudG9waGVpZ2h0IC0gODApO1xuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHdlYkVkaXRvci5jYW52YXMuaGVsbS5zZXRTZXF1ZW5jZSh2YWx1ZSwgJ0hFTE0nKTtcbiAgICAgICAgfSwgMjAwKTtcbiAgICAgICAgcmV0dXJuIHsgZWRpdG9yRGl2OiBlZGl0b3JWaWV3LCB3ZWJFZGl0b3I6IHdlYkVkaXRvciB9O1xuICAgIH1cbn1cbiIsImV4cG9ydCBmdW5jdGlvbiBnZXRQYXJ0cyhzdWJQYXJ0cywgcykge1xuICAgIGxldCBqID0gMDtcbiAgICBsZXQgYWxsUGFydHMgPSBbXTtcbiAgICBmb3IgKGxldCBrID0gMDsgayA8IHN1YlBhcnRzLmxlbmd0aDsgKytrKSB7XG4gICAgICAgIGxldCBpbmRleE9mTW9ub21lciA9IHMuaW5kZXhPZihzdWJQYXJ0c1trXSk7XG4gICAgICAgIGxldCBoZWxtQmVmb3JlTW9ub21lciA9IHMuc2xpY2UoaiwgaW5kZXhPZk1vbm9tZXIpO1xuICAgICAgICBhbGxQYXJ0cy5wdXNoKGhlbG1CZWZvcmVNb25vbWVyKTtcbiAgICAgICAgYWxsUGFydHMucHVzaChzdWJQYXJ0c1trXSk7XG4gICAgICAgIHMgPSBzLnN1YnN0cmluZyhpbmRleE9mTW9ub21lciArIHN1YlBhcnRzW2tdLmxlbmd0aCk7XG4gICAgfVxuICAgIGFsbFBhcnRzLnB1c2gocyk7XG4gICAgcmV0dXJuIGFsbFBhcnRzO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSGVsbShzKSB7XG4gICAgdmFyIHNlY3Rpb25zID0gc3BsaXQocywgJyQnKTtcbiAgICBzID0gc2VjdGlvbnNbMF07XG4gICAgdmFyIG1vbm9tZXJzID0gW107XG4gICAgLy9AdHMtaWdub3JlXG4gICAgaWYgKCFzY2lsLlV0aWxzLmlzTnVsbE9yRW1wdHkocykpIHtcbiAgICAgICAgdmFyIHNlcXMgPSBzcGxpdChzLCAnfCcpO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlcXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIHZhciBlID0gZGV0YWNoQW5ub3RhdGlvbihzZXFzW2ldKTtcbiAgICAgICAgICAgIHMgPSBlLnN0cjtcbiAgICAgICAgICAgIHZhciBwID0gcy5pbmRleE9mKCd7Jyk7XG4gICAgICAgICAgICBzID0gcy5zdWJzdHJpbmcocCArIDEpO1xuICAgICAgICAgICAgcCA9IHMuaW5kZXhPZignfScpO1xuICAgICAgICAgICAgcyA9IHMuc3Vic3RyaW5nKDAsIHApO1xuICAgICAgICAgICAgdmFyIHNzID0gc3BsaXQocywgJy4nKTtcbiAgICAgICAgICAgIGZvciAodmFyIG1vbm9tZXIgb2Ygc3MpIHtcbiAgICAgICAgICAgICAgICBpZiAobW9ub21lci5pbmNsdWRlcygnKCcpICYmIG1vbm9tZXIuaW5jbHVkZXMoJyknKSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZWxlbWVudHMgPSBtb25vbWVyLnJlcGxhY2UoL1soKV0vZywgJycpLnNwbGl0KCcnKTtcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgZWwgb2YgZWxlbWVudHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vbm9tZXJzLnB1c2goZWwpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1vbm9tZXIuaW5jbHVkZXMoJ1snKSAmJiBtb25vbWVyLmluY2x1ZGVzKCddJykpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSBtb25vbWVyLm1hdGNoKC8oPzw9XFxbKS4qPyg/PVxcXSkvZywgJycpO1xuICAgICAgICAgICAgICAgICAgICBtb25vbWVycy5wdXNoKGVsZW1lbnRbMF0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbW9ub21lcnMucHVzaChtb25vbWVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1vbm9tZXJzO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRNb25vbWVycyhoZWxtU3RyaW5nKSB7XG4gICAgLy9AdHMtaWdub3JlXG4gICAgY29uc3QgdHlwZXMgPSBPYmplY3Qua2V5cyhvcmcuaGVsbS53ZWJlZGl0b3IubW9ub21lclR5cGVMaXN0KCkpO1xuICAgIGNvbnN0IG1vbm9tZXJzID0gW107XG4gICAgY29uc3QgbW9ub21lcl9uYW1lcyA9IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdHlwZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgIG1vbm9tZXJzLnB1c2gobmV3IHNjaWwuaGVsbS5Nb25vbWVycy5nZXRNb25vbWVyU2V0KHR5cGVzW2ldKSk7XG4gICAgICAgIE9iamVjdC5rZXlzKG1vbm9tZXJzW2ldKS5mb3JFYWNoKGsgPT4ge1xuICAgICAgICAgICAgbW9ub21lcl9uYW1lcy5wdXNoKG1vbm9tZXJzW2ldW2tdLmlkKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHNwbGl0X3N0cmluZyA9IHBhcnNlSGVsbShoZWxtU3RyaW5nKTtcbiAgICByZXR1cm4gbmV3IFNldChzcGxpdF9zdHJpbmcuZmlsdGVyKHZhbCA9PiAhbW9ub21lcl9uYW1lcy5pbmNsdWRlcyh2YWwpKSk7XG59XG5mdW5jdGlvbiBzcGxpdChzLCBzZXApIHtcbiAgICB2YXIgcmV0ID0gW107XG4gICAgdmFyIGZyYWcgPSAnJztcbiAgICB2YXIgcGFyZW50aGVzZXMgPSAwO1xuICAgIHZhciBicmFja2V0ID0gMDtcbiAgICB2YXIgYnJhY2VzID0gMDtcbiAgICB2YXIgcXVvdGUgPSAwO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcy5sZW5ndGg7ICsraSkge1xuICAgICAgICB2YXIgYyA9IHMuc3Vic3RyaW5nKGksIGkgKyAxKTtcbiAgICAgICAgaWYgKGMgPT0gc2VwICYmIGJyYWNrZXQgPT0gMCAmJiBwYXJlbnRoZXNlcyA9PSAwICYmIGJyYWNlcyA9PSAwICYmIHF1b3RlID09IDApIHtcbiAgICAgICAgICAgIHJldC5wdXNoKGZyYWcpO1xuICAgICAgICAgICAgZnJhZyA9ICcnO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZnJhZyArPSBjO1xuICAgICAgICAgICAgaWYgKHF1b3RlID4gMCkge1xuICAgICAgICAgICAgICAgIGlmIChjID09ICdcXFxcJyAmJiBpICsgMSA8IHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICsraTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGMyID0gcy5zdWJzdHJpbmcoaSwgaSArIDEpO1xuICAgICAgICAgICAgICAgICAgICBmcmFnICs9IGMyO1xuICAgICAgICAgICAgICAgICAgICBjICs9IGMyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjID09ICdcXFwiJykge1xuICAgICAgICAgICAgICAgIGlmICghKGkgPiAwICYmIHMuc3Vic3RyaW5nKGkgLSAxLCBpKSA9PSAnXFxcXCcpKVxuICAgICAgICAgICAgICAgICAgICBxdW90ZSA9IHF1b3RlID09IDAgPyAxIDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGMgPT0gJ1snKVxuICAgICAgICAgICAgICAgICsrYnJhY2tldDtcbiAgICAgICAgICAgIGVsc2UgaWYgKGMgPT0gJ10nKVxuICAgICAgICAgICAgICAgIC0tYnJhY2tldDtcbiAgICAgICAgICAgIGVsc2UgaWYgKGMgPT0gJygnKVxuICAgICAgICAgICAgICAgICsrcGFyZW50aGVzZXM7XG4gICAgICAgICAgICBlbHNlIGlmIChjID09ICcpJylcbiAgICAgICAgICAgICAgICAtLXBhcmVudGhlc2VzO1xuICAgICAgICAgICAgZWxzZSBpZiAoYyA9PSAneycpXG4gICAgICAgICAgICAgICAgKyticmFjZXM7XG4gICAgICAgICAgICBlbHNlIGlmIChjID09ICd9JylcbiAgICAgICAgICAgICAgICAtLWJyYWNlcztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXQucHVzaChmcmFnKTtcbiAgICByZXR1cm4gcmV0O1xufVxuZnVuY3Rpb24gZGV0YWNoQW5ub3RhdGlvbihzKSB7XG4gICAgdmFyIHJldCA9IF9kZXRhY2hBcHBlbmRpeChzLCAnXFxcIicpO1xuICAgIGlmIChyZXQudGFnICE9IG51bGwpXG4gICAgICAgIHJldHVybiByZXQ7XG4gICAgdmFyIHIgPSBfZGV0YWNoQXBwZW5kaXgocywgJ1xcJycpO1xuICAgIHJldHVybiB7IHRhZzogcmV0LnRhZywgcmVwZWF0OiByLnRhZywgc3RyOiByLnN0ciB9O1xufVxuZnVuY3Rpb24gX2RldGFjaEFwcGVuZGl4KHMsIGMpIHtcbiAgICB2YXIgdGFnID0gbnVsbDtcbiAgICAvL0B0cy1pZ25vcmVcbiAgICBpZiAoc2NpbC5VdGlscy5lbmRzd2l0aChzLCBjKSkge1xuICAgICAgICB2YXIgcCA9IHMubGVuZ3RoIC0gMTtcbiAgICAgICAgd2hpbGUgKHAgPiAwKSB7XG4gICAgICAgICAgICBwID0gcy5sYXN0SW5kZXhPZihjLCBwIC0gMSk7XG4gICAgICAgICAgICBpZiAocCA8PSAwIHx8IHMuc3Vic3RyaW5nKHAgLSAxLCBwKSAhPSAnXFxcXCcpXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHAgPiAwICYmIHAgPCBzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHRhZyA9IHMuc3Vic3RyaW5nKHAgKyAxLCBzLmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgcyA9IHMuc3Vic3RyaW5nKDAsIHApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmICh0YWcgIT0gbnVsbClcbiAgICAgICAgdGFnID0gdGFnLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFxcXCcgKyBjLCAnZycpLCBjKTtcbiAgICByZXR1cm4geyB0YWc6IHVuZXNjYXBlKHRhZyksIHN0cjogcyB9O1xufVxuZnVuY3Rpb24gdW5lc2NhcGUocykge1xuICAgIC8vQHRzLWlnbm9yZVxuICAgIGlmIChzY2lsLlV0aWxzLmlzTnVsbE9yRW1wdHkocykpXG4gICAgICAgIHJldHVybiBzO1xuICAgIHJldHVybiBzLnJlcGxhY2UoL1tcXFxcXS4vZywgZnVuY3Rpb24gKG0pIHtcbiAgICAgICAgc3dpdGNoIChtKSB7XG4gICAgICAgICAgICBjYXNlICdcXFxccic6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdcXHInO1xuICAgICAgICAgICAgY2FzZSAnXFxcXG4nOlxuICAgICAgICAgICAgICAgIHJldHVybiAnXFxuJztcbiAgICAgICAgICAgIGNhc2UgJ1xcXFx0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1xcdCc7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBtLnN1YnN0cmluZygxKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuIiwibW9kdWxlLmV4cG9ydHMgPSBERzsiLCJtb2R1bGUuZXhwb3J0cyA9IGdyb2s7IiwibW9kdWxlLmV4cG9ydHMgPSB1aTsiLCJtb2R1bGUuZXhwb3J0cyA9IHd1OyIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4iLCIvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuXHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cblx0XHQoKSA9PiAobW9kdWxlWydkZWZhdWx0J10pIDpcblx0XHQoKSA9PiAobW9kdWxlKTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgeyBhOiBnZXR0ZXIgfSk7XG5cdHJldHVybiBnZXR0ZXI7XG59OyIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbi8qIERvIG5vdCBjaGFuZ2UgdGhlc2UgaW1wb3J0IGxpbmVzIHRvIG1hdGNoIGV4dGVybmFsIG1vZHVsZXMgaW4gd2VicGFjayBjb25maWd1cmF0aW9uICovXG5pbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHsgUkdST1VQX0NBUF9HUk9VUF9OQU1FLCBSR1JPVVBfTEFCRUwsIFNNSUxFUyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IEhlbG1XZWJFZGl0b3IgfSBmcm9tICcuL2hlbG0td2ViLWVkaXRvcic7XG5pbXBvcnQgeyBIZWxtQ2VsbFJlbmRlcmVyIH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVyJztcbmltcG9ydCB7IE5vdGF0aW9uQ29udmVydGVyIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL25vdGF0aW9uLWNvbnZlcnRlcic7XG5leHBvcnQgY29uc3QgX3BhY2thZ2UgPSBuZXcgREcuUGFja2FnZSgpO1xubGV0IG1vbm9tZXJMaWIgPSBudWxsO1xuLy90YWdzOiBpbml0XG5leHBvcnQgZnVuY3Rpb24gaW5pdEhlbG0oKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIGRvam8ucmVhZHkoZnVuY3Rpb24gKCkgeyByZXNvbHZlKG51bGwpOyB9KTtcbiAgICAgICAgICAgIH0pLCB5aWVsZCBncm9rLmZ1bmN0aW9ucy5jYWxsKCdCaW86Z2V0QmlvTGliJyldKS50aGVuKChbXywgbGliXSkgPT4ge1xuICAgICAgICAgICAgbW9ub21lckxpYiA9IGxpYjtcbiAgICAgICAgICAgIHJld3JpdGVMaWJyYXJpZXMoKTtcbiAgICAgICAgICAgIG1vbm9tZXJMaWIub25DaGFuZ2VkLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICAgICAgICAgIHJld3JpdGVMaWJyYXJpZXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIHJld3JpdGVMaWJyYXJpZXMoKSB7XG4gICAgb3JnLmhlbG0ud2ViZWRpdG9yLk1vbm9tZXJzLmNsZWFyKCk7XG4gICAgbW9ub21lckxpYi5nZXRUeXBlcygpLmZvckVhY2godHlwZSA9PiB7XG4gICAgICAgIGNvbnN0IG1tcyA9IG1vbm9tZXJMaWIuZ2V0TW9ub21lck5hbWVzQnlUeXBlKHR5cGUpO1xuICAgICAgICBtbXMuZm9yRWFjaChzeW1ib2wgPT4ge1xuICAgICAgICAgICAgbGV0IGlzQnJva2VuID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBtb25vbWVyID0gbW9ub21lckxpYi5nZXRNb25vbWVyKHR5cGUsIHN5bWJvbCk7XG4gICAgICAgICAgICBjb25zdCB3ZWJFZGl0b3JNb25vbWVyID0ge1xuICAgICAgICAgICAgICAgIGlkOiBzeW1ib2wsXG4gICAgICAgICAgICAgICAgbTogbW9ub21lci5tb2xmaWxlLFxuICAgICAgICAgICAgICAgIG46IG1vbm9tZXIubmFtZSxcbiAgICAgICAgICAgICAgICBuYTogbW9ub21lci5uYXR1cmFsQW5hbG9nLFxuICAgICAgICAgICAgICAgIHJzOiBtb25vbWVyLnJncm91cHMubGVuZ3RoLFxuICAgICAgICAgICAgICAgIHR5cGU6IG1vbm9tZXIucG9seW1lclR5cGUsXG4gICAgICAgICAgICAgICAgbXQ6IG1vbm9tZXIubW9ub21lclR5cGUsXG4gICAgICAgICAgICAgICAgYXQ6IHt9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKG1vbm9tZXIucmdyb3Vwcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgd2ViRWRpdG9yTW9ub21lci5ycyA9IG1vbm9tZXIucmdyb3Vwcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgY29uc3QgYXQgPSB7fTtcbiAgICAgICAgICAgICAgICBtb25vbWVyLnJncm91cHMuZm9yRWFjaChpdCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGF0W2l0W1JHUk9VUF9MQUJFTF1dID0gaXRbUkdST1VQX0NBUF9HUk9VUF9OQU1FXTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB3ZWJFZGl0b3JNb25vbWVyLmF0ID0gYXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChtb25vbWVyLmRhdGFbU01JTEVTXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgd2ViRWRpdG9yTW9ub21lci5ycyA9IE9iamVjdC5rZXlzKGdldFJTKG1vbm9tZXIuZGF0YVtTTUlMRVNdLnRvU3RyaW5nKCkpKS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgd2ViRWRpdG9yTW9ub21lci5hdCA9IGdldFJTKG1vbm9tZXIuZGF0YVtTTUlMRVNdLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGlzQnJva2VuID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICghaXNCcm9rZW4pXG4gICAgICAgICAgICAgICAgb3JnLmhlbG0ud2ViZWRpdG9yLk1vbm9tZXJzLmFkZE9uZU1vbm9tZXIod2ViRWRpdG9yTW9ub21lcik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIC8vIE9ic29sZXRlXG4gICAgbGV0IGdyaWQgPSBncm9rLnNoZWxsLnR2LmdyaWQ7XG4gICAgZ3JpZC5pbnZhbGlkYXRlKCk7XG59XG4vL25hbWU6IGhlbG1DZWxsUmVuZGVyZXJcbi8vdGFnczogY2VsbFJlbmRlcmVyXG4vL21ldGEuY2VsbFR5cGU6IGhlbG1cbi8vbWV0YS5jb2x1bW5UYWdzOiB1bml0cz1oZWxtXG4vL291dHB1dDogZ3JpZF9jZWxsX3JlbmRlcmVyIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIGhlbG1DZWxsUmVuZGVyZXIoKSB7XG4gICAgcmV0dXJuIG5ldyBIZWxtQ2VsbFJlbmRlcmVyKCk7XG59XG4vL3RhZ3M6IGNlbGxFZGl0b3Jcbi8vZGVzY3JpcHRpb246IE1hY3JvbW9sZWN1bGVcbi8vaW5wdXQ6IGdyaWRfY2VsbCBjZWxsXG5leHBvcnQgZnVuY3Rpb24gZWRpdE1vbGVjdWxlQ2VsbChjZWxsKSB7XG4gICAgaWYgKGNlbGwuZ3JpZENvbHVtbi5jb2x1bW4udGFnc1tERy5UQUdTLlVOSVRTXSA9PT0gJ2hlbG0nKVxuICAgICAgICB3ZWJFZGl0b3IoY2VsbCk7XG59XG4vL25hbWU6IE9wZW4gSGVsbSBXZWIgRWRpdG9yXG4vL2Rlc2NyaXB0aW9uOiBBZGRzIGVkaXRvclxuLy9tZXRhLmFjdGlvbjogT3BlbiBIZWxtIFdlYiBFZGl0b3Jcbi8vaW5wdXQ6IHN0cmluZyBtb2wgeyBzZW1UeXBlOiBNYWNyb21vbGVjdWxlIH1cbmV4cG9ydCBmdW5jdGlvbiBvcGVuRWRpdG9yKG1vbCkge1xuICAgIGxldCBkZiA9IGdyb2suc2hlbGwudHYuZ3JpZC5kYXRhRnJhbWU7XG4gICAgbGV0IGNvbnZlcnRlciA9IG5ldyBOb3RhdGlvbkNvbnZlcnRlcihkZi5jb2x1bW5zLmJ5U2VtVHlwZSgnTWFjcm9tb2xlY3VsZScpKTtcbiAgICBjb25zdCByZXNTdHIgPSBjb252ZXJ0ZXIuY29udmVydFN0cmluZ1RvSGVsbShtb2wsICcvJyk7XG4gICAgd2ViRWRpdG9yKHVuZGVmaW5lZCwgcmVzU3RyKTtcbn1cbi8vbmFtZTogUHJvcGVydGllc1xuLy90YWdzOiBwYW5lbCwgd2lkZ2V0c1xuLy9pbnB1dDogc3RyaW5nIGhlbG1TdHJpbmcge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG4vL291dHB1dDogd2lkZ2V0IHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIHByb3BlcnRpZXNQYW5lbChoZWxtU3RyaW5nKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgbGV0IGdyaWQgPSBncm9rLnNoZWxsLnR2LmdyaWQ7XG4gICAgICAgIGxldCBwYXJlbnQgPSBncmlkLnJvb3QucGFyZW50RWxlbWVudDtcbiAgICAgICAgY29uc3QgaG9zdCA9IHVpLmRpdihbXSk7XG4gICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZChob3N0KTtcbiAgICAgICAgbGV0IGVkaXRvciA9IG5ldyBKU0RyYXcyLkVkaXRvcihob3N0LCB7IHZpZXdvbmx5OiB0cnVlIH0pO1xuICAgICAgICBob3N0LnN0eWxlLndpZHRoID0gJzBweCc7XG4gICAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gJzBweCc7XG4gICAgICAgIGVkaXRvci5zZXRIZWxtKGhlbG1TdHJpbmcpO1xuICAgICAgICBsZXQgZm9ybXVsYSA9IGVkaXRvci5nZXRGb3JtdWxhKHRydWUpO1xuICAgICAgICBsZXQgbW9sV2VpZ2h0ID0gTWF0aC5yb3VuZChlZGl0b3IuZ2V0TW9sV2VpZ2h0KCkgKiAxMDApIC8gMTAwO1xuICAgICAgICBsZXQgY29lZiA9IE1hdGgucm91bmQoZWRpdG9yLmdldEV4dGluY3Rpb25Db2VmZmljaWVudCh0cnVlKSAqIDEwMCkgLyAxMDA7XG4gICAgICAgIHBhcmVudC5sYXN0Q2hpbGQucmVtb3ZlKCk7XG4gICAgICAgIHJldHVybiBuZXcgREcuV2lkZ2V0KHVpLnRhYmxlRnJvbU1hcCh7XG4gICAgICAgICAgICAnZm9ybXVsYSc6IGZvcm11bGEucmVwbGFjZSgvPHN1Yj4vZywgJycpLnJlcGxhY2UoLzxcXC9zdWI+L2csICcnKSxcbiAgICAgICAgICAgICdtb2xlY3VsYXIgd2VpZ2h0JzogbW9sV2VpZ2h0LFxuICAgICAgICAgICAgJ2V4dGluY3Rpb24gY29lZmZpY2llbnQnOiBjb2VmLFxuICAgICAgICB9KSk7XG4gICAgfSk7XG59XG5mdW5jdGlvbiB3ZWJFZGl0b3IoY2VsbCwgdmFsdWUpIHtcbiAgICBsZXQgdmlldyA9IHVpLmRpdigpO1xuICAgIG9yZy5oZWxtLndlYmVkaXRvci5Nb2xWaWV3ZXIubW9sc2NhbGUgPSAwLjg7XG4gICAgbGV0IGFwcCA9IG5ldyBzY2lsLmhlbG0uQXBwKHZpZXcsIHtcbiAgICAgICAgc2hvd2Fib3V0OiBmYWxzZSxcbiAgICAgICAgbWV4Zm9udHNpemU6ICc5MCUnLFxuICAgICAgICBtZXhybmFwaW5vbnRhYjogdHJ1ZSxcbiAgICAgICAgdG9wbWFyZ2luOiAyMCxcbiAgICAgICAgbWV4bW9ub21lcnN0YWI6IHRydWUsXG4gICAgICAgIHNlcXVlbmNldmlld29ubHk6IGZhbHNlLFxuICAgICAgICBtZXhmYXZvcml0ZWZpcnN0OiB0cnVlLFxuICAgICAgICBtZXhmaWx0ZXI6IHRydWVcbiAgICB9KTtcbiAgICB2YXIgc2l6ZXMgPSBhcHAuY2FsY3VsYXRlU2l6ZXMoKTtcbiAgICBhcHAuY2FudmFzLnJlc2l6ZShzaXplcy5yaWdodHdpZHRoIC0gMTAwLCBzaXplcy50b3BoZWlnaHQgLSAyMTApO1xuICAgIHZhciBzID0geyB3aWR0aDogc2l6ZXMucmlnaHR3aWR0aCAtIDEwMCArICdweCcsIGhlaWdodDogc2l6ZXMuYm90dG9taGVpZ2h0ICsgJ3B4JyB9O1xuICAgIC8vQHRzLWlnbm9yZVxuICAgIHNjaWwuYXBwbHkoYXBwLnNlcXVlbmNlLnN0eWxlLCBzKTtcbiAgICAvL0B0cy1pZ25vcmVcbiAgICBzY2lsLmFwcGx5KGFwcC5ub3RhdGlvbi5zdHlsZSwgcyk7XG4gICAgcyA9IHsgd2lkdGg6IHNpemVzLnJpZ2h0d2lkdGggKyAncHgnLCBoZWlnaHQ6IChzaXplcy5ib3R0b21oZWlnaHQgKyBhcHAudG9vbGJhcmhlaWdodCkgKyAncHgnIH07XG4gICAgLy9AdHMtaWdub3JlXG4gICAgc2NpbC5hcHBseShhcHAucHJvcGVydGllcy5wYXJlbnQuc3R5bGUsIHMpO1xuICAgIGFwcC5zdHJ1Y3R1cmV2aWV3LnJlc2l6ZShzaXplcy5yaWdodHdpZHRoLCBzaXplcy5ib3R0b21oZWlnaHQgKyBhcHAudG9vbGJhcmhlaWdodCk7XG4gICAgYXBwLm1leC5yZXNpemUoc2l6ZXMudG9waGVpZ2h0IC0gODApO1xuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodHlwZW9mIGNlbGwgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBhcHAuY2FudmFzLmhlbG0uc2V0U2VxdWVuY2UoY2VsbC5jZWxsLnZhbHVlLCAnSEVMTScpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgYXBwLmNhbnZhcy5oZWxtLnNldFNlcXVlbmNlKHZhbHVlLCAnSEVMTScpO1xuICAgICAgICB9XG4gICAgfSwgMjAwKTtcbiAgICAvL0B0cy1pZ25vcmVcbiAgICB1aS5kaWFsb2coeyBzaG93SGVhZGVyOiBmYWxzZSwgc2hvd0Zvb3RlcjogdHJ1ZSB9KVxuICAgICAgICAuYWRkKHZpZXcpXG4gICAgICAgIC5vbk9LKCgpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBjZWxsICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY2VsbC5jZWxsLnZhbHVlID0gYXBwLmNhbnZhcy5nZXRIZWxtKHRydWUpLnJlcGxhY2UoLzxcXC9zcGFuPi9nLCAnJykucmVwbGFjZSgvPHNwYW4gc3R5bGU9J2JhY2tncm91bmQ6I2JiZjsnPi9nLCAnJyk7XG4gICAgICAgIH1cbiAgICB9KS5zaG93KHsgbW9kYWw6IHRydWUsIGZ1bGxTY3JlZW46IHRydWUgfSk7XG59XG5mdW5jdGlvbiBhY2Nlc3NTZXJ2ZXIodXJsLCBrZXkpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICdBY2NlcHQnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZmV0Y2godXJsLCBwYXJhbXMpO1xuICAgICAgICBjb25zdCBqc29uID0geWllbGQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgICByZXR1cm4ganNvbltrZXldO1xuICAgIH0pO1xufVxuLy9uYW1lOiBoZWxtVG9GYXN0YVxuLy9pbnB1dDogc3RyaW5nIGhlbG1TdHJpbmcge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG4vL291dHB1dDogc3RyaW5nIHJlc1xuZXhwb3J0IGZ1bmN0aW9uIGhlbG1Ub0Zhc3RhKGhlbG1TdHJpbmcpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCB1cmwgPSBgaHR0cDovL2xvY2FsaG9zdDo4MDgxL1dlYlNlcnZpY2Uvc2VydmljZS9GYXN0YS9Qcm9kdWNlLyR7aGVsbVN0cmluZ31gO1xuICAgICAgICByZXR1cm4geWllbGQgYWNjZXNzU2VydmVyKHVybCwgJ0Zhc3RhRmlsZScpO1xuICAgIH0pO1xufVxuLy9uYW1lOiBoZWxtVG9STkFcbi8vZGVzY3JpcHRpb246IGNvbnZlcnRzIHRvIHJuYSBhbmFsb2d1ZSBzZXF1ZW5jZVxuLy9pbnB1dDogc3RyaW5nIGhlbG1TdHJpbmcge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG4vL291dHB1dDogc3RyaW5nIHJlc1xuZXhwb3J0IGZ1bmN0aW9uIGhlbG1Ub1JOQShoZWxtU3RyaW5nKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgdXJsID0gYGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MS9XZWJTZXJ2aWNlL3NlcnZpY2UvRmFzdGEvQ29udmVydC9STkEvJHtoZWxtU3RyaW5nfWA7XG4gICAgICAgIHJldHVybiB5aWVsZCBhY2Nlc3NTZXJ2ZXIodXJsLCAnU2VxdWVuY2UnKTtcbiAgICB9KTtcbn1cbi8vbmFtZTogaGVsbVRvUGVwdGlkZVxuLy9kZXNjcmlwdGlvbjogY29udmVydHMgdG8gcGVwdGlkZSBhbmFsb2d1ZSBzZXF1ZW5jZVxuLy9pbnB1dDogc3RyaW5nIGhlbG1TdHJpbmcge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG4vL291dHB1dDogc3RyaW5nIHJlc1xuZXhwb3J0IGZ1bmN0aW9uIGhlbG1Ub1BlcHRpZGUoaGVsbVN0cmluZykge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IGBodHRwOi8vbG9jYWxob3N0OjgwODEvV2ViU2VydmljZS9zZXJ2aWNlL0Zhc3RhL0NvbnZlcnQvUEVQVElERS8ke2hlbG1TdHJpbmd9YDtcbiAgICAgICAgcmV0dXJuIHlpZWxkIGFjY2Vzc1NlcnZlcih1cmwsICdTZXF1ZW5jZScpO1xuICAgIH0pO1xufVxuLy9uYW1lOiBoZWxtVG9TbWlsZXNcbi8vZGVzY3JpcHRpb246IGNvbnZlcnRzIHRvIHNtaWxlc1xuLy9pbnB1dDogc3RyaW5nIGhlbG1TdHJpbmcge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG4vL291dHB1dDogc3RyaW5nIHNtaWxlcyB7c2VtVHlwZTogTW9sZWN1bGV9XG5leHBvcnQgZnVuY3Rpb24gaGVsbVRvU21pbGVzKGhlbG1TdHJpbmcpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCB1cmwgPSBgaHR0cDovL2xvY2FsaG9zdDo4MDgxL1dlYlNlcnZpY2Uvc2VydmljZS9TTUlMRVMvJHtoZWxtU3RyaW5nfWA7XG4gICAgICAgIHJldHVybiB5aWVsZCBhY2Nlc3NTZXJ2ZXIodXJsLCAnU01JTEVTJyk7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBnZXRSUyhzbWlsZXMpIHtcbiAgICBjb25zdCBuZXdTID0gc21pbGVzLm1hdGNoKC8oPzw9XFxbKVteXFxdW10qKD89XSkvZ20pO1xuICAgIGNvbnN0IHJlcyA9IHt9O1xuICAgIGxldCBlbCA9ICcnO1xuICAgIGxldCBkaWdpdDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5ld1MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKG5ld1NbaV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKC9cXGQvLnRlc3QobmV3U1tpXSkpIHtcbiAgICAgICAgICAgICAgICBkaWdpdCA9IG5ld1NbaV1bbmV3U1tpXS5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgICAgICBuZXdTW2ldID0gbmV3U1tpXS5yZXBsYWNlKC9bMC05XS9nLCAnJyk7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBuZXdTW2ldLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuZXdTW2ldW2pdICE9ICc6JylcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsICs9IG5ld1NbaV1bal07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJlc1snUicgKyBkaWdpdF0gPSBlbDtcbiAgICAgICAgICAgICAgICBlbCA9ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXM7XG59XG4vL25hbWU6IGdldE1vbGZpbGVzXG4vL2lucHV0OiBjb2x1bW4gY29sIHtzZW1UeXBlOiBNYWNyb21vbGVjdWxlfVxuLy9vdXRwdXQ6IGNvbHVtbiByZXMgXG5leHBvcnQgZnVuY3Rpb24gZ2V0TW9sZmlsZXMoY29sKSB7XG4gICAgbGV0IGdyaWQgPSBncm9rLnNoZWxsLnR2LmdyaWQ7XG4gICAgbGV0IHBhcmVudCA9IGdyaWQucm9vdC5wYXJlbnRFbGVtZW50O1xuICAgIGxldCByZXMgPSBERy5Db2x1bW4uc3RyaW5nKCdtb2xzJywgY29sLmxlbmd0aCk7XG4gICAgY29uc3QgaG9zdCA9IHVpLmRpdihbXSk7XG4gICAgcGFyZW50LmFwcGVuZENoaWxkKGhvc3QpO1xuICAgIGxldCBlZGl0b3IgPSBuZXcgSlNEcmF3Mi5FZGl0b3IoaG9zdCwgeyB2aWV3b25seTogdHJ1ZSB9KTtcbiAgICBob3N0LnN0eWxlLndpZHRoID0gJzBweCc7XG4gICAgaG9zdC5zdHlsZS5oZWlnaHQgPSAnMHB4JztcbiAgICByZXMuaW5pdCgoaSkgPT4ge1xuICAgICAgICBlZGl0b3Iuc2V0SGVsbShjb2wuZ2V0KGkpKTtcbiAgICAgICAgbGV0IG1vbCA9IGVkaXRvci5nZXRNb2xmaWxlKCk7XG4gICAgICAgIHJldHVybiBtb2w7XG4gICAgfSk7XG4gICAgcGFyZW50Lmxhc3RDaGlsZC5yZW1vdmUoKTtcbiAgICByZXR1cm4gcmVzO1xufVxuLy9uYW1lOiBoZWxtV2ViRWRpdG9yXG4vL291dHB1dDogb2JqZWN0XG5leHBvcnQgZnVuY3Rpb24gaGVsbVdlYkVkaXRvcigpIHtcbiAgICByZXR1cm4gbmV3IEhlbG1XZWJFZGl0b3IoKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==
2436
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxRQUFRO0FBQ3BCO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxRQUFRO0FBQ3BCO0FBQ087QUFDUDtBQUNBO0FBQ0EsMkNBQTJDOzs7Ozs7Ozs7Ozs7Ozs7OztBQ3BCM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNPO0FBQ1A7QUFDQSwyQ0FBMkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNwQ0U7QUFDSztBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsU0FBUztBQUNwQixXQUFXLFFBQVE7QUFDbkIsWUFBWTtBQUNaO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixZQUFZLGFBQWE7QUFDekI7QUFDQTtBQUNBO0FBQ0EsMkRBQTJELHNEQUFNO0FBQ2pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxRQUFRO0FBQ3BCO0FBQ0E7QUFDTztBQUNQO0FBQ0EsNEJBQTRCLHNEQUFNO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixZQUFZLFFBQVE7QUFDcEI7QUFDTztBQUNQO0FBQ0E7QUFDQSxzQkFBc0Isc0RBQU07QUFDNUIsb0JBQW9CLGNBQWM7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFlBQVksUUFBUTtBQUNwQjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsY0FBYztBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxRQUFRO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixzREFBTTtBQUM1QixvQkFBb0IsY0FBYztBQUNsQztBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0Esb0JBQW9CLGNBQWM7QUFDbEM7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZUFBZTtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFlBQVksUUFBUTtBQUNwQjtBQUNPO0FBQ1A7QUFDQSxvQkFBb0IsZ0JBQWdCO0FBQ3BDLHdCQUF3QixnQkFBZ0I7QUFDeEMsMkJBQTJCLG9EQUFXO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixZQUFZLFFBQVE7QUFDcEI7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsU0FBUztBQUNwQixXQUFXLGdCQUFnQjtBQUMzQixZQUFZLFFBQVE7QUFDcEI7QUFDTztBQUNQO0FBQ0E7QUFDQSxvQkFBb0IsWUFBWTtBQUNoQyw0QkFBNEIsWUFBWTtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUMsZ0JBQWdCO0FBQ2xEO0FBQ1A7QUFDQTtBQUNBLG9CQUFvQixZQUFZO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsU0FBUztBQUNwQixZQUFZLFVBQVU7QUFDdEI7QUFDTztBQUNQO0FBQ0Esb0NBQW9DO0FBQ3BDLGlDQUFpQztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixXQUFXLG9DQUFvQztBQUMvQztBQUNBLGFBQWEsVUFBVTtBQUN2QjtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGtEQUFTO0FBQzdCO0FBQ0Esb0JBQW9CLFlBQVk7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQjtBQUNPO0FBQ1A7QUFDQTtBQUNBLG9CQUFvQixpQkFBaUI7QUFDckM7QUFDQTtBQUNBLG9CQUFvQixpQkFBaUI7QUFDckM7QUFDQTtBQUNBLG9CQUFvQixpQkFBaUI7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLE9BQU87QUFDbEIsWUFBWTtBQUNaO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7Ozs7Ozs7Ozs7Ozs7Ozs7QUN4T0s7QUFDekMsaUNBQWlDLHlEQUFjO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseURBQXlELE9BQU87QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsUUFBUTtBQUN2QixnQkFBZ0Isa0JBQWtCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscURBQXFELHlCQUF5QjtBQUM5RSxxREFBcUQseUJBQXlCO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7Ozs7Ozs7Ozs7Ozs7Ozs7QUM3T0s7QUFDekMsa0NBQWtDLHlEQUFjO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7Ozs7Ozs7Ozs7Ozs7O0FDM0JwQztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQzNDTDtBQUN0QztBQUNBLFdBQVcsUUFBUTtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiwyREFBaUI7QUFDckMsY0FBYyxvREFBVTtBQUN4QixjQUFjLG9EQUFVO0FBQ3hCLGNBQWMsb0RBQVU7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsWUFBWSxHQUFHLFlBQVksR0FBRyxZQUFZO0FBQ2hFO0FBQ0EsV0FBVyx3REFBYztBQUN6QjtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsY0FBYztBQUN0QztBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ2dEO0FBQ3pDO0FBQ1A7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBLCtDQUErQyx1RUFBNEI7QUFDM0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08saUNBQWlDLHlEQUFjO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7Ozs7Ozs7Ozs7Ozs7Ozs7QUNuRU07QUFDakQ7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLDBEQUFjO0FBQ3RDO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsQ0FBQyw4QkFBOEI7QUFDL0I7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsMEJBQTBCO0FBQ3JDLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsU0FBUztBQUNwQixXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsU0FBUztBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLFFBQVE7QUFDcEI7QUFDTyxpTUFBaU07QUFDeE07QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQzdGTDtBQUNsQjtBQUNxRDtBQUN3QjtBQUM5QztBQUNFO0FBQ0w7QUFDTTtBQUN0RDtBQUNBLCtEQUErRCxrQkFBa0I7QUFDakYsV0FBVyxXQUFXO0FBQ3RCLFdBQVcsUUFBUTtBQUNuQixXQUFXLGNBQWM7QUFDekIsYUFBYSxhQUFhLHdCQUF3QjtBQUNsRDtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNPO0FBQ1A7QUFDQSxXQUFXLEtBQUs7QUFDaEIsWUFBWSxVQUFVO0FBQ3RCO0FBQ087QUFDUCxXQUFXLHlDQUFFO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQjtBQUNBLFlBQVk7QUFDWjtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MsSUFBSSxJQUFJO0FBQzlDO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixZQUFZO0FBQ1o7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkI7QUFDQSxZQUFZO0FBQ1o7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNENBQTRDLE9BQU87QUFDbkQ7QUFDQTtBQUNBO0FBQ0EsV0FBVyxXQUFXO0FBQ3RCLFlBQVksY0FBYztBQUMxQjtBQUNPO0FBQ1Asd0JBQXdCLGtFQUF3QjtBQUNoRCxxREFBcUQsa0VBQXdCLENBQUM7QUFDOUUsNkJBQTZCLHVEQUFhO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0EsbUJBQW1CLCtFQUE2QjtBQUNoRDtBQUNBLG1CQUFtQiwrRUFBNkI7QUFDaEQ7QUFDQSxtQkFBbUIsbUZBQWlDO0FBQ3BEO0FBQ0EscURBQXFELFNBQVM7QUFDOUQ7QUFDQTtBQUNBO0FBQ0EsV0FBVyxjQUFjO0FBQ3pCLFdBQVcsYUFBYTtBQUN4QixXQUFXLFFBQVE7QUFDbkIsWUFBWSxRQUFRO0FBQ3BCO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsbUZBQU07QUFDNUIsMEJBQTBCLG1GQUFNO0FBQ2hDLFdBQVcsaUdBQWdCLHNCQUFzQiw2RkFBWSxVQUFVLDZGQUFZO0FBQ25GO0FBQ087QUFDUDtBQUNBLGlDQUFpQyxtRkFBaUM7QUFDbEUsbUNBQW1DLCtFQUE2QjtBQUNoRSxtQ0FBbUMsK0VBQTZCO0FBQ2hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFdBQVc7QUFDdEIsV0FBVyxTQUFTO0FBQ3BCLFlBQVksWUFBWTtBQUN4QjtBQUNPO0FBQ1A7QUFDQSwwQkFBMEIsa0VBQXdCO0FBQ2xELHVCQUF1Qiw4REFBWTtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQSxtQkFBbUIsc0VBQTZCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiwwRUFBZ0M7QUFDbkQ7QUFDQTtBQUNBLG1CQUFtQiw4REFBd0I7QUFDM0M7QUFDQTtBQUNPO0FBQ1A7QUFDQSxtREFBbUQsa0VBQXdCO0FBQzNFO0FBQ0EsaUNBQWlDLHVEQUFhO0FBQzlDO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNsTkw7QUFDUztBQUNrQjtBQUNqRTtBQUNPLGdDQUFnQyx3REFBWTtBQUNuRDtBQUNBO0FBQ0EsNkJBQTZCLG9FQUFvQjtBQUNqRDtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCLGtDQUFrQztBQUNsQyw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0EsZUFBZSxRQUFRO0FBQ3ZCLGVBQWUsUUFBUTtBQUN2QixnQkFBZ0Isa0JBQWtCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QiwrQkFBK0I7QUFDM0Q7QUFDQSw0Q0FBNEMseUZBQTZDO0FBQ3pGO0FBQ0E7QUFDQSxTQUFTO0FBQ1QseUJBQXlCLHVEQUFhO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLFVBQVU7QUFDMUI7QUFDQTtBQUNBLDhDQUE4QztBQUM5QyxtQ0FBbUM7QUFDbkMsK0NBQStDO0FBQy9DLCtCQUErQjtBQUMvQjtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0Esd0NBQXdDO0FBQ3hDLHlFQUF5RTtBQUN6RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixvRkFBd0M7QUFDL0Q7QUFDQSwwQkFBMEIsWUFBWSxFQUFFLEdBQUcsRUFBRSxhQUFhO0FBQzFELFNBQVM7QUFDVCxrQkFBa0IsT0FBTyxFQUFFLDJCQUEyQixFQUFFLFFBQVE7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLFFBQVE7QUFDdkIsZUFBZSxlQUFlO0FBQzlCO0FBQ0EsZ0JBQWdCLFNBQVM7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLGVBQWU7QUFDOUIsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULHlCQUF5Qix1REFBYTtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxlQUFlO0FBQzlCLGdCQUFnQixZQUFZO0FBQzVCO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QixxRkFBeUM7QUFDdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsZ0NBQWdDO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QseUJBQXlCLHVEQUFhO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLFFBQVE7QUFDdkIsZUFBZSxRQUFRO0FBQ3ZCLGVBQWUsZUFBZTtBQUM5QjtBQUNBLGdCQUFnQixXQUFXO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixxRkFBeUM7QUFDekQsZ0JBQWdCLHlGQUE2QztBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QiwyQkFBMkI7QUFDdkQ7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLG9GQUF3QztBQUNyRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSx5QkFBeUIsb0VBQW9CO0FBQzdDLHNCQUFzQix3REFBUTtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsVUFBVTtBQUN6QixlQUFlLGVBQWU7QUFDOUIsZ0JBQWdCLDBCQUEwQjtBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5QyxjQUFjLHdCQUF3QixZQUFZO0FBQzNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNwT0w7QUFDNEQ7QUFDbEc7QUFDTztBQUNQO0FBQ0EsNEJBQTRCLGtFQUF3QjtBQUNwRDtBQUNBLHNCQUFzQix3REFBUSxTQUFTLDJEQUFlO0FBQ3REO0FBQ0EseUJBQXlCLDhEQUFjO0FBQ3ZDLG1CQUFtQix1REFBYTtBQUNoQztBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEIsbUJBQW1CO0FBQ25CLHFCQUFxQjtBQUNyQiw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtRUFBbUUsaUJBQWlCLGlCQUFpQixjQUFjO0FBQ25IO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsb0VBQW9CO0FBQ3JELDhCQUE4Qix3REFBUTtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0REFBNEQsY0FBYztBQUMxRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEIsb0JBQW9CO0FBQ3BCLGVBQWU7QUFDZixjQUFjO0FBQ2QsY0FBYztBQUNkLGtCQUFrQjtBQUNsQixjQUFjO0FBQ2Q7QUFDQTtBQUNBLGdCQUFnQixjQUFjO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QyxpQkFBaUIsNkJBQTZCLFdBQVc7QUFDaEc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsVUFBVTtBQUN6QixnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLDREQUFrQjtBQUM1Qyw0QkFBNEIsa0VBQXdCO0FBQ3BELHlCQUF5Qix1REFBYTtBQUN0Qyx5QkFBeUIsK0RBQXFCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsV0FBVztBQUMxQjtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLFFBQVE7QUFDdkIsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsV0FBVztBQUMxQixlQUFlLFdBQVc7QUFDMUIsZUFBZSxXQUFXO0FBQzFCLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQiw0REFBa0I7QUFDNUMsNEJBQTRCLGtFQUF3QjtBQUNwRCx5QkFBeUIsdURBQWE7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3Q0FBd0MsdURBQWE7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0MsaUJBQWlCLGlCQUFpQixjQUFjO0FBQy9GLDRCQUE0Qiw2QkFBNkI7QUFDekQ7QUFDQTtBQUNBO0FBQ0EsOENBQThDLGlCQUFpQixpQkFBaUIsY0FBYztBQUM5Rix5QkFBeUIsa0JBQWtCO0FBQzNDO0FBQ0EsOENBQThDLGlCQUFpQixpQkFBaUIsY0FBYztBQUM5Rix5QkFBeUIsa0JBQWtCO0FBQzNDO0FBQ0E7QUFDQTtBQUNBLCtDQUErQyxpQkFBaUIsaUJBQWlCLGNBQWM7QUFDL0YsNEJBQTRCLHNEQUFzRDtBQUNsRjtBQUNBLCtDQUErQyxpQkFBaUIsaUJBQWlCLGNBQWM7QUFDL0YsNEJBQTRCLHNEQUFzRDtBQUNsRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQzdOTDtBQUNBO0FBQ3NCO0FBQzBCO0FBQy9FLCtCQUErQiw2REFBbUI7QUFDekQsaUJBQWlCO0FBQ2pCLHFCQUFxQjtBQUNyQix5QkFBeUI7QUFDekIsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsb0RBQVk7QUFDckM7QUFDQSx1QkFBdUIsaURBQVM7QUFDaEMsdUJBQXVCLGdEQUFRO0FBQy9CO0FBQ0Esd0JBQXdCLHFCQUFxQjtBQUM3QztBQUNBLG9DQUFvQyxpREFBTztBQUMzQyxvQkFBb0Isb0RBQVUsWUFBWSxhQUFhO0FBQ3ZELG9CQUFvQixvREFBVTtBQUM5QjtBQUNBO0FBQ0E7QUFDQSxjQUFjLHlEQUFlLENBQUMsZ0RBQU07QUFDcEMsY0FBYyx5REFBZTtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsb0RBQVk7QUFDckM7QUFDQSx1QkFBdUIsaURBQVM7QUFDaEM7QUFDQSx5QkFBeUIsZ0RBQU0sT0FBTyxTQUFTLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxPQUFPO0FBQ3BGO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0RBQXNELGlEQUFpRDtBQUN2RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQixnREFBUTtBQUNuQyw0QkFBNEIscUJBQXFCO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQixvR0FBbUI7QUFDeEM7QUFDQTtBQUNBLDRCQUE0QixxQkFBcUI7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNyR087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7OztBQ3BCK0I7QUFDL0I7QUFDUDtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZ0RBQU0sT0FBTyxTQUFTLFVBQVUsT0FBTyxnQkFBZ0IsT0FBTyxPQUFPO0FBQ3pGLHNEQUFzRCwrQ0FBK0M7QUFDckc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQixnREFBTTtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxpQkFBaUI7QUFDakI7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN6Q087QUFDUDtBQUNBO0FBQ0Esb0JBQW9CLHFCQUFxQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixpQkFBaUI7QUFDekM7QUFDQTtBQUNBLGdDQUFnQztBQUNoQztBQUNBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGtCQUFrQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGNBQWM7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOzs7Ozs7Ozs7OztBQ3BKQTs7Ozs7Ozs7OztBQ0FBOzs7Ozs7Ozs7O0FDQUE7Ozs7Ozs7Ozs7QUNBQTs7Ozs7O1VDQUE7VUFDQTs7VUFFQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTs7VUFFQTtVQUNBOztVQUVBO1VBQ0E7VUFDQTs7Ozs7V0N0QkE7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBLGlDQUFpQyxXQUFXO1dBQzVDO1dBQ0E7Ozs7O1dDUEE7V0FDQTtXQUNBO1dBQ0E7V0FDQSx5Q0FBeUMsd0NBQXdDO1dBQ2pGO1dBQ0E7V0FDQTs7Ozs7V0NQQTs7Ozs7V0NBQTtXQUNBO1dBQ0E7V0FDQSx1REFBdUQsaUJBQWlCO1dBQ3hFO1dBQ0EsZ0RBQWdELGFBQWE7V0FDN0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ05BLGlCQUFpQixTQUFJLElBQUksU0FBSTtBQUM3Qiw0QkFBNEIsK0RBQStELGlCQUFpQjtBQUM1RztBQUNBLG9DQUFvQyxNQUFNLCtCQUErQixZQUFZO0FBQ3JGLG1DQUFtQyxNQUFNLG1DQUFtQyxZQUFZO0FBQ3hGLGdDQUFnQztBQUNoQztBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQzBDO0FBQ0o7QUFDQTtBQUNvQztBQUN4QjtBQUNDO0FBQ3NDO0FBQ2xEO0FBQ2hDLHFCQUFxQixvREFBVTtBQUN0QztBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUMsZ0JBQWdCO0FBQ3pELGFBQWEsU0FBUyw2REFBbUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2IsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQixvREFBWSxRQUFRLDZEQUFxQjtBQUNuRSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBLGtDQUFrQyw4Q0FBTTtBQUN4QyxxRUFBcUUsOENBQU07QUFDM0UseURBQXlELDhDQUFNO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSztBQUNMO0FBQ0EsZUFBZSw0REFBa0I7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQLGVBQWUsNERBQWdCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUCxxQkFBcUIsb0RBQVk7QUFDakMsb0NBQW9DLHVEQUFhO0FBQ2pEO0FBQ0E7QUFDQSxRQUFRLDREQUFrQixhQUFhLGlDQUFpQztBQUN4RTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUNmO0FBQ1AsYUFBYSxzRUFBNEI7QUFDekMsd0JBQXdCLG1HQUFpQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ087QUFDUDtBQUNBLG1CQUFtQiw0REFBa0I7QUFDckM7QUFDQSxxQkFBcUIsZ0RBQU07QUFDM0I7QUFDQSxnREFBZ0QsZ0JBQWdCO0FBQ2hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLG1EQUFTLENBQUMseURBQWU7QUFDNUM7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBO0FBQ0EsZUFBZSxnREFBTTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxJQUFJLG1EQUFTLEdBQUcscUNBQXFDO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBLHNIQUFzSDtBQUN0SDtBQUNBLEtBQUssU0FBUywrQkFBK0I7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSw0QkFBNEI7QUFDNUI7QUFDTztBQUNQO0FBQ0EsOEVBQThFLFdBQVc7QUFDekY7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ087QUFDUDtBQUNBLGtGQUFrRixXQUFXO0FBQzdGO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNPO0FBQ1A7QUFDQSxzRkFBc0YsV0FBVztBQUNqRztBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSw0QkFBNEI7QUFDNUIseUJBQXlCO0FBQ2xCO0FBQ1A7QUFDQSx1RUFBdUUsV0FBVztBQUNsRjtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsaUJBQWlCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDLG9CQUFvQjtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ087QUFDUCxlQUFlLDREQUFrQjtBQUNqQztBQUNBLGNBQWMsMERBQWdCO0FBQzlCLGlCQUFpQixnREFBTTtBQUN2QjtBQUNBLDRDQUE0QyxnQkFBZ0I7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQLGVBQWUsMkRBQWE7QUFDNUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9oZWxtLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy9yYW5kb20uanMiLCJ3ZWJwYWNrOi8vaGVsbS8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvdHlwZS1kZWNsYXJhdGlvbnMuanMiLCJ3ZWJwYWNrOi8vaGVsbS8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvdmVjdG9yLW9wZXJhdGlvbnMuanMiLCJ3ZWJwYWNrOi8vaGVsbS8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvYW1pbm9hY2lkcy5qcyIsIndlYnBhY2s6Ly9oZWxtLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy9udWNsZW90aWRlcy5qcyIsIndlYnBhY2s6Ly9oZWxtLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy9zZXEtcGFsZXR0ZXMuanMiLCJ3ZWJwYWNrOi8vaGVsbS8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdW5rbm93bi5qcyIsIndlYnBhY2s6Ly9oZWxtLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy9jZWxsLXJlbmRlcmVyLmpzIiwid2VicGFjazovL2hlbG0vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL21hY3JvbW9sZWN1bGUuanMiLCJ3ZWJwYWNrOi8vaGVsbS8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdXRpbHMvbm90YXRpb24tY29udmVydGVyLmpzIiwid2VicGFjazovL2hlbG0vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL3VuaXRzLWhhbmRsZXIuanMiLCJ3ZWJwYWNrOi8vaGVsbS8uL3NyYy9jZWxsLXJlbmRlcmVyLnRzIiwid2VicGFjazovL2hlbG0vLi9zcmMvY29uc3RhbnRzLnRzIiwid2VicGFjazovL2hlbG0vLi9zcmMvaGVsbS13ZWItZWRpdG9yLnRzIiwid2VicGFjazovL2hlbG0vLi9zcmMvdXRpbHMudHMiLCJ3ZWJwYWNrOi8vaGVsbS9leHRlcm5hbCB2YXIgXCJER1wiIiwid2VicGFjazovL2hlbG0vZXh0ZXJuYWwgdmFyIFwiZ3Jva1wiIiwid2VicGFjazovL2hlbG0vZXh0ZXJuYWwgdmFyIFwidWlcIiIsIndlYnBhY2s6Ly9oZWxtL2V4dGVybmFsIHZhciBcInd1XCIiLCJ3ZWJwYWNrOi8vaGVsbS93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9oZWxtL3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL2hlbG0vd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL2hlbG0vd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9oZWxtL3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vaGVsbS8uL3NyYy9wYWNrYWdlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVzIHNpbmdsZSByYW5kb20gZmxvYXQgZnJvbSAwIHRvIHJhbmdlLlxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7bnVtYmVyfSByYW5nZSBNYXggZ2VuZXJhdGluZyB2YWx1ZS5cbiAqIEByZXR1cm4ge251bWJlcn0gQSByYW5kb20gZmxvYXQgZ2VuZXJhdGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmFuZG9tRmxvYXQocmFuZ2UpIHtcbiAgICByZXR1cm4gTWF0aC5yYW5kb20oKSAqIHJhbmdlO1xufVxuLyoqXG4gKiBHZW5lcmF0ZXMgc2luZ2xlIHJhbmRvbSBpbnRlZ2VyIGZyb20gMCB0byByYW5nZS5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge251bWJlcn0gcmFuZ2UgTWF4IGdlbmVyYXRpbmcgdmFsdWUuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IEEgcmFuZG9tIGludGVnZXIgZ2VuZXJhdGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmFuZG9tSW50KHJhbmdlKSB7XG4gICAgcmV0dXJuIE1hdGguZmxvb3IocmFuZG9tRmxvYXQocmFuZ2UpKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWNtRnVaRzl0TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2ljbUZ1Wkc5dExuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCT3pzN096czdSMEZOUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3hYUVVGWExFTkJRVU1zUzBGQllUdEpRVU4yUXl4UFFVRlBMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eExRVUZMTEVOQlFVTTdRVUZETDBJc1EwRkJRenRCUVVWRU96czdPenM3UjBGTlJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4VFFVRlRMRU5CUVVNc1MwRkJZVHRKUVVOeVF5eFBRVUZQTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEZUVNc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4cUtseHVJQ29nUjJWdVpYSmhkR1Z6SUhOcGJtZHNaU0J5WVc1a2IyMGdabXh2WVhRZ1puSnZiU0F3SUhSdklISmhibWRsTGx4dUlDcGNiaUFxSUVCbGVIQnZjblJjYmlBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCeVlXNW5aU0JOWVhnZ1oyVnVaWEpoZEdsdVp5QjJZV3gxWlM1Y2JpQXFJRUJ5WlhSMWNtNGdlMjUxYldKbGNuMGdRU0J5WVc1a2IyMGdabXh2WVhRZ1oyVnVaWEpoZEdWa0xseHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY21GdVpHOXRSbXh2WVhRb2NtRnVaMlU2SUc1MWJXSmxjaWs2SUc1MWJXSmxjaUI3WEc0Z0lISmxkSFZ5YmlCTllYUm9MbkpoYm1SdmJTZ3BJQ29nY21GdVoyVTdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1IyVnVaWEpoZEdWeklITnBibWRzWlNCeVlXNWtiMjBnYVc1MFpXZGxjaUJtY205dElEQWdkRzhnY21GdVoyVXVYRzRnS2x4dUlDb2dRR1Y0Y0c5eWRGeHVJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJSEpoYm1kbElFMWhlQ0JuWlc1bGNtRjBhVzVuSUhaaGJIVmxMbHh1SUNvZ1FISmxkSFZ5YmlCN2JuVnRZbVZ5ZlNCQklISmhibVJ2YlNCcGJuUmxaMlZ5SUdkbGJtVnlZWFJsWkM1Y2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSEpoYm1SdmJVbHVkQ2h5WVc1blpUb2diblZ0WW1WeUtUb2diblZ0WW1WeUlIdGNiaUFnY21WMGRYSnVJRTFoZEdndVpteHZiM0lvY21GdVpHOXRSbXh2WVhRb2NtRnVaMlVwS1R0Y2JuMWNiaUpkZlE9PSIsIi8qKlxuICogRGVub3RlcyBhIHZlY3RvciBvZiBmbG9hdGluZyBwb2l0IHZhbHVlcy5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgVmVjdG9yXG4gKiBAZXh0ZW5kcyB7RmxvYXQzMkFycmF5fVxuICovXG5leHBvcnQgY2xhc3MgVmVjdG9yIGV4dGVuZHMgRmxvYXQzMkFycmF5IHtcbn1cbi8qKlxuICogRGVub3RlcyBhIHR3by1kaW1lbnNpb25hbCBtYXRyaXguXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIE1hdHJpeFxuICogQGV4dGVuZHMge0FycmF5PFZlY3Rvcj59XG4gKi9cbmV4cG9ydCBjbGFzcyBNYXRyaXggZXh0ZW5kcyBBcnJheSB7XG59XG4vKipcbiAqIERlbm90ZXMgY2FydGVzaWFuIGNvb3JkaW5hdGVzLlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBDb29yZGluYXRlc1xuICogQGV4dGVuZHMge01hdHJpeH1cbiAqL1xuZXhwb3J0IGNsYXNzIENvb3JkaW5hdGVzIGV4dGVuZHMgTWF0cml4IHtcbn1cbi8qKlxuICogRGVub3RlcyBhbiBhcnJheSBvZiBhcmJpdHJhcnktdHlwZWQgdmVjdG9ycy5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgVmVjdG9yc1xuICogQGV4dGVuZHMge0FycmF5PGFueT59XG4gKi9cbmV4cG9ydCBjbGFzcyBWZWN0b3JzIGV4dGVuZHMgQXJyYXkge1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZEhsd1pTMWtaV05zWVhKaGRHbHZibk11YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SjBlWEJsTFdSbFkyeGhjbUYwYVc5dWN5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVRzN096czdPMGRCVFVjN1FVRkRTQ3hOUVVGTkxFOUJRVThzVFVGQlR5eFRRVUZSTEZsQlFWazdRMEZCUnp0QlFVVXpRenM3T3pzN08wZEJUVWM3UVVGRFNDeE5RVUZOTEU5QlFVOHNUVUZCVHl4VFFVRlJMRXRCUVdFN1EwRkJSenRCUVVVMVF6czdPenM3TzBkQlRVYzdRVUZEU0N4TlFVRk5MRTlCUVU4c1YwRkJXU3hUUVVGUkxFMUJRVTA3UTBGQlJ6dEJRVVV4UXpzN096czdPMGRCVFVjN1FVRkRTQ3hOUVVGTkxFOUJRVThzVDBGQlVTeFRRVUZSTEV0QlFWVTdRMEZCUnlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLbHh1SUNvZ1JHVnViM1JsY3lCaElIWmxZM1J2Y2lCdlppQm1iRzloZEdsdVp5QndiMmwwSUhaaGJIVmxjeTVjYmlBcVhHNGdLaUJBWlhod2IzSjBYRzRnS2lCQVkyeGhjM01nVm1WamRHOXlYRzRnS2lCQVpYaDBaVzVrY3lCN1JteHZZWFF6TWtGeWNtRjVmVnh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nVm1WamRHOXlJR1Y0ZEdWdVpITWdSbXh2WVhRek1rRnljbUY1SUh0OVhHNWNiaThxS2x4dUlDb2dSR1Z1YjNSbGN5QmhJSFIzYnkxa2FXMWxibk5wYjI1aGJDQnRZWFJ5YVhndVhHNGdLbHh1SUNvZ1FHVjRjRzl5ZEZ4dUlDb2dRR05zWVhOeklFMWhkSEpwZUZ4dUlDb2dRR1Y0ZEdWdVpITWdlMEZ5Y21GNVBGWmxZM1J2Y2o1OVhHNGdLaTljYm1WNGNHOXlkQ0JqYkdGemN5Qk5ZWFJ5YVhnZ1pYaDBaVzVrY3lCQmNuSmhlVHhXWldOMGIzSStJSHQ5WEc1Y2JpOHFLbHh1SUNvZ1JHVnViM1JsY3lCallYSjBaWE5wWVc0Z1kyOXZjbVJwYm1GMFpYTXVYRzRnS2x4dUlDb2dRR1Y0Y0c5eWRGeHVJQ29nUUdOc1lYTnpJRU52YjNKa2FXNWhkR1Z6WEc0Z0tpQkFaWGgwWlc1a2N5QjdUV0YwY21sNGZWeHVJQ292WEc1bGVIQnZjblFnWTJ4aGMzTWdRMjl2Y21ScGJtRjBaWE1nWlhoMFpXNWtjeUJOWVhSeWFYZ2dlMzFjYmx4dUx5b3FYRzRnS2lCRVpXNXZkR1Z6SUdGdUlHRnljbUY1SUc5bUlHRnlZbWwwY21GeWVTMTBlWEJsWkNCMlpXTjBiM0p6TGx4dUlDcGNiaUFxSUVCbGVIQnZjblJjYmlBcUlFQmpiR0Z6Y3lCV1pXTjBiM0p6WEc0Z0tpQkFaWGgwWlc1a2N5QjdRWEp5WVhrOFlXNTVQbjFjYmlBcUwxeHVaWGh3YjNKMElHTnNZWE56SUZabFkzUnZjbk1nWlhoMFpXNWtjeUJCY25KaGVUeGhibmsrSUh0OVhHNWNiaThxS2x4dUlDb2dSR1Z1YjNSbGN5QmhJR1JwWTNScGIyNWhjbmtnWTI5dWRHRnBibWx1WnlCbWRXNWpkR2x2YmlCdmNIUnBiMjV6TGx4dUlDcGNiaUFxSUVCbGVIQnZjblJjYmlBcUlFQjBlWEJsSUU5d2RHbHZibk5jYmlBcUwxeHVaWGh3YjNKMElIUjVjR1VnVDNCMGFXOXVjeUE5SUh0YmJtRnRaVG9nYzNSeWFXNW5YVG9nWVc1NWZUdGNibHh1THlvcVhHNGdLaUJFWlc1dmRHVnpJR04xYzNSdmJTQmthWE4wWVc1alpTQnRaWFJ5YVdNZ1ltVjBkMlZsYmlCMGFHVWdkSGR2SUdkcGRtVnVJSFpsWTNSdmNuTXVYRzRnS2x4dUlDb2dRR1Y0Y0c5eWRGeHVJQ29nUUhSNWNHVWdSR2x6ZEdGdVkyVk5aWFJ5YVdOY2JpQXFJRUJ3WVhKaGJTQjdZVzU1ZlNCMk1TQlVhR1VnWm1seWMzUWdkbVZqZEc5eUxseHVJQ29nUUhCaGNtRnRJSHRoYm5sOUlIWXlJRlJvWlNCelpXTnZibVFnZG1WamRHOXlMbHh1SUNvZ1FISmxkSFZ5YmlCN2JuVnRZbVZ5ZlNCRWFYTjBZVzVqWlNCaVpYUjNaV1Z1SUhSb1pYTmxJSFIzYnlCMlpXTjBiM0p6TGx4dUlDb3ZYRzVsZUhCdmNuUWdkSGx3WlNCRWFYTjBZVzVqWlUxbGRISnBZeUE5SUNoMk1Ub2dZVzU1TENCMk1qb2dZVzU1S1NBOVBpQW9iblZ0WW1WeUtUdGNibHh1THlvcVhHNGdLaUJFWlc1dmRHVnpJR0VnYzJsdGNHeGxJSE4wY21sdVp5QjBieUJ6ZEhKcGJtY2daR2xqZEdsdmJtRnllUzVjYmlBcVhHNGdLaUJBWlhod2IzSjBYRzRnS2lCQWRIbHdaU0JUZEhKcGJtZEVhV04wYVc5dVlYSjVYRzRnS2k5Y2JtVjRjRzl5ZENCMGVYQmxJRk4wY21sdVowUnBZM1JwYjI1aGNua2dQU0I3VzJ0bGVUb2djM1J5YVc1blhUb2djM1J5YVc1bmZUdGNiaUpkZlE9PSIsImltcG9ydCB7IFZlY3RvciB9IGZyb20gJy4vdHlwZS1kZWNsYXJhdGlvbnMnO1xuaW1wb3J0IHsgcmFuZG9tRmxvYXQsIHJhbmRvbUludCB9IGZyb20gJy4vcmFuZG9tJztcbi8qKlxuICogQXNzZXJ0cyBhIGNvbmRpdGlvbiBieSB0aHJvd2luZyBhbiBFcnJvci5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtjb25kaXRpb249ZmFsc2VdIENvbmRpdGlvbiB0byBhc3NlcnQuXG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2U9J0Fzc2VydGlvbiBlcnJvci4nXSBNZXNzYWdlIHRvIG91dHB1dC5cbiAqIEB0aHJvd3Mge0Vycm9yfVxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0KGNvbmRpdGlvbiA9IGZhbHNlLCBtZXNzYWdlID0gJ0Fzc2VydGlvbiBlcnJvci4nKSB7XG4gICAgaWYgKCFjb25kaXRpb24pXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbn1cbi8qKlxuICogQ3JlYXRlcyBuZXcgdHdvLWRpbWVuc2lvbmFsIGFycmF5IGFuZCBmaWxscyBpdCB3aXRoIHRoZSB2YWx1ZSBnaXZlbi5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gZGltZW5zaW9uMSBUaGUgZmlyc3QgZGltZW5zaW9uIG9mIHRoZSBjb29yZGluYXRlcyAobnVtYmVyIG9mIHJvd3MpLlxuICogQHBhcmFtIHtudW1iZXJ9IGRpbWVuc2lvbjIgVGhlIHNlY29uZCBkaW1lbnNpb24gb2YgdGhlIGNvb3JkaW5hdGVzIChudW1iZXIgb2YgY29sdW1ucykuXG4gKiBAcGFyYW0ge251bWJlcn0gW2ZpbGw9MF0gQSB2YWx1ZSB0byBmaWxsIHRoZSBjb29yZGluYXRlcyB3aXRoLlxuICogQHJldHVybiB7Q29vcmRpbmF0ZXN9IEEgdHdvLWRpbWVuc2lvbmFsIGZpbGxlZCB3aXRoIHRoZSB2YWx1ZSBnaXZlbi5cbiAqIEB0b2RvIE1pZ2h0IGJlIHNsb3cgc2luY2UgdXNlZCBBcnJheS5tYXAuIFByb2JhYmx5IG5lZWRzIHBlcmZvcm1hbmNlIHJldmlzaW9uLlxuICovXG5mdW5jdGlvbiBpbml0Q29vcmRpbmF0ZXMoZGltZW5zaW9uMSwgZGltZW5zaW9uMiwgZmlsbCA9IDApIHtcbiAgICByZXR1cm4gbmV3IEFycmF5KGRpbWVuc2lvbjEpLmZpbGwoZmlsbCkubWFwKCgpID0+IChuZXcgVmVjdG9yKGRpbWVuc2lvbjIpLmZpbGwoZmlsbCkpKTtcbn1cbi8qKlxuICogVHJhbnNwb3NlIG1hdHJpeC5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge01hdHJpeH0gbWF0cml4IFRoZSBtYXRyaXggdG8gYmUgdHJhbnNwb3NlZC5cbiAqIEByZXR1cm4ge01hdHJpeH0gVHJhbnNwb3NlZCBtYXRyaXguXG4gKiBAdG9kbyBNaWdodCBiZSBzbG93IHNpbmNlIHVzZWQgQXJyYXkubWFwLiBQcm9iYWJseSBuZWVkcyBwZXJmb3JtYW5jZSByZXZpc2lvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zcG9zZU1hdHJpeChtYXRyaXgpIHtcbiAgICByZXR1cm4gbmV3IEFycmF5KG1hdHJpeFswXS5sZW5ndGgpLmZpbGwoMClcbiAgICAgICAgLm1hcCgoXywgaSkgPT4gKG5ldyBWZWN0b3IobWF0cml4Lmxlbmd0aCkuZmlsbCgwKS5tYXAoKF8sIGopID0+IChtYXRyaXhbal1baV0pKSkpO1xufVxuLyoqXG4gKiBBZGRzIHR3byB2ZWN0b3JzIHdpdGggdGhlIHNlY29uZCBvbmUgdG8gYmUgbXVsdGlwbGllZCBieSB0aGUgZ2l2ZW4gcmF0aW8uXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtWZWN0b3J9IHAgVGhlIGZpcnN0IHZlY3RvciB0byBhZGQuXG4gKiBAcGFyYW0ge1ZlY3Rvcn0gcSBUaGUgc2Vjb25kIHZlY3RvciB0byBhZGQuXG4gKiBAcGFyYW0ge251bWJlcn0gW211bHRpcGxpZXI9MV0gQSBtdWx0aXBsaWVyIHRvIGJlIHVzZWQgYmVmb3JlIHRoZSBzZWNvbmQgdmVjdG9yIGlzIGFkZGVkLlxuICogQHJldHVybiB7VmVjdG9yfSBOZXcgdmVjdG9yIGNvbnRhaW5lZCB0aGUgcmVzdWx0IG9mIG9wZXJhdGlvbiBwK211bHRpcGxpZXIqcS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlY3RvckFkZChwLCBxLCBtdWx0aXBsaWVyID0gMSkge1xuICAgIGNvbnN0IG5JdGVtcyA9IHAubGVuZ3RoO1xuICAgIGFzc2VydChuSXRlbXMgPT0gcS5sZW5ndGgsICdWZWN0b3IgbGVuZ3RocyBkbyBub3QgbWF0Y2guJyk7XG4gICAgY29uc3QgdG90YWwgPSBuZXcgVmVjdG9yKG5JdGVtcyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwLmxlbmd0aDsgKytpKVxuICAgICAgICB0b3RhbFtpXSA9IHBbaV0gKyBtdWx0aXBsaWVyICogcVtpXTtcbiAgICByZXR1cm4gdG90YWw7XG59XG4vKipcbiAqIFN1bXMgdGhlIHZlY3RvcidzIGl0ZW1zLlxuICpcbiAqIEBwYXJhbSB7VmVjdG9yfSB2IFRoZSB2ZWN0b3IgdG8gYmUgc3VtbWVkLlxuICogQHJldHVybiB7bnVtYmVyfSBUaGUgdmVjdG9yJ3MgaXRlbXMgc3VtLlxuICovXG5mdW5jdGlvbiBpdGVtc1N1bSh2KSB7XG4gICAgbGV0IHRvdGFsID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHYubGVuZ3RoOyArK2kpXG4gICAgICAgIHRvdGFsICs9IHZbaV07XG4gICAgcmV0dXJuIHRvdGFsO1xufVxuLyoqXG4gKiBTdXFhcmVzIHRoZSB2ZWN0b3IncyBpdGVtcy5cbiAqXG4gKiBAcGFyYW0ge1ZlY3Rvcn0gdiBUaGUgdmVjdG9yIHRvIHNxdWFyZS5cbiAqIEByZXR1cm4ge1ZlY3Rvcn0gQSBuZXcgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG9yaWdpbmFsJ3MgaXRlbXMgc3F1YXJlZC5cbiAqL1xuZnVuY3Rpb24gdmVjdG9yU3F1YXJlKHYpIHtcbiAgICBjb25zdCBuSXRlbXMgPSB2Lmxlbmd0aDtcbiAgICBjb25zdCB0b3RhbCA9IG5ldyBWZWN0b3Iobkl0ZW1zKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHYubGVuZ3RoOyArK2kpXG4gICAgICAgIHRvdGFsW2ldID0gdltpXSAqIHZbaV07XG4gICAgcmV0dXJuIHRvdGFsO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHZlY3Rvckxlbmd0aCh2KSB7XG4gICAgbGV0IHNxclN1bSA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKVxuICAgICAgICBzcXJTdW0gKz0gdltpXSAqIHZbaV07XG4gICAgcmV0dXJuIE1hdGguc3FydChzcXJTdW0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHZlY3RvckRvdFByb2R1Y3QodjEsIHYyKSB7XG4gICAgaWYgKHYxLmxlbmd0aCAhPSB2Mi5sZW5ndGgpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGRpbWVuc2lvbmFsaXR5IG9mIHRoZSB2ZWN0b3JzIG11c3QgbWF0Y2gnKTtcbiAgICBsZXQgcHJvZCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2MS5sZW5ndGg7IGkrKylcbiAgICAgICAgcHJvZCArPSB2MVtpXSAqIHYyW2ldO1xuICAgIHJldHVybiBwcm9kO1xufVxuLyoqXG4gKiBDcmVhdGVzIGEgbWF0cml4IGZpbGxlZCB3aXRoIHJhbmRvbSBmbG9hdGluZyBwb2ludCB2YWx1ZXMuXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtudW1iZXJ9IGRpbWVuc2lvbjEgVGhlIGZpcnN0IGRpbWVuc2lvbiBvZiB0aGUgbWF0cml4LlxuICogQHBhcmFtIHtudW1iZXJ9IGRpbWVuc2lvbjIgVGhlIHNlY29uZCBkaW1lbnNpb24gb2YgdGhlIG1hdHJpeC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbc2NhbGU9MS5dIE1heCB2YWx1ZSBnaXZlbiBieSByYW5kb20gZ2VuZXJhdG9yLlxuICogQHJldHVybiB7TWF0cml4fSBBIG5ldyBtYXRyaXggZmlsbGVkIHdpdGggcmFuZG9tIGZsb2F0aW5nIHBvaW50ICB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWxsUmFuZG9tTWF0cml4KGRpbWVuc2lvbjEsIGRpbWVuc2lvbjIsIHNjYWxlID0gMS4pIHtcbiAgICBjb25zdCBtYXRyaXggPSBpbml0Q29vcmRpbmF0ZXMoZGltZW5zaW9uMSwgZGltZW5zaW9uMik7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkaW1lbnNpb24xOyArK2kpIHtcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBkaW1lbnNpb24yOyArK2opXG4gICAgICAgICAgICBtYXRyaXhbaV1bal0gPSByYW5kb21GbG9hdChzY2FsZSk7XG4gICAgfVxuICAgIHJldHVybiBtYXRyaXg7XG59XG4vKipcbiAqIENhbGN1bGF0ZXMgRXVjbGlkZWFuIGRpc3RhbmNlIGJldHdlZW4gdHdvIHZlY3RvcnMuXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtWZWN0b3J9IHAgVGhlIGZpcnN0IHZlY3Rvci5cbiAqIEBwYXJhbSB7VmVjdG9yfSBxIFRoZSBzZWNvbmQgdmVjdG9yLlxuICogQHJldHVybiB7bnVtYmVyfSBFdWNsaWRlYW4gZGlzdGFuY2UgYmV0d2VlbiB0aGUgZ2l2ZW4gdmVjdG9ycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZUV1Y2xpZGVhbkRpc3RhbmNlKHAsIHEpIHtcbiAgICBjb25zdCBkaWZmID0gdmVjdG9yQWRkKHAsIHEsIC0xKTtcbiAgICBjb25zdCBzcWRpZmYgPSB2ZWN0b3JTcXVhcmUoZGlmZik7XG4gICAgY29uc3Qgc3FkaWZmU3VtbSA9IGl0ZW1zU3VtKHNxZGlmZik7XG4gICAgcmV0dXJuIE1hdGguc3FydChzcWRpZmZTdW1tKTtcbn1cbi8qKlxuICogQ3JlYXRlcyBhIGRpc3RhbmNlIG1hdHJpeCB1c2luZyBhIGN1c3RvbSBkaXN0YW5jZSBmdW5jdGlvbi5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge1ZlY3RvcnN9IGRhdGEgSW5wdXQgdmVjdG9ycyB0byBjYWxjdWxhdGUgZGlzdGFuY2VzLlxuICogQHBhcmFtIHtEaXN0YW5jZU1ldHJpY30gZGlzdGFuY2UgQ3VzdG9tIGRpc3RhbmNlIGZ1bmN0aW9uLlxuICogQHJldHVybiB7TWF0cml4fSBDYWxjdWxhdGVkIGN1c3RvbSBkaXN0YW5jZSBtYXRyaXguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYWxjRGlzdGFuY2VNYXRyaXgoZGF0YSwgZGlzdGFuY2UpIHtcbiAgICBjb25zdCBuSXRlbXMgPSBkYXRhLmxlbmd0aDtcbiAgICBjb25zdCBtYXRyaXggPSBpbml0Q29vcmRpbmF0ZXMobkl0ZW1zLCBuSXRlbXMsIDApO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbkl0ZW1zOyArK2kpIHtcbiAgICAgICAgZm9yIChsZXQgaiA9IGkgKyAxOyBqIDwgbkl0ZW1zOyArK2opIHtcbiAgICAgICAgICAgIGNvbnN0IGQgPSAoZGF0YVtpXSA9PSBudWxsKSB8fCAoZGF0YVtqXSA9PSBudWxsKSA/IDAgOiBkaXN0YW5jZShkYXRhW2ldLCBkYXRhW2pdKTtcbiAgICAgICAgICAgIG1hdHJpeFtpXVtqXSA9IG1hdHJpeFtqXVtpXSA9IGQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1hdHJpeDtcbn1cbi8qKiBHZW5lcmF0ZXMgYXJyYXkgZnJvbSBhIHJhbmdlIFtiZWdpbjsgZW5kXSBvciBbYmVnaW47IGVuZCkgaWYgZW5kRXhjbHVzaXZlLiAqKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5SYW5nZShiZWdpbiwgZW5kLCBlbmRFeGNsdXNpdmUgPSBmYWxzZSkge1xuICAgIGNvbnN0IG5JdGVtcyA9IGVuZCAtIGJlZ2luICsgKGVuZEV4Y2x1c2l2ZSA/IDAgOiAxKTtcbiAgICBjb25zdCBzZXJpZXMgPSBuZXcgSW50MzJBcnJheShuSXRlbXMpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbkl0ZW1zOyArK2kpXG4gICAgICAgIHNlcmllc1tpXSA9IGJlZ2luICsgaTtcbiAgICByZXR1cm4gc2VyaWVzO1xufVxuLyoqXG4gKiBSZXR1cm5zIG9yZGVyIG9mIHZhbHVlcyBhcyBpZiB0aGV5IGFyZSBzb3J0ZWQuXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHthbnlbXX0gdmFsdWVzIElucHV0IGFycmF5LlxuICogQHBhcmFtIHtib29sZWFufSBbcmV2ZXJzZT1mYWxzZV0gV2hldGhlciB0byByZXR1cm4gcmV2ZXJzZWQgb3JkZXIuXG4gKiBAcmV0dXJuIHtudW1iZXJbXX0gVGhlIG9yZGVyIGNvbXB1dGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXJnU29ydCh2YWx1ZXMsIHJldmVyc2UgPSBmYWxzZSkge1xuICAgIGNvbnN0IHNvcnRmbiA9IHJldmVyc2UgPyAoYSwgYikgPT4gKGJbMF0gLSBhWzBdKSA6IChhLCBiKSA9PiAoYVswXSAtIGJbMF0pO1xuICAgIGNvbnN0IGRlY29yID0gKHYsIGkpID0+IFt2LCBpXTsgLy8gc2V0IGluZGV4IHRvIHZhbHVlXG4gICAgY29uc3QgdW5kZWNvciA9IChhKSA9PiBhWzFdOyAvLyBsZWF2ZSBvbmx5IGluZGV4XG4gICAgY29uc3QgX2FyZ3NvcnQgPSAoYXJyKSA9PiBhcnIubWFwKGRlY29yKS5zb3J0KHNvcnRmbikubWFwKHVuZGVjb3IpO1xuICAgIHJldHVybiBfYXJnc29ydCh2YWx1ZXMpO1xufVxuLyoqXG4gKiBSZXR1cm5zIHRoZSBpbmRleGVzIG9mIHRoZSBtb3N0IGRpdmVyc2Ugb2JqZWN0cyBhY2NvcmRpbmcgdG8gdGhlIGRpc3QgZnVuY3Rpb25cbiAqIEBwYXJhbSB7bnVtYmVyfSBsZW5ndGggdG90YWwgbnVtYmVyIG9mIG9iamVjdHNcbiAqIEBwYXJhbSB7bnVtYmVyfSBuIG51bWJlciBvZiBkaXZlcnNlIGVsZW1lbnRzIHRvIGZpbmRcbiAqIEBwYXJhbSB7KGkxOiBudW1iZXIsIGkyOiBudW1iZXIpID0+IG51bWJlcn0gZGlzdCBhIGZ1bmN0aW9uIHdoaWNoIGNhbGN1bGF0ZXMgZGlzdGFuY2UgYmV0d2VlblxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR3byBvYmplY3RzIHVzaW5nIHRoZWlyIGluZGV4ZXNcbiAqIEByZXR1cm5zIHtudW1iZXJbXX0gVGhlIGluZGV4ZXMgb2YgdGhlIG1vc3QgZGl2ZXJzZSBvYmplY3RzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREaXZlcnNlU3Vic2V0KGxlbmd0aCwgbiwgZGlzdCkge1xuICAgIGZ1bmN0aW9uIG1heEJ5KHZhbHVlcywgb3JkZXJCeSkge1xuICAgICAgICBsZXQgbWF4VmFsdWUgPSBudWxsO1xuICAgICAgICBsZXQgbWF4T3JkZXJCeSA9IG51bGw7XG4gICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiB2YWx1ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRPcmRlckJ5ID0gb3JkZXJCeShlbGVtZW50KTtcbiAgICAgICAgICAgIGlmIChtYXhPcmRlckJ5ID09IG51bGwgfHwgZWxlbWVudE9yZGVyQnkgPiBtYXhPcmRlckJ5KSB7XG4gICAgICAgICAgICAgICAgbWF4VmFsdWUgPSBlbGVtZW50O1xuICAgICAgICAgICAgICAgIG1heE9yZGVyQnkgPSBlbGVtZW50T3JkZXJCeTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWF4VmFsdWU7XG4gICAgfVxuICAgIGNvbnN0IHN1YnNldCA9IFtyYW5kb21JbnQobGVuZ3RoIC0gMSldO1xuICAgIGNvbnN0IGNvbXBsZW1lbnQgPSBuZXcgU2V0KCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkge1xuICAgICAgICBpZiAoIXN1YnNldC5pbmNsdWRlcyhpKSlcbiAgICAgICAgICAgIGNvbXBsZW1lbnQuYWRkKGkpO1xuICAgIH1cbiAgICB3aGlsZSAoc3Vic2V0Lmxlbmd0aCA8IG4pIHtcbiAgICAgICAgY29uc3QgaWR4ID0gbWF4QnkoY29tcGxlbWVudC52YWx1ZXMoKSwgKGkpID0+IE1hdGgubWluLmFwcGx5KE1hdGgsIHN1YnNldC5tYXAoZnVuY3Rpb24gKHZhbCwgaW5kZXgpIHtcbiAgICAgICAgICAgIHJldHVybiBkaXN0KGksIHZhbCk7XG4gICAgICAgIH0pKSk7XG4gICAgICAgIGlmIChpZHgpIHtcbiAgICAgICAgICAgIHN1YnNldC5wdXNoKGlkeCk7XG4gICAgICAgICAgICBjb21wbGVtZW50LmRlbGV0ZShpZHgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzdWJzZXQ7XG59XG4vKipcbiAqIFJldHVybnMgbm9ybWFsaXplZCB2ZWN0b3JcbiAqIEBwYXJhbSB7VmVjdG9yfSBkYXRhIG51bWVyaWNhbCBhcnJheVxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplKGRhdGEpIHtcbiAgICBsZXQgbWVhbiA9IDA7XG4gICAgbGV0IHN0ZCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgKytpKVxuICAgICAgICBtZWFuICs9IGRhdGFbaV07XG4gICAgbWVhbiAvPSBkYXRhLmxlbmd0aDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyArK2kpXG4gICAgICAgIHN0ZCArPSAoZGF0YVtpXSAtIG1lYW4pICogKGRhdGFbaV0gLSBtZWFuKTtcbiAgICBzdGQgPSBNYXRoLnNxcnQoc3RkIC8gZGF0YS5sZW5ndGgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7ICsraSlcbiAgICAgICAgZGF0YVtpXSA9IChkYXRhW2ldIC0gbWVhbikgLyBzdGQ7XG4gICAgcmV0dXJuIGRhdGE7XG59XG4vKipcbiAqIEZpbmRzIHNldCBkaWZmZXJlbmNlIGJldHdlZW4gdHdvIGxpc3RzLlxuICogQHBhcmFtIHthbnlbXX0gYSBUaGUgZmlyc3QgbGlzdC5cbiAqIEBwYXJhbSB7YW55W119IGIgVGhlIHNlY29uZCBsaXN0LlxuICogQHJldHVybiB7YW55W119XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXREaWZmZXJlbmNlKGEsIGIpIHtcbiAgICBjb25zdCBiU2V0ID0gbmV3IFNldChiKTtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KGEuZmlsdGVyKCh4KSA9PiAhYlNldC5oYXMoeCkpKS52YWx1ZXMoKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkbVZqZEc5eUxXOXdaWEpoZEdsdmJuTXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKMlpXTjBiM0l0YjNCbGNtRjBhVzl1Y3k1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRU3hQUVVGUExFVkJRVk1zVFVGQlRTeEZRVUYxUXl4TlFVRk5MSEZDUVVGeFFpeERRVUZETzBGQlEzcEdMRTlCUVU4c1JVRkJReXhYUVVGWExFVkJRVVVzVTBGQlV5eEZRVUZETEUxQlFVMHNWVUZCVlN4RFFVRkRPMEZCUldoRU96czdPenM3TzBkQlQwYzdRVUZEU0N4TlFVRk5MRlZCUVZVc1RVRkJUU3hEUVVGRExGbEJRWEZDTEV0QlFVc3NSVUZCUlN4VlFVRnJRaXhyUWtGQmEwSTdTVUZEY2tZc1NVRkJTU3hEUVVGRExGTkJRVk03VVVGRFdpeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wRkJRemRDTEVOQlFVTTdRVUZGUkRzN096czdPenM3UjBGUlJ6dEJRVU5JTEZOQlFWTXNaVUZCWlN4RFFVRkRMRlZCUVd0Q0xFVkJRVVVzVlVGQmEwSXNSVUZCUlN4UFFVRmxMRU5CUVVNN1NVRkRMMFVzVDBGQlR5eEpRVUZKTEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFTkJRVU1zU1VGQlNTeE5RVUZOTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjZSaXhEUVVGRE8wRkJSVVE3T3pzN096czdSMEZQUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3hsUVVGbExFTkJRVU1zVFVGQll6dEpRVU0xUXl4UFFVRlBMRWxCUVVrc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETzFOQlEzWkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1NVRkJTU3hOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNSR0xFTkJRVU03UVVGRlJEczdPenM3T3pzN1IwRlJSenRCUVVOSUxFMUJRVTBzVlVGQlZTeFRRVUZUTEVOQlFVTXNRMEZCVXl4RlFVRkZMRU5CUVZNc1JVRkJSU3hoUVVGeFFpeERRVUZETzBsQlEzQkZMRTFCUVUwc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTTdTVUZGZUVJc1RVRkJUU3hEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEVOQlFVTXNUVUZCVFN4RlFVRkZMRGhDUVVFNFFpeERRVUZETEVOQlFVTTdTVUZGTTBRc1RVRkJUU3hMUVVGTExFZEJRVWNzU1VGQlNTeE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1NVRkZha01zUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRPMUZCUXk5Q0xFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVlVGQlZTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVWMFF5eFBRVUZQTEV0QlFVc3NRMEZCUXp0QlFVTm1MRU5CUVVNN1FVRkZSRHM3T3pzN1IwRkxSenRCUVVOSUxGTkJRVk1zVVVGQlVTeERRVUZETEVOQlFWTTdTVUZEZWtJc1NVRkJTU3hMUVVGTExFZEJRVWNzUTBGQlF5eERRVUZETzBsQlJXUXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRE8xRkJReTlDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRmFFSXNUMEZCVHl4TFFVRkxMRU5CUVVNN1FVRkRaaXhEUVVGRE8wRkJSVVE3T3pzN08wZEJTMGM3UVVGRFNDeFRRVUZUTEZsQlFWa3NRMEZCUXl4RFFVRlRPMGxCUXpkQ0xFMUJRVTBzVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNN1NVRkRlRUlzVFVGQlRTeExRVUZMTEVkQlFVY3NTVUZCU1N4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRmFrTXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRE8xRkJReTlDTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJSWHBDTEU5QlFVOHNTMEZCU3l4RFFVRkRPMEZCUTJZc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeFpRVUZaTEVOQlFVTXNRMEZCVXp0SlFVTndReXhKUVVGSkxFMUJRVTBzUjBGQlZ5eERRVUZETEVOQlFVTTdTVUZEZGtJc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlZ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTzFGQlEzWkRMRTFCUVUwc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM2hDTEU5QlFVOHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dEJRVU16UWl4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHZENRVUZuUWl4RFFVRkRMRVZCUVZVc1JVRkJSU3hGUVVGVk8wbEJRM0pFTEVsQlFVa3NSVUZCUlN4RFFVRkRMRTFCUVUwc1NVRkJTU3hGUVVGRkxFTkJRVU1zVFVGQlRUdFJRVU40UWl4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExEaERRVUU0UXl4RFFVRkRMRU5CUVVNN1NVRkRiRVVzU1VGQlNTeEpRVUZKTEVkQlFWY3NRMEZCUXl4RFFVRkRPMGxCUTNKQ0xFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFWY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNSVUZCUlR0UlFVTjRReXhKUVVGSkxFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU40UWl4UFFVRlBMRWxCUVVrc1EwRkJRenRCUVVOa0xFTkJRVU03UVVGRlJEczdPenM3T3pzN1IwRlJSenRCUVVOSUxFMUJRVTBzVlVGQlZTeG5Ra0ZCWjBJc1EwRkJReXhWUVVGclFpeEZRVUZGTEZWQlFXdENMRVZCUVVVc1VVRkJaMElzUlVGQlJUdEpRVU42Uml4TlFVRk5MRTFCUVUwc1IwRkJSeXhsUVVGbExFTkJRVU1zVlVGQlZTeEZRVUZGTEZWQlFWVXNRMEZCUXl4RFFVRkRPMGxCUlhaRUxFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhWUVVGVkxFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVTdVVUZEYmtNc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRlZCUVZVc1JVRkJSU3hGUVVGRkxFTkJRVU03V1VGRGFrTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEZkQlFWY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRMUVVOeVF6dEpRVU5FTEU5QlFVOHNUVUZCVFN4RFFVRkRPMEZCUTJoQ0xFTkJRVU03UVVGRlJEczdPenM3T3p0SFFVOUhPMEZCUTBnc1RVRkJUU3hWUVVGVkxEQkNRVUV3UWl4RFFVRkRMRU5CUVZNc1JVRkJSU3hEUVVGVE8wbEJRemRFTEUxQlFVMHNTVUZCU1N4SFFVRkhMRk5CUVZNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRha01zVFVGQlRTeE5RVUZOTEVkQlFVY3NXVUZCV1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRMnhETEUxQlFVMHNWVUZCVlN4SFFVRkhMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dEpRVU53UXl4UFFVRlBMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTTdRVUZETDBJc1EwRkJRenRCUVVWRU96czdPenM3TzBkQlQwYzdRVUZEU0N4TlFVRk5MRlZCUVZVc2EwSkJRV3RDTEVOQlFVTXNTVUZCWVN4RlFVRkZMRkZCUVhkQ08wbEJRM2hGTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU03U1VGRE0wSXNUVUZCVFN4TlFVRk5MRWRCUVVjc1pVRkJaU3hEUVVGRExFMUJRVTBzUlVGQlJTeE5RVUZOTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZiRVFzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFMUJRVTBzUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlR0UlFVTXZRaXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFMUJRVTBzUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlR0WlFVTnVReXhOUVVGTkxFTkJRVU1zUjBGQlZ5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlF6RkdMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMU5CUTJwRE8wdEJRMFk3U1VGRFJDeFBRVUZQTEUxQlFVMHNRMEZCUXp0QlFVTm9RaXhEUVVGRE8wRkJSVVFzYTBaQlFXdEdPMEZCUTJ4R0xFMUJRVTBzVlVGQlZTeFJRVUZSTEVOQlFVTXNTMEZCWVN4RlFVRkZMRWRCUVZjc1JVRkJSU3haUVVGWkxFZEJRVWNzUzBGQlN6dEpRVU4yUlN4TlFVRk5MRTFCUVUwc1IwRkJSeXhIUVVGSExFZEJRVWNzUzBGQlN5eEhRVUZITEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNCRUxFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NWVUZCVlN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wbEJSWFJETEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRPMUZCUXpkQ0xFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJSWGhDTEU5QlFVOHNUVUZCVFN4RFFVRkRPMEZCUTJoQ0xFTkJRVU03UVVGRlJEczdPenM3T3p0SFFVOUhPMEZCUTBnc1RVRkJUU3hWUVVGVkxFOUJRVThzUTBGQlF5eE5RVUZoTEVWQlFVVXNUMEZCVHl4SFFVRkhMRXRCUVVzN1NVRkRjRVFzVFVGQlRTeE5RVUZOTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVkVzUlVGQlJTeERRVUZSTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFWRXNSVUZCUlN4RFFVRlJMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEzWkhMRTFCUVUwc1MwRkJTeXhIUVVGSExFTkJRVU1zUTBGQlRTeEZRVUZGTEVOQlFWTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4eFFrRkJjVUk3U1VGRGJFVXNUVUZCVFN4UFFVRlBMRWRCUVVjc1EwRkJReXhEUVVGUkxFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExHMUNRVUZ0UWp0SlFVTjJSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eERRVUZETEVkQlFWVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUXpGRkxFOUJRVThzVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMEZCUXpGQ0xFTkJRVU03UVVGRlJEczdPenM3T3p0SFFVOUhPMEZCUTBnc1RVRkJUU3hWUVVGVkxHZENRVUZuUWl4RFFVRkRMRTFCUVdNc1JVRkJSU3hEUVVGVExFVkJRVVVzU1VGQmQwTTdTVUZEYkVjc1UwRkJVeXhMUVVGTExFTkJRVU1zVFVGQlowTXNSVUZCUlN4UFFVRTRRanRSUVVNM1JTeEpRVUZKTEZGQlFWRXNSMEZCUnl4SlFVRkpMRU5CUVVNN1VVRkRjRUlzU1VGQlNTeFZRVUZWTEVkQlFVY3NTVUZCU1N4RFFVRkRPMUZCUlhSQ0xFdEJRVXNzVFVGQlRTeFBRVUZQTEVsQlFVa3NUVUZCVFN4RlFVRkZPMWxCUXpWQ0xFMUJRVTBzWTBGQll5eEhRVUZITEU5QlFVOHNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRaUVVONFF5eEpRVUZKTEZWQlFWVXNTVUZCU1N4SlFVRkpMRWxCUVVrc1kwRkJZeXhIUVVGSExGVkJRVlVzUlVGQlJUdG5Ra0ZEY2tRc1VVRkJVU3hIUVVGSExFOUJRVThzUTBGQlF6dG5Ra0ZEYmtJc1ZVRkJWU3hIUVVGSExHTkJRV01zUTBGQlF6dGhRVU0zUWp0VFFVTkdPMUZCUTBRc1QwRkJUeXhSUVVGUkxFTkJRVU03U1VGRGJFSXNRMEZCUXp0SlFVVkVMRTFCUVUwc1RVRkJUU3hIUVVGSExFTkJRVU1zVTBGQlV5eERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM1pETEUxQlFVMHNWVUZCVlN4SFFVRkhMRWxCUVVrc1IwRkJSeXhGUVVGRkxFTkJRVU03U1VGRk4wSXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEUxQlFVMHNSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkJSVHRSUVVNdlFpeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGNrSXNWVUZCVlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dExRVU55UWp0SlFVVkVMRTlCUVU4c1RVRkJUU3hEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVWQlFVVTdVVUZEZUVJc1RVRkJUU3hIUVVGSExFZEJRVWNzUzBGQlN5eERRVU5tTEZWQlFWVXNRMEZCUXl4TlFVRk5MRVZCUVRoQ0xFVkJReTlETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRVZCUVVVc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eFZRVUZUTEVkQlFVY3NSVUZCUlN4TFFVRkxPMWxCUTNoRUxFOUJRVThzU1VGQlNTeERRVUZETEVOQlFVTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOMFFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRVQ3hKUVVGSkxFZEJRVWNzUlVGQlJUdFpRVU5RTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03V1VGRGFrSXNWVUZCVlN4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFRRVU40UWp0TFFVTkdPMGxCUTBRc1QwRkJUeXhOUVVGTkxFTkJRVU03UVVGRGFFSXNRMEZCUXp0QlFVVkVPenM3UjBGSFJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4VFFVRlRMRU5CUVVNc1NVRkJXVHRKUVVOd1F5eEpRVUZKTEVsQlFVa3NSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRZaXhKUVVGSkxFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZGV2l4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hGUVVGRkxFTkJRVU03VVVGRGJFTXNTVUZCU1N4SlFVRkpMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVZzUWl4SlFVRkpMRWxCUVVrc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF6dEpRVVZ3UWl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hGUVVGRkxFTkJRVU03VVVGRGJFTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRPMGxCUlRkRExFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdTVUZGYmtNc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETzFGQlEyeERMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTTdTVUZGYmtNc1QwRkJUeXhKUVVGSkxFTkJRVU03UVVGRFpDeERRVUZETzBGQlJVUTdPenM3TzBkQlMwYzdRVUZEU0N4TlFVRk5MRlZCUVZVc1lVRkJZU3hEUVVGRExFTkJRVkVzUlVGQlJTeERRVUZSTzBsQlF6bERMRTFCUVUwc1NVRkJTU3hIUVVGSExFbEJRVWtzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNoQ0xFOUJRVThzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVOQlFVTTdRVUZEY2tVc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3VFdGMGNtbDRMQ0JXWldOMGIzSXNJRU52YjNKa2FXNWhkR1Z6TENCV1pXTjBiM0p6TENCRWFYTjBZVzVqWlUxbGRISnBZMzBnWm5KdmJTQW5MaTkwZVhCbExXUmxZMnhoY21GMGFXOXVjeWM3WEc1cGJYQnZjblFnZTNKaGJtUnZiVVpzYjJGMExDQnlZVzVrYjIxSmJuUjlJR1p5YjIwZ0p5NHZjbUZ1Wkc5dEp6dGNibHh1THlvcVhHNGdLaUJCYzNObGNuUnpJR0VnWTI5dVpHbDBhVzl1SUdKNUlIUm9jbTkzYVc1bklHRnVJRVZ5Y205eUxseHVJQ3BjYmlBcUlFQmxlSEJ2Y25SY2JpQXFJRUJ3WVhKaGJTQjdZbTl2YkdWaGJuMGdXMk52Ym1ScGRHbHZiajFtWVd4elpWMGdRMjl1WkdsMGFXOXVJSFJ2SUdGemMyVnlkQzVjYmlBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYmJXVnpjMkZuWlQwblFYTnpaWEowYVc5dUlHVnljbTl5TGlkZElFMWxjM05oWjJVZ2RHOGdiM1YwY0hWMExseHVJQ29nUUhSb2NtOTNjeUI3UlhKeWIzSjlYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCaGMzTmxjblFvWTI5dVpHbDBhVzl1T2lCaWIyOXNaV0Z1SUQwZ1ptRnNjMlVzSUcxbGMzTmhaMlU2SUhOMGNtbHVaeUE5SUNkQmMzTmxjblJwYjI0Z1pYSnliM0l1SnlrZ2UxeHVJQ0JwWmlBb0lXTnZibVJwZEdsdmJpbGNiaUFnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvYldWemMyRm5aU2s3WEc1OVhHNWNiaThxS2x4dUlDb2dRM0psWVhSbGN5QnVaWGNnZEhkdkxXUnBiV1Z1YzJsdmJtRnNJR0Z5Y21GNUlHRnVaQ0JtYVd4c2N5QnBkQ0IzYVhSb0lIUm9aU0IyWVd4MVpTQm5hWFpsYmk1Y2JpQXFYRzRnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnWkdsdFpXNXphVzl1TVNCVWFHVWdabWx5YzNRZ1pHbHRaVzV6YVc5dUlHOW1JSFJvWlNCamIyOXlaR2x1WVhSbGN5QW9iblZ0WW1WeUlHOW1JSEp2ZDNNcExseHVJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJR1JwYldWdWMybHZiaklnVkdobElITmxZMjl1WkNCa2FXMWxibk5wYjI0Z2IyWWdkR2hsSUdOdmIzSmthVzVoZEdWeklDaHVkVzFpWlhJZ2IyWWdZMjlzZFcxdWN5a3VYRzRnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnVzJacGJHdzlNRjBnUVNCMllXeDFaU0IwYnlCbWFXeHNJSFJvWlNCamIyOXlaR2x1WVhSbGN5QjNhWFJvTGx4dUlDb2dRSEpsZEhWeWJpQjdRMjl2Y21ScGJtRjBaWE45SUVFZ2RIZHZMV1JwYldWdWMybHZibUZzSUdacGJHeGxaQ0IzYVhSb0lIUm9aU0IyWVd4MVpTQm5hWFpsYmk1Y2JpQXFJRUIwYjJSdklFMXBaMmgwSUdKbElITnNiM2NnYzJsdVkyVWdkWE5sWkNCQmNuSmhlUzV0WVhBdUlGQnliMkpoWW14NUlHNWxaV1J6SUhCbGNtWnZjbTFoYm1ObElISmxkbWx6YVc5dUxseHVJQ292WEc1bWRXNWpkR2x2YmlCcGJtbDBRMjl2Y21ScGJtRjBaWE1vWkdsdFpXNXphVzl1TVRvZ2JuVnRZbVZ5TENCa2FXMWxibk5wYjI0eU9pQnVkVzFpWlhJc0lHWnBiR3c2SUc1MWJXSmxjaUE5SURBcE9pQkRiMjl5WkdsdVlYUmxjeUI3WEc0Z0lISmxkSFZ5YmlCdVpYY2dRWEp5WVhrb1pHbHRaVzV6YVc5dU1Ta3VabWxzYkNobWFXeHNLUzV0WVhBb0tDa2dQVDRnS0c1bGR5QldaV04wYjNJb1pHbHRaVzV6YVc5dU1pa3VabWxzYkNobWFXeHNLU2twTzF4dWZWeHVYRzR2S2lwY2JpQXFJRlJ5WVc1emNHOXpaU0J0WVhSeWFYZ3VYRzRnS2x4dUlDb2dRR1Y0Y0c5eWRGeHVJQ29nUUhCaGNtRnRJSHROWVhSeWFYaDlJRzFoZEhKcGVDQlVhR1VnYldGMGNtbDRJSFJ2SUdKbElIUnlZVzV6Y0c5elpXUXVYRzRnS2lCQWNtVjBkWEp1SUh0TllYUnlhWGg5SUZSeVlXNXpjRzl6WldRZ2JXRjBjbWw0TGx4dUlDb2dRSFJ2Wkc4Z1RXbG5hSFFnWW1VZ2MyeHZkeUJ6YVc1alpTQjFjMlZrSUVGeWNtRjVMbTFoY0M0Z1VISnZZbUZpYkhrZ2JtVmxaSE1nY0dWeVptOXliV0Z1WTJVZ2NtVjJhWE5wYjI0dVhHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUIwY21GdWMzQnZjMlZOWVhSeWFYZ29iV0YwY21sNE9pQk5ZWFJ5YVhncE9pQk5ZWFJ5YVhnZ2UxeHVJQ0J5WlhSMWNtNGdibVYzSUVGeWNtRjVLRzFoZEhKcGVGc3dYUzVzWlc1bmRHZ3BMbVpwYkd3b01DbGNiaUFnSUNBdWJXRndLQ2hmTENCcEtTQTlQaUFvYm1WM0lGWmxZM1J2Y2lodFlYUnlhWGd1YkdWdVozUm9LUzVtYVd4c0tEQXBMbTFoY0Nnb1h5d2dhaWtnUFQ0Z0tHMWhkSEpwZUZ0cVhWdHBYU2twS1NrN1hHNTlYRzVjYmk4cUtseHVJQ29nUVdSa2N5QjBkMjhnZG1WamRHOXljeUIzYVhSb0lIUm9aU0J6WldOdmJtUWdiMjVsSUhSdklHSmxJRzExYkhScGNHeHBaV1FnWW5rZ2RHaGxJR2RwZG1WdUlISmhkR2x2TGx4dUlDcGNiaUFxSUVCbGVIQnZjblJjYmlBcUlFQndZWEpoYlNCN1ZtVmpkRzl5ZlNCd0lGUm9aU0JtYVhKemRDQjJaV04wYjNJZ2RHOGdZV1JrTGx4dUlDb2dRSEJoY21GdElIdFdaV04wYjNKOUlIRWdWR2hsSUhObFkyOXVaQ0IyWldOMGIzSWdkRzhnWVdSa0xseHVJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJRnR0ZFd4MGFYQnNhV1Z5UFRGZElFRWdiWFZzZEdsd2JHbGxjaUIwYnlCaVpTQjFjMlZrSUdKbFptOXlaU0IwYUdVZ2MyVmpiMjVrSUhabFkzUnZjaUJwY3lCaFpHUmxaQzVjYmlBcUlFQnlaWFIxY200Z2UxWmxZM1J2Y24wZ1RtVjNJSFpsWTNSdmNpQmpiMjUwWVdsdVpXUWdkR2hsSUhKbGMzVnNkQ0J2WmlCdmNHVnlZWFJwYjI0Z2NDdHRkV3gwYVhCc2FXVnlLbkV1WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQjJaV04wYjNKQlpHUW9jRG9nVm1WamRHOXlMQ0J4T2lCV1pXTjBiM0lzSUcxMWJIUnBjR3hwWlhJNklHNTFiV0psY2lBOUlERXBPaUJXWldOMGIzSWdlMXh1SUNCamIyNXpkQ0J1U1hSbGJYTWdQU0J3TG14bGJtZDBhRHRjYmx4dUlDQmhjM05sY25Rb2JrbDBaVzF6SUQwOUlIRXViR1Z1WjNSb0xDQW5WbVZqZEc5eUlHeGxibWQwYUhNZ1pHOGdibTkwSUcxaGRHTm9MaWNwTzF4dVhHNGdJR052Ym5OMElIUnZkR0ZzSUQwZ2JtVjNJRlpsWTNSdmNpaHVTWFJsYlhNcE8xeHVYRzRnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2NDNXNaVzVuZEdnN0lDc3JhU2xjYmlBZ0lDQjBiM1JoYkZ0cFhTQTlJSEJiYVYwZ0t5QnRkV3gwYVhCc2FXVnlJQ29nY1Z0cFhUdGNibHh1SUNCeVpYUjFjbTRnZEc5MFlXdzdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1UzVnRjeUIwYUdVZ2RtVmpkRzl5SjNNZ2FYUmxiWE11WEc0Z0tseHVJQ29nUUhCaGNtRnRJSHRXWldOMGIzSjlJSFlnVkdobElIWmxZM1J2Y2lCMGJ5QmlaU0J6ZFcxdFpXUXVYRzRnS2lCQWNtVjBkWEp1SUh0dWRXMWlaWEo5SUZSb1pTQjJaV04wYjNJbmN5QnBkR1Z0Y3lCemRXMHVYRzRnS2k5Y2JtWjFibU4wYVc5dUlHbDBaVzF6VTNWdEtIWTZJRlpsWTNSdmNpazZJRzUxYldKbGNpQjdYRzRnSUd4bGRDQjBiM1JoYkNBOUlEQTdYRzVjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQjJMbXhsYm1kMGFEc2dLeXRwS1Z4dUlDQWdJSFJ2ZEdGc0lDczlJSFpiYVYwN1hHNWNiaUFnY21WMGRYSnVJSFJ2ZEdGc08xeHVmVnh1WEc0dktpcGNiaUFxSUZOMWNXRnlaWE1nZEdobElIWmxZM1J2Y2lkeklHbDBaVzF6TGx4dUlDcGNiaUFxSUVCd1lYSmhiU0I3Vm1WamRHOXlmU0IySUZSb1pTQjJaV04wYjNJZ2RHOGdjM0YxWVhKbExseHVJQ29nUUhKbGRIVnliaUI3Vm1WamRHOXlmU0JCSUc1bGR5QjJaV04wYjNJZ1kyOXVkR0ZwYm1sdVp5QjBhR1VnYjNKcFoybHVZV3duY3lCcGRHVnRjeUJ6Y1hWaGNtVmtMbHh1SUNvdlhHNW1kVzVqZEdsdmJpQjJaV04wYjNKVGNYVmhjbVVvZGpvZ1ZtVmpkRzl5S1RvZ1ZtVmpkRzl5SUh0Y2JpQWdZMjl1YzNRZ2JrbDBaVzF6SUQwZ2RpNXNaVzVuZEdnN1hHNGdJR052Ym5OMElIUnZkR0ZzSUQwZ2JtVjNJRlpsWTNSdmNpaHVTWFJsYlhNcE8xeHVYRzRnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2RpNXNaVzVuZEdnN0lDc3JhU2xjYmlBZ0lDQjBiM1JoYkZ0cFhTQTlJSFpiYVYwZ0tpQjJXMmxkTzF4dVhHNGdJSEpsZEhWeWJpQjBiM1JoYkR0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSFpsWTNSdmNreGxibWQwYUNoMk9pQldaV04wYjNJcE9pQnVkVzFpWlhJZ2UxeHVJQ0JzWlhRZ2MzRnlVM1Z0T2lCdWRXMWlaWElnUFNBd08xeHVJQ0JtYjNJZ0tHeGxkQ0JwT2lCdWRXMWlaWElnUFNBd095QnBJRHdnZGk1c1pXNW5kR2c3SUdrckt5bGNiaUFnSUNCemNYSlRkVzBnS3owZ2RsdHBYU0FxSUhaYmFWMDdYRzRnSUhKbGRIVnliaUJOWVhSb0xuTnhjblFvYzNGeVUzVnRLVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlIWmxZM1J2Y2tSdmRGQnliMlIxWTNRb2RqRTZJRlpsWTNSdmNpd2dkakk2SUZabFkzUnZjaWs2SUc1MWJXSmxjaUI3WEc0Z0lHbG1JQ2gyTVM1c1pXNW5kR2dnSVQwZ2RqSXViR1Z1WjNSb0tWeHVJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWduVkdobElHUnBiV1Z1YzJsdmJtRnNhWFI1SUc5bUlIUm9aU0IyWldOMGIzSnpJRzExYzNRZ2JXRjBZMmduS1R0Y2JpQWdiR1YwSUhCeWIyUTZJRzUxYldKbGNpQTlJREE3WEc0Z0lHWnZjaUFvYkdWMElHazZJRzUxYldKbGNpQTlJREE3SUdrZ1BDQjJNUzVzWlc1bmRHZzdJR2tyS3lsY2JpQWdJQ0J3Y205a0lDczlJSFl4VzJsZElDb2dkakpiYVYwN1hHNGdJSEpsZEhWeWJpQndjbTlrTzF4dWZWeHVYRzR2S2lwY2JpQXFJRU55WldGMFpYTWdZU0J0WVhSeWFYZ2dabWxzYkdWa0lIZHBkR2dnY21GdVpHOXRJR1pzYjJGMGFXNW5JSEJ2YVc1MElIWmhiSFZsY3k1Y2JpQXFYRzRnS2lCQVpYaHdiM0owWEc0Z0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1pHbHRaVzV6YVc5dU1TQlVhR1VnWm1seWMzUWdaR2x0Wlc1emFXOXVJRzltSUhSb1pTQnRZWFJ5YVhndVhHNGdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdaR2x0Wlc1emFXOXVNaUJVYUdVZ2MyVmpiMjVrSUdScGJXVnVjMmx2YmlCdlppQjBhR1VnYldGMGNtbDRMbHh1SUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUZ0elkyRnNaVDB4TGwwZ1RXRjRJSFpoYkhWbElHZHBkbVZ1SUdKNUlISmhibVJ2YlNCblpXNWxjbUYwYjNJdVhHNGdLaUJBY21WMGRYSnVJSHROWVhSeWFYaDlJRUVnYm1WM0lHMWhkSEpwZUNCbWFXeHNaV1FnZDJsMGFDQnlZVzVrYjIwZ1pteHZZWFJwYm1jZ2NHOXBiblFnSUhaaGJIVmxjeTVjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHWnBiR3hTWVc1a2IyMU5ZWFJ5YVhnb1pHbHRaVzV6YVc5dU1Ub2diblZ0WW1WeUxDQmthVzFsYm5OcGIyNHlPaUJ1ZFcxaVpYSXNJSE5qWVd4bE9pQnVkVzFpWlhJZ1BTQXhMaWs2SUUxaGRISnBlQ0I3WEc0Z0lHTnZibk4wSUcxaGRISnBlQ0E5SUdsdWFYUkRiMjl5WkdsdVlYUmxjeWhrYVcxbGJuTnBiMjR4TENCa2FXMWxibk5wYjI0eUtUdGNibHh1SUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElHUnBiV1Z1YzJsdmJqRTdJQ3NyYVNrZ2UxeHVJQ0FnSUdadmNpQW9iR1YwSUdvZ1BTQXdPeUJxSUR3Z1pHbHRaVzV6YVc5dU1qc2dLeXRxS1Z4dUlDQWdJQ0FnYldGMGNtbDRXMmxkVzJwZElEMGdjbUZ1Wkc5dFJteHZZWFFvYzJOaGJHVXBPMXh1SUNCOVhHNGdJSEpsZEhWeWJpQnRZWFJ5YVhnN1hHNTlYRzVjYmk4cUtseHVJQ29nUTJGc1kzVnNZWFJsY3lCRmRXTnNhV1JsWVc0Z1pHbHpkR0Z1WTJVZ1ltVjBkMlZsYmlCMGQyOGdkbVZqZEc5eWN5NWNiaUFxWEc0Z0tpQkFaWGh3YjNKMFhHNGdLaUJBY0dGeVlXMGdlMVpsWTNSdmNuMGdjQ0JVYUdVZ1ptbHljM1FnZG1WamRHOXlMbHh1SUNvZ1FIQmhjbUZ0SUh0V1pXTjBiM0o5SUhFZ1ZHaGxJSE5sWTI5dVpDQjJaV04wYjNJdVhHNGdLaUJBY21WMGRYSnVJSHR1ZFcxaVpYSjlJRVYxWTJ4cFpHVmhiaUJrYVhOMFlXNWpaU0JpWlhSM1pXVnVJSFJvWlNCbmFYWmxiaUIyWldOMGIzSnpMbHh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1kyRnNZM1ZzWVhSbFJYVmpiR2xrWldGdVJHbHpkR0Z1WTJVb2NEb2dWbVZqZEc5eUxDQnhPaUJXWldOMGIzSXBPaUJ1ZFcxaVpYSWdlMXh1SUNCamIyNXpkQ0JrYVdabUlEMGdkbVZqZEc5eVFXUmtLSEFzSUhFc0lDMHhLVHRjYmlBZ1kyOXVjM1FnYzNGa2FXWm1JRDBnZG1WamRHOXlVM0YxWVhKbEtHUnBabVlwTzF4dUlDQmpiMjV6ZENCemNXUnBabVpUZFcxdElEMGdhWFJsYlhOVGRXMG9jM0ZrYVdabUtUdGNiaUFnY21WMGRYSnVJRTFoZEdndWMzRnlkQ2h6Y1dScFptWlRkVzF0S1R0Y2JuMWNibHh1THlvcVhHNGdLaUJEY21WaGRHVnpJR0VnWkdsemRHRnVZMlVnYldGMGNtbDRJSFZ6YVc1bklHRWdZM1Z6ZEc5dElHUnBjM1JoYm1ObElHWjFibU4wYVc5dUxseHVJQ3BjYmlBcUlFQmxlSEJ2Y25SY2JpQXFJRUJ3WVhKaGJTQjdWbVZqZEc5eWMzMGdaR0YwWVNCSmJuQjFkQ0IyWldOMGIzSnpJSFJ2SUdOaGJHTjFiR0YwWlNCa2FYTjBZVzVqWlhNdVhHNGdLaUJBY0dGeVlXMGdlMFJwYzNSaGJtTmxUV1YwY21samZTQmthWE4wWVc1alpTQkRkWE4wYjIwZ1pHbHpkR0Z1WTJVZ1puVnVZM1JwYjI0dVhHNGdLaUJBY21WMGRYSnVJSHROWVhSeWFYaDlJRU5oYkdOMWJHRjBaV1FnWTNWemRHOXRJR1JwYzNSaGJtTmxJRzFoZEhKcGVDNWNiaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdOaGJHTkVhWE4wWVc1alpVMWhkSEpwZUNoa1lYUmhPaUJXWldOMGIzSnpMQ0JrYVhOMFlXNWpaVG9nUkdsemRHRnVZMlZOWlhSeWFXTXBPaUJOWVhSeWFYZ2dlMXh1SUNCamIyNXpkQ0J1U1hSbGJYTWdQU0JrWVhSaExteGxibWQwYUR0Y2JpQWdZMjl1YzNRZ2JXRjBjbWw0SUQwZ2FXNXBkRU52YjNKa2FXNWhkR1Z6S0c1SmRHVnRjeXdnYmtsMFpXMXpMQ0F3S1R0Y2JseHVJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUc1SmRHVnRjenNnS3l0cEtTQjdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FpQTlJR2tnS3lBeE95QnFJRHdnYmtsMFpXMXpPeUFySzJvcElIdGNiaUFnSUNBZ0lHTnZibk4wSUdRNklHNTFiV0psY2lBOUlDaGtZWFJoVzJsZElEMDlJRzUxYkd3cElIeDhJQ2hrWVhSaFcycGRJRDA5SUc1MWJHd3BJRDhnTUNBNklHUnBjM1JoYm1ObEtHUmhkR0ZiYVYwc0lHUmhkR0ZiYWwwcE8xeHVJQ0FnSUNBZ2JXRjBjbWw0VzJsZFcycGRJRDBnYldGMGNtbDRXMnBkVzJsZElEMGdaRHRjYmlBZ0lDQjlYRzRnSUgxY2JpQWdjbVYwZFhKdUlHMWhkSEpwZUR0Y2JuMWNibHh1THlvcUlFZGxibVZ5WVhSbGN5QmhjbkpoZVNCbWNtOXRJR0VnY21GdVoyVWdXMkpsWjJsdU95QmxibVJkSUc5eUlGdGlaV2RwYmpzZ1pXNWtLU0JwWmlCbGJtUkZlR05zZFhOcGRtVXVJQ29xTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdkbGJsSmhibWRsS0dKbFoybHVPaUJ1ZFcxaVpYSXNJR1Z1WkRvZ2JuVnRZbVZ5TENCbGJtUkZlR05zZFhOcGRtVWdQU0JtWVd4elpTazZJRWx1ZERNeVFYSnlZWGtnZTF4dUlDQmpiMjV6ZENCdVNYUmxiWE1nUFNCbGJtUWdMU0JpWldkcGJpQXJJQ2hsYm1SRmVHTnNkWE5wZG1VZ1B5QXdJRG9nTVNrN1hHNGdJR052Ym5OMElITmxjbWxsY3lBOUlHNWxkeUJKYm5Rek1rRnljbUY1S0c1SmRHVnRjeWs3WEc1Y2JpQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0J1U1hSbGJYTTdJQ3NyYVNsY2JpQWdJQ0J6WlhKcFpYTmJhVjBnUFNCaVpXZHBiaUFySUdrN1hHNWNiaUFnY21WMGRYSnVJSE5sY21sbGN6dGNibjFjYmx4dUx5b3FYRzRnS2lCU1pYUjFjbTV6SUc5eVpHVnlJRzltSUhaaGJIVmxjeUJoY3lCcFppQjBhR1Y1SUdGeVpTQnpiM0owWldRdVhHNGdLbHh1SUNvZ1FHVjRjRzl5ZEZ4dUlDb2dRSEJoY21GdElIdGhibmxiWFgwZ2RtRnNkV1Z6SUVsdWNIVjBJR0Z5Y21GNUxseHVJQ29nUUhCaGNtRnRJSHRpYjI5c1pXRnVmU0JiY21WMlpYSnpaVDFtWVd4elpWMGdWMmhsZEdobGNpQjBieUJ5WlhSMWNtNGdjbVYyWlhKelpXUWdiM0prWlhJdVhHNGdLaUJBY21WMGRYSnVJSHR1ZFcxaVpYSmJYWDBnVkdobElHOXlaR1Z5SUdOdmJYQjFkR1ZrTGx4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZWEpuVTI5eWRDaDJZV3gxWlhNNklHRnVlVnRkTENCeVpYWmxjbk5sSUQwZ1ptRnNjMlVwT2lCdWRXMWlaWEpiWFNCN1hHNGdJR052Ym5OMElITnZjblJtYmlBOUlISmxkbVZ5YzJVZ1B5QW9ZVG9nWVc1NVcxMHNJR0k2SUdGdWVWdGRLU0E5UGlBb1lsc3dYU0F0SUdGYk1GMHBJRG9nS0dFNklHRnVlVnRkTENCaU9pQmhibmxiWFNrZ1BUNGdLR0ZiTUYwZ0xTQmlXekJkS1R0Y2JpQWdZMjl1YzNRZ1pHVmpiM0lnUFNBb2Rqb2dZVzU1TENCcE9pQnVkVzFpWlhJcElEMCtJRnQyTENCcFhUc2dMeThnYzJWMElHbHVaR1Y0SUhSdklIWmhiSFZsWEc0Z0lHTnZibk4wSUhWdVpHVmpiM0lnUFNBb1lUb2dZVzU1VzEwcElEMCtJR0ZiTVYwN0lDOHZJR3hsWVhabElHOXViSGtnYVc1a1pYaGNiaUFnWTI5dWMzUWdYMkZ5WjNOdmNuUWdQU0FvWVhKeU9pQmhibmxiWFNrZ1BUNGdZWEp5TG0xaGNDaGtaV052Y2lrdWMyOXlkQ2h6YjNKMFptNHBMbTFoY0NoMWJtUmxZMjl5S1R0Y2JpQWdjbVYwZFhKdUlGOWhjbWR6YjNKMEtIWmhiSFZsY3lrN1hHNTlYRzVjYmk4cUtseHVJQ29nVW1WMGRYSnVjeUIwYUdVZ2FXNWtaWGhsY3lCdlppQjBhR1VnYlc5emRDQmthWFpsY25ObElHOWlhbVZqZEhNZ1lXTmpiM0prYVc1bklIUnZJSFJvWlNCa2FYTjBJR1oxYm1OMGFXOXVYRzRnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnYkdWdVozUm9JSFJ2ZEdGc0lHNTFiV0psY2lCdlppQnZZbXBsWTNSelhHNGdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdiaUJ1ZFcxaVpYSWdiMllnWkdsMlpYSnpaU0JsYkdWdFpXNTBjeUIwYnlCbWFXNWtYRzRnS2lCQWNHRnlZVzBnZXlocE1Ub2diblZ0WW1WeUxDQnBNam9nYm5WdFltVnlLU0E5UGlCdWRXMWlaWEo5SUdScGMzUWdZU0JtZFc1amRHbHZiaUIzYUdsamFDQmpZV3hqZFd4aGRHVnpJR1JwYzNSaGJtTmxJR0psZEhkbFpXNWNiaUFxSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBkMjhnYjJKcVpXTjBjeUIxYzJsdVp5QjBhR1ZwY2lCcGJtUmxlR1Z6WEc0Z0tpQkFjbVYwZFhKdWN5QjdiblZ0WW1WeVcxMTlJRlJvWlNCcGJtUmxlR1Z6SUc5bUlIUm9aU0J0YjNOMElHUnBkbVZ5YzJVZ2IySnFaV04wYzF4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdaMlYwUkdsMlpYSnpaVk4xWW5ObGRDaHNaVzVuZEdnNklHNTFiV0psY2l3Z2Jqb2diblZ0WW1WeUxDQmthWE4wT2lBb2FURTZJRzUxYldKbGNpd2dhVEk2SUc1MWJXSmxjaWtnUFQ0Z2JuVnRZbVZ5S1RvZ2JuVnRZbVZ5VzEwZ2UxeHVJQ0JtZFc1amRHbHZiaUJ0WVhoQ2VTaDJZV3gxWlhNNklFbDBaWEpoWW14bFNYUmxjbUYwYjNJOGJuVnRZbVZ5UGl3Z2IzSmtaWEpDZVRvZ0tHazZJRzUxYldKbGNpa2dQVDRnYm5WdFltVnlLU0I3WEc0Z0lDQWdiR1YwSUcxaGVGWmhiSFZsSUQwZ2JuVnNiRHRjYmlBZ0lDQnNaWFFnYldGNFQzSmtaWEpDZVNBOUlHNTFiR3c3WEc1Y2JpQWdJQ0JtYjNJZ0tHTnZibk4wSUdWc1pXMWxiblFnYjJZZ2RtRnNkV1Z6S1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JsYkdWdFpXNTBUM0prWlhKQ2VTQTlJRzl5WkdWeVFua29aV3hsYldWdWRDazdYRzRnSUNBZ0lDQnBaaUFvYldGNFQzSmtaWEpDZVNBOVBTQnVkV3hzSUh4OElHVnNaVzFsYm5SUGNtUmxja0o1SUQ0Z2JXRjRUM0prWlhKQ2VTa2dlMXh1SUNBZ0lDQWdJQ0J0WVhoV1lXeDFaU0E5SUdWc1pXMWxiblE3WEc0Z0lDQWdJQ0FnSUcxaGVFOXlaR1Z5UW5rZ1BTQmxiR1Z0Wlc1MFQzSmtaWEpDZVR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlHMWhlRlpoYkhWbE8xeHVJQ0I5WEc1Y2JpQWdZMjl1YzNRZ2MzVmljMlYwSUQwZ1czSmhibVJ2YlVsdWRDaHNaVzVuZEdnZ0xTQXhLVjA3WEc0Z0lHTnZibk4wSUdOdmJYQnNaVzFsYm5RZ1BTQnVaWGNnVTJWMEtDazdYRzVjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnNaVzVuZEdnN0lDc3JhU2tnZTF4dUlDQWdJR2xtSUNnaGMzVmljMlYwTG1sdVkyeDFaR1Z6S0drcEtWeHVJQ0FnSUNBZ1kyOXRjR3hsYldWdWRDNWhaR1FvYVNrN1hHNGdJSDFjYmx4dUlDQjNhR2xzWlNBb2MzVmljMlYwTG14bGJtZDBhQ0E4SUc0cElIdGNiaUFnSUNCamIyNXpkQ0JwWkhnZ1BTQnRZWGhDZVNoY2JpQWdJQ0FnSUdOdmJYQnNaVzFsYm5RdWRtRnNkV1Z6S0NrZ1lYTWdTWFJsY21GaWJHVkpkR1Z5WVhSdmNqeHVkVzFpWlhJK0xGeHVJQ0FnSUNBZ0tHa3BJRDArSUUxaGRHZ3ViV2x1TG1Gd2NHeDVLRTFoZEdnc0lITjFZbk5sZEM1dFlYQW9ablZ1WTNScGIyNG9kbUZzTENCcGJtUmxlQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWkdsemRDaHBMQ0IyWVd3cE8xeHVJQ0FnSUNBZ2ZTa3BLVHRjYmlBZ0lDQnBaaUFvYVdSNEtTQjdYRzRnSUNBZ0lDQnpkV0p6WlhRdWNIVnphQ2hwWkhncE8xeHVJQ0FnSUNBZ1kyOXRjR3hsYldWdWRDNWtaV3hsZEdVb2FXUjRLVHRjYmlBZ0lDQjlYRzRnSUgxY2JpQWdjbVYwZFhKdUlITjFZbk5sZER0Y2JuMWNibHh1THlvcVhHNGdLaUJTWlhSMWNtNXpJRzV2Y20xaGJHbDZaV1FnZG1WamRHOXlYRzRnS2lCQWNHRnlZVzBnZTFabFkzUnZjbjBnWkdGMFlTQnVkVzFsY21sallXd2dZWEp5WVhsY2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRzV2Y20xaGJHbDZaU2hrWVhSaE9pQldaV04wYjNJcE9pQldaV04wYjNJZ2UxeHVJQ0JzWlhRZ2JXVmhiaUE5SURBN1hHNGdJR3hsZENCemRHUWdQU0F3TzF4dVhHNGdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnWkdGMFlTNXNaVzVuZEdnN0lDc3JhU2xjYmlBZ0lDQnRaV0Z1SUNzOUlHUmhkR0ZiYVYwN1hHNWNiaUFnYldWaGJpQXZQU0JrWVhSaExteGxibWQwYUR0Y2JseHVJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUdSaGRHRXViR1Z1WjNSb095QXJLMmtwWEc0Z0lDQWdjM1JrSUNzOUlDaGtZWFJoVzJsZElDMGdiV1ZoYmlrZ0tpQW9aR0YwWVZ0cFhTQXRJRzFsWVc0cE8xeHVYRzRnSUhOMFpDQTlJRTFoZEdndWMzRnlkQ2h6ZEdRZ0x5QmtZWFJoTG14bGJtZDBhQ2s3WEc1Y2JpQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0JrWVhSaExteGxibWQwYURzZ0t5dHBLVnh1SUNBZ0lHUmhkR0ZiYVYwZ1BTQW9aR0YwWVZ0cFhTQXRJRzFsWVc0cElDOGdjM1JrTzF4dVhHNGdJSEpsZEhWeWJpQmtZWFJoTzF4dWZWeHVYRzR2S2lwY2JpQXFJRVpwYm1SeklITmxkQ0JrYVdabVpYSmxibU5sSUdKbGRIZGxaVzRnZEhkdklHeHBjM1J6TGx4dUlDb2dRSEJoY21GdElIdGhibmxiWFgwZ1lTQlVhR1VnWm1seWMzUWdiR2x6ZEM1Y2JpQXFJRUJ3WVhKaGJTQjdZVzU1VzExOUlHSWdWR2hsSUhObFkyOXVaQ0JzYVhOMExseHVJQ29nUUhKbGRIVnliaUI3WVc1NVcxMTlYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCelpYUkVhV1ptWlhKbGJtTmxLR0U2SUdGdWVWdGRMQ0JpT2lCaGJubGJYU2s2SUdGdWVWdGRJSHRjYmlBZ1kyOXVjM1FnWWxObGRDQTlJRzVsZHlCVFpYUW9ZaWs3WEc0Z0lISmxkSFZ5YmlCQmNuSmhlUzVtY205dEtHNWxkeUJUWlhRb1lTNW1hV3gwWlhJb0tIZ3BJRDArSUNGaVUyVjBMbWhoY3loNEtTa3BMblpoYkhWbGN5Z3BLVHRjYm4xY2JpSmRmUT09IiwiaW1wb3J0IHsgU2VxUGFsZXR0ZUJhc2UgfSBmcm9tICcuL3NlcS1wYWxldHRlcyc7XG5leHBvcnQgY2xhc3MgQW1pbm9hY2lkc1BhbGV0dGVzIGV4dGVuZHMgU2VxUGFsZXR0ZUJhc2Uge1xuICAgIHN0YXRpYyBnZXQgTGVzaygpIHtcbiAgICAgICAgaWYgKHRoaXMubGVzayA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgICB0aGlzLmxlc2sgPSB0aGlzLm1ha2VQYWxldHRlKFtcbiAgICAgICAgICAgICAgICBbWydHJywgJ0EnLCAnUycsICdUJ10sICdvcmFuZ2UnXSxcbiAgICAgICAgICAgICAgICBbWydDJywgJ1YnLCAnSScsICdMJywgJ1AnLCAnRicsICdZJywgJ00nLCAnVyddLCAnYWxsX2dyZWVuJ10sXG4gICAgICAgICAgICAgICAgW1snTicsICdRJywgJ0gnXSwgJ21hZ2VudGEnXSxcbiAgICAgICAgICAgICAgICBbWydEJywgJ0UnXSwgJ3JlZCddLFxuICAgICAgICAgICAgICAgIFtbJ0snLCAnUiddLCAnYWxsX2JsdWUnXSxcbiAgICAgICAgICAgIF0sIGZhbHNlLCBBbWlub2FjaWRzUGFsZXR0ZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmxlc2s7XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgR3Jva0dyb3VwcygpIHtcbiAgICAgICAgaWYgKHRoaXMuZ3Jva0dyb3VwcyA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgICB0aGlzLmdyb2tHcm91cHMgPSB0aGlzLm1ha2VQYWxldHRlKFtcbiAgICAgICAgICAgICAgICBbWydDJywgJ1UnXSwgJ3llbGxvdyddLFxuICAgICAgICAgICAgICAgIFtbJ0cnLCAnUCddLCAncmVkJ10sXG4gICAgICAgICAgICAgICAgW1snQScsICdWJywgJ0knLCAnTCcsICdNJywgJ0YnLCAnWScsICdXJ10sICdhbGxfZ3JlZW4nXSxcbiAgICAgICAgICAgICAgICBbWydSJywgJ0gnLCAnSyddLCAnbGlnaHRfYmx1ZSddLFxuICAgICAgICAgICAgICAgIFtbJ0QnLCAnRSddLCAnZGFya19ibHVlJ10sXG4gICAgICAgICAgICAgICAgW1snUycsICdUJywgJ04nLCAnUSddLCAnb3JhbmdlJ10sXG4gICAgICAgICAgICBdLCBmYWxzZSwgQW1pbm9hY2lkc1BhbGV0dGVzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5ncm9rR3JvdXBzO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0IFJhc01vbCgpIHtcbiAgICAgICAgaWYgKHRoaXMucmFzTW9sID09PSB2b2lkIDApIHtcbiAgICAgICAgICAgIHRoaXMucmFzTW9sID0gbmV3IEFtaW5vYWNpZHNQYWxldHRlcyh7XG4gICAgICAgICAgICAgICAgLy8gaHR0cDovL2FjY2VzLmVucy1seW9uLmZyL2Jpb3RpYy9yYXN0b3AvaGVscC9jb2xvdXIuaHRtXG4gICAgICAgICAgICAgICAgJ0QnOiAnI0U2MEEwQScsXG4gICAgICAgICAgICAgICAgJ0UnOiAnI0U2MEEwQScsXG4gICAgICAgICAgICAgICAgJ0MnOiAnI0U2RTYwMCcsXG4gICAgICAgICAgICAgICAgJ00nOiAnI0U2RTYwMCcsXG4gICAgICAgICAgICAgICAgJ0snOiAnIzE0NUFGRicsXG4gICAgICAgICAgICAgICAgJ1InOiAnIzE0NUFGRicsXG4gICAgICAgICAgICAgICAgJ1MnOiAnI0ZBOTYwMCcsXG4gICAgICAgICAgICAgICAgJ1QnOiAnI0ZBOTYwMCcsXG4gICAgICAgICAgICAgICAgJ0YnOiAnIzMyMzJBQScsXG4gICAgICAgICAgICAgICAgJ1knOiAnIzMyMzJBQScsXG4gICAgICAgICAgICAgICAgJ04nOiAnIzAwRENEQycsXG4gICAgICAgICAgICAgICAgJ1EnOiAnIzAwRENEQycsXG4gICAgICAgICAgICAgICAgJ0cnOiAnI0VCRUJFQicsXG4gICAgICAgICAgICAgICAgJ0wnOiAnIzBGODIwRicsXG4gICAgICAgICAgICAgICAgJ1YnOiAnIzBGODIwRicsXG4gICAgICAgICAgICAgICAgJ0knOiAnIzBGODIwRicsXG4gICAgICAgICAgICAgICAgJ0EnOiAnI0M4QzhDOCcsXG4gICAgICAgICAgICAgICAgJ1cnOiAnI0I0NUFCNCcsXG4gICAgICAgICAgICAgICAgJ0gnOiAnIzgyODJEMicsXG4gICAgICAgICAgICAgICAgJ1AnOiAnI0RDOTY4MicsXG4gICAgICAgICAgICAgICAgJ290aGVycyc6ICcjQkVBMDZFJyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnJhc01vbDtcbiAgICB9XG4gICAgZ2V0KG0pIHtcbiAgICAgICAgY29uc3QgcmVzTSA9IG0gaW4gQW1pbm9hY2lkc1BhbGV0dGVzLmFhU3lub255bXMgPyBBbWlub2FjaWRzUGFsZXR0ZXMuYWFTeW5vbnltc1ttXSA6IG07XG4gICAgICAgIGNvbnN0IHJlcyA9IHN1cGVyLmdldChyZXNNKTtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG59XG4vKiogT25seSBzb21lIG9mIHRoZSBzeW5vbnltcy4gVGhlc2Ugd2VyZSBvYnRhaW5lZCBmcm9tIHRoZSBjbHVzdGVyZWQgb2xpZ29wZXB0aWRlIGRhdGFzZXQuICovXG5BbWlub2FjaWRzUGFsZXR0ZXMuYWFTeW5vbnltcyA9IHtcbiAgICAnTWVObGUnOiAnTCcsXG4gICAgJ01lQSc6ICdBJyxcbiAgICAnTWVHJzogJ0cnLFxuICAgICdNZUYnOiAnRicsXG59O1xuZXhwb3J0IGNsYXNzIEFtaW5vYWNpZHMge1xuICAgIHN0YXRpYyBnZXRQYWxldHRlKHNjaGVtZSA9ICdncm9rJykge1xuICAgICAgICBzd2l0Y2ggKHNjaGVtZSkge1xuICAgICAgICAgICAgY2FzZSAnZ3Jvayc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEFtaW5vYWNpZHNQYWxldHRlcy5Hcm9rR3JvdXBzO1xuICAgICAgICAgICAgY2FzZSAnbGVzayc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEFtaW5vYWNpZHNQYWxldHRlcy5MZXNrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENoZW1QYWxldHRlOiBzY2hlbWUgXFxgJHtzY2hlbWV9XFxgIGRvZXMgbm90IGV4aXN0YCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBkaXZpZGVkIGFtaW5vIGFjaWQgd2l0aCBpdHMgY29udGVudCBpbiB0aGUgYnJhY2tldCwgaWYgdGhlIGNvbnRlbnQgaXMgbnVtYmVyLCB0aGVuIGl0cyBvbWl0dGVkXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gYyByYXcgYW1pbm9cbiAgICAgKiBAcmV0dXJuIHtbc3RyaW5nLCBzdHJpbmddfSBvdXRlciBhbmQgaW5uZXIgY29udGVudFxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRJbm5lck91dGVyKGMpIHtcbiAgICAgICAgbGV0IGlzSW5uZXIgPSAwO1xuICAgICAgICBsZXQgaW5uZXIgPSAnJztcbiAgICAgICAgbGV0IG91dGVyID0gJyc7XG4gICAgICAgIGZvciAoY29uc3QgY2hhciBvZiBjKSB7XG4gICAgICAgICAgICBpZiAoY2hhciA9PSAnKCcpXG4gICAgICAgICAgICAgICAgaXNJbm5lcisrO1xuICAgICAgICAgICAgZWxzZSBpZiAoY2hhciA9PSAnKScpXG4gICAgICAgICAgICAgICAgaXNJbm5lci0tO1xuICAgICAgICAgICAgZWxzZSBpZiAoaXNJbm5lcilcbiAgICAgICAgICAgICAgICBpbm5lciArPSBjaGFyO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIG91dGVyICs9IGNoYXI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICFpc05hTihwYXJzZUludChpbm5lcikpID8gW291dGVyLCAnJ10gOiBbb3V0ZXIsIGlubmVyXTtcbiAgICB9XG4gICAgc3RhdGljIGdldENvbG9yQUFQaXZvdChtb25vbWVyID0gJycsIHNjaGVtZSA9ICdncm9rJykge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgLy9jb25zdCBjaGVtUGFsZXR0ZUluc3RhbmNlID0gQUFQYWxldHRlcy5Hcm9rR3JvdXBzKCk7XG4gICAgICAgIGNvbnN0IGNoZW1QYWxldHRlSW5zdGFuY2UgPSB0aGlzLmdldFBhbGV0dGUoc2NoZW1lKTtcbiAgICAgICAgbGV0IFtvdXRlck1vbm9tZXIsIGlubmVyTW9ub21lcl0gPSB0aGlzLmdldElubmVyT3V0ZXIobW9ub21lcik7XG4gICAgICAgIG91dGVyTW9ub21lciA9IChvdXRlck1vbm9tZXIubGVuZ3RoID4gNiA/IGAke291dGVyTW9ub21lci5zbGljZSgwLCAzKX0uLi5gIDogb3V0ZXJNb25vbWVyKTtcbiAgICAgICAgaW5uZXJNb25vbWVyID0gKGlubmVyTW9ub21lci5sZW5ndGggPiA2ID8gYCR7aW5uZXJNb25vbWVyLnNsaWNlKDAsIDMpfS4uLmAgOiBpbm5lck1vbm9tZXIpO1xuICAgICAgICBpZiAobW9ub21lci5sZW5ndGggPT0gMSB8fCBtb25vbWVyWzFdID09ICcoJykge1xuICAgICAgICAgICAgY29uc3QgYW1pbm8gPSAoX2EgPSBtb25vbWVyWzBdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgIHJldHVybiBhbWlubyBpbiBjaGVtUGFsZXR0ZUluc3RhbmNlID9cbiAgICAgICAgICAgICAgICBbY2hlbVBhbGV0dGVJbnN0YW5jZS5nZXQoYW1pbm8pLCBhbWlubywgaW5uZXJNb25vbWVyLCAxXSA6XG4gICAgICAgICAgICAgICAgW3RoaXMudW5kZWZpbmVkQ29sb3IsIG91dGVyTW9ub21lciwgaW5uZXJNb25vbWVyLCAxXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobW9ub21lclswXSA9PSAnZCcgJiYgbW9ub21lclsxXSBpbiBjaGVtUGFsZXR0ZUluc3RhbmNlKSB7XG4gICAgICAgICAgICBpZiAobW9ub21lci5sZW5ndGggPT0gMiB8fCBtb25vbWVyWzJdID09ICcoJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFtaW5vID0gKF9iID0gbW9ub21lclsxXSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFtaW5vIGluIGNoZW1QYWxldHRlSW5zdGFuY2UgP1xuICAgICAgICAgICAgICAgICAgICBbY2hlbVBhbGV0dGVJbnN0YW5jZS5nZXQoYW1pbm8pLCBhbWlubywgaW5uZXJNb25vbWVyLCAyXSA6XG4gICAgICAgICAgICAgICAgICAgIFt0aGlzLnVuZGVmaW5lZENvbG9yLCBvdXRlck1vbm9tZXIsIGlubmVyTW9ub21lciwgMl07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1vbm9tZXIuc3Vic3RyaW5nKDAsIDMpIGluIHRoaXMuQUFGdWxsTmFtZXMpIHtcbiAgICAgICAgICAgIGlmIChtb25vbWVyLmxlbmd0aCA9PSAzIHx8IG1vbm9tZXJbM10gPT0gJygnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYW1pbm8gPSB0aGlzLkFBRnVsbE5hbWVzW21vbm9tZXIuc3Vic3RyaW5nKDAsIDMpXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYW1pbm8gaW4gY2hlbVBhbGV0dGVJbnN0YW5jZSA/XG4gICAgICAgICAgICAgICAgICAgIFtjaGVtUGFsZXR0ZUluc3RhbmNlLmdldChhbWlubyksIGFtaW5vLCBpbm5lck1vbm9tZXIsIDNdIDpcbiAgICAgICAgICAgICAgICAgICAgW3RoaXMudW5kZWZpbmVkQ29sb3IsIG91dGVyTW9ub21lciwgaW5uZXJNb25vbWVyLCAzXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoKChfYyA9IG1vbm9tZXJbMF0pID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy50b0xvd2VyQ2FzZSgpKSA9PSBtb25vbWVyWzBdKSB7XG4gICAgICAgICAgICBpZiAobW9ub21lci5zdWJzdHJpbmcoMSwgMykgaW4gdGhpcy5BQUZ1bGxOYW1lcykge1xuICAgICAgICAgICAgICAgIGlmIChtb25vbWVyLmxlbmd0aCA9PSA0IHx8IG1vbm9tZXJbNF0gPT0gJygnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFtaW5vID0gdGhpcy5BQUZ1bGxOYW1lc1ttb25vbWVyLnN1YnN0cmluZygxLCAzKV07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhbWlubyBpbiBjaGVtUGFsZXR0ZUluc3RhbmNlID9cbiAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVtUGFsZXR0ZUluc3RhbmNlLmdldChhbWlubyksIGFtaW5vLCBpbm5lck1vbm9tZXIsIDRdIDpcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0aGlzLnVuZGVmaW5lZENvbG9yLCBvdXRlck1vbm9tZXIsIGlubmVyTW9ub21lciwgNF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbdGhpcy51bmRlZmluZWRDb2xvciwgb3V0ZXJNb25vbWVyLCBpbm5lck1vbm9tZXIsIDBdO1xuICAgIH1cbn1cbkFtaW5vYWNpZHMuU2VtVHlwZSA9ICdBbWlub2FjaWRzJztcbkFtaW5vYWNpZHMuU2VtVHlwZU11bHRpcGxlQWxpZ25tZW50ID0gJ0FtaW5vYWNpZHNNdWx0aXBsZUFsaWdubWVudCc7XG5BbWlub2FjaWRzLnVuZGVmaW5lZENvbG9yID0gJ3JnYigxMDAsMTAwLDEwMCknO1xuQW1pbm9hY2lkcy5OYW1lcyA9IHtcbiAgICAnRyc6ICdHbHljaW5lJyxcbiAgICAnTCc6ICdMZXVjaW5lJyxcbiAgICAnWSc6ICdUeXJvc2luZScsXG4gICAgJ1MnOiAnU2VyaW5lJyxcbiAgICAnRSc6ICdHbHV0YW1pYyBhY2lkJyxcbiAgICAnUSc6ICdHbHV0YW1pbmUnLFxuICAgICdEJzogJ0FzcGFydGljIGFjaWQnLFxuICAgICdOJzogJ0FzcGFyYWdpbmUnLFxuICAgICdGJzogJ1BoZW55bGFsYW5pbmUnLFxuICAgICdBJzogJ0FsYW5pbmUnLFxuICAgICdLJzogJ0x5c2luZScsXG4gICAgJ1InOiAnQXJnaW5pbmUnLFxuICAgICdIJzogJ0hpc3RpZGluZScsXG4gICAgJ0MnOiAnQ3lzdGVpbmUnLFxuICAgICdWJzogJ1ZhbGluZScsXG4gICAgJ1AnOiAnUHJvbGluZScsXG4gICAgJ1cnOiAnVHJ5cHRvcGhhbicsXG4gICAgJ0knOiAnSXNvbGV1Y2luZScsXG4gICAgJ00nOiAnTWV0aGlvbmluZScsXG4gICAgJ1QnOiAnVGhyZW9uaW5lJyxcbn07XG5BbWlub2FjaWRzLkFBU21pbGVzID0ge1xuICAgICdHJzogJ05DQyg9TylPJyxcbiAgICAnTCc6ICdOW0NASF0oQ0MoQylDKUMoPU8pTycsXG4gICAgJ1knOiAnTkMoQ0MxPUNDPUMoTylDPUMxKUMoPU8pTycsXG4gICAgJ1MnOiAnTkMoQ08pQyg9TylPJyxcbiAgICAnRSc6ICdOW0NAQEhdKENDQyhPKT1PKUMoPU8pTycsXG4gICAgJ1EnOiAnTltDQEBIXShDQ0MoTik9TylDKD1PKU8nLFxuICAgICdEJzogJ05bQ0BASF0oQ0MoTyk9TylDKD1PKU8nLFxuICAgICdOJzogJ05bQ0BASF0oQ0MoTik9TylDKD1PKU8nLFxuICAgICdGJzogJ05DKENDMT1DQz1DQz1DMSlDKD1PKU8nLFxuICAgICdBJzogJ05bQ0BIXShDKUMoPU8pTycsXG4gICAgJ0snOiAnTkMoQ0NDQ04pQyg9TylPJyxcbiAgICAnUic6ICdOW0NASF0oQ0NDTkMoPU4pQylDKD1PKU8nLFxuICAgICdIJzogJ05DKENDMT1DTj1DW05dMSlDKD1PKU8nLFxuICAgICdDJzogJ05bQ0BASF0oQ1MpQyg9TylPJyxcbiAgICAnVic6ICdOQyhDKEMpQylDKD1PKU8nLFxuICAgICdQJzogJ04oQ0NDMSlDMUMoPU8pTycsXG4gICAgJ1cnOiAnTltDQEBIXShDYzFjMmNjY2NjMm4oW0hdKWMxKUMoPU8pTycsXG4gICAgJ0knOiAnTltDQEhdKFtDQEhdKEMpQ0MpQyg9TylPJyxcbiAgICAnTSc6ICdOQyhDQ1NDKUMoPU8pTycsXG4gICAgJ1QnOiAnTkMoQyhPKUMpQyg9TylPJyxcbn07XG5BbWlub2FjaWRzLkFBU21pbGVzVHJ1bmNhdGVkID0ge1xuICAgICdHJzogJypDKicsXG4gICAgJ0wnOiAnQ0MoQylDW0NASF0oKikqJyxcbiAgICAnWSc6ICdDMT1DQyg9Q0M9QzFDQygqKSopTycsXG4gICAgJ1MnOiAnT0NDKCopQyonLFxuICAgICdFJzogJypbQ0BASF0oQ0NDKE8pPU8pKicsXG4gICAgJ1EnOiAnKk5bQ0BASF0oQ0NDKE4pPU8pKicsXG4gICAgJ0QnOiAnKltDQEBIXShDQyhPKT1PKSonLFxuICAgICdOJzogJypbQ0BASF0oQ0MoTik9TykqJyxcbiAgICAnRic6ICdDMT1DQz1DKEM9QzEpQ0MoKikqJyxcbiAgICAnQSc6ICdDW0NASF0oKikqJyxcbiAgICAnSyc6ICdDKENDTilDQygqKSonLFxuICAgICdSJzogJypbQ0BIXShDQ0NOQyg9TilDKSonLFxuICAgICdIJzogJ0MxPUMoTkM9TjEpQ0MoKikqJyxcbiAgICAnQyc6ICdDKFtDQEBIXSgqKSopUycsXG4gICAgJ1YnOiAnQ0MoQylDKCopKicsXG4gICAgJ1AnOiAnQzFDQ04oKilDMSonLFxuICAgICdXJzogJypbQ0BASF0oQ2MxYzJjY2NjYzJuKFtIXSljMSkqJyxcbiAgICAnSSc6ICdDQ1tDQEhdKEMpW0NASF0oKikqJyxcbiAgICAnTSc6ICdDU0NDQygqKSonLFxuICAgICdUJzogJ0NDKE8pQygqKSonLFxufTtcbi8qKiBUT0RPOiBGdWxsP1xuICovXG5BbWlub2FjaWRzLkFBRnVsbE5hbWVzID0ge1xuICAgICdBbGEnOiAnQScsXG4gICAgJ0FyZyc6ICdSJyxcbiAgICAnQXNuJzogJ04nLFxuICAgICdBc3AnOiAnRCcsXG4gICAgJ0N5cyc6ICdDJyxcbiAgICAnR2xuJzogJ1EnLFxuICAgICdHbHUnOiAnRScsXG4gICAgJ0dseSc6ICdHJyxcbiAgICAnSGlzJzogJ0gnLFxuICAgICdJbGUnOiAnSScsXG4gICAgJ0xldSc6ICdMJyxcbiAgICAnTHlzJzogJ0snLFxuICAgICdNZXQnOiAnTScsXG4gICAgJ1BoZSc6ICdGJyxcbiAgICAnUHJvJzogJ1AnLFxuICAgICdTZXInOiAnUycsXG4gICAgJ1Rocic6ICdUJyxcbiAgICAnVHJwJzogJ1cnLFxuICAgICdUeXInOiAnWScsXG4gICAgJ1ZhbCc6ICdWJyxcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lZVzFwYm05aFkybGtjeTVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYkltRnRhVzV2WVdOcFpITXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUzBFc1QwRkJUeXhGUVVGaExHTkJRV01zUlVGQlF5eE5RVUZOTEdkQ1FVRm5RaXhEUVVGRE8wRkJSVEZFTEUxQlFVMHNUMEZCVHl4clFrRkJiVUlzVTBGQlVTeGpRVUZqTzBsQlJ6ZERMRTFCUVUwc1MwRkJTeXhKUVVGSk8xRkJRM0JDTEVsQlFVa3NTVUZCU1N4RFFVRkRMRWxCUVVrc1MwRkJTeXhMUVVGTExFTkJRVU1zUlVGQlJUdFpRVU40UWl4SlFVRkpMRU5CUVVNc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTTdaMEpCUXpOQ0xFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJTeFJRVUZSTEVOQlFVTTdaMEpCUTJoRExFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEZkQlFWY3NRMEZCUXp0blFrRkROVVFzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExFVkJRVVVzVTBGQlV5eERRVUZETzJkQ1FVTTFRaXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMRXRCUVVzc1EwRkJRenRuUWtGRGJrSXNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJTeFZRVUZWTEVOQlFVTTdZVUZEZWtJc1JVRkJSU3hMUVVGTExFVkJRVVVzYTBKQlFXdENMRU5CUVVNc1EwRkJRenRUUVVNdlFqdFJRVU5FTEU5QlFVOHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJRenRKUVVOdVFpeERRVUZETzBsQlNVMHNUVUZCVFN4TFFVRkxMRlZCUVZVN1VVRkRNVUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNWVUZCVlN4TFFVRkxMRXRCUVVzc1EwRkJReXhGUVVGRk8xbEJRemxDTEVsQlFVa3NRMEZCUXl4VlFVRlZMRWRCUVVjc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF6dG5Ra0ZEYWtNc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNSVUZCUlN4UlFVRlJMRU5CUVVNN1owSkJRM1JDTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExFVkJRVVVzUzBGQlN5eERRVUZETzJkQ1FVTnVRaXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxGZEJRVmNzUTBGQlF6dG5Ra0ZEZGtRc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRVZCUVVVc1dVRkJXU3hEUVVGRE8yZENRVU12UWl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEZkQlFWY3NRMEZCUXp0blFrRkRla0lzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEZGQlFWRXNRMEZCUXp0aFFVTnFReXhGUVVGRkxFdEJRVXNzUlVGQlJTeHJRa0ZCYTBJc1EwRkJReXhEUVVGRE8xTkJReTlDTzFGQlEwUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRE8wbEJRM3BDTEVOQlFVTTdTVUZKVFN4TlFVRk5MRXRCUVVzc1RVRkJUVHRSUVVOMFFpeEpRVUZKTEVsQlFVa3NRMEZCUXl4TlFVRk5MRXRCUVVzc1MwRkJTeXhEUVVGRExFVkJRVVU3V1VGRE1VSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhKUVVGSkxHdENRVUZyUWl4RFFVRkRPMmRDUVVOdVF5eDVSRUZCZVVRN1owSkJRM3BFTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRkZCUVZFc1JVRkJSU3hUUVVGVE8yRkJRM0JDTEVOQlFVTXNRMEZCUXp0VFFVTktPMUZCUTBRc1QwRkJUeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETzBsQlEzSkNMRU5CUVVNN1NVRkZaU3hIUVVGSExFTkJRVU1zUTBGQlV6dFJRVU16UWl4TlFVRk5MRWxCUVVrc1IwRkJSeXhEUVVGRExFbEJRVWtzYTBKQlFXdENMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOMlJpeE5RVUZOTEVkQlFVY3NSMEZCUnl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFGQlF6VkNMRTlCUVU4c1IwRkJSeXhEUVVGRE8wbEJRMklzUTBGQlF6czdRVUZGUkN3NFJrRkJPRVk3UVVGREwwVXNOa0pCUVZVc1IwRkJLMEk3U1VGRGRFUXNUMEZCVHl4RlFVRkZMRWRCUVVjN1NVRkRXaXhMUVVGTExFVkJRVVVzUjBGQlJ6dEpRVU5XTEV0QlFVc3NSVUZCUlN4SFFVRkhPMGxCUTFZc1MwRkJTeXhGUVVGRkxFZEJRVWM3UTBGRFdDeERRVUZETzBGQlIwb3NUVUZCVFN4UFFVRlBMRlZCUVZVN1NVRnhSMlFzVFVGQlRTeERRVUZETEZWQlFWVXNRMEZCUXl4VFFVRnBRaXhOUVVGTk8xRkJRemxETEZGQlFWRXNUVUZCVFN4RlFVRkZPMWxCUTJoQ0xFdEJRVXNzVFVGQlRUdG5Ra0ZEVkN4UFFVRlBMR3RDUVVGclFpeERRVUZETEZWQlFWVXNRMEZCUXp0WlFVTjJReXhMUVVGTExFMUJRVTA3WjBKQlExUXNUMEZCVHl4clFrRkJhMElzUTBGQlF5eEpRVUZKTEVOQlFVTTdXVUZEYWtNN1owSkJRMFVzVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl4NVFrRkJlVUlzVFVGQlRTeHRRa0ZCYlVJc1EwRkJReXhEUVVGRE8xTkJRM0pGTzBsQlEwZ3NRMEZCUXp0SlFVVkVPenM3T3p0UFFVdEhPMGxCUTBrc1RVRkJUU3hEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZUTzFGQlEyNURMRWxCUVVrc1QwRkJUeXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU5vUWl4SlFVRkpMRXRCUVVzc1IwRkJSeXhGUVVGRkxFTkJRVU03VVVGRFppeEpRVUZKTEV0QlFVc3NSMEZCUnl4RlFVRkZMRU5CUVVNN1VVRkZaaXhMUVVGTExFMUJRVTBzU1VGQlNTeEpRVUZKTEVOQlFVTXNSVUZCUlR0WlFVTndRaXhKUVVGSkxFbEJRVWtzU1VGQlNTeEhRVUZITzJkQ1FVTmlMRTlCUVU4c1JVRkJSU3hEUVVGRE8ybENRVU5RTEVsQlFVa3NTVUZCU1N4SlFVRkpMRWRCUVVjN1owSkJRMnhDTEU5QlFVOHNSVUZCUlN4RFFVRkRPMmxDUVVOUUxFbEJRVWtzVDBGQlR6dG5Ra0ZEWkN4TFFVRkxMRWxCUVVrc1NVRkJTU3hEUVVGRE96dG5Ra0ZGWkN4TFFVRkxMRWxCUVVrc1NVRkJTU3hEUVVGRE8xTkJRMnBDTzFGQlJVUXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzBsQlEyaEZMRU5CUVVNN1NVRkZUU3hOUVVGTkxFTkJRVU1zWlVGQlpTeERRVUZETEZWQlFXdENMRVZCUVVVc1JVRkJSU3hUUVVGcFFpeE5RVUZOT3p0UlFVTjZSU3h6UkVGQmMwUTdVVUZEZEVRc1RVRkJUU3h0UWtGQmJVSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzFGQlEzQkVMRWxCUVVrc1EwRkJReXhaUVVGWkxFVkJRVVVzV1VGQldTeERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU12UkN4WlFVRlpMRWRCUVVjc1EwRkJReXhaUVVGWkxFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhaUVVGWkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0UlFVTXpSaXhaUVVGWkxFZEJRVWNzUTBGQlF5eFpRVUZaTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eFpRVUZaTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRSUVVVelJpeEpRVUZKTEU5QlFVOHNRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhKUVVGSkxFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4SFFVRkhMRVZCUVVVN1dVRkROVU1zVFVGQlRTeExRVUZMTEVkQlFVY3NUVUZCUVN4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExEQkRRVUZGTEZkQlFWY3NSVUZCUnl4RFFVRkRPMWxCUTNwRExFOUJRVThzUzBGQlN5eEpRVUZKTEcxQ1FVRnRRaXhEUVVGRExFTkJRVU03WjBKQlEyNURMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFdEJRVXNzUlVGQlJTeFpRVUZaTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRE1VUXNRMEZCUXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhGUVVGRkxGbEJRVmtzUlVGQlJTeFpRVUZaTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1UwRkRlRVE3VVVGRlJDeEpRVUZKTEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hIUVVGSExFbEJRVWtzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUlN4SlFVRkpMRzFDUVVGdFFpeEZRVUZGTzFsQlF6TkVMRWxCUVVrc1QwRkJUeXhEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEVsQlFVa3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFZEJRVWNzUlVGQlJUdG5Ra0ZETlVNc1RVRkJUU3hMUVVGTExFZEJRVWNzVFVGQlFTeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMREJEUVVGRkxGZEJRVmNzUlVGQlJ5eERRVUZETzJkQ1FVTjZReXhQUVVGUExFdEJRVXNzU1VGQlNTeHRRa0ZCYlVJc1EwRkJReXhEUVVGRE8yOUNRVU51UXl4RFFVRkRMRzFDUVVGdFFpeERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hMUVVGTExFVkJRVVVzV1VGQldTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN2IwSkJRekZFTEVOQlFVTXNTVUZCU1N4RFFVRkRMR05CUVdNc1JVRkJSU3haUVVGWkxFVkJRVVVzV1VGQldTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMkZCUTNoRU8xTkJRMFk3VVVGRlJDeEpRVUZKTEU5QlFVOHNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVsQlFVa3NRMEZCUXl4WFFVRlhMRVZCUVVVN1dVRkRMME1zU1VGQlNTeFBRVUZQTEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1NVRkJTU3hQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NSMEZCUnl4RlFVRkZPMmRDUVVNMVF5eE5RVUZOTEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFOUJRVThzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlEzaEVMRTlCUVU4c1MwRkJTeXhKUVVGSkxHMUNRVUZ0UWl4RFFVRkRMRU5CUVVNN2IwSkJRMjVETEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRXRCUVVzc1JVRkJSU3haUVVGWkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0dlFrRkRNVVFzUTBGQlF5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RlFVRkZMRmxCUVZrc1JVRkJSU3haUVVGWkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdZVUZEZUVRN1UwRkRSanRSUVVWRUxFbEJRVWtzUTBGQlFTeE5RVUZCTEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc01FTkJRVVVzVjBGQlZ5eEZRVUZGTEV0QlFVa3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRk8xbEJRek5ETEVsQlFVa3NUMEZCVHl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRmRCUVZjc1JVRkJSVHRuUWtGREwwTXNTVUZCU1N4UFFVRlBMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zU1VGQlNTeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1IwRkJSeXhGUVVGRk8yOUNRVU0xUXl4TlFVRk5MRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEU5QlFVOHNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdiMEpCUTNoRUxFOUJRVThzUzBGQlN5eEpRVUZKTEcxQ1FVRnRRaXhEUVVGRExFTkJRVU03ZDBKQlEyNURMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFdEJRVXNzUlVGQlJTeFpRVUZaTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenQzUWtGRE1VUXNRMEZCUXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhGUVVGRkxGbEJRVmtzUlVGQlJTeFpRVUZaTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN2FVSkJRM2hFTzJGQlEwWTdVMEZEUmp0UlFVVkVMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zWTBGQll5eEZRVUZGTEZsQlFWa3NSVUZCUlN4WlFVRlpMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRE9VUXNRMEZCUXpzN1FVRndUR1VzYTBKQlFVOHNSMEZCVnl4WlFVRlpMRU5CUVVNN1FVRkZMMElzYlVOQlFYZENMRWRCUVZjc05rSkJRVFpDTEVOQlFVTTdRVUZGTVVVc2VVSkJRV01zUjBGQlJ5eHJRa0ZCYTBJc1EwRkJRenRCUVVVM1FpeG5Ra0ZCU3l4SFFVRnhRanRKUVVOMFF5eEhRVUZITEVWQlFVVXNVMEZCVXp0SlFVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8wbEJRMlFzUjBGQlJ5eEZRVUZGTEZWQlFWVTdTVUZEWml4SFFVRkhMRVZCUVVVc1VVRkJVVHRKUVVOaUxFZEJRVWNzUlVGQlJTeGxRVUZsTzBsQlEzQkNMRWRCUVVjc1JVRkJSU3hYUVVGWE8wbEJRMmhDTEVkQlFVY3NSVUZCUlN4bFFVRmxPMGxCUTNCQ0xFZEJRVWNzUlVGQlJTeFpRVUZaTzBsQlEycENMRWRCUVVjc1JVRkJSU3hsUVVGbE8wbEJRM0JDTEVkQlFVY3NSVUZCUlN4VFFVRlRPMGxCUTJRc1IwRkJSeXhGUVVGRkxGRkJRVkU3U1VGRFlpeEhRVUZITEVWQlFVVXNWVUZCVlR0SlFVTm1MRWRCUVVjc1JVRkJSU3hYUVVGWE8wbEJRMmhDTEVkQlFVY3NSVUZCUlN4VlFVRlZPMGxCUTJZc1IwRkJSeXhGUVVGRkxGRkJRVkU3U1VGRFlpeEhRVUZITEVWQlFVVXNVMEZCVXp0SlFVTmtMRWRCUVVjc1JVRkJSU3haUVVGWk8wbEJRMnBDTEVkQlFVY3NSVUZCUlN4WlFVRlpPMGxCUTJwQ0xFZEJRVWNzUlVGQlJTeFpRVUZaTzBsQlEycENMRWRCUVVjc1JVRkJSU3hYUVVGWE8wTkJRMnBDTEVOQlFVTTdRVUZGV1N4dFFrRkJVU3hIUVVGeFFqdEpRVU42UXl4SFFVRkhMRVZCUVVVc1ZVRkJWVHRKUVVObUxFZEJRVWNzUlVGQlJTeHpRa0ZCYzBJN1NVRkRNMElzUjBGQlJ5eEZRVUZGTERKQ1FVRXlRanRKUVVOb1F5eEhRVUZITEVWQlFVVXNZMEZCWXp0SlFVTnVRaXhIUVVGSExFVkJRVVVzZVVKQlFYbENPMGxCUXpsQ0xFZEJRVWNzUlVGQlJTeDVRa0ZCZVVJN1NVRkRPVUlzUjBGQlJ5eEZRVUZGTEhkQ1FVRjNRanRKUVVNM1FpeEhRVUZITEVWQlFVVXNkMEpCUVhkQ08wbEJRemRDTEVkQlFVY3NSVUZCUlN4M1FrRkJkMEk3U1VGRE4wSXNSMEZCUnl4RlFVRkZMR2xDUVVGcFFqdEpRVU4wUWl4SFFVRkhMRVZCUVVVc2FVSkJRV2xDTzBsQlEzUkNMRWRCUVVjc1JVRkJSU3d3UWtGQk1FSTdTVUZETDBJc1IwRkJSeXhGUVVGRkxIZENRVUYzUWp0SlFVTTNRaXhIUVVGSExFVkJRVVVzYlVKQlFXMUNPMGxCUTNoQ0xFZEJRVWNzUlVGQlJTeHBRa0ZCYVVJN1NVRkRkRUlzUjBGQlJ5eEZRVUZGTEdsQ1FVRnBRanRKUVVOMFFpeEhRVUZITEVWQlFVVXNiME5CUVc5RE8wbEJRM3BETEVkQlFVY3NSVUZCUlN3d1FrRkJNRUk3U1VGREwwSXNSMEZCUnl4RlFVRkZMR2RDUVVGblFqdEpRVU55UWl4SFFVRkhMRVZCUVVVc2FVSkJRV2xDTzBOQlEzWkNMRU5CUVVNN1FVRkZXU3cwUWtGQmFVSXNSMEZCY1VJN1NVRkRiRVFzUjBGQlJ5eEZRVUZGTEV0QlFVczdTVUZEVml4SFFVRkhMRVZCUVVVc2FVSkJRV2xDTzBsQlEzUkNMRWRCUVVjc1JVRkJSU3h6UWtGQmMwSTdTVUZETTBJc1IwRkJSeXhGUVVGRkxGVkJRVlU3U1VGRFppeEhRVUZITEVWQlFVVXNiMEpCUVc5Q08wbEJRM3BDTEVkQlFVY3NSVUZCUlN4eFFrRkJjVUk3U1VGRE1VSXNSMEZCUnl4RlFVRkZMRzFDUVVGdFFqdEpRVU40UWl4SFFVRkhMRVZCUVVVc2JVSkJRVzFDTzBsQlEzaENMRWRCUVVjc1JVRkJSU3h4UWtGQmNVSTdTVUZETVVJc1IwRkJSeXhGUVVGRkxGbEJRVms3U1VGRGFrSXNSMEZCUnl4RlFVRkZMR05CUVdNN1NVRkRia0lzUjBGQlJ5eEZRVUZGTEhGQ1FVRnhRanRKUVVNeFFpeEhRVUZITEVWQlFVVXNiVUpCUVcxQ08wbEJRM2hDTEVkQlFVY3NSVUZCUlN4blFrRkJaMEk3U1VGRGNrSXNSMEZCUnl4RlFVRkZMRmxCUVZrN1NVRkRha0lzUjBGQlJ5eEZRVUZGTEdGQlFXRTdTVUZEYkVJc1IwRkJSeXhGUVVGRkxDdENRVUVyUWp0SlFVTndReXhIUVVGSExFVkJRVVVzY1VKQlFYRkNPMGxCUXpGQ0xFZEJRVWNzUlVGQlJTeFhRVUZYTzBsQlEyaENMRWRCUVVjc1JVRkJSU3haUVVGWk8wTkJRMnhDTEVOQlFVTTdRVUZGUmp0SFFVTkhPMEZCUTFjc2MwSkJRVmNzUjBGQmNVSTdTVUZETlVNc1MwRkJTeXhGUVVGRkxFZEJRVWM3U1VGRFZpeExRVUZMTEVWQlFVVXNSMEZCUnp0SlFVTldMRXRCUVVzc1JVRkJSU3hIUVVGSE8wbEJRMVlzUzBGQlN5eEZRVUZGTEVkQlFVYzdTVUZEVml4TFFVRkxMRVZCUVVVc1IwRkJSenRKUVVOV0xFdEJRVXNzUlVGQlJTeEhRVUZITzBsQlExWXNTMEZCU3l4RlFVRkZMRWRCUVVjN1NVRkRWaXhMUVVGTExFVkJRVVVzUjBGQlJ6dEpRVU5XTEV0QlFVc3NSVUZCUlN4SFFVRkhPMGxCUTFZc1MwRkJTeXhGUVVGRkxFZEJRVWM3U1VGRFZpeExRVUZMTEVWQlFVVXNSMEZCUnp0SlFVTldMRXRCUVVzc1JVRkJSU3hIUVVGSE8wbEJRMVlzUzBGQlN5eEZRVUZGTEVkQlFVYzdTVUZEVml4TFFVRkxMRVZCUVVVc1IwRkJSenRKUVVOV0xFdEJRVXNzUlVGQlJTeEhRVUZITzBsQlExWXNTMEZCU3l4RlFVRkZMRWRCUVVjN1NVRkRWaXhMUVVGTExFVkJRVVVzUjBGQlJ6dEpRVU5XTEV0QlFVc3NSVUZCUlN4SFFVRkhPMGxCUTFZc1MwRkJTeXhGUVVGRkxFZEJRVWM3U1VGRFZpeExRVUZMTEVWQlFVVXNSMEZCUnp0RFFVTllMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ0tpQmhjeUJuY205cklHWnliMjBnSjJSaGRHRm5jbTlyTFdGd2FTOW5jbTlySnp0Y2JtbHRjRzl5ZENBcUlHRnpJSFZwSUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5MWFTYzdYRzVwYlhCdmNuUWdLaUJoY3lCRVJ5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaR2NuTzF4dVhHNXBiWEJ2Y25RZ2UxTjBjbWx1WjBScFkzUnBiMjVoY25sOUlHWnliMjBnSjBCa1lYUmhaM0p2YXkxc2FXSnlZWEpwWlhNdmRYUnBiSE12YzNKakwzUjVjR1V0WkdWamJHRnlZWFJwYjI1ekp6dGNibWx0Y0c5eWRDQjdVMlZ4VUdGc1pYUjBaU3dnVTJWeFVHRnNaWFIwWlVKaGMyVjlJR1p5YjIwZ0p5NHZjMlZ4TFhCaGJHVjBkR1Z6Snp0Y2JseHVaWGh3YjNKMElHTnNZWE56SUVGdGFXNXZZV05wWkhOUVlXeGxkSFJsY3lCbGVIUmxibVJ6SUZObGNWQmhiR1YwZEdWQ1lYTmxJSHRjYmlBZ2NISnBkbUYwWlNCemRHRjBhV01nYkdWemF6b2dVMlZ4VUdGc1pYUjBaVHRjYmx4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUdkbGRDQk1aWE5yS0NrNklGTmxjVkJoYkdWMGRHVWdlMXh1SUNBZ0lHbG1JQ2gwYUdsekxteGxjMnNnUFQwOUlIWnZhV1FnTUNrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTVzWlhOcklEMGdkR2hwY3k1dFlXdGxVR0ZzWlhSMFpTaGJYRzRnSUNBZ0lDQWdJRnRiSjBjbkxDQW5RU2NzSUNkVEp5d2dKMVFuWFN3Z0oyOXlZVzVuWlNkZExGeHVJQ0FnSUNBZ0lDQmJXeWRESnl3Z0oxWW5MQ0FuU1Njc0lDZE1KeXdnSjFBbkxDQW5SaWNzSUNkWkp5d2dKMDBuTENBblZ5ZGRMQ0FuWVd4c1gyZHlaV1Z1SjEwc1hHNGdJQ0FnSUNBZ0lGdGJKMDRuTENBblVTY3NJQ2RJSjEwc0lDZHRZV2RsYm5SaEoxMHNYRzRnSUNBZ0lDQWdJRnRiSjBRbkxDQW5SU2RkTENBbmNtVmtKMTBzWEc0Z0lDQWdJQ0FnSUZ0Ykowc25MQ0FuVWlkZExDQW5ZV3hzWDJKc2RXVW5YU3hjYmlBZ0lDQWdJRjBzSUdaaGJITmxMQ0JCYldsdWIyRmphV1J6VUdGc1pYUjBaWE1wTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVzWlhOck8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQnpkR0YwYVdNZ1ozSnZhMGR5YjNWd2N6b2dVMlZ4VUdGc1pYUjBaVHRjYmx4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUdkbGRDQkhjbTlyUjNKdmRYQnpLQ2s2SUZObGNWQmhiR1YwZEdVZ2UxeHVJQ0FnSUdsbUlDaDBhR2x6TG1keWIydEhjbTkxY0hNZ1BUMDlJSFp2YVdRZ01Da2dlMXh1SUNBZ0lDQWdkR2hwY3k1bmNtOXJSM0p2ZFhCeklEMGdkR2hwY3k1dFlXdGxVR0ZzWlhSMFpTaGJYRzRnSUNBZ0lDQWdJRnRiSjBNbkxDQW5WU2RkTENBbmVXVnNiRzkzSjEwc1hHNGdJQ0FnSUNBZ0lGdGJKMGNuTENBblVDZGRMQ0FuY21Wa0oxMHNYRzRnSUNBZ0lDQWdJRnRiSjBFbkxDQW5WaWNzSUNkSkp5d2dKMHduTENBblRTY3NJQ2RHSnl3Z0oxa25MQ0FuVnlkZExDQW5ZV3hzWDJkeVpXVnVKMTBzWEc0Z0lDQWdJQ0FnSUZ0YkoxSW5MQ0FuU0Njc0lDZExKMTBzSUNkc2FXZG9kRjlpYkhWbEoxMHNYRzRnSUNBZ0lDQWdJRnRiSjBRbkxDQW5SU2RkTENBblpHRnlhMTlpYkhWbEoxMHNYRzRnSUNBZ0lDQWdJRnRiSjFNbkxDQW5WQ2NzSUNkT0p5d2dKMUVuWFN3Z0oyOXlZVzVuWlNkZExGeHVJQ0FnSUNBZ1hTd2dabUZzYzJVc0lFRnRhVzV2WVdOcFpITlFZV3hsZEhSbGN5azdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtZHliMnRIY205MWNITTdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJSE4wWVhScFl5QnlZWE5OYjJ3NklGTmxjVkJoYkdWMGRHVTdYRzVjYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJuWlhRZ1VtRnpUVzlzS0NrNklGTmxjVkJoYkdWMGRHVWdlMXh1SUNBZ0lHbG1JQ2gwYUdsekxuSmhjMDF2YkNBOVBUMGdkbTlwWkNBd0tTQjdYRzRnSUNBZ0lDQjBhR2x6TG5KaGMwMXZiQ0E5SUc1bGR5QkJiV2x1YjJGamFXUnpVR0ZzWlhSMFpYTW9lMXh1SUNBZ0lDQWdJQ0F2THlCb2RIUndPaTh2WVdOalpYTXVaVzV6TFd4NWIyNHVabkl2WW1sdmRHbGpMM0poYzNSdmNDOW9aV3h3TDJOdmJHOTFjaTVvZEcxY2JpQWdJQ0FnSUNBZ0owUW5PaUFuSTBVMk1FRXdRU2NzSUM4dklHRnpjQ3dnWVhOd1lYSjBhV01nWVdOcFpDd2dZWE53WEc0Z0lDQWdJQ0FnSUNkRkp6b2dKeU5GTmpCQk1FRW5MQ0F2THlCbmJIVXNJR2RzZFhSaGJXbGpJR0ZqYVdSY2JpQWdJQ0FnSUNBZ0owTW5PaUFuSTBVMlJUWXdNQ2NzSUM4dklHTjVjeXdnWTNsemRHVnBibVZjYmlBZ0lDQWdJQ0FnSjAwbk9pQW5JMFUyUlRZd01DY3NJQzh2SUcxbGRDd2diV1YwYUdsdmJtbHVaVnh1SUNBZ0lDQWdJQ0FuU3ljNklDY2pNVFExUVVaR0p5d2dMeThnYkhsekxDQnNlWE5wYm1WY2JpQWdJQ0FnSUNBZ0oxSW5PaUFuSXpFME5VRkdSaWNzSUM4dklHRnlaeXdnWVhKbmFXNXBibVZjYmlBZ0lDQWdJQ0FnSjFNbk9pQW5JMFpCT1RZd01DY3NJQzh2SUhObGNpd2djMlZ5YVc1bFhHNGdJQ0FnSUNBZ0lDZFVKem9nSnlOR1FUazJNREFuTENBdkx5QjBhSElzSUhSb2NtVnZibWx1WlZ4dUlDQWdJQ0FnSUNBblJpYzZJQ2NqTXpJek1rRkJKeXdnTHk4Z2NHaGxMQ0J3YUdWdWVXeGhiR0Z1YVc1bFhHNGdJQ0FnSUNBZ0lDZFpKem9nSnlNek1qTXlRVUVuTENBdkx5QjBlWElzSUhSNWNtOXphVzVsWEc0Z0lDQWdJQ0FnSUNkT0p6b2dKeU13TUVSRFJFTW5MQ0F2THlCaGMyNHNJR0Z6Y0dGeVlXZHBibVZjYmlBZ0lDQWdJQ0FnSjFFbk9pQW5JekF3UkVORVF5Y3NJQzh2SUdkc2Jpd2daMngxZEdGdGFXNWxYRzRnSUNBZ0lDQWdJQ2RISnpvZ0p5TkZRa1ZDUlVJbkxDQXZMeUJuYkhrc0lHZHNlV05wYm1WY2JpQWdJQ0FnSUNBZ0owd25PaUFuSXpCR09ESXdSaWNzSUM4dklHeGxkU3dnYkdWMVkybHVaVnh1SUNBZ0lDQWdJQ0FuVmljNklDY2pNRVk0TWpCR0p5d2dMeThnZG1Gc0xDQjJZV3hwYm1WY2JpQWdJQ0FnSUNBZ0owa25PaUFuSXpCR09ESXdSaWNzSUM4dklHbHNaU3dnYVhOdmJHVjFZMmx1WlZ4dUlDQWdJQ0FnSUNBblFTYzZJQ2NqUXpoRE9FTTRKeXdnTHk4Z1lXeGhMQ0JoYkdGdWFXNWxYRzRnSUNBZ0lDQWdJQ2RYSnpvZ0p5TkNORFZCUWpRbkxDQXZMeUIwY25Bc0lIUnllWEIwYjNCb1lXNWNiaUFnSUNBZ0lDQWdKMGduT2lBbkl6Z3lPREpFTWljc0lDOHZJR2hwY3l3Z2FHbHpkR2xrYVc1bFhHNGdJQ0FnSUNBZ0lDZFFKem9nSnlORVF6azJPREluTENBdkx5QndjbThzSUhCeWIyeHBibVZjYmlBZ0lDQWdJQ0FnSjI5MGFHVnljeWM2SUNjalFrVkJNRFpGSnl4Y2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1eVlYTk5iMnc3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nYjNabGNuSnBaR1VnWjJWMEtHMDZJSE4wY21sdVp5azZJSE4wY21sdVp5QjdYRzRnSUNBZ1kyOXVjM1FnY21WelRTQTlJRzBnYVc0Z1FXMXBibTloWTJsa2MxQmhiR1YwZEdWekxtRmhVM2x1YjI1NWJYTWdQeUJCYldsdWIyRmphV1J6VUdGc1pYUjBaWE11WVdGVGVXNXZibmx0YzF0dFhTQTZJRzA3WEc0Z0lDQWdZMjl1YzNRZ2NtVnpJRDBnYzNWd1pYSXVaMlYwS0hKbGMwMHBPMXh1SUNBZ0lISmxkSFZ5YmlCeVpYTTdYRzRnSUgxY2JseHVJQ0F2S2lvZ1QyNXNlU0J6YjIxbElHOW1JSFJvWlNCemVXNXZibmx0Y3k0Z1ZHaGxjMlVnZDJWeVpTQnZZblJoYVc1bFpDQm1jbTl0SUhSb1pTQmpiSFZ6ZEdWeVpXUWdiMnhwWjI5d1pYQjBhV1JsSUdSaGRHRnpaWFF1SUNvdlhHNGdJSEJ5YVhaaGRHVWdjM1JoZEdsaklHRmhVM2x1YjI1NWJYTTZJSHNnVzI1aGJXVTZJSE4wY21sdVoxMDZJSE4wY21sdVp5QjlJRDBnZTF4dUlDQWdJQ2ROWlU1c1pTYzZJQ2RNSnl3Z0x5OGdUbXhsSUMwZ2JtOXliR1YxWTJsdVpWeHVJQ0FnSUNkTlpVRW5PaUFuUVNjc1hHNGdJQ0FnSjAxbFJ5YzZJQ2RISnl4Y2JpQWdJQ0FuVFdWR0p6b2dKMFluTEZ4dUlDQjlPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nUVcxcGJtOWhZMmxrY3lCN1hHNGdJSE4wWVhScFl5QnlaV0ZrYjI1c2VTQlRaVzFVZVhCbE9pQnpkSEpwYm1jZ1BTQW5RVzFwYm05aFkybGtjeWM3WEc1Y2JpQWdjM1JoZEdsaklISmxZV1J2Ym14NUlGTmxiVlI1Y0dWTmRXeDBhWEJzWlVGc2FXZHViV1Z1ZERvZ2MzUnlhVzVuSUQwZ0owRnRhVzV2WVdOcFpITk5kV3gwYVhCc1pVRnNhV2R1YldWdWRDYzdYRzVjYmlBZ2MzUmhkR2xqSUhWdVpHVm1hVzVsWkVOdmJHOXlJRDBnSjNKbllpZ3hNREFzTVRBd0xERXdNQ2tuTzF4dVhHNGdJSEIxWW14cFl5QnpkR0YwYVdNZ1RtRnRaWE02SUZOMGNtbHVaMFJwWTNScGIyNWhjbmtnUFNCN1hHNGdJQ0FnSjBjbk9pQW5SMng1WTJsdVpTY3NYRzRnSUNBZ0owd25PaUFuVEdWMVkybHVaU2NzWEc0Z0lDQWdKMWtuT2lBblZIbHliM05wYm1VbkxGeHVJQ0FnSUNkVEp6b2dKMU5sY21sdVpTY3NYRzRnSUNBZ0owVW5PaUFuUjJ4MWRHRnRhV01nWVdOcFpDY3NYRzRnSUNBZ0oxRW5PaUFuUjJ4MWRHRnRhVzVsSnl4Y2JpQWdJQ0FuUkNjNklDZEJjM0JoY25ScFl5QmhZMmxrSnl4Y2JpQWdJQ0FuVGljNklDZEJjM0JoY21GbmFXNWxKeXhjYmlBZ0lDQW5SaWM2SUNkUWFHVnVlV3hoYkdGdWFXNWxKeXhjYmlBZ0lDQW5RU2M2SUNkQmJHRnVhVzVsSnl4Y2JpQWdJQ0FuU3ljNklDZE1lWE5wYm1VbkxGeHVJQ0FnSUNkU0p6b2dKMEZ5WjJsdWFXNWxKeXhjYmlBZ0lDQW5TQ2M2SUNkSWFYTjBhV1JwYm1VbkxGeHVJQ0FnSUNkREp6b2dKME41YzNSbGFXNWxKeXhjYmlBZ0lDQW5WaWM2SUNkV1lXeHBibVVuTEZ4dUlDQWdJQ2RRSnpvZ0oxQnliMnhwYm1VbkxGeHVJQ0FnSUNkWEp6b2dKMVJ5ZVhCMGIzQm9ZVzRuTEZ4dUlDQWdJQ2RKSnpvZ0owbHpiMnhsZFdOcGJtVW5MRnh1SUNBZ0lDZE5Kem9nSjAxbGRHaHBiMjVwYm1VbkxGeHVJQ0FnSUNkVUp6b2dKMVJvY21WdmJtbHVaU2NzWEc0Z0lIMDdYRzVjYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJCUVZOdGFXeGxjem9nVTNSeWFXNW5SR2xqZEdsdmJtRnllU0E5SUh0Y2JpQWdJQ0FuUnljNklDZE9RME1vUFU4cFR5Y3NYRzRnSUNBZ0owd25PaUFuVGx0RFFFaGRLRU5ES0VNcFF5bERLRDFQS1U4bkxGeHVJQ0FnSUNkWkp6b2dKMDVES0VORE1UMURRejFES0U4cFF6MURNU2xES0QxUEtVOG5MRnh1SUNBZ0lDZFRKem9nSjA1REtFTlBLVU1vUFU4cFR5Y3NYRzRnSUNBZ0owVW5PaUFuVGx0RFFFQklYU2hEUTBNb1R5azlUeWxES0QxUEtVOG5MRnh1SUNBZ0lDZFJKem9nSjA1YlEwQkFTRjBvUTBOREtFNHBQVThwUXlnOVR5bFBKeXhjYmlBZ0lDQW5SQ2M2SUNkT1cwTkFRRWhkS0VOREtFOHBQVThwUXlnOVR5bFBKeXhjYmlBZ0lDQW5UaWM2SUNkT1cwTkFRRWhkS0VOREtFNHBQVThwUXlnOVR5bFBKeXhjYmlBZ0lDQW5SaWM2SUNkT1F5aERRekU5UTBNOVEwTTlRekVwUXlnOVR5bFBKeXhjYmlBZ0lDQW5RU2M2SUNkT1cwTkFTRjBvUXlsREtEMVBLVThuTEZ4dUlDQWdJQ2RMSnpvZ0owNURLRU5EUTBOT0tVTW9QVThwVHljc1hHNGdJQ0FnSjFJbk9pQW5UbHREUUVoZEtFTkRRMDVES0QxT0tVTXBReWc5VHlsUEp5eGNiaUFnSUNBblNDYzZJQ2RPUXloRFF6RTlRMDQ5UTF0T1hURXBReWc5VHlsUEp5eGNiaUFnSUNBblF5YzZJQ2RPVzBOQVFFaGRLRU5US1VNb1BVOHBUeWNzWEc0Z0lDQWdKMVluT2lBblRrTW9ReWhES1VNcFF5ZzlUeWxQSnl4Y2JpQWdJQ0FuVUNjNklDZE9LRU5EUXpFcFF6RkRLRDFQS1U4bkxGeHVJQ0FnSUNkWEp6b2dKMDViUTBCQVNGMG9RMk14WXpKalkyTmpZekp1S0Z0SVhTbGpNU2xES0QxUEtVOG5MRnh1SUNBZ0lDZEpKem9nSjA1YlEwQklYU2hiUTBCSVhTaERLVU5ES1VNb1BVOHBUeWNzWEc0Z0lDQWdKMDBuT2lBblRrTW9RME5UUXlsREtEMVBLVThuTEZ4dUlDQWdJQ2RVSnpvZ0owNURLRU1vVHlsREtVTW9QVThwVHljc1hHNGdJSDA3WEc1Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCQlFWTnRhV3hsYzFSeWRXNWpZWFJsWkRvZ1UzUnlhVzVuUkdsamRHbHZibUZ5ZVNBOUlIdGNiaUFnSUNBblJ5YzZJQ2NxUXlvbkxGeHVJQ0FnSUNkTUp6b2dKME5ES0VNcFExdERRRWhkS0NvcEtpY3NYRzRnSUNBZ0oxa25PaUFuUXpFOVEwTW9QVU5EUFVNeFEwTW9LaWtxS1U4bkxGeHVJQ0FnSUNkVEp6b2dKMDlEUXlncUtVTXFKeXhjYmlBZ0lDQW5SU2M2SUNjcVcwTkFRRWhkS0VORFF5aFBLVDFQS1NvbkxGeHVJQ0FnSUNkUkp6b2dKeXBPVzBOQVFFaGRLRU5EUXloT0tUMVBLU29uTEZ4dUlDQWdJQ2RFSnpvZ0p5cGJRMEJBU0Ywb1EwTW9UeWs5VHlrcUp5eGNiaUFnSUNBblRpYzZJQ2NxVzBOQVFFaGRLRU5ES0U0cFBVOHBLaWNzWEc0Z0lDQWdKMFluT2lBblF6RTlRME05UXloRFBVTXhLVU5ES0NvcEtpY3NYRzRnSUNBZ0owRW5PaUFuUTF0RFFFaGRLQ29wS2ljc1hHNGdJQ0FnSjBzbk9pQW5ReWhEUTA0cFEwTW9LaWtxSnl4Y2JpQWdJQ0FuVWljNklDY3FXME5BU0Ywb1EwTkRUa01vUFU0cFF5a3FKeXhjYmlBZ0lDQW5TQ2M2SUNkRE1UMURLRTVEUFU0eEtVTkRLQ29wS2ljc1hHNGdJQ0FnSjBNbk9pQW5ReWhiUTBCQVNGMG9LaWtxS1ZNbkxGeHVJQ0FnSUNkV0p6b2dKME5ES0VNcFF5Z3FLU29uTEZ4dUlDQWdJQ2RRSnpvZ0owTXhRME5PS0NvcFF6RXFKeXhjYmlBZ0lDQW5WeWM2SUNjcVcwTkFRRWhkS0VOak1XTXlZMk5qWTJNeWJpaGJTRjBwWXpFcEtpY3NYRzRnSUNBZ0owa25PaUFuUTBOYlEwQklYU2hES1Z0RFFFaGRLQ29wS2ljc1hHNGdJQ0FnSjAwbk9pQW5RMU5EUTBNb0tpa3FKeXhjYmlBZ0lDQW5WQ2M2SUNkRFF5aFBLVU1vS2lrcUp5eGNiaUFnZlR0Y2JseHVJQ0F2S2lvZ1ZFOUVUem9nUm5Wc2JEOWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QnpkR0YwYVdNZ1FVRkdkV3hzVG1GdFpYTTZJRk4wY21sdVowUnBZM1JwYjI1aGNua2dQU0I3WEc0Z0lDQWdKMEZzWVNjNklDZEJKeXhjYmlBZ0lDQW5RWEpuSnpvZ0oxSW5MRnh1SUNBZ0lDZEJjMjRuT2lBblRpY3NYRzRnSUNBZ0owRnpjQ2M2SUNkRUp5eGNiaUFnSUNBblEzbHpKem9nSjBNbkxGeHVJQ0FnSUNkSGJHNG5PaUFuVVNjc1hHNGdJQ0FnSjBkc2RTYzZJQ2RGSnl4Y2JpQWdJQ0FuUjJ4NUp6b2dKMGNuTEZ4dUlDQWdJQ2RJYVhNbk9pQW5TQ2NzWEc0Z0lDQWdKMGxzWlNjNklDZEpKeXhjYmlBZ0lDQW5UR1YxSnpvZ0owd25MRnh1SUNBZ0lDZE1lWE1uT2lBblN5Y3NYRzRnSUNBZ0owMWxkQ2M2SUNkTkp5eGNiaUFnSUNBblVHaGxKem9nSjBZbkxGeHVJQ0FnSUNkUWNtOG5PaUFuVUNjc1hHNGdJQ0FnSjFObGNpYzZJQ2RUSnl4Y2JpQWdJQ0FuVkdoeUp6b2dKMVFuTEZ4dUlDQWdJQ2RVY25Bbk9pQW5WeWNzWEc0Z0lDQWdKMVI1Y2ljNklDZFpKeXhjYmlBZ0lDQW5WbUZzSnpvZ0oxWW5MRnh1SUNCOU8xeHVYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdaMlYwVUdGc1pYUjBaU2h6WTJobGJXVTZJSE4wY21sdVp5QTlJQ2RuY205ckp5azZJRk5sY1ZCaGJHVjBkR1VnZTF4dUlDQWdJSE4zYVhSamFDQW9jMk5vWlcxbEtTQjdYRzRnSUNBZ1kyRnpaU0FuWjNKdmF5YzZYRzRnSUNBZ0lDQnlaWFIxY200Z1FXMXBibTloWTJsa2MxQmhiR1YwZEdWekxrZHliMnRIY205MWNITTdYRzRnSUNBZ1kyRnpaU0FuYkdWemF5YzZYRzRnSUNBZ0lDQnlaWFIxY200Z1FXMXBibTloWTJsa2MxQmhiR1YwZEdWekxreGxjMnM3WEc0Z0lDQWdaR1ZtWVhWc2REcGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2loZ1EyaGxiVkJoYkdWMGRHVTZJSE5qYUdWdFpTQmNYR0FrZTNOamFHVnRaWDFjWEdBZ1pHOWxjeUJ1YjNRZ1pYaHBjM1JnS1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1Y3lCa2FYWnBaR1ZrSUdGdGFXNXZJR0ZqYVdRZ2QybDBhQ0JwZEhNZ1kyOXVkR1Z1ZENCcGJpQjBhR1VnWW5KaFkydGxkQ3dnYVdZZ2RHaGxJR052Ym5SbGJuUWdhWE1nYm5WdFltVnlMQ0IwYUdWdUlHbDBjeUJ2YldsMGRHVmtYRzRnSUNBcVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JqSUhKaGR5QmhiV2x1YjF4dUlDQWdLaUJBY21WMGRYSnVJSHRiYzNSeWFXNW5MQ0J6ZEhKcGJtZGRmU0J2ZFhSbGNpQmhibVFnYVc1dVpYSWdZMjl1ZEdWdWRGeHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCblpYUkpibTVsY2s5MWRHVnlLR002SUhOMGNtbHVaeWs2SUZ0emRISnBibWNzSUhOMGNtbHVaMTBnZTF4dUlDQWdJR3hsZENCcGMwbHVibVZ5SUQwZ01EdGNiaUFnSUNCc1pYUWdhVzV1WlhJZ1BTQW5KenRjYmlBZ0lDQnNaWFFnYjNWMFpYSWdQU0FuSnp0Y2JseHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ1kyaGhjaUJ2WmlCaktTQjdYRzRnSUNBZ0lDQnBaaUFvWTJoaGNpQTlQU0FuS0NjcFhHNGdJQ0FnSUNBZ0lHbHpTVzV1WlhJckt6dGNiaUFnSUNBZ0lHVnNjMlVnYVdZZ0tHTm9ZWElnUFQwZ0p5a25LVnh1SUNBZ0lDQWdJQ0JwYzBsdWJtVnlMUzA3WEc0Z0lDQWdJQ0JsYkhObElHbG1JQ2hwYzBsdWJtVnlLVnh1SUNBZ0lDQWdJQ0JwYm01bGNpQXJQU0JqYUdGeU8xeHVJQ0FnSUNBZ1pXeHpaVnh1SUNBZ0lDQWdJQ0J2ZFhSbGNpQXJQU0JqYUdGeU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUFoYVhOT1lVNG9jR0Z5YzJWSmJuUW9hVzV1WlhJcEtTQS9JRnR2ZFhSbGNpd2dKeWRkSURvZ1cyOTFkR1Z5TENCcGJtNWxjbDA3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nYzNSaGRHbGpJR2RsZEVOdmJHOXlRVUZRYVhadmRDaHRiMjV2YldWeU9pQnpkSEpwYm1jZ1BTQW5KeXdnYzJOb1pXMWxPaUFuWjNKdmF5Y2dQU0FuWjNKdmF5Y3BPaUJiYzNSeWFXNW5MQ0J6ZEhKcGJtY3NJSE4wY21sdVp5d2diblZ0WW1WeVhTQjdYRzRnSUNBZ0x5OWpiMjV6ZENCamFHVnRVR0ZzWlhSMFpVbHVjM1JoYm1ObElEMGdRVUZRWVd4bGRIUmxjeTVIY205clIzSnZkWEJ6S0NrN1hHNGdJQ0FnWTI5dWMzUWdZMmhsYlZCaGJHVjBkR1ZKYm5OMFlXNWpaU0E5SUhSb2FYTXVaMlYwVUdGc1pYUjBaU2h6WTJobGJXVXBPMXh1SUNBZ0lHeGxkQ0JiYjNWMFpYSk5iMjV2YldWeUxDQnBibTVsY2sxdmJtOXRaWEpkSUQwZ2RHaHBjeTVuWlhSSmJtNWxjazkxZEdWeUtHMXZibTl0WlhJcE8xeHVJQ0FnSUc5MWRHVnlUVzl1YjIxbGNpQTlJQ2h2ZFhSbGNrMXZibTl0WlhJdWJHVnVaM1JvSUQ0Z05pQS9JR0FrZTI5MWRHVnlUVzl1YjIxbGNpNXpiR2xqWlNnd0xDQXpLWDB1TGk1Z0lEb2diM1YwWlhKTmIyNXZiV1Z5S1R0Y2JpQWdJQ0JwYm01bGNrMXZibTl0WlhJZ1BTQW9hVzV1WlhKTmIyNXZiV1Z5TG14bGJtZDBhQ0ErSURZZ1B5QmdKSHRwYm01bGNrMXZibTl0WlhJdWMyeHBZMlVvTUN3Z015bDlMaTR1WUNBNklHbHVibVZ5VFc5dWIyMWxjaWs3WEc1Y2JpQWdJQ0JwWmlBb2JXOXViMjFsY2k1c1pXNW5kR2dnUFQwZ01TQjhmQ0J0YjI1dmJXVnlXekZkSUQwOUlDY29KeWtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdZVzFwYm04Z1BTQnRiMjV2YldWeVd6QmRQeTUwYjFWd2NHVnlRMkZ6WlNncElUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCaGJXbHVieUJwYmlCamFHVnRVR0ZzWlhSMFpVbHVjM1JoYm1ObElEOWNiaUFnSUNBZ0lDQWdXMk5vWlcxUVlXeGxkSFJsU1c1emRHRnVZMlV1WjJWMEtHRnRhVzV2S1N3Z1lXMXBibThzSUdsdWJtVnlUVzl1YjIxbGNpd2dNVjBnT2x4dUlDQWdJQ0FnSUNCYmRHaHBjeTUxYm1SbFptbHVaV1JEYjJ4dmNpd2diM1YwWlhKTmIyNXZiV1Z5TENCcGJtNWxjazF2Ym05dFpYSXNJREZkTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNodGIyNXZiV1Z5V3pCZElEMDlJQ2RrSnlBbUppQnRiMjV2YldWeVd6RmRJU0JwYmlCamFHVnRVR0ZzWlhSMFpVbHVjM1JoYm1ObEtTQjdYRzRnSUNBZ0lDQnBaaUFvYlc5dWIyMWxjaTVzWlc1bmRHZ2dQVDBnTWlCOGZDQnRiMjV2YldWeVd6SmRJRDA5SUNjb0p5a2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmhiV2x1YnlBOUlHMXZibTl0WlhKYk1WMC9MblJ2VlhCd1pYSkRZWE5sS0NraE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1lXMXBibThnYVc0Z1kyaGxiVkJoYkdWMGRHVkpibk4wWVc1alpTQS9YRzRnSUNBZ0lDQWdJQ0FnVzJOb1pXMVFZV3hsZEhSbFNXNXpkR0Z1WTJVdVoyVjBLR0Z0YVc1dktTd2dZVzFwYm04c0lHbHVibVZ5VFc5dWIyMWxjaXdnTWwwZ09seHVJQ0FnSUNBZ0lDQWdJRnQwYUdsekxuVnVaR1ZtYVc1bFpFTnZiRzl5TENCdmRYUmxjazF2Ym05dFpYSXNJR2x1Ym1WeVRXOXViMjFsY2l3Z01sMDdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLRzF2Ym05dFpYSXVjM1ZpYzNSeWFXNW5LREFzSURNcElHbHVJSFJvYVhNdVFVRkdkV3hzVG1GdFpYTXBJSHRjYmlBZ0lDQWdJR2xtSUNodGIyNXZiV1Z5TG14bGJtZDBhQ0E5UFNBeklIeDhJRzF2Ym05dFpYSmJNMTBnUFQwZ0p5Z25LU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR0Z0YVc1dklEMGdkR2hwY3k1QlFVWjFiR3hPWVcxbGMxdHRiMjV2YldWeUxuTjFZbk4wY21sdVp5Z3dMQ0F6S1YwN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCaGJXbHVieUJwYmlCamFHVnRVR0ZzWlhSMFpVbHVjM1JoYm1ObElEOWNiaUFnSUNBZ0lDQWdJQ0JiWTJobGJWQmhiR1YwZEdWSmJuTjBZVzVqWlM1blpYUW9ZVzFwYm04cExDQmhiV2x1Ynl3Z2FXNXVaWEpOYjI1dmJXVnlMQ0F6WFNBNlhHNGdJQ0FnSUNBZ0lDQWdXM1JvYVhNdWRXNWtaV1pwYm1Wa1EyOXNiM0lzSUc5MWRHVnlUVzl1YjIxbGNpd2dhVzV1WlhKTmIyNXZiV1Z5TENBelhUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9iVzl1YjIxbGNsc3dYVDh1ZEc5TWIzZGxja05oYzJVb0tTQTlQU0J0YjI1dmJXVnlXekJkS1NCN1hHNGdJQ0FnSUNCcFppQW9iVzl1YjIxbGNpNXpkV0p6ZEhKcGJtY29NU3dnTXlrZ2FXNGdkR2hwY3k1QlFVWjFiR3hPWVcxbGN5a2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2JXOXViMjFsY2k1c1pXNW5kR2dnUFQwZ05DQjhmQ0J0YjI1dmJXVnlXelJkSUQwOUlDY29KeWtnZTF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUdGdGFXNXZJRDBnZEdocGN5NUJRVVoxYkd4T1lXMWxjMXR0YjI1dmJXVnlMbk4xWW5OMGNtbHVaeWd4TENBektWMDdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR0Z0YVc1dklHbHVJR05vWlcxUVlXeGxkSFJsU1c1emRHRnVZMlVnUDF4dUlDQWdJQ0FnSUNBZ0lDQWdXMk5vWlcxUVlXeGxkSFJsU1c1emRHRnVZMlV1WjJWMEtHRnRhVzV2S1N3Z1lXMXBibThzSUdsdWJtVnlUVzl1YjIxbGNpd2dORjBnT2x4dUlDQWdJQ0FnSUNBZ0lDQWdXM1JvYVhNdWRXNWtaV1pwYm1Wa1EyOXNiM0lzSUc5MWRHVnlUVzl1YjIxbGNpd2dhVzV1WlhKTmIyNXZiV1Z5TENBMFhUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlCYmRHaHBjeTUxYm1SbFptbHVaV1JEYjJ4dmNpd2diM1YwWlhKTmIyNXZiV1Z5TENCcGJtNWxjazF2Ym05dFpYSXNJREJkTzF4dUlDQjlYRzU5WEc0aVhYMD0iLCJpbXBvcnQgeyBTZXFQYWxldHRlQmFzZSB9IGZyb20gJy4vc2VxLXBhbGV0dGVzJztcbmV4cG9ydCBjbGFzcyBOdWNsZW90aWRlc1BhbGV0dGVzIGV4dGVuZHMgU2VxUGFsZXR0ZUJhc2Uge1xuICAgIHN0YXRpYyBnZXQgQ2hyb21hdG9ncmFtKCkge1xuICAgICAgICBpZiAodGhpcy5jaHJvbWF0b2dyYW0gPT09IHZvaWQgMCkge1xuICAgICAgICAgICAgdGhpcy5jaHJvbWF0b2dyYW0gPSBuZXcgTnVjbGVvdGlkZXNQYWxldHRlcyh7XG4gICAgICAgICAgICAgICAgJ0EnOiAnZ3JlZW4nLFxuICAgICAgICAgICAgICAgICdDJzogJ2JsdWUnLFxuICAgICAgICAgICAgICAgICdHJzogJ2JsYWNrJyxcbiAgICAgICAgICAgICAgICAnVCc6ICdyZWQnLFxuICAgICAgICAgICAgICAgICdVJzogJ3JlZCcsXG4gICAgICAgICAgICAgICAgJ290aGVycyc6ICdncmF5JyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmNocm9tYXRvZ3JhbTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgTnVjbGVvdGlkZXMge1xufVxuTnVjbGVvdGlkZXMuU2VtVHlwZSA9ICdOdWNsZW90aWRlcyc7XG5OdWNsZW90aWRlcy5TZW1UeXBlTXVsdGlwbGVBbGlnbm1lbnQgPSAnTnVjbGVvdGlkZXNNdWx0aXBsZUFsaWdubWVudCc7XG5OdWNsZW90aWRlcy5OYW1lcyA9IHtcbiAgICAnQSc6ICdBZGVuaW5lJyxcbiAgICAnQyc6ICdDeXRvc2luZScsXG4gICAgJ0cnOiAnR3VhbmluZScsXG4gICAgJ1QnOiAnVGh5bWluZScsXG4gICAgJ1UnOiAnVXJhY2lsJyxcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2liblZqYkdWdmRHbGtaWE11YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SnVkV05zWlc5MGFXUmxjeTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGTFFTeFBRVUZQTEVWQlFXRXNZMEZCWXl4RlFVRkRMRTFCUVUwc1owSkJRV2RDTEVOQlFVTTdRVUZGTVVRc1RVRkJUU3hQUVVGUExHMUNRVUZ2UWl4VFFVRlJMR05CUVdNN1NVRkhPVU1zVFVGQlRTeExRVUZMTEZsQlFWazdVVUZETlVJc1NVRkJTU3hKUVVGSkxFTkJRVU1zV1VGQldTeExRVUZMTEV0QlFVc3NRMEZCUXl4RlFVRkZPMWxCUTJoRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVkQlFVY3NTVUZCU1N4dFFrRkJiVUlzUTBGQlF6dG5Ra0ZETVVNc1IwRkJSeXhGUVVGRkxFOUJRVTg3WjBKQlExb3NSMEZCUnl4RlFVRkZMRTFCUVUwN1owSkJRMWdzUjBGQlJ5eEZRVUZGTEU5QlFVODdaMEpCUTFvc1IwRkJSeXhGUVVGRkxFdEJRVXM3WjBKQlExWXNSMEZCUnl4RlFVRkZMRXRCUVVzN1owSkJRMVlzVVVGQlVTeEZRVUZGTEUxQlFVMDdZVUZEYWtJc1EwRkJReXhEUVVGRE8xTkJRMG83VVVGRFJDeFBRVUZQTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNN1NVRkRNMElzUTBGQlF6dERRVU5HTzBGQlJVUXNUVUZCVFN4UFFVRlBMRmRCUVZjN08wRkJRMDRzYlVKQlFVOHNSMEZCVnl4aFFVRmhMRU5CUVVNN1FVRkZhRU1zYjBOQlFYZENMRWRCUVZjc09FSkJRVGhDTEVOQlFVTTdRVUZGY0VVc2FVSkJRVXNzUjBGQmNVSTdTVUZEZEVNc1IwRkJSeXhGUVVGRkxGTkJRVk03U1VGRFpDeEhRVUZITEVWQlFVVXNWVUZCVlR0SlFVTm1MRWRCUVVjc1JVRkJSU3hUUVVGVE8wbEJRMlFzUjBGQlJ5eEZRVUZGTEZOQlFWTTdTVUZEWkN4SFFVRkhMRVZCUVVVc1VVRkJVVHREUVVOa0xFTkJRVU1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnS2lCaGN5Qm5jbTlySUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5bmNtOXJKenRjYm1sdGNHOXlkQ0FxSUdGeklIVnBJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzkxYVNjN1hHNXBiWEJ2Y25RZ0tpQmhjeUJFUnlCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdlpHY25PMXh1WEc1cGJYQnZjblFnZTFOMGNtbHVaMFJwWTNScGIyNWhjbmw5SUdaeWIyMGdKMEJrWVhSaFozSnZheTFzYVdKeVlYSnBaWE12ZFhScGJITXZjM0pqTDNSNWNHVXRaR1ZqYkdGeVlYUnBiMjV6Snp0Y2JtbHRjRzl5ZENCN1UyVnhVR0ZzWlhSMFpTd2dVMlZ4VUdGc1pYUjBaVUpoYzJWOUlHWnliMjBnSnk0dmMyVnhMWEJoYkdWMGRHVnpKenRjYmx4dVpYaHdiM0owSUdOc1lYTnpJRTUxWTJ4bGIzUnBaR1Z6VUdGc1pYUjBaWE1nWlhoMFpXNWtjeUJUWlhGUVlXeGxkSFJsUW1GelpTQjdYRzRnSUhCeWFYWmhkR1VnYzNSaGRHbGpJR05vY205dFlYUnZaM0poYlRvZ1UyVnhVR0ZzWlhSMFpUdGNibHh1SUNCd2RXSnNhV01nYzNSaGRHbGpJR2RsZENCRGFISnZiV0YwYjJkeVlXMG9LVG9nVTJWeFVHRnNaWFIwWlNCN1hHNGdJQ0FnYVdZZ0tIUm9hWE11WTJoeWIyMWhkRzluY21GdElEMDlQU0IyYjJsa0lEQXBJSHRjYmlBZ0lDQWdJSFJvYVhNdVkyaHliMjFoZEc5bmNtRnRJRDBnYm1WM0lFNTFZMnhsYjNScFpHVnpVR0ZzWlhSMFpYTW9lMXh1SUNBZ0lDQWdJQ0FuUVNjNklDZG5jbVZsYmljc1hHNGdJQ0FnSUNBZ0lDZERKem9nSjJKc2RXVW5MRnh1SUNBZ0lDQWdJQ0FuUnljNklDZGliR0ZqYXljc0lDOHZJRzl5WVc1blpTQS9YRzRnSUNBZ0lDQWdJQ2RVSnpvZ0ozSmxaQ2NzWEc0Z0lDQWdJQ0FnSUNkVkp6b2dKM0psWkNjc1hHNGdJQ0FnSUNBZ0lDZHZkR2hsY25Nbk9pQW5aM0poZVNjc1hHNGdJQ0FnSUNCOUtUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVkyaHliMjFoZEc5bmNtRnRPMXh1SUNCOVhHNTlYRzVjYm1WNGNHOXlkQ0JqYkdGemN5Qk9kV05zWlc5MGFXUmxjeUI3WEc0Z0lITjBZWFJwWXlCeVpXRmtiMjVzZVNCVFpXMVVlWEJsT2lCemRISnBibWNnUFNBblRuVmpiR1Z2ZEdsa1pYTW5PMXh1WEc0Z0lITjBZWFJwWXlCeVpXRmtiMjVzZVNCVFpXMVVlWEJsVFhWc2RHbHdiR1ZCYkdsbmJtMWxiblE2SUhOMGNtbHVaeUE5SUNkT2RXTnNaVzkwYVdSbGMwMTFiSFJwY0d4bFFXeHBaMjV0Wlc1MEp6dGNibHh1SUNCd2RXSnNhV01nYzNSaGRHbGpJRTVoYldWek9pQlRkSEpwYm1kRWFXTjBhVzl1WVhKNUlEMGdlMXh1SUNBZ0lDZEJKem9nSjBGa1pXNXBibVVuTEZ4dUlDQWdJQ2RESnpvZ0owTjVkRzl6YVc1bEp5eGNiaUFnSUNBblJ5YzZJQ2RIZFdGdWFXNWxKeXhjYmlBZ0lDQW5WQ2M2SUNkVWFIbHRhVzVsSnl4Y2JpQWdJQ0FuVlNjNklDZFZjbUZqYVd3bkxGeHVJQ0I5TzF4dWZWeHVJbDE5IiwiZXhwb3J0IGNsYXNzIFNlcVBhbGV0dGVCYXNlIHtcbiAgICBzdGF0aWMgbWFrZVBhbGV0dGUoZHQsIHNpbXBsaWZpZWQgPSBmYWxzZSwgUGFsZXR0ZVR5cGUgPSBTZXFQYWxldHRlQmFzZSkge1xuICAgICAgICBjb25zdCBwYWxldHRlID0ge307XG4gICAgICAgIGR0LmZvckVhY2goKGNwKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBvYmpMaXN0ID0gY3BbMF07XG4gICAgICAgICAgICBjb25zdCBjb2xvdXIgPSBjcFsxXTtcbiAgICAgICAgICAgIG9iakxpc3QuZm9yRWFjaCgob2JqLCBpbmQpID0+IHtcbiAgICAgICAgICAgICAgICBwYWxldHRlW29ial0gPSB0aGlzLmNvbG91clBhbGV0dGVbY29sb3VyXVtzaW1wbGlmaWVkID8gMCA6IGluZF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBuZXcgUGFsZXR0ZVR5cGUocGFsZXR0ZSk7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKHBhbGV0dGUpIHtcbiAgICAgICAgdGhpcy5fcGFsZXR0ZSA9IHBhbGV0dGU7XG4gICAgfVxuICAgIGdldChtKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYWxldHRlW21dO1xuICAgIH1cbn1cblNlcVBhbGV0dGVCYXNlLnVuZGVmaW5lZENvbG9yID0gJ3JnYigxMDAsMTAwLDEwMCknO1xuLyoqIFBhbGV0dGUgd2l0aCBzaGFkZXMgb2YgcHJpbWFyeSBjb2xvcnMgKi9cblNlcVBhbGV0dGVCYXNlLmNvbG91clBhbGV0dGUgPSB7XG4gICAgJ29yYW5nZSc6IFsncmdiKDI1NSwxODcsMTIwKScsICdyZ2IoMjQ1LDE2NywxMDApJywgJ3JnYigyMzUsMTM3LDcwKScsICdyZ2IoMjA1LCAxMTEsIDcxKSddLFxuICAgICdhbGxfZ3JlZW4nOiBbJ3JnYig0NCwxNjAsNDQpJywgJ3JnYig3NCwxNjAsNzQpJywgJ3JnYigyMywxMDMsNTcpJywgJ3JnYigzMCwxMTAsOTYpJywgJ3JnYig2MCwxMzEsOTUpJyxcbiAgICAgICAgJ3JnYigyNCwxMTAsNzkpJywgJ3JnYigxNTIsMjIzLDEzOCknLCAncmdiKDE4MiwgMjIzLCAxMzgpJywgJ3JnYigxNTIsIDE5MywgMTM4KSddLFxuICAgICdhbGxfYmx1ZSc6IFsncmdiKDMxLDExOSwxODApJywgJ3JnYigyMywxOTAsMjA3KScsICdyZ2IoMTIyLCAxMDIsIDE4OSknLCAncmdiKDE1OCwyMTgsMjI5KScsICdyZ2IoMTQxLCAxMjQsIDIxNyknLFxuICAgICAgICAncmdiKDMxLCAxMjAsIDE1MCknXSxcbiAgICAnbWFnZW50YSc6IFsncmdiKDE2MiwxMDYsMTkyKScsICdyZ2IoMTk3LDE2NSwyMjQpJywgJ3JnYigyMDgsMTEzLDIxOCknXSxcbiAgICAncmVkJzogWydyZ2IoMjE0LDM5LDQwKScsICdyZ2IoMjU1LDE1MiwxNTApJ10sXG4gICAgJ3N0X2JsdWUnOiBbJ3JnYigyMywxOTAsMjA3KScsICdyZ2IoMTU4LDIxOCwyMjkpJywgJ3JnYigzMSwxMTksMTgwKSddLFxuICAgICdkYXJrX2JsdWUnOiBbJ3JnYigzMSwxMTksMTgwKScsICdyZ2IoMzEsIDEyMCwgMTUwKSddLFxuICAgICdsaWdodF9ibHVlJzogWydyZ2IoMjMsMTkwLDIwNyknLCAncmdiKDE1OCwyMTgsMjI5KScsICdyZ2IoMTA4LCAyMTgsIDIyOSknLCAncmdiKDIzLDE5MCwyMjcpJ10sXG4gICAgJ2xpbGFjX2JsdWUnOiBbJ3JnYigxMjQsMTAyLDIxMSknLCAncmdiKDE0OSwxMzQsMjE3KScsICdyZ2IoOTcsIDgxLCAxNTApJ10sXG4gICAgJ2RhcmtfZ3JlZW4nOiBbJ3JnYigyMywxMDMsNTcpJywgJ3JnYigzMCwxMTAsOTYpJywgJ3JnYig2MCwxMzEsOTUpJywgJ3JnYigyNCwxMTAsNzkpJ10sXG4gICAgJ2dyZWVuJzogWydyZ2IoNDQsMTYwLDQ0KScsICdyZ2IoNzQsMTYwLDc0KSddLFxuICAgICdsaWdodF9ncmVlbic6IFsncmdiKDE1MiwyMjMsMTM4KScsICdyZ2IoMTgyLCAyMjMsIDEzOCknLCAncmdiKDE1MiwgMTkzLCAxMzgpJ10sXG4gICAgJ3N0X2dyZWVuJzogWydyZ2IoNDQsMTYwLDQ0KScsICdyZ2IoMTUyLDIyMywxMzgpJywgJ3JnYigzOSwgMTc0LCA5NiknLCAncmdiKDc0LDE2MCw3NCknXSxcbiAgICAncGluayc6IFsncmdiKDI0NywxODIsMjEwKSddLFxuICAgICdicm93bic6IFsncmdiKDE0MCw4Niw3NSknLCAncmdiKDEwMiwgNjIsIDU0KSddLFxuICAgICdncmF5JzogWydyZ2IoMTI3LDEyNywxMjcpJywgJ3JnYigxOTksMTk5LDE5OSknLCAncmdiKDE5NiwxNTYsMTQ4KScsICdyZ2IoMjIyLCAyMjIsIDE4MCknXSxcbiAgICAneWVsbG93JzogWydyZ2IoMTg4LDE4OSwzNCknXSxcbiAgICAnd2hpdGUnOiBbJ3JnYigyMzAsMjMwLDIzMCknXSxcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljMlZ4TFhCaGJHVjBkR1Z6TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2ljMlZ4TFhCaGJHVjBkR1Z6TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFXbENRU3hOUVVGTkxFOUJRVThzWTBGQll6dEpRVEpDWml4TlFVRk5MRU5CUVVNc1YwRkJWeXhEUVVGRExFVkJRWGRDTEVWQlEyNUVMRlZCUVZVc1IwRkJSeXhMUVVGTExFVkJRVVVzWTBGQmNVTXNZMEZCWXp0UlFVVjJSU3hOUVVGTkxFOUJRVThzUjBGQk9FSXNSVUZCUlN4RFFVRkRPMUZCUXpsRExFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJSVHRaUVVOb1FpeE5RVUZOTEU5QlFVOHNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGRFSXNUVUZCVFN4TlFVRk5MRWRCUVVjc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEzSkNMRTlCUVU4c1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRVZCUVVVN1owSkJRek5DTEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRaUVVOc1JTeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTk1MRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMGdzVDBGQlR5eEpRVUZKTEZkQlFWY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVOc1F5eERRVUZETzBsQlNVUXNXVUZCV1N4UFFVRm5RenRSUVVNeFF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4SFFVRkhMRTlCUVU4c1EwRkJRenRKUVVNeFFpeERRVUZETzBsQlJVMHNSMEZCUnl4RFFVRkRMRU5CUVZNN1VVRkRiRUlzVDBGQlR5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRekZDTEVOQlFVTTdPMEZCYUVSaExEWkNRVUZqTEVkQlFVY3NhMEpCUVd0Q0xFTkJRVU03UVVGRmJFUXNORU5CUVRSRE8wRkJRemxDTERSQ1FVRmhMRWRCUVdkRE8wbEJRM3BFTEZGQlFWRXNSVUZCUlN4RFFVRkRMR3RDUVVGclFpeEZRVUZGTEd0Q1FVRnJRaXhGUVVGRkxHbENRVUZwUWl4RlFVRkZMRzFDUVVGdFFpeERRVUZETzBsQlF6RkdMRmRCUVZjc1JVRkJSU3hEUVVGRExHZENRVUZuUWl4RlFVRkZMR2RDUVVGblFpeEZRVUZGTEdkQ1FVRm5RaXhGUVVGRkxHZENRVUZuUWl4RlFVRkZMR2RDUVVGblFqdFJRVU53Unl4blFrRkJaMElzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSU3h2UWtGQmIwSXNSVUZCUlN4dlFrRkJiMElzUTBGQlF6dEpRVU51Uml4VlFVRlZMRVZCUVVVc1EwRkJReXhwUWtGQmFVSXNSVUZCUlN4cFFrRkJhVUlzUlVGQlJTeHZRa0ZCYjBJc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlN4dlFrRkJiMEk3VVVGREwwY3NiVUpCUVcxQ0xFTkJRVU03U1VGRGRFSXNVMEZCVXl4RlFVRkZMRU5CUVVNc2EwSkJRV3RDTEVWQlFVVXNhMEpCUVd0Q0xFVkJRVVVzYTBKQlFXdENMRU5CUVVNN1NVRkRka1VzUzBGQlN5eEZRVUZGTEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVVzYTBKQlFXdENMRU5CUVVNN1NVRkROME1zVTBGQlV5eEZRVUZGTEVOQlFVTXNhVUpCUVdsQ0xFVkJRVVVzYTBKQlFXdENMRVZCUVVVc2FVSkJRV2xDTEVOQlFVTTdTVUZEY2tVc1YwRkJWeXhGUVVGRkxFTkJRVU1zYVVKQlFXbENMRVZCUVVVc2JVSkJRVzFDTEVOQlFVTTdTVUZEY2tRc1dVRkJXU3hGUVVGRkxFTkJRVU1zYVVKQlFXbENMRVZCUVVVc2EwSkJRV3RDTEVWQlFVVXNiMEpCUVc5Q0xFVkJRVVVzYVVKQlFXbENMRU5CUVVNN1NVRkRPVVlzV1VGQldTeEZRVUZGTEVOQlFVTXNhMEpCUVd0Q0xFVkJRVVVzYTBKQlFXdENMRVZCUVVVc2EwSkJRV3RDTEVOQlFVTTdTVUZETVVVc1dVRkJXU3hGUVVGRkxFTkJRVU1zWjBKQlFXZENMRVZCUVVVc1owSkJRV2RDTEVWQlFVVXNaMEpCUVdkQ0xFVkJRVVVzWjBKQlFXZENMRU5CUVVNN1NVRkRkRVlzVDBGQlR5eEZRVUZGTEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVVzWjBKQlFXZENMRU5CUVVNN1NVRkROME1zWVVGQllTeEZRVUZGTEVOQlFVTXNhMEpCUVd0Q0xFVkJRVVVzYjBKQlFXOUNMRVZCUVVVc2IwSkJRVzlDTEVOQlFVTTdTVUZETDBVc1ZVRkJWU3hGUVVGRkxFTkJRVU1zWjBKQlFXZENMRVZCUVVVc2EwSkJRV3RDTEVWQlFVVXNhMEpCUVd0Q0xFVkJRVVVzWjBKQlFXZENMRU5CUVVNN1NVRkRlRVlzVFVGQlRTeEZRVUZGTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU03U1VGRE5VSXNUMEZCVHl4RlFVRkZMRU5CUVVNc1owSkJRV2RDTEVWQlFVVXNhMEpCUVd0Q0xFTkJRVU03U1VGREwwTXNUVUZCVFN4RlFVRkZMRU5CUVVNc2EwSkJRV3RDTEVWQlFVVXNhMEpCUVd0Q0xFVkJRVVVzYTBKQlFXdENMRVZCUVVVc2IwSkJRVzlDTEVOQlFVTTdTVUZETVVZc1VVRkJVU3hGUVVGRkxFTkJRVU1zYVVKQlFXbENMRU5CUVVNN1NVRkROMElzVDBGQlR5eEZRVUZGTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU03UTBGRE9VSXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENBcUlHRnpJR2R5YjJzZ1puSnZiU0FuWkdGMFlXZHliMnN0WVhCcEwyZHliMnNuTzF4dWFXMXdiM0owSUNvZ1lYTWdkV2tnWm5KdmJTQW5aR0YwWVdkeWIyc3RZWEJwTDNWcEp6dGNibWx0Y0c5eWRDQXFJR0Z6SUVSSElHWnliMjBnSjJSaGRHRm5jbTlyTFdGd2FTOWtaeWM3WEc1Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1UyVnhVR0ZzWlhSMFpTQjdYRzRnSUM4dklGUm9aWEpsSUdGeVpTQjBiMjhnYlhWamFDQndjbTlpYkdWdElIZHBkR2dnYVc1a1pYaGxjaUJ3Y205d1pYSjBlU0JwYmlCMGVYQmxjMk55YVhCMExseHVJQ0F2THlBdktpcGNiaUFnTHk4Z0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlHMGdUVzl1YjIxbGNpQmphR0Z5WVdOMFpYSmNiaUFnTHk4Z0lDb2dRSEpsZEhWeWJpQjdjM1J5YVc1bmZTQkRiMnh2Y2x4dUlDQXZMeUFnS2k5Y2JpQWdMeThnVzIwNklITjBjbWx1WjEwNklITjBjbWx1Wnp0Y2JpQWdMeW9xSUUxdmJtOXRaWElnWTI5c2IzSmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUcwZ1RXOXViMjFsY2x4dUlDQWdLaTljYmlBZ1oyVjBLRzA2SUhOMGNtbHVaeWs2SUhOMGNtbHVaenRjYm4xY2JseHVaWGh3YjNKMElHTnNZWE56SUZObGNWQmhiR1YwZEdWQ1lYTmxJR2x0Y0d4bGJXVnVkSE1nVTJWeFVHRnNaWFIwWlNCN1hHNGdJSEIxWW14cFl5QnpkR0YwYVdNZ2RXNWtaV1pwYm1Wa1EyOXNiM0lnUFNBbmNtZGlLREV3TUN3eE1EQXNNVEF3S1NjN1hHNWNiaUFnTHlvcUlGQmhiR1YwZEdVZ2QybDBhQ0J6YUdGa1pYTWdiMllnY0hKcGJXRnllU0JqYjJ4dmNuTWdLaTljYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJqYjJ4dmRYSlFZV3hsZEhSbE9pQjdJRnRyWlhrNklITjBjbWx1WjEwNklITjBjbWx1WjF0ZElIMGdQU0I3WEc0Z0lDQWdKMjl5WVc1blpTYzZJRnNuY21kaUtESTFOU3d4T0Rjc01USXdLU2NzSUNkeVoySW9NalExTERFMk55d3hNREFwSnl3Z0ozSm5ZaWd5TXpVc01UTTNMRGN3S1Njc0lDZHlaMklvTWpBMUxDQXhNVEVzSURjeEtTZGRMRnh1SUNBZ0lDZGhiR3hmWjNKbFpXNG5PaUJiSjNKbllpZzBOQ3d4TmpBc05EUXBKeXdnSjNKbllpZzNOQ3d4TmpBc056UXBKeXdnSjNKbllpZ3lNeXd4TURNc05UY3BKeXdnSjNKbllpZ3pNQ3d4TVRBc09UWXBKeXdnSjNKbllpZzJNQ3d4TXpFc09UVXBKeXhjYmlBZ0lDQWdJQ2R5WjJJb01qUXNNVEV3TERjNUtTY3NJQ2R5WjJJb01UVXlMREl5TXl3eE16Z3BKeXdnSjNKbllpZ3hPRElzSURJeU15d2dNVE00S1Njc0lDZHlaMklvTVRVeUxDQXhPVE1zSURFek9Da25YU3hjYmlBZ0lDQW5ZV3hzWDJKc2RXVW5PaUJiSjNKbllpZ3pNU3d4TVRrc01UZ3dLU2NzSUNkeVoySW9Nak1zTVRrd0xESXdOeWtuTENBbmNtZGlLREV5TWl3Z01UQXlMQ0F4T0RrcEp5d2dKM0puWWlneE5UZ3NNakU0TERJeU9Ta25MQ0FuY21kaUtERTBNU3dnTVRJMExDQXlNVGNwSnl4Y2JpQWdJQ0FnSUNkeVoySW9NekVzSURFeU1Dd2dNVFV3S1NkZExGeHVJQ0FnSUNkdFlXZGxiblJoSnpvZ1d5ZHlaMklvTVRZeUxERXdOaXd4T1RJcEp5d2dKM0puWWlneE9UY3NNVFkxTERJeU5Da25MQ0FuY21kaUtESXdPQ3d4TVRNc01qRTRLU2RkTEZ4dUlDQWdJQ2R5WldRbk9pQmJKM0puWWlneU1UUXNNemtzTkRBcEp5d2dKM0puWWlneU5UVXNNVFV5TERFMU1Da25YU3hjYmlBZ0lDQW5jM1JmWW14MVpTYzZJRnNuY21kaUtESXpMREU1TUN3eU1EY3BKeXdnSjNKbllpZ3hOVGdzTWpFNExESXlPU2tuTENBbmNtZGlLRE14TERFeE9Td3hPREFwSjEwc1hHNGdJQ0FnSjJSaGNtdGZZbXgxWlNjNklGc25jbWRpS0RNeExERXhPU3d4T0RBcEp5d2dKM0puWWlnek1Td2dNVEl3TENBeE5UQXBKMTBzWEc0Z0lDQWdKMnhwWjJoMFgySnNkV1VuT2lCYkozSm5ZaWd5TXl3eE9UQXNNakEzS1Njc0lDZHlaMklvTVRVNExESXhPQ3d5TWprcEp5d2dKM0puWWlneE1EZ3NJREl4T0N3Z01qSTVLU2NzSUNkeVoySW9Nak1zTVRrd0xESXlOeWtuWFN4Y2JpQWdJQ0FuYkdsc1lXTmZZbXgxWlNjNklGc25jbWRpS0RFeU5Dd3hNRElzTWpFeEtTY3NJQ2R5WjJJb01UUTVMREV6TkN3eU1UY3BKeXdnSjNKbllpZzVOeXdnT0RFc0lERTFNQ2tuWFN4Y2JpQWdJQ0FuWkdGeWExOW5jbVZsYmljNklGc25jbWRpS0RJekxERXdNeXcxTnlrbkxDQW5jbWRpS0RNd0xERXhNQ3c1TmlrbkxDQW5jbWRpS0RZd0xERXpNU3c1TlNrbkxDQW5jbWRpS0RJMExERXhNQ3czT1NrblhTeGNiaUFnSUNBblozSmxaVzRuT2lCYkozSm5ZaWcwTkN3eE5qQXNORFFwSnl3Z0ozSm5ZaWczTkN3eE5qQXNOelFwSjEwc1hHNGdJQ0FnSjJ4cFoyaDBYMmR5WldWdUp6b2dXeWR5WjJJb01UVXlMREl5TXl3eE16Z3BKeXdnSjNKbllpZ3hPRElzSURJeU15d2dNVE00S1Njc0lDZHlaMklvTVRVeUxDQXhPVE1zSURFek9Da25YU3hjYmlBZ0lDQW5jM1JmWjNKbFpXNG5PaUJiSjNKbllpZzBOQ3d4TmpBc05EUXBKeXdnSjNKbllpZ3hOVElzTWpJekxERXpPQ2tuTENBbmNtZGlLRE01TENBeE56UXNJRGsyS1Njc0lDZHlaMklvTnpRc01UWXdMRGMwS1NkZExGeHVJQ0FnSUNkd2FXNXJKem9nV3lkeVoySW9NalEzTERFNE1pd3lNVEFwSjEwc1hHNGdJQ0FnSjJKeWIzZHVKem9nV3lkeVoySW9NVFF3TERnMkxEYzFLU2NzSUNkeVoySW9NVEF5TENBMk1pd2dOVFFwSjEwc1hHNGdJQ0FnSjJkeVlYa25PaUJiSjNKbllpZ3hNamNzTVRJM0xERXlOeWtuTENBbmNtZGlLREU1T1N3eE9Ua3NNVGs1S1Njc0lDZHlaMklvTVRrMkxERTFOaXd4TkRncEp5d2dKM0puWWlneU1qSXNJREl5TWl3Z01UZ3dLU2RkTEZ4dUlDQWdJQ2Q1Wld4c2IzY25PaUJiSjNKbllpZ3hPRGdzTVRnNUxETTBLU2RkTEZ4dUlDQWdJQ2QzYUdsMFpTYzZJRnNuY21kaUtESXpNQ3d5TXpBc01qTXdLU2RkTEZ4dUlDQjlPMXh1WEc0Z0lIQnliM1JsWTNSbFpDQnpkR0YwYVdNZ2JXRnJaVkJoYkdWMGRHVW9aSFE2SUZ0emRISnBibWRiWFN3Z2MzUnlhVzVuWFZ0ZExGeHVJQ0FnSUhOcGJYQnNhV1pwWldRZ1BTQm1ZV3h6WlN3Z1VHRnNaWFIwWlZSNWNHVTZJSFI1Y0dWdlppQlRaWEZRWVd4bGRIUmxRbUZ6WlNBOUlGTmxjVkJoYkdWMGRHVkNZWE5sWEc0Z0lDa2dlMXh1SUNBZ0lHTnZibk4wSUhCaGJHVjBkR1U2SUhzZ1cydGxlVG9nYzNSeWFXNW5YVG9nYzNSeWFXNW5JSDBnUFNCN2ZUdGNiaUFnSUNCa2RDNW1iM0pGWVdOb0tDaGpjQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ1kyOXVjM1FnYjJKcVRHbHpkQ0E5SUdOd1d6QmRPMXh1SUNBZ0lDQWdZMjl1YzNRZ1kyOXNiM1Z5SUQwZ1kzQmJNVjA3WEc0Z0lDQWdJQ0J2WW1wTWFYTjBMbVp2Y2tWaFkyZ29LRzlpYWl3Z2FXNWtLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lIQmhiR1YwZEdWYmIySnFYU0E5SUhSb2FYTXVZMjlzYjNWeVVHRnNaWFIwWlZ0amIyeHZkWEpkVzNOcGJYQnNhV1pwWldRZ1B5QXdJRG9nYVc1a1hUdGNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lIMHBPMXh1SUNBZ0lISmxkSFZ5YmlCdVpYY2dVR0ZzWlhSMFpWUjVjR1VvY0dGc1pYUjBaU2s3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUhKbFlXUnZibXg1SUY5d1lXeGxkSFJsT2lCN0lGdHRPaUJ6ZEhKcGJtZGRPaUJ6ZEhKcGJtY2dmVHRjYmx4dUlDQmpiMjV6ZEhKMVkzUnZjaWh3WVd4bGRIUmxPaUI3SUZ0dE9pQnpkSEpwYm1kZE9pQnpkSEpwYm1jZ2ZTa2dlMXh1SUNBZ0lIUm9hWE11WDNCaGJHVjBkR1VnUFNCd1lXeGxkSFJsTzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdkbGRDaHRPaUJ6ZEhKcGJtY3BPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbDl3WVd4bGRIUmxXMjFkTzF4dUlDQjlYRzU5WEc0aVhYMD0iLCJpbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuLyoqIG1ha2VzIHRoZSBjb2xvciBsZXNzIHdoaXRlLCBtYWtlcyB0aGUgdHJhbnNwYXJlbmN5IGVmZmVjdCBhbHdheXMgcGVyY2VwdGlibGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBjb2xvciB4IGNvb3JkaW5hdGUuXG4gKiAqL1xuZnVuY3Rpb24gY29ycmVjdENvbG9yKGNvbG9yKSB7XG4gICAgaWYgKGNvbG9yID09IG51bGwpXG4gICAgICAgIHJldHVybiAncmdiKDEwMCwxMDAsMTAwKSc7XG4gICAgY29uc3QgZGdDb2xvciA9IERHLkNvbG9yLmZyb21IdG1sKGNvbG9yKTtcbiAgICBjb25zdCBnID0gREcuQ29sb3IuZyhkZ0NvbG9yKTtcbiAgICBjb25zdCByID0gREcuQ29sb3IucihkZ0NvbG9yKTtcbiAgICBjb25zdCBiID0gREcuQ29sb3IuYihkZ0NvbG9yKTtcbiAgICAvLyBjYWxjdWxhdGUgZXVjbGlkZWFuIGRpc3RhbmNlIHRvIHdoaXRlXG4gICAgY29uc3QgZGlzdFRvQmxhY2sgPSBNYXRoLnNxcnQoTWF0aC5wb3coMCAtIHIsIDIpICsgTWF0aC5wb3coMCAtIGcsIDIpICsgTWF0aC5wb3coMCAtIGIsIDIpKTtcbiAgICAvLyBub3JtYWxpemUgdmVjdG9yIHIgZyBiXG4gICAgY29uc3Qgbm9ybVIgPSByIC8gZGlzdFRvQmxhY2s7XG4gICAgY29uc3Qgbm9ybUcgPSBnIC8gZGlzdFRvQmxhY2s7XG4gICAgY29uc3Qgbm9ybUIgPSBiIC8gZGlzdFRvQmxhY2s7XG4gICAgaWYgKGRpc3RUb0JsYWNrID4gMjEwKSB7XG4gICAgICAgIHJldHVybiBgcmdiKCR7bm9ybVIgKiAyMTB9LCR7bm9ybUcgKiAyMTB9LCR7bm9ybUIgKiAyMTB9KWA7XG4gICAgfVxuICAgIHJldHVybiBERy5Db2xvci50b1JnYihkZ0NvbG9yKTtcbn1cbmV4cG9ydCBjbGFzcyBTdHJpbmdVdGlscyB7XG4gICAgc3RhdGljIGhhc2hDb2RlKHMpIHtcbiAgICAgICAgbGV0IGhhc2ggPSAwO1xuICAgICAgICBpZiAocy5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm4gaGFzaDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBjaHIgPSBzLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgICAgICBoYXNoID0gKChoYXNoIDw8IDUpIC0gaGFzaCkgKyBjaHI7XG4gICAgICAgICAgICBoYXNoIHw9IDA7IC8vIENvbnZlcnQgdG8gMzJiaXQgaW50ZWdlclxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoYXNoO1xuICAgIH1cbn1cbmltcG9ydCB7IFNlcVBhbGV0dGVCYXNlIH0gZnJvbSAnLi9zZXEtcGFsZXR0ZXMnO1xuZXhwb3J0IGNsYXNzIFVua25vd25TZXFQYWxldHRlIHtcbn1cbmV4cG9ydCBjbGFzcyBHcmF5QWxsUGFsZXR0ZSBleHRlbmRzIFVua25vd25TZXFQYWxldHRlIHtcbiAgICBnZXQobSkge1xuICAgICAgICByZXR1cm4gJyM2NjY2NjYnO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBVbmtub3duQ29sb3JQYWxldHRlIGV4dGVuZHMgVW5rbm93blNlcVBhbGV0dGUge1xuICAgIHN0YXRpYyBidWlsZFBhbGV0dGUoKSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IFtdLmNvbmNhdCguLi5PYmplY3QudmFsdWVzKFNlcVBhbGV0dGVCYXNlLmNvbG91clBhbGV0dGUpKTtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgZ2V0KG0pIHtcbiAgICAgICAgY29uc3QgaGFzaCA9IFN0cmluZ1V0aWxzLmhhc2hDb2RlKG0pO1xuICAgICAgICBjb25zdCBwSSA9IGhhc2ggJSBVbmtub3duQ29sb3JQYWxldHRlLnBhbGV0dGUubGVuZ3RoO1xuICAgICAgICByZXR1cm4gY29ycmVjdENvbG9yKFVua25vd25Db2xvclBhbGV0dGUucGFsZXR0ZVtwSV0pO1xuICAgIH1cbn1cblVua25vd25Db2xvclBhbGV0dGUucGFsZXR0ZSA9IFVua25vd25Db2xvclBhbGV0dGUuYnVpbGRQYWxldHRlKCk7XG5leHBvcnQgY2xhc3MgVW5rbm93blNlcVBhbGV0dGVzIGV4dGVuZHMgU2VxUGFsZXR0ZUJhc2Uge1xuICAgIHN0YXRpYyBnZXQgR3JheSgpIHtcbiAgICAgICAgaWYgKHRoaXMuZ3JheSA9PT0gdm9pZCAwKVxuICAgICAgICAgICAgdGhpcy5ncmF5ID0gbmV3IEdyYXlBbGxQYWxldHRlKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmdyYXk7XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgQ29sb3IoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbG9yID09PSB2b2lkIDApXG4gICAgICAgICAgICB0aGlzLmNvbG9yID0gbmV3IFVua25vd25Db2xvclBhbGV0dGUoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sb3I7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZFc1cmJtOTNiaTVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYkluVnVhMjV2ZDI0dWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJSVUVzVDBGQlR5eExRVUZMTEVWQlFVVXNUVUZCVFN4cFFrRkJhVUlzUTBGQlF6dEJRVVYwUXpzN1MwRkZTenRCUVVOTUxGTkJRVk1zV1VGQldTeERRVUZETEV0QlFXOUNPMGxCUTNoRExFbEJRVWtzUzBGQlN5eEpRVUZKTEVsQlFVazdVVUZEWml4UFFVRlBMR3RDUVVGclFpeERRVUZETzBsQlJUVkNMRTFCUVUwc1QwRkJUeXhIUVVGWExFVkJRVVVzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wbEJRMnBFTEUxQlFVMHNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUXpsQ0xFMUJRVTBzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBsQlF6bENMRTFCUVUwc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJRemxDTEhkRFFVRjNRenRKUVVONFF5eE5RVUZOTEZkQlFWY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkROVVlzZVVKQlFYbENPMGxCUTNwQ0xFMUJRVTBzUzBGQlN5eEhRVUZITEVOQlFVTXNSMEZCUnl4WFFVRlhMRU5CUVVNN1NVRkRPVUlzVFVGQlRTeExRVUZMTEVkQlFVY3NRMEZCUXl4SFFVRkhMRmRCUVZjc1EwRkJRenRKUVVNNVFpeE5RVUZOTEV0QlFVc3NSMEZCUnl4RFFVRkRMRWRCUVVjc1YwRkJWeXhEUVVGRE8wbEJRemxDTEVsQlFVa3NWMEZCVnl4SFFVRkhMRWRCUVVjc1JVRkJSVHRSUVVOeVFpeFBRVUZQTEU5QlFVOHNTMEZCU3l4SFFVRkhMRWRCUVVjc1NVRkJTU3hMUVVGTExFZEJRVWNzUjBGQlJ5eEpRVUZKTEV0QlFVc3NSMEZCUnl4SFFVRkhMRWRCUVVjc1EwRkJRenRMUVVNMVJEdEpRVU5FTEU5QlFVOHNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdRVUZEYWtNc1EwRkJRenRCUVVWRUxFMUJRVTBzVDBGQlR5eFhRVUZYTzBsQlEyWXNUVUZCVFN4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGVE8xRkJRemxDTEVsQlFVa3NTVUZCU1N4SFFVRlhMRU5CUVVNc1EwRkJRenRSUVVOeVFpeEpRVUZKTEVOQlFVTXNRMEZCUXl4TlFVRk5MRXRCUVVzc1EwRkJRenRaUVVOb1FpeFBRVUZQTEVsQlFVa3NRMEZCUXp0UlFVTmtMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVmNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFsQlEzcERMRTFCUVUwc1IwRkJSeXhIUVVGWExFTkJRVU1zUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRjRU1zU1VGQlNTeEhRVUZITEVOQlFVTXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRPMWxCUTJ4RExFbEJRVWtzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl3eVFrRkJNa0k3VTBGRGRrTTdVVUZEUkN4UFFVRlBMRWxCUVVrc1EwRkJRenRKUVVOa0xFTkJRVU03UTBGRFJqdEJRVVZFTEU5QlFVOHNSVUZCWVN4alFVRmpMRVZCUVVNc1RVRkJUU3huUWtGQlowSXNRMEZCUXp0QlFVVXhSQ3hOUVVGTkxFOUJRV2RDTEdsQ1FVRnBRanREUVVWMFF6dEJRVVZFTEUxQlFVMHNUMEZCVHl4alFVRmxMRk5CUVZFc2FVSkJRV2xDTzBsQlF6VkRMRWRCUVVjc1EwRkJReXhEUVVGVE8xRkJRMnhDTEU5QlFVOHNVMEZCVXl4RFFVRkRPMGxCUTI1Q0xFTkJRVU03UTBGRFJqdEJRVWRFTEUxQlFVMHNUMEZCVHl4dFFrRkJiMElzVTBGQlVTeHBRa0ZCYVVJN1NVRkhhRVFzVFVGQlRTeERRVUZETEZsQlFWazdVVUZEZWtJc1RVRkJUU3hIUVVGSExFZEJRVWtzUlVGQlpTeERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zWTBGQll5eERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRjRVlzVDBGQlR5eEhRVUZITEVOQlFVTTdTVUZEWWl4RFFVRkRPMGxCUlUwc1IwRkJSeXhEUVVGRExFTkJRVk03VVVGRGJFSXNUVUZCVFN4SlFVRkpMRWRCUVZjc1YwRkJWeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTTNReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEpRVUZKTEVkQlFVY3NiVUpCUVcxQ0xFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXp0UlFVTnlSQ3hQUVVGUExGbEJRVmtzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTjJSQ3hEUVVGRE96dEJRVmhoTERKQ1FVRlBMRWRCUVdFc2JVSkJRVzFDTEVOQlFVTXNXVUZCV1N4RlFVRkZMRU5CUVVNN1FVRmpka1VzVFVGQlRTeFBRVUZQTEd0Q1FVRnRRaXhUUVVGUkxHTkJRV003U1VGSE4wTXNUVUZCVFN4TFFVRkxMRWxCUVVrN1VVRkRjRUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNTVUZCU1N4TFFVRkxMRXRCUVVzc1EwRkJRenRaUVVOMFFpeEpRVUZKTEVOQlFVTXNTVUZCU1N4SFFVRkhMRWxCUVVrc1kwRkJZeXhGUVVGRkxFTkJRVU03VVVGRGJrTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRE8wbEJRMjVDTEVOQlFVTTdTVUZKVFN4TlFVRk5MRXRCUVVzc1MwRkJTenRSUVVOeVFpeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRXRCUVVzc1MwRkJTeXhEUVVGRE8xbEJRM1pDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRWRCUVVjc1NVRkJTU3h0UWtGQmJVSXNSVUZCUlN4RFFVRkRPMUZCUTNwRExFOUJRVThzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXp0SlFVTndRaXhEUVVGRE8wTkJRMFlpTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnS2lCaGN5Qm5jbTlySUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5bmNtOXJKenRjYm1sdGNHOXlkQ0FxSUdGeklIVnBJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzkxYVNjN1hHNXBiWEJ2Y25RZ0tpQmhjeUJFUnlCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdlpHY25PMXh1WEc0dktpb2diV0ZyWlhNZ2RHaGxJR052Ykc5eUlHeGxjM01nZDJocGRHVXNJRzFoYTJWeklIUm9aU0IwY21GdWMzQmhjbVZ1WTNrZ1pXWm1aV04wSUdGc2QyRjVjeUJ3WlhKalpYQjBhV0pzWlZ4dUlDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlHTnZiRzl5SUhnZ1kyOXZjbVJwYm1GMFpTNWNiaUFxSUNvdlhHNW1kVzVqZEdsdmJpQmpiM0p5WldOMFEyOXNiM0lvWTI5c2IzSTZJSE4wY21sdVp5QjhJRzUxYkd3cE9pQnpkSEpwYm1jZ2UxeHVJQ0JwWmlBb1kyOXNiM0lnUFQwZ2JuVnNiQ2xjYmlBZ0lDQnlaWFIxY200Z0ozSm5ZaWd4TURBc01UQXdMREV3TUNrbk8xeHVYRzRnSUdOdmJuTjBJR1JuUTI5c2IzSTZJRzUxYldKbGNpQTlJRVJITGtOdmJHOXlMbVp5YjIxSWRHMXNLR052Ykc5eUtUdGNiaUFnWTI5dWMzUWdaeUE5SUVSSExrTnZiRzl5TG1jb1pHZERiMnh2Y2lrN1hHNGdJR052Ym5OMElISWdQU0JFUnk1RGIyeHZjaTV5S0dSblEyOXNiM0lwTzF4dUlDQmpiMjV6ZENCaUlEMGdSRWN1UTI5c2IzSXVZaWhrWjBOdmJHOXlLVHRjYmlBZ0x5OGdZMkZzWTNWc1lYUmxJR1YxWTJ4cFpHVmhiaUJrYVhOMFlXNWpaU0IwYnlCM2FHbDBaVnh1SUNCamIyNXpkQ0JrYVhOMFZHOUNiR0ZqYXlBOUlFMWhkR2d1YzNGeWRDaE5ZWFJvTG5CdmR5Z3dJQzBnY2l3Z01pa2dLeUJOWVhSb0xuQnZkeWd3SUMwZ1p5d2dNaWtnS3lCTllYUm9MbkJ2ZHlnd0lDMGdZaXdnTWlrcE8xeHVJQ0F2THlCdWIzSnRZV3hwZW1VZ2RtVmpkRzl5SUhJZ1p5QmlYRzRnSUdOdmJuTjBJRzV2Y20xU0lEMGdjaUF2SUdScGMzUlViMEpzWVdOck8xeHVJQ0JqYjI1emRDQnViM0p0UnlBOUlHY2dMeUJrYVhOMFZHOUNiR0ZqYXp0Y2JpQWdZMjl1YzNRZ2JtOXliVUlnUFNCaUlDOGdaR2x6ZEZSdlFteGhZMnM3WEc0Z0lHbG1JQ2hrYVhOMFZHOUNiR0ZqYXlBK0lESXhNQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQmdjbWRpS0NSN2JtOXliVklnS2lBeU1UQjlMQ1I3Ym05eWJVY2dLaUF5TVRCOUxDUjdibTl5YlVJZ0tpQXlNVEI5S1dBN1hHNGdJSDFjYmlBZ2NtVjBkWEp1SUVSSExrTnZiRzl5TG5SdlVtZGlLR1JuUTI5c2IzSXBPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nVTNSeWFXNW5WWFJwYkhNZ2UxeHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklHaGhjMmhEYjJSbEtITTZJSE4wY21sdVp5azZJRzUxYldKbGNpQjdYRzRnSUNBZ2JHVjBJR2hoYzJnNklHNTFiV0psY2lBOUlEQTdYRzRnSUNBZ2FXWWdLSE11YkdWdVozUm9JRDA5UFNBd0tWeHVJQ0FnSUNBZ2NtVjBkWEp1SUdoaGMyZzdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FUb2diblZ0WW1WeUlEMGdNRHNnYVNBOElITXViR1Z1WjNSb095QnBLeXNwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR05vY2pvZ2JuVnRZbVZ5SUQwZ2N5NWphR0Z5UTI5a1pVRjBLR2twTzF4dUlDQWdJQ0FnYUdGemFDQTlJQ2dvYUdGemFDQThQQ0ExS1NBdElHaGhjMmdwSUNzZ1kyaHlPMXh1SUNBZ0lDQWdhR0Z6YUNCOFBTQXdPeUF2THlCRGIyNTJaWEowSUhSdklETXlZbWwwSUdsdWRHVm5aWEpjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUdoaGMyZzdYRzRnSUgxY2JuMWNibHh1YVcxd2IzSjBJSHRUWlhGUVlXeGxkSFJsTENCVFpYRlFZV3hsZEhSbFFtRnpaWDBnWm5KdmJTQW5MaTl6WlhFdGNHRnNaWFIwWlhNbk8xeHVYRzVsZUhCdmNuUWdZV0p6ZEhKaFkzUWdZMnhoYzNNZ1ZXNXJibTkzYmxObGNWQmhiR1YwZEdVZ2FXMXdiR1Z0Wlc1MGN5QlRaWEZRWVd4bGRIUmxJSHRjYmlBZ2NIVmliR2xqSUdGaWMzUnlZV04wSUdkbGRDaHRPaUJ6ZEhKcGJtY3BPaUJ6ZEhKcGJtYzdYRzU5WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJIY21GNVFXeHNVR0ZzWlhSMFpTQmxlSFJsYm1SeklGVnVhMjV2ZDI1VFpYRlFZV3hsZEhSbElIdGNiaUFnY0hWaWJHbGpJR2RsZENodE9pQnpkSEpwYm1jcE9pQnpkSEpwYm1jZ2UxeHVJQ0FnSUhKbGRIVnliaUFuSXpZMk5qWTJOaWM3WEc0Z0lIMWNibjFjYmx4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nVlc1cmJtOTNia052Ykc5eVVHRnNaWFIwWlNCbGVIUmxibVJ6SUZWdWEyNXZkMjVUWlhGUVlXeGxkSFJsSUh0Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCd1lXeGxkSFJsT2lCemRISnBibWRiWFNBOUlGVnVhMjV2ZDI1RGIyeHZjbEJoYkdWMGRHVXVZblZwYkdSUVlXeGxkSFJsS0NrN1hHNWNiaUFnY0hKcGRtRjBaU0J6ZEdGMGFXTWdZblZwYkdSUVlXeGxkSFJsS0NrNklITjBjbWx1WjF0ZElIdGNiaUFnSUNCamIyNXpkQ0J5WlhNZ1BTQW9XMTBnWVhNZ2MzUnlhVzVuVzEwcExtTnZibU5oZENndUxpNVBZbXBsWTNRdWRtRnNkV1Z6S0ZObGNWQmhiR1YwZEdWQ1lYTmxMbU52Ykc5MWNsQmhiR1YwZEdVcEtUdGNiaUFnSUNCeVpYUjFjbTRnY21Wek8xeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklHZGxkQ2h0T2lCemRISnBibWNwT2lCemRISnBibWNnZTF4dUlDQWdJR052Ym5OMElHaGhjMmc2SUc1MWJXSmxjaUE5SUZOMGNtbHVaMVYwYVd4ekxtaGhjMmhEYjJSbEtHMHBPMXh1SUNBZ0lHTnZibk4wSUhCSklEMGdhR0Z6YUNBbElGVnVhMjV2ZDI1RGIyeHZjbEJoYkdWMGRHVXVjR0ZzWlhSMFpTNXNaVzVuZEdnN1hHNGdJQ0FnY21WMGRYSnVJR052Y25KbFkzUkRiMnh2Y2loVmJtdHViM2R1UTI5c2IzSlFZV3hsZEhSbExuQmhiR1YwZEdWYmNFbGRLVHRjYmlBZ2ZWeHVmVnh1WEc1bGVIQnZjblFnWTJ4aGMzTWdWVzVyYm05M2JsTmxjVkJoYkdWMGRHVnpJR1Y0ZEdWdVpITWdVMlZ4VUdGc1pYUjBaVUpoYzJVZ2UxeHVJQ0J3Y21sMllYUmxJSE4wWVhScFl5Qm5jbUY1T2lCVFpYRlFZV3hsZEhSbE8xeHVYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdaMlYwSUVkeVlYa29LVG9nVTJWeFVHRnNaWFIwWlNCN1hHNGdJQ0FnYVdZZ0tIUm9hWE11WjNKaGVTQTlQVDBnZG05cFpDQXdLVnh1SUNBZ0lDQWdkR2hwY3k1bmNtRjVJRDBnYm1WM0lFZHlZWGxCYkd4UVlXeGxkSFJsS0NrN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVozSmhlVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnYzNSaGRHbGpJR052Ykc5eU9pQlRaWEZRWVd4bGRIUmxPMXh1WEc0Z0lIQjFZbXhwWXlCemRHRjBhV01nWjJWMElFTnZiRzl5S0NrNklGTmxjVkJoYkdWMGRHVWdlMXh1SUNBZ0lHbG1JQ2gwYUdsekxtTnZiRzl5SUQwOVBTQjJiMmxrSURBcFhHNGdJQ0FnSUNCMGFHbHpMbU52Ykc5eUlEMGdibVYzSUZWdWEyNXZkMjVEYjJ4dmNsQmhiR1YwZEdVb0tUdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NWpiMnh2Y2p0Y2JpQWdmVnh1ZlZ4dUlsMTkiLCJpbXBvcnQgeyBtb25vbWVyVG9TaG9ydCB9IGZyb20gJy4vbWFjcm9tb2xlY3VsZSc7XG5jb25zdCB1bmRlZmluZWRDb2xvciA9ICdyZ2IoMTAwLDEwMCwxMDApJztcbmNvbnN0IGdyYXlDb2xvciA9ICcjODA4MDgwJztcbmNvbnN0IGJsYWNrQ29sb3IgPSAncmdiKDAsMCwwKSc7XG5jb25zdCBtb25vbWVyVG9TaG9ydEZ1bmN0aW9uID0gbW9ub21lclRvU2hvcnQ7XG5leHBvcnQgdmFyIERyYXdTdHlsZTtcbihmdW5jdGlvbiAoRHJhd1N0eWxlKSB7XG4gICAgRHJhd1N0eWxlW1wiTVNBXCJdID0gXCJNU0FcIjtcbiAgICBEcmF3U3R5bGVbXCJjbGFzc2ljXCJdID0gXCJjbGFzc2ljXCI7XG59KShEcmF3U3R5bGUgfHwgKERyYXdTdHlsZSA9IHt9KSk7XG4vKipcbiAqIEEgZnVuY3Rpb24gdGhhdCBwcmludHMgYSBzdHJpbmcgYWxpZ25lZCB0byBsZWZ0IG9yIGNlbnRlcmVkLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSB4IHggY29vcmRpbmF0ZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSB5IHkgY29vcmRpbmF0ZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSB3IFdpZHRoLlxuICogQHBhcmFtIHtudW1iZXJ9IGggSGVpZ2h0LlxuICogQHBhcmFtIHtDYW52YXNSZW5kZXJpbmdDb250ZXh0MkR9IGcgQ2FudmFzIHJlbmRlcmluZyBjb250ZXh0LlxuICogQHBhcmFtIHtzdHJpbmd9IHMgU3RyaW5nIHRvIHByaW50LlxuICogQHBhcmFtIHtzdHJpbmd9IFtjb2xvcj11bmRlZmluZWRDb2xvcl0gU3RyaW5nIGNvbG9yLlxuICogQHBhcmFtIHtudW1iZXJ9IFtwaXZvdD0wXSBQaXJ2b3QuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtsZWZ0PWZhbHNlXSBJcyBsZWZ0IGFsaWduZWQuXG4gKiBAcGFyYW0ge251bWJlcn0gW3RyYW5zcGFyZW5jeVJhdGU9MC4wXSBUcmFuc3BhcmVuY3kgcmF0ZSB3aGVyZSAxLjAgaXMgZnVsbHkgdHJhbnNwYXJlbnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBbc2VwYXJhdG9yPScnXSBJcyBzZXBhcmF0b3IgZm9yIHNlcXVlbmNlLlxuICogQHBhcmFtIHtib29sZWFufSBbbGFzdD1mYWxzZV0gSXMgY2hlY2tlciBpZiBlbGVtZW50IGxhc3Qgb3Igbm90LlxuICogQHBhcmFtIGRyYXdTdHlsZSBJcyBkcmF3IHN0eWxlLiBNU0EgLSBmb3IgbXVsdGljaGFyU2VxLCBjbGFzc2ljIC0gZm9yIG90aGVyIHNlcS5cbiAqIEBwYXJhbSBtYXhXb3JkIElzIGFycmF5IG9mIG1heCB3b3JkcyBmb3IgZWFjaCBsaW5lLlxuICogQHBhcmFtIHdvcmRJZHggSXMgaW5kZXggb2Ygd29yZCB3ZSBjdXJyZW50bHkgZHJhdy5cbiAqIEBwYXJhbSBncmlkQ2VsbCBJcyBncmlkIGNlbGwuXG4gKiBAcGFyYW0gcmVmZXJlbmNlU2VxdWVuY2UgSXMgcmVmZXJlbmNlIHNlcXVlbmNlIGZvciBkaWZmIG1vZGUuXG4gKiBAcGFyYW0gbWF4TGVuZ3RoT2ZNb25vbWVyIElzIG1heCBsZW5ndGggb2YgbW9ub21lci5cbiAqIEByZXR1cm4ge251bWJlcn0geCBjb29yZGluYXRlIHRvIHN0YXJ0IHByaW50aW5nIGF0LlxuICovXG5leHBvcnQgY29uc3QgcHJpbnRMZWZ0T3JDZW50ZXJlZCA9ICh4LCB5LCB3LCBoLCBnLCBzLCBjb2xvciA9IHVuZGVmaW5lZENvbG9yLCBwaXZvdCA9IDAsIGxlZnQgPSBmYWxzZSwgdHJhbnNwYXJlbmN5UmF0ZSA9IDEuMCwgc2VwYXJhdG9yID0gJycsIGxhc3QgPSBmYWxzZSwgZHJhd1N0eWxlID0gRHJhd1N0eWxlLmNsYXNzaWMsIG1heFdvcmQgPSB7fSwgd29yZElkeCA9IDAsIGdyaWRDZWxsID0gbnVsbCwgcmVmZXJlbmNlU2VxdWVuY2UgPSBbXSwgbWF4TGVuZ3RoT2ZNb25vbWVyID0gbnVsbCkgPT4ge1xuICAgIHZhciBfYSwgX2IsIF9jO1xuICAgIGcudGV4dEFsaWduID0gJ3N0YXJ0JztcbiAgICBsZXQgY29sb3JQYXJ0ID0gcy5zdWJzdHJpbmcoMCk7XG4gICAgbGV0IGdyYXlQYXJ0ID0gbGFzdCA/ICcnIDogc2VwYXJhdG9yO1xuICAgIGlmIChkcmF3U3R5bGUgPT09IERyYXdTdHlsZS5NU0EpIHtcbiAgICAgICAgZ3JheVBhcnQgPSAnJztcbiAgICB9XG4gICAgbGV0IGNvbG9yQ29kZSA9IHRydWU7XG4gICAgbGV0IGNvbXBhcmVXaXRoQ3VycmVudCA9IHRydWU7XG4gICAgbGV0IGhpZ2hsaWdodERpZmZlcmVuY2UgPSAnZGlmZmVyZW5jZSc7XG4gICAgaWYgKChncmlkQ2VsbCAhPSBudWxsKSAmJiAoZ3JpZENlbGwuY2VsbC5jb2x1bW4gIT0gbnVsbCkpIHtcbiAgICAgICAgY29sb3JDb2RlID0gKF9hID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4udGVtcFsnY29sb3ItY29kZSddKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0cnVlO1xuICAgICAgICBjb21wYXJlV2l0aEN1cnJlbnQgPSAoX2IgPSBncmlkQ2VsbC5jZWxsLmNvbHVtbi50ZW1wWydjb21wYXJlLXdpdGgtY3VycmVudCddKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiB0cnVlO1xuICAgICAgICBoaWdobGlnaHREaWZmZXJlbmNlID0gKF9jID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4udGVtcFsnaGlnaGxpZ2h0LWRpZmZlcmVuY2UnXSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogJ2RpZmZlcmVuY2UnO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50TW9ub21lciA9IHJlZmVyZW5jZVNlcXVlbmNlW3dvcmRJZHhdO1xuICAgIGlmIChjb21wYXJlV2l0aEN1cnJlbnQgJiYgKHJlZmVyZW5jZVNlcXVlbmNlLmxlbmd0aCA+IDApICYmIChoaWdobGlnaHREaWZmZXJlbmNlID09PSAnZGlmZmVyZW5jZScpKSB7XG4gICAgICAgIHRyYW5zcGFyZW5jeVJhdGUgPSAoY29sb3JQYXJ0ID09IGN1cnJlbnRNb25vbWVyKSA/IDAuMyA6IHRyYW5zcGFyZW5jeVJhdGU7XG4gICAgfVxuICAgIGlmIChjb21wYXJlV2l0aEN1cnJlbnQgJiYgKHJlZmVyZW5jZVNlcXVlbmNlLmxlbmd0aCA+IDApICYmIChoaWdobGlnaHREaWZmZXJlbmNlID09PSAnZXF1YWwnKSkge1xuICAgICAgICB0cmFuc3BhcmVuY3lSYXRlID0gKGNvbG9yUGFydCAhPSBjdXJyZW50TW9ub21lcikgPyAwLjMgOiB0cmFuc3BhcmVuY3lSYXRlO1xuICAgIH1cbiAgICBpZiAobWF4TGVuZ3RoT2ZNb25vbWVyICE9IG51bGwpIHtcbiAgICAgICAgY29sb3JQYXJ0ID0gbW9ub21lclRvU2hvcnRGdW5jdGlvbihjb2xvclBhcnQsIG1heExlbmd0aE9mTW9ub21lcik7XG4gICAgfVxuICAgIGxldCB0ZXh0U2l6ZSA9IGcubWVhc3VyZVRleHQoY29sb3JQYXJ0ICsgZ3JheVBhcnQpO1xuICAgIGNvbnN0IGluZGVudCA9IDU7XG4gICAgbGV0IG1heENvbG9yVGV4dFNpemUgPSBnLm1lYXN1cmVUZXh0KGNvbG9yUGFydCkud2lkdGg7XG4gICAgbGV0IGNvbG9yVGV4dFNpemUgPSBnLm1lYXN1cmVUZXh0KGNvbG9yUGFydCkud2lkdGg7XG4gICAgY29uc3QgZHkgPSBoIC8gMiAtICh0ZXh0U2l6ZS5mb250Qm91bmRpbmdCb3hBc2NlbnQgKyB0ZXh0U2l6ZS5mb250Qm91bmRpbmdCb3hEZXNjZW50KSAvIDIgKyAxO1xuICAgIHRleHRTaXplID0gdGV4dFNpemUud2lkdGg7XG4gICAgaWYgKGRyYXdTdHlsZSA9PT0gRHJhd1N0eWxlLk1TQSkge1xuICAgICAgICBtYXhDb2xvclRleHRTaXplID0gbWF4V29yZFt3b3JkSWR4XTtcbiAgICAgICAgdGV4dFNpemUgPSBtYXhXb3JkW3dvcmRJZHhdO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkcmF3KGR4MSwgZHgyKSB7XG4gICAgICAgIGNvbnN0IGRyYXdDb2xvciA9IGNvbG9yQ29kZSA/IGNvbG9yIDogYmxhY2tDb2xvcjtcbiAgICAgICAgZy5maWxsU3R5bGUgPSBkcmF3Q29sb3I7XG4gICAgICAgIGcuZ2xvYmFsQWxwaGEgPSB0cmFuc3BhcmVuY3lSYXRlO1xuICAgICAgICBpZiAoZHJhd1N0eWxlID09PSBEcmF3U3R5bGUuY2xhc3NpYykge1xuICAgICAgICAgICAgZy5maWxsVGV4dChjb2xvclBhcnQsIHggKyBkeDEsIHkgKyBkeSk7XG4gICAgICAgICAgICBnLmZpbGxTdHlsZSA9IGdyYXlDb2xvcjtcbiAgICAgICAgICAgIGcuZmlsbFRleHQoZ3JheVBhcnQsIHggKyBkeDIsIHkgKyBkeSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRyYXdTdHlsZSA9PT0gRHJhd1N0eWxlLk1TQSkge1xuICAgICAgICAgICAgZy5maWxsU3R5bGUgPSBkcmF3Q29sb3I7XG4gICAgICAgICAgICBnLmZpbGxUZXh0KGNvbG9yUGFydCwgeCArIGR4MSArICgobWF4V29yZFt3b3JkSWR4XSAtIGNvbG9yVGV4dFNpemUpIC8gMiksIHkgKyBkeSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGxlZnQgfHwgdGV4dFNpemUgPiB3KSB7XG4gICAgICAgIGRyYXcoaW5kZW50LCBpbmRlbnQgKyBtYXhDb2xvclRleHRTaXplKTtcbiAgICAgICAgcmV0dXJuIHggKyBtYXhDb2xvclRleHRTaXplICsgZy5tZWFzdXJlVGV4dChncmF5UGFydCkud2lkdGg7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjb25zdCBkeCA9ICh3IC0gdGV4dFNpemUpIC8gMjtcbiAgICAgICAgZHJhdyhkeCwgZHggKyBtYXhDb2xvclRleHRTaXplKTtcbiAgICAgICAgcmV0dXJuIHggKyBkeCArIG1heENvbG9yVGV4dFNpemU7XG4gICAgfVxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVkyVnNiQzF5Wlc1a1pYSmxjaTVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYkltTmxiR3d0Y21WdVpHVnlaWEl1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlJVRXNUMEZCVHl4RlFVRkRMR05CUVdNc1JVRkJReXhOUVVGTkxHbENRVUZwUWl4RFFVRkRPMEZCUlM5RExFMUJRVTBzWTBGQll5eEhRVUZITEd0Q1FVRnJRaXhEUVVGRE8wRkJRekZETEUxQlFVMHNVMEZCVXl4SFFVRkhMRk5CUVZNc1EwRkJRenRCUVVNMVFpeE5RVUZOTEZWQlFWVXNSMEZCUnl4WlFVRlpMRU5CUVVNN1FVRkRhRU1zVFVGQlRTeHpRa0ZCYzBJc1IwRkJNRVFzWTBGQll5eERRVUZETzBGQlJYSkhMRTFCUVUwc1EwRkJUaXhKUVVGWkxGTkJSMWc3UVVGSVJDeFhRVUZaTEZOQlFWTTdTVUZEYmtJc2QwSkJRVmNzUTBGQlFUdEpRVU5ZTEdkRFFVRnRRaXhEUVVGQk8wRkJRM0pDTEVOQlFVTXNSVUZJVnl4VFFVRlRMRXRCUVZRc1UwRkJVeXhSUVVkd1FqdEJRVVZFT3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wZEJjMEpITzBGQlEwZ3NUVUZCVFN4RFFVRkRMRTFCUVUwc2JVSkJRVzFDTEVkQlFVY3NRMEZEYWtNc1EwRkJVeXhGUVVGRkxFTkJRVk1zUlVGQlJTeERRVUZUTEVWQlFVVXNRMEZCVXl4RlFVTXhReXhEUVVFeVFpeEZRVUZGTEVOQlFWTXNSVUZCUlN4UlFVRm5RaXhqUVVGakxFVkJRM1JGTEZGQlFXZENMRU5CUVVNc1JVRkJSU3hKUVVGSkxFZEJRVWNzUzBGQlN5eEZRVUZGTEcxQ1FVRXlRaXhIUVVGSExFVkJReTlFTEZsQlFXOUNMRVZCUVVVc1JVRkJSU3hQUVVGblFpeExRVUZMTEVWQlFVVXNXVUZCZFVJc1UwRkJVeXhEUVVGRExFOUJRVThzUlVGQlJTeFZRVUYxUXl4RlFVRkZMRVZCUVVVc1ZVRkJhMElzUTBGQlF5eEZRVUZGTEZkQlFTdENMRWxCUVVrc1JVRkJSU3h2UWtGQk9FSXNSVUZCUlN4RlFVRkZMSEZDUVVGdlF5eEpRVUZKTEVWQlFWVXNSVUZCUlRzN1NVRkRjRklzUTBGQlF5eERRVUZETEZOQlFWTXNSMEZCUnl4UFFVRlBMRU5CUVVNN1NVRkRkRUlzU1VGQlNTeFRRVUZUTEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU12UWl4SlFVRkpMRkZCUVZFc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRE8wbEJRM0pETEVsQlFVa3NVMEZCVXl4TFFVRkxMRk5CUVZNc1EwRkJReXhIUVVGSExFVkJRVVU3VVVGREwwSXNVVUZCVVN4SFFVRkhMRVZCUVVVc1EwRkJRenRMUVVObU8wbEJRMFFzU1VGQlNTeFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRPMGxCUTNKQ0xFbEJRVWtzYTBKQlFXdENMRWRCUVVjc1NVRkJTU3hEUVVGRE8wbEJRemxDTEVsQlFVa3NiVUpCUVcxQ0xFZEJRVWNzV1VGQldTeERRVUZETzBsQlEzWkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFbEJRVWtzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzU1VGQlNTeEpRVUZKTEVOQlFVTXNSVUZCUlR0UlFVTjRSQ3hUUVVGVExFZEJRVWNzVFVGQlFTeFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEcxRFFVRkpMRWxCUVVrc1EwRkJRenRSUVVNMVJDeHJRa0ZCYTBJc1IwRkJSeXhOUVVGQkxGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4dFEwRkJTU3hKUVVGSkxFTkJRVU03VVVGREwwVXNiVUpCUVcxQ0xFZEJRVWNzVFVGQlFTeFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zYzBKQlFYTkNMRU5CUVVNc2JVTkJRVWtzV1VGQldTeERRVUZETzB0QlJYcEdPMGxCUTBRc1RVRkJUU3hqUVVGakxFZEJRVmNzYVVKQlFXbENMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRE1VUXNTVUZCU1N4clFrRkJhMElzU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeExRVUZMTEZsQlFWa3NRMEZCUXl4RlFVRkZPMUZCUTJ4SExHZENRVUZuUWl4SFFVRkhMRU5CUVVNc1UwRkJVeXhKUVVGSkxHTkJRV01zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRPMHRCUXpORk8wbEJRMFFzU1VGQlNTeHJRa0ZCYTBJc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhMUVVGTExFOUJRVThzUTBGQlF5eEZRVUZGTzFGQlF6ZEdMR2RDUVVGblFpeEhRVUZITEVOQlFVTXNVMEZCVXl4SlFVRkpMR05CUVdNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETzB0QlF6TkZPMGxCUTBRc1NVRkJTU3hyUWtGQmEwSXNTVUZCU1N4SlFVRkpMRVZCUVVVN1VVRkRPVUlzVTBGQlV5eEhRVUZITEhOQ1FVRnpRaXhEUVVGRExGTkJRVk1zUlVGQlJTeHJRa0ZCYTBJc1EwRkJReXhEUVVGRE8wdEJRMjVGTzBsQlIwUXNTVUZCU1N4UlFVRlJMRWRCUVZFc1EwRkJReXhEUVVGRExGZEJRVmNzUTBGQlF5eFRRVUZUTEVkQlFVY3NVVUZCVVN4RFFVRkRMRU5CUVVNN1NVRkRlRVFzVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUldwQ0xFbEJRVWtzWjBKQlFXZENMRWRCUVVjc1EwRkJReXhEUVVGRExGZEJRVmNzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNN1NVRkRkRVFzU1VGQlNTeGhRVUZoTEVkQlFVY3NRMEZCUXl4RFFVRkRMRmRCUVZjc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTTdTVUZEYmtRc1RVRkJUU3hGUVVGRkxFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXh4UWtGQmNVSXNSMEZCUnl4UlFVRlJMRU5CUVVNc2MwSkJRWE5DTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRemxHTEZGQlFWRXNSMEZCUnl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRE8wbEJRekZDTEVsQlFVa3NVMEZCVXl4TFFVRkxMRk5CUVZNc1EwRkJReXhIUVVGSExFVkJRVVU3VVVGREwwSXNaMEpCUVdkQ0xFZEJRVWNzVDBGQlR5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNCRExGRkJRVkVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1MwRkROMEk3U1VGRlJDeFRRVUZUTEVsQlFVa3NRMEZCUXl4SFFVRlhMRVZCUVVVc1IwRkJWenRSUVVOd1F5eE5RVUZOTEZOQlFWTXNSMEZCUnl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNWVUZCVlN4RFFVRkRPMUZCUTJwRUxFTkJRVU1zUTBGQlF5eFRRVUZUTEVkQlFVY3NVMEZCVXl4RFFVRkRPMUZCUTNoQ0xFTkJRVU1zUTBGQlF5eFhRVUZYTEVkQlFVY3NaMEpCUVdkQ0xFTkJRVU03VVVGRGFrTXNTVUZCU1N4VFFVRlRMRXRCUVVzc1UwRkJVeXhEUVVGRExFOUJRVThzUlVGQlJUdFpRVU51UXl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExGTkJRVk1zUlVGQlJTeERRVUZETEVkQlFVY3NSMEZCUnl4RlFVRkZMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF6dFpRVU4yUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhIUVVGSExGTkJRVk1zUTBGQlF6dFpRVU40UWl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExGRkJRVkVzUlVGQlJTeERRVUZETEVkQlFVY3NSMEZCUnl4RlFVRkZMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF6dFRRVU4yUXp0UlFVTkVMRWxCUVVrc1UwRkJVeXhMUVVGTExGTkJRVk1zUTBGQlF5eEhRVUZITEVWQlFVVTdXVUZETDBJc1EwRkJReXhEUVVGRExGTkJRVk1zUjBGQlJ5eFRRVUZUTEVOQlFVTTdXVUZEZUVJc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXl4SFFVRkhMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMR0ZCUVdFc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJRenRUUVVOdVJqdEpRVU5JTEVOQlFVTTdTVUZGUkN4SlFVRkpMRWxCUVVrc1NVRkJTU3hSUVVGUkxFZEJRVWNzUTBGQlF5eEZRVUZGTzFGQlEzaENMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzVFVGQlRTeEhRVUZITEdkQ1FVRm5RaXhEUVVGRExFTkJRVU03VVVGRGVFTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1owSkJRV2RDTEVkQlFVY3NRMEZCUXl4RFFVRkRMRmRCUVZjc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTTdTMEZGTjBRN1UwRkJUVHRSUVVOTUxFMUJRVTBzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRkZCUVZFc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU01UWl4SlFVRkpMRU5CUVVNc1JVRkJSU3hGUVVGRkxFVkJRVVVzUjBGQlJ5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRE8xRkJRMmhETEU5QlFVOHNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhuUWtGQlowSXNRMEZCUXp0TFFVTnNRenRCUVVOSUxFTkJRVU1zUTBGQlF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQXFJR0Z6SUVSSElHWnliMjBnSjJSaGRHRm5jbTlyTFdGd2FTOWtaeWM3WEc1Y2JtbHRjRzl5ZENCN2JXOXViMjFsY2xSdlUyaHZjblI5SUdaeWIyMGdKeTR2YldGamNtOXRiMnhsWTNWc1pTYzdYRzVjYm1OdmJuTjBJSFZ1WkdWbWFXNWxaRU52Ykc5eUlEMGdKM0puWWlneE1EQXNNVEF3TERFd01Da25PMXh1WTI5dWMzUWdaM0poZVVOdmJHOXlJRDBnSnlNNE1EZ3dPREFuTzF4dVkyOXVjM1FnWW14aFkydERiMnh2Y2lBOUlDZHlaMklvTUN3d0xEQXBKenRjYm1OdmJuTjBJRzF2Ym05dFpYSlViMU5vYjNKMFJuVnVZM1JwYjI0NklDaGhiV2x1YnpvZ2MzUnlhVzVuTENCdFlYaE1aVzVuZEdoUFprMXZibTl0WlhJNklHNTFiV0psY2lrZ1BUNGdjM1J5YVc1bklEMGdiVzl1YjIxbGNsUnZVMmh2Y25RN1hHNWNibVY0Y0c5eWRDQmxiblZ0SUVSeVlYZFRkSGxzWlNCN1hHNGdJRTFUUVNBOUlDZE5VMEVuTEZ4dUlDQmpiR0Z6YzJsaklEMGdKMk5zWVhOemFXTW5MRnh1ZlZ4dVhHNHZLaXBjYmlBcUlFRWdablZ1WTNScGIyNGdkR2hoZENCd2NtbHVkSE1nWVNCemRISnBibWNnWVd4cFoyNWxaQ0IwYnlCc1pXWjBJRzl5SUdObGJuUmxjbVZrTGx4dUlDcGNiaUFxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0I0SUhnZ1kyOXZjbVJwYm1GMFpTNWNiaUFxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0I1SUhrZ1kyOXZjbVJwYm1GMFpTNWNiaUFxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0IzSUZkcFpIUm9MbHh1SUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUdnZ1NHVnBaMmgwTGx4dUlDb2dRSEJoY21GdElIdERZVzUyWVhOU1pXNWtaWEpwYm1kRGIyNTBaWGgwTWtSOUlHY2dRMkZ1ZG1GeklISmxibVJsY21sdVp5QmpiMjUwWlhoMExseHVJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJSE1nVTNSeWFXNW5JSFJ2SUhCeWFXNTBMbHh1SUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUZ0amIyeHZjajExYm1SbFptbHVaV1JEYjJ4dmNsMGdVM1J5YVc1bklHTnZiRzl5TGx4dUlDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlGdHdhWFp2ZEQwd1hTQlFhWEoyYjNRdVhHNGdLaUJBY0dGeVlXMGdlMkp2YjJ4bFlXNTlJRnRzWldaMFBXWmhiSE5sWFNCSmN5QnNaV1owSUdGc2FXZHVaV1F1WEc0Z0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1czUnlZVzV6Y0dGeVpXNWplVkpoZEdVOU1DNHdYU0JVY21GdWMzQmhjbVZ1WTNrZ2NtRjBaU0IzYUdWeVpTQXhMakFnYVhNZ1puVnNiSGtnZEhKaGJuTndZWEpsYm5SY2JpQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQmJjMlZ3WVhKaGRHOXlQU2NuWFNCSmN5QnpaWEJoY21GMGIzSWdabTl5SUhObGNYVmxibU5sTGx4dUlDb2dRSEJoY21GdElIdGliMjlzWldGdWZTQmJiR0Z6ZEQxbVlXeHpaVjBnU1hNZ1kyaGxZMnRsY2lCcFppQmxiR1Z0Wlc1MElHeGhjM1FnYjNJZ2JtOTBMbHh1SUNvZ1FIQmhjbUZ0SUdSeVlYZFRkSGxzWlNCSmN5QmtjbUYzSUhOMGVXeGxMaUJOVTBFZ0xTQm1iM0lnYlhWc2RHbGphR0Z5VTJWeExDQmpiR0Z6YzJsaklDMGdabTl5SUc5MGFHVnlJSE5sY1M1Y2JpQXFJRUJ3WVhKaGJTQnRZWGhYYjNKa0lFbHpJR0Z5Y21GNUlHOW1JRzFoZUNCM2IzSmtjeUJtYjNJZ1pXRmphQ0JzYVc1bExseHVJQ29nUUhCaGNtRnRJSGR2Y21SSlpIZ2dTWE1nYVc1a1pYZ2diMllnZDI5eVpDQjNaU0JqZFhKeVpXNTBiSGtnWkhKaGR5NWNiaUFxSUVCd1lYSmhiU0JuY21sa1EyVnNiQ0JKY3lCbmNtbGtJR05sYkd3dVhHNGdLaUJBY0dGeVlXMGdjbVZtWlhKbGJtTmxVMlZ4ZFdWdVkyVWdTWE1nY21WbVpYSmxibU5sSUhObGNYVmxibU5sSUdadmNpQmthV1ptSUcxdlpHVXVYRzRnS2lCQWNHRnlZVzBnYldGNFRHVnVaM1JvVDJaTmIyNXZiV1Z5SUVseklHMWhlQ0JzWlc1bmRHZ2diMllnYlc5dWIyMWxjaTVjYmlBcUlFQnlaWFIxY200Z2UyNTFiV0psY24wZ2VDQmpiMjl5WkdsdVlYUmxJSFJ2SUhOMFlYSjBJSEJ5YVc1MGFXNW5JR0YwTGx4dUlDb3ZYRzVsZUhCdmNuUWdZMjl1YzNRZ2NISnBiblJNWldaMFQzSkRaVzUwWlhKbFpDQTlJQ2hjYmlBZ2VEb2diblZ0WW1WeUxDQjVPaUJ1ZFcxaVpYSXNJSGM2SUc1MWJXSmxjaXdnYURvZ2JuVnRZbVZ5TEZ4dUlDQm5PaUJEWVc1MllYTlNaVzVrWlhKcGJtZERiMjUwWlhoME1rUXNJSE02SUhOMGNtbHVaeXdnWTI5c2IzSTZJSE4wY21sdVp5QTlJSFZ1WkdWbWFXNWxaRU52Ykc5eUxGeHVJQ0J3YVhadmREb2diblZ0WW1WeUlEMGdNQ3dnYkdWbWRDQTlJR1poYkhObExDQjBjbUZ1YzNCaGNtVnVZM2xTWVhSbE9pQnVkVzFpWlhJZ1BTQXhMakFzWEc0Z0lITmxjR0Z5WVhSdmNqb2djM1J5YVc1bklEMGdKeWNzSUd4aGMzUTZJR0p2YjJ4bFlXNGdQU0JtWVd4elpTd2daSEpoZDFOMGVXeGxPaUJFY21GM1UzUjViR1VnUFNCRWNtRjNVM1I1YkdVdVkyeGhjM05wWXl3Z2JXRjRWMjl5WkRvZ2V5QmJhVzVrWlhnNklITjBjbWx1WjEwNklHNTFiV0psY2lCOUlEMGdlMzBzSUhkdmNtUkpaSGc2SUc1MWJXSmxjaUE5SURBc0lHZHlhV1JEWld4c09pQkVSeTVIY21sa1EyVnNiQ0I4SUc1MWJHd2dQU0J1ZFd4c0xDQnlaV1psY21WdVkyVlRaWEYxWlc1alpUb2djM1J5YVc1blcxMGdQU0JiWFN3Z2JXRjRUR1Z1WjNSb1QyWk5iMjV2YldWeU9pQnVkVzFpWlhJZ2ZDQnVkV3hzSUQwZ2JuVnNiQ2s2SUc1MWJXSmxjaUE5UGlCN1hHNGdJR2N1ZEdWNGRFRnNhV2R1SUQwZ0ozTjBZWEowSnp0Y2JpQWdiR1YwSUdOdmJHOXlVR0Z5ZENBOUlITXVjM1ZpYzNSeWFXNW5LREFwTzF4dUlDQnNaWFFnWjNKaGVWQmhjblFnUFNCc1lYTjBJRDhnSnljZ09pQnpaWEJoY21GMGIzSTdYRzRnSUdsbUlDaGtjbUYzVTNSNWJHVWdQVDA5SUVSeVlYZFRkSGxzWlM1TlUwRXBJSHRjYmlBZ0lDQm5jbUY1VUdGeWRDQTlJQ2NuTzF4dUlDQjlYRzRnSUd4bGRDQmpiMnh2Y2tOdlpHVWdQU0IwY25WbE8xeHVJQ0JzWlhRZ1kyOXRjR0Z5WlZkcGRHaERkWEp5Wlc1MElEMGdkSEoxWlR0Y2JpQWdiR1YwSUdocFoyaHNhV2RvZEVScFptWmxjbVZ1WTJVZ1BTQW5aR2xtWm1WeVpXNWpaU2M3WEc0Z0lHbG1JQ2dvWjNKcFpFTmxiR3dnSVQwZ2JuVnNiQ2tnSmlZZ0tHZHlhV1JEWld4c0xtTmxiR3d1WTI5c2RXMXVJQ0U5SUc1MWJHd3BLU0I3WEc0Z0lDQWdZMjlzYjNKRGIyUmxJRDBnWjNKcFpFTmxiR3d1WTJWc2JDNWpiMngxYlc0dWRHVnRjRnNuWTI5c2IzSXRZMjlrWlNkZElEOC9JSFJ5ZFdVN1hHNGdJQ0FnWTI5dGNHRnlaVmRwZEdoRGRYSnlaVzUwSUQwZ1ozSnBaRU5sYkd3dVkyVnNiQzVqYjJ4MWJXNHVkR1Z0Y0ZzblkyOXRjR0Z5WlMxM2FYUm9MV04xY25KbGJuUW5YU0EvUHlCMGNuVmxPMXh1SUNBZ0lHaHBaMmhzYVdkb2RFUnBabVpsY21WdVkyVWdQU0JuY21sa1EyVnNiQzVqWld4c0xtTnZiSFZ0Ymk1MFpXMXdXeWRvYVdkb2JHbG5hSFF0WkdsbVptVnlaVzVqWlNkZElEOC9JQ2RrYVdabVpYSmxibU5sSnp0Y2JseHVJQ0I5WEc0Z0lHTnZibk4wSUdOMWNuSmxiblJOYjI1dmJXVnlPaUJ6ZEhKcGJtY2dQU0J5WldabGNtVnVZMlZUWlhGMVpXNWpaVnQzYjNKa1NXUjRYVHRjYmlBZ2FXWWdLR052YlhCaGNtVlhhWFJvUTNWeWNtVnVkQ0FtSmlBb2NtVm1aWEpsYm1ObFUyVnhkV1Z1WTJVdWJHVnVaM1JvSUQ0Z01Da2dKaVlnS0docFoyaHNhV2RvZEVScFptWmxjbVZ1WTJVZ1BUMDlJQ2RrYVdabVpYSmxibU5sSnlrcElIdGNiaUFnSUNCMGNtRnVjM0JoY21WdVkzbFNZWFJsSUQwZ0tHTnZiRzl5VUdGeWRDQTlQU0JqZFhKeVpXNTBUVzl1YjIxbGNpa2dQeUF3TGpNZ09pQjBjbUZ1YzNCaGNtVnVZM2xTWVhSbE8xeHVJQ0I5WEc0Z0lHbG1JQ2hqYjIxd1lYSmxWMmwwYUVOMWNuSmxiblFnSmlZZ0tISmxabVZ5Wlc1alpWTmxjWFZsYm1ObExteGxibWQwYUNBK0lEQXBJQ1ltSUNob2FXZG9iR2xuYUhSRWFXWm1aWEpsYm1ObElEMDlQU0FuWlhGMVlXd25LU2tnZTF4dUlDQWdJSFJ5WVc1emNHRnlaVzVqZVZKaGRHVWdQU0FvWTI5c2IzSlFZWEowSUNFOUlHTjFjbkpsYm5STmIyNXZiV1Z5S1NBL0lEQXVNeUE2SUhSeVlXNXpjR0Z5Wlc1amVWSmhkR1U3WEc0Z0lIMWNiaUFnYVdZZ0tHMWhlRXhsYm1kMGFFOW1UVzl1YjIxbGNpQWhQU0J1ZFd4c0tTQjdYRzRnSUNBZ1kyOXNiM0pRWVhKMElEMGdiVzl1YjIxbGNsUnZVMmh2Y25SR2RXNWpkR2x2YmloamIyeHZjbEJoY25Rc0lHMWhlRXhsYm1kMGFFOW1UVzl1YjIxbGNpazdYRzRnSUgxY2JseHVYRzRnSUd4bGRDQjBaWGgwVTJsNlpUb2dZVzU1SUQwZ1p5NXRaV0Z6ZFhKbFZHVjRkQ2hqYjJ4dmNsQmhjblFnS3lCbmNtRjVVR0Z5ZENrN1hHNGdJR052Ym5OMElHbHVaR1Z1ZENBOUlEVTdYRzVjYmlBZ2JHVjBJRzFoZUVOdmJHOXlWR1Y0ZEZOcGVtVWdQU0JuTG0xbFlYTjFjbVZVWlhoMEtHTnZiRzl5VUdGeWRDa3VkMmxrZEdnN1hHNGdJR3hsZENCamIyeHZjbFJsZUhSVGFYcGxJRDBnWnk1dFpXRnpkWEpsVkdWNGRDaGpiMnh2Y2xCaGNuUXBMbmRwWkhSb08xeHVJQ0JqYjI1emRDQmtlU0E5SUdnZ0x5QXlJQzBnS0hSbGVIUlRhWHBsTG1admJuUkNiM1Z1WkdsdVowSnZlRUZ6WTJWdWRDQXJJSFJsZUhSVGFYcGxMbVp2Ym5SQ2IzVnVaR2x1WjBKdmVFUmxjMk5sYm5RcElDOGdNaUFySURFN1hHNGdJSFJsZUhSVGFYcGxJRDBnZEdWNGRGTnBlbVV1ZDJsa2RHZzdYRzRnSUdsbUlDaGtjbUYzVTNSNWJHVWdQVDA5SUVSeVlYZFRkSGxzWlM1TlUwRXBJSHRjYmlBZ0lDQnRZWGhEYjJ4dmNsUmxlSFJUYVhwbElEMGdiV0Y0VjI5eVpGdDNiM0prU1dSNFhUdGNiaUFnSUNCMFpYaDBVMmw2WlNBOUlHMWhlRmR2Y21SYmQyOXlaRWxrZUYwN1hHNGdJSDFjYmx4dUlDQm1kVzVqZEdsdmJpQmtjbUYzS0dSNE1Ub2diblZ0WW1WeUxDQmtlREk2SUc1MWJXSmxjaWs2SUhadmFXUWdlMXh1SUNBZ0lHTnZibk4wSUdSeVlYZERiMnh2Y2lBOUlHTnZiRzl5UTI5a1pTQS9JR052Ykc5eUlEb2dZbXhoWTJ0RGIyeHZjanRjYmlBZ0lDQm5MbVpwYkd4VGRIbHNaU0E5SUdSeVlYZERiMnh2Y2p0Y2JpQWdJQ0JuTG1kc2IySmhiRUZzY0doaElEMGdkSEpoYm5Od1lYSmxibU41VW1GMFpUdGNiaUFnSUNCcFppQW9aSEpoZDFOMGVXeGxJRDA5UFNCRWNtRjNVM1I1YkdVdVkyeGhjM05wWXlrZ2UxeHVJQ0FnSUNBZ1p5NW1hV3hzVkdWNGRDaGpiMnh2Y2xCaGNuUXNJSGdnS3lCa2VERXNJSGtnS3lCa2VTazdYRzRnSUNBZ0lDQm5MbVpwYkd4VGRIbHNaU0E5SUdkeVlYbERiMnh2Y2p0Y2JpQWdJQ0FnSUdjdVptbHNiRlJsZUhRb1ozSmhlVkJoY25Rc0lIZ2dLeUJrZURJc0lIa2dLeUJrZVNrN1hHNGdJQ0FnZlZ4dUlDQWdJR2xtSUNoa2NtRjNVM1I1YkdVZ1BUMDlJRVJ5WVhkVGRIbHNaUzVOVTBFcElIdGNiaUFnSUNBZ0lHY3VabWxzYkZOMGVXeGxJRDBnWkhKaGQwTnZiRzl5TzF4dUlDQWdJQ0FnWnk1bWFXeHNWR1Y0ZENoamIyeHZjbEJoY25Rc0lIZ2dLeUJrZURFZ0t5QW9LRzFoZUZkdmNtUmJkMjl5WkVsa2VGMGdMU0JqYjJ4dmNsUmxlSFJUYVhwbEtTQXZJRElwTENCNUlDc2daSGtwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUdsbUlDaHNaV1owSUh4OElIUmxlSFJUYVhwbElENGdkeWtnZTF4dUlDQWdJR1J5WVhjb2FXNWtaVzUwTENCcGJtUmxiblFnS3lCdFlYaERiMnh2Y2xSbGVIUlRhWHBsS1R0Y2JpQWdJQ0J5WlhSMWNtNGdlQ0FySUcxaGVFTnZiRzl5VkdWNGRGTnBlbVVnS3lCbkxtMWxZWE4xY21WVVpYaDBLR2R5WVhsUVlYSjBLUzUzYVdSMGFEdGNibHh1SUNCOUlHVnNjMlVnZTF4dUlDQWdJR052Ym5OMElHUjRJRDBnS0hjZ0xTQjBaWGgwVTJsNlpTa2dMeUF5TzF4dUlDQWdJR1J5WVhjb1pIZ3NJR1I0SUNzZ2JXRjRRMjlzYjNKVVpYaDBVMmw2WlNrN1hHNGdJQ0FnY21WMGRYSnVJSGdnS3lCa2VDQXJJRzFoZUVOdmJHOXlWR1Y0ZEZOcGVtVTdYRzRnSUgxY2JuMDdYRzVjYmlKZGZRPT0iLCJpbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHd1IGZyb20gJ3d1JztcbmltcG9ydCB7IFZlY3RvciB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3R5cGUtZGVjbGFyYXRpb25zJztcbmltcG9ydCB7IHZlY3Rvckxlbmd0aCwgdmVjdG9yRG90UHJvZHVjdCB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3ZlY3Rvci1vcGVyYXRpb25zJztcbmltcG9ydCB7IEFtaW5vYWNpZHNQYWxldHRlcyB9IGZyb20gJy4uL2FtaW5vYWNpZHMnO1xuaW1wb3J0IHsgTnVjbGVvdGlkZXNQYWxldHRlcyB9IGZyb20gJy4uL251Y2xlb3RpZGVzJztcbmltcG9ydCB7IFVua25vd25TZXFQYWxldHRlcyB9IGZyb20gJy4uL3Vua25vd24nO1xuaW1wb3J0IHsgVW5pdHNIYW5kbGVyIH0gZnJvbSAnLi4vdXRpbHMvdW5pdHMtaGFuZGxlcic7XG47XG4vKiogU3RhdHMgb2Ygc2VxdWVuY2VzIHdpdGggc3BlY2lmaWVkIHNwbGl0dGVyIGZ1bmMsIHJldHVybnMgeyBmcmVxLCBzYW1lTGVuZ3RoIH0uXG4gKiBAcGFyYW0ge0RHLkNvbHVtbn0gc2VxQ29sXG4gKiBAcGFyYW0ge251bWJlcn0gbWluTGVuZ3RoXG4gKiBAcGFyYW0ge1NwbGl0dGVyRnVuY30gc3BsaXR0ZXJcbiAqIEByZXR1cm4geyBTZXFDb2xTdGF0cyB9LCBzYW1lTGVuZ3RoOiBib29sZWFuIH0gc3RhdHMgb2YgY29sdW1uIHNlcXVlbmNlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhdHMoc2VxQ29sLCBtaW5MZW5ndGgsIHNwbGl0dGVyKSB7XG4gICAgY29uc3QgZnJlcSA9IHt9O1xuICAgIGxldCBzYW1lTGVuZ3RoID0gdHJ1ZTtcbiAgICBsZXQgZmlyc3RMZW5ndGggPSBudWxsO1xuICAgIGZvciAoY29uc3Qgc2VxIG9mIHNlcUNvbC5jYXRlZ29yaWVzKSB7XG4gICAgICAgIGNvbnN0IG1TZXEgPSBzcGxpdHRlcihzZXEpO1xuICAgICAgICBpZiAoZmlyc3RMZW5ndGggPT0gbnVsbClcbiAgICAgICAgICAgIGZpcnN0TGVuZ3RoID0gbVNlcS5sZW5ndGg7XG4gICAgICAgIGVsc2UgaWYgKG1TZXEubGVuZ3RoICE9PSBmaXJzdExlbmd0aClcbiAgICAgICAgICAgIHNhbWVMZW5ndGggPSBmYWxzZTtcbiAgICAgICAgaWYgKG1TZXEubGVuZ3RoID49IG1pbkxlbmd0aCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBtIG9mIG1TZXEpIHtcbiAgICAgICAgICAgICAgICBpZiAoIShtIGluIGZyZXEpKVxuICAgICAgICAgICAgICAgICAgICBmcmVxW21dID0gMDtcbiAgICAgICAgICAgICAgICBmcmVxW21dICs9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgZnJlcTogZnJlcSwgc2FtZUxlbmd0aDogc2FtZUxlbmd0aCB9O1xufVxuZXhwb3J0IGNvbnN0IG1vbm9tZXJSZSA9IC9cXFsoXFx3KylcXF18KFxcdyl8KC0pL2c7XG4vKiogU3BsaXQgc2VxdWVuY2UgZm9yIHNpbmdsZSBjaGFyYWN0ZXIgbW9ub21lcnMsIHNxdWFyZSBicmFja2V0cyBtdWx0aWNoYXIgbW9ub21lciBuYW1lcyBvciBnYXAgc3ltYm9sLlxuICogQHBhcmFtIHthbnl9IHNlcSBvYmplY3Qgd2l0aCBzZXF1ZW5jZVxuICogQHJldHVybiB7c3RyaW5nW119IGFycmF5IG9mIG1vbm9tZXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdHRlckFzRmFzdGEoc2VxKSB7XG4gICAgcmV0dXJuIHd1KHNlcS50b1N0cmluZygpLm1hdGNoQWxsKG1vbm9tZXJSZSkpXG4gICAgICAgIC5tYXAoKG1hKSA9PiB7XG4gICAgICAgIGxldCBtUmVzO1xuICAgICAgICBjb25zdCBtID0gbWFbMF07XG4gICAgICAgIGlmIChtLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIG1SZXMgPSBtYVsxXTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIG1SZXMgPSBtO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtUmVzO1xuICAgIH0pLnRvQXJyYXkoKTtcbn1cbi8qKiBHZXRzIG1ldGhvZCB0byBzcGxpdCBzZXF1ZW5jZSBieSBzZXBhcmF0b3JcbiAqIEBwYXJhbSB7c3RyaW5nfSBzZXBhcmF0b3JcbiAqIEBwYXJhbSBsaW1pdFxuICogQHJldHVybiB7U3BsaXR0ZXJGdW5jfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3BsaXR0ZXJXaXRoU2VwYXJhdG9yKHNlcGFyYXRvciwgbGltaXQgPSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gKHNlcSkgPT4ge1xuICAgICAgICByZXR1cm4gc2VxLnNwbGl0KHNlcGFyYXRvciwgbGltaXQpO1xuICAgIH07XG59XG5jb25zdCBoZWxtUmUgPSAvKFBFUFRJREUxfEROQTF8Uk5BMSlcXHsoW159XSspfS9nO1xuY29uc3QgaGVsbVBwMVJlID0gL1xcWyhbXlxcW1xcXV0rKV0vZztcbi8qKiBTcGxpdHMgSGVsbSBzdHJpbmcgdG8gbW9ub21lcnMsIGJ1dCBkb2VzIG5vdCByZXBsYWNlIG1vbm9tZXIgbmFtZXMgdG8gb3RoZXIgbm90YXRpb24gKGUuZy4gZm9yIFJOQSkuXG4gKiBPbmx5IGZvciBsaW5lYXIgcG9seW1lcnMsIGRvZXMgbm90IHNwbGl0IFJOQSBmb3Igcmlib3NlIGFuZCBwaG9zcGhhdGUgbW9ub21lcnMuXG4gKiBAcGFyYW0ge3N0cmluZ30gc2VxIFNvdXJjZSBzdHJpbmcgb2YgSEVMTSBub3RhdGlvblxuICogQHJldHVybiB7c3RyaW5nW119XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdHRlckFzSGVsbShzZXEpIHtcbiAgICBoZWxtUmUubGFzdEluZGV4ID0gMDtcbiAgICBjb25zdCBlYSA9IGhlbG1SZS5leGVjKHNlcS50b1N0cmluZygpKTtcbiAgICBjb25zdCBpblNlcSA9IGVhID8gZWFbMl0gOiBudWxsO1xuICAgIGNvbnN0IG1tUG9zdFByb2Nlc3MgPSAobW0pID0+IHtcbiAgICAgICAgaGVsbVBwMVJlLmxhc3RJbmRleCA9IDA7XG4gICAgICAgIGNvbnN0IHBwMU0gPSBoZWxtUHAxUmUuZXhlYyhtbSk7XG4gICAgICAgIGlmIChwcDFNICYmIHBwMU0ubGVuZ3RoID49IDIpXG4gICAgICAgICAgICByZXR1cm4gcHAxTVsxXTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgcmV0dXJuIG1tO1xuICAgIH07XG4gICAgY29uc3QgbW1MaXN0ID0gaW5TZXEgPyBpblNlcS5zcGxpdCgnLicpIDogW107XG4gICAgcmV0dXJuIG1tTGlzdC5tYXAobW1Qb3N0UHJvY2Vzcyk7XG59XG4vKiogR2V0IHNwbGl0dGVyIG1ldGhvZCB0byBzcGxpdCBzZXF1ZW5jZXMgdG8gbW9ub21lcnNcbiAqIEBwYXJhbSB7c3RyaW5nfSB1bml0c1xuICogQHBhcmFtIHtzdHJpbmd9IHNlcGFyYXRvclxuICogQHBhcmFtIGxpbWl0XG4gKiBAcmV0dXJuIHtTcGxpdHRlckZ1bmN9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTcGxpdHRlcih1bml0cywgc2VwYXJhdG9yLCBsaW1pdCA9IHVuZGVmaW5lZCkge1xuICAgIGlmICh1bml0cy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJmYXN0YVwiIC8qIE5PVEFUSU9OLkZBU1RBICovKSlcbiAgICAgICAgcmV0dXJuIHNwbGl0dGVyQXNGYXN0YTtcbiAgICBlbHNlIGlmICh1bml0cy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJzZXBhcmF0b3JcIiAvKiBOT1RBVElPTi5TRVBBUkFUT1IgKi8pKVxuICAgICAgICByZXR1cm4gZ2V0U3BsaXR0ZXJXaXRoU2VwYXJhdG9yKHNlcGFyYXRvciwgbGltaXQpO1xuICAgIGVsc2UgaWYgKHVuaXRzLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovKSlcbiAgICAgICAgcmV0dXJuIHNwbGl0dGVyQXNIZWxtO1xuICAgIGVsc2VcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIHVuaXRzICR7dW5pdHN9IC5gKTtcbiAgICAvLyBUT0RPOiBTcGxpdHRlciBmb3IgSEVMTVxufVxuLyoqIEdlbmVyYXRlIHNwbGl0dGVyIGZ1bmN0aW9uIGZvciBzZXF1ZW5jZSBjb2x1bW5cbiAqIEBwYXJhbSB7REcuQ29sdW1ufSBjb2xcbiAqIEByZXR1cm4ge1NwbGl0dGVyRnVuY30gU3BsaXR0ZXIgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNwbGl0dGVyRm9yQ29sdW1uKGNvbCkge1xuICAgIGlmIChjb2wuc2VtVHlwZSAhPT0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEdldCBzcGxpdHRlciBmb3Igc2VtVHlwZSBcIiR7REcuU0VNVFlQRS5NQUNST01PTEVDVUxFfVwiIG9ubHkuYCk7XG4gICAgY29uc3QgdW5pdHMgPSBjb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpO1xuICAgIGNvbnN0IHNlcGFyYXRvciA9IGNvbC5nZXRUYWcoXCJzZXBhcmF0b3JcIiAvKiBUQUdTLnNlcGFyYXRvciAqLyk7XG4gICAgcmV0dXJuIGdldFNwbGl0dGVyKHVuaXRzLCBzZXBhcmF0b3IpO1xufVxuY29uc3QgbG9uZ01vbm9tZXJQYXJ0UmUgPSAvKFxcdyspL2c7XG4vKiogQ29udmVydCBsb25nIG1vbm9tZXIgbmFtZXMgdG8gc2hvcnQgb25lcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vbm9tZXJUb1Nob3J0KGFtaW5vLCBtYXhMZW5ndGhPZk1vbm9tZXIpIHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIGNvbnN0IHNob3J0QW1pbm9NYXRjaCA9IGFtaW5vLm1hdGNoKGxvbmdNb25vbWVyUGFydFJlKTtcbiAgICBjb25zdCBuZWVkQWRkRG90cyA9IGFtaW5vLmxlbmd0aCA+IG1heExlbmd0aE9mTW9ub21lciB8fCAoKF9hID0gc2hvcnRBbWlub01hdGNoID09PSBudWxsIHx8IHNob3J0QW1pbm9NYXRjaCA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2hvcnRBbWlub01hdGNoLmxlbmd0aCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMCkgPiAxO1xuICAgIGNvbnN0IHNob3J0QW1pbm8gPSAoX2IgPSBzaG9ydEFtaW5vTWF0Y2ggPT09IG51bGwgfHwgc2hvcnRBbWlub01hdGNoID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzaG9ydEFtaW5vTWF0Y2hbMF0pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6ICcgJztcbiAgICByZXR1cm4gIW5lZWRBZGREb3RzID8gc2hvcnRBbWlubyA6IHNob3J0QW1pbm8uc3Vic3RyaW5nKDAsIG1heExlbmd0aE9mTW9ub21lcikgKyAn4oCmJztcbn1cbi8qKiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFscGhhYmV0KGFscGhhYmV0KSB7XG4gICAgc3dpdGNoIChhbHBoYWJldCkge1xuICAgICAgICBjYXNlIFwiRE5BXCIgLyogQUxQSEFCRVQuRE5BICovOlxuICAgICAgICAgICAgcmV0dXJuIFVuaXRzSGFuZGxlci5EbmFGYXN0YUFscGhhYmV0O1xuICAgICAgICBjYXNlIFwiUk5BXCIgLyogQUxQSEFCRVQuUk5BICovOlxuICAgICAgICAgICAgcmV0dXJuIFVuaXRzSGFuZGxlci5SbmFGYXN0YUFscGhhYmV0O1xuICAgICAgICBjYXNlIFwiUFRcIiAvKiBBTFBIQUJFVC5QVCAqLzpcbiAgICAgICAgICAgIHJldHVybiBVbml0c0hhbmRsZXIuUGVwdGlkZUZhc3RhQWxwaGFiZXQ7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGFscGhhYmV0ICcke2FscGhhYmV0fScuYCk7XG4gICAgfVxufVxuLyoqIENhbGN1bGF0ZSBzaW1pbGFyaXR5IGluIGN1cnJlbnQgc2VxdWVuY2UgYW5kIGFscGhhYmV0LlxuICogQHBhcmFtIHtNb25vbWVyRnJlcXN9IGZyZXFcbiAqIEBwYXJhbSB7U2V0PHN0cmluZz59IGFscGhhYmV0XG4gKiBAcGFyYW0ge3N0cmluZ30gZ2FwU3ltYm9sXG4gKiBAcmV0dXJuIHtudW1iZXJ9IENvc2luZSBzaW1pbGFyaXR5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbHBoYWJldFNpbWlsYXJpdHkoZnJlcSwgYWxwaGFiZXQsIGdhcFN5bWJvbCA9ICctJykge1xuICAgIGNvbnN0IGtleXMgPSBuZXcgU2V0KFsuLi5uZXcgU2V0KE9iamVjdC5rZXlzKGZyZXEpKSwgLi4uYWxwaGFiZXRdKTtcbiAgICBrZXlzLmRlbGV0ZShnYXBTeW1ib2wpO1xuICAgIGNvbnN0IGZyZXFBID0gW107XG4gICAgY29uc3QgYWxwaGFiZXRBID0gW107XG4gICAgZm9yIChjb25zdCBtIG9mIGtleXMpIHtcbiAgICAgICAgZnJlcUEucHVzaChtIGluIGZyZXEgPyBmcmVxW21dIDogMCk7XG4gICAgICAgIGFscGhhYmV0QS5wdXNoKGFscGhhYmV0LmhhcyhtKSA/IDEgOiAwKTtcbiAgICB9XG4gICAgLyogVGhlcmUgd2VyZSBhIGZldyBpZGVhczogY2hpLXNxdWFyZWQsIHBlYXJzb24gY29ycmVsYXRpb24gKHZhcmlhbmNlPyksIHNjYWxhciBwcm9kdWN0ICovXG4gICAgY29uc3QgZnJlcVYgPSBuZXcgVmVjdG9yKGZyZXFBKTtcbiAgICBjb25zdCBhbHBoYWJldFYgPSBuZXcgVmVjdG9yKGFscGhhYmV0QSk7XG4gICAgcmV0dXJuIHZlY3RvckRvdFByb2R1Y3QoZnJlcVYsIGFscGhhYmV0VikgLyAodmVjdG9yTGVuZ3RoKGZyZXFWKSAqIHZlY3Rvckxlbmd0aChhbHBoYWJldFYpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBkZXRlY3RBbHBoYWJldChzdGF0cykge1xuICAgIGNvbnN0IGFscGhhYmV0Q2FuZGlkYXRlcyA9IFtcbiAgICAgICAgW1wiUFRcIiAvKiBBTFBIQUJFVC5QVCAqLywgVW5pdHNIYW5kbGVyLlBlcHRpZGVGYXN0YUFscGhhYmV0XSxcbiAgICAgICAgW1wiRE5BXCIgLyogQUxQSEFCRVQuRE5BICovLCBVbml0c0hhbmRsZXIuRG5hRmFzdGFBbHBoYWJldF0sXG4gICAgICAgIFtcIlJOQVwiIC8qIEFMUEhBQkVULlJOQSAqLywgVW5pdHNIYW5kbGVyLlJuYUZhc3RhQWxwaGFiZXRdLFxuICAgIF07XG4gICAgLy8gQ2FsY3VsYXRlIGxpa2VsaWhvb2RzIGZvciBhbHBoYWJldF9jYW5kaWRhdGVzXG4gICAgY29uc3QgYWxwaGFiZXRDYW5kaWRhdGVzU2ltID0gYWxwaGFiZXRDYW5kaWRhdGVzLm1hcCgoYykgPT4gZ2V0QWxwaGFiZXRTaW1pbGFyaXR5KHN0YXRzLmZyZXEsIGNbMV0pKTtcbiAgICBjb25zdCBtYXhDb3MgPSBNYXRoLm1heCguLi5hbHBoYWJldENhbmRpZGF0ZXNTaW0pO1xuICAgIGNvbnN0IGFscGhhYmV0ID0gbWF4Q29zID4gMC42NSA/IGFscGhhYmV0Q2FuZGlkYXRlc1thbHBoYWJldENhbmRpZGF0ZXNTaW0uaW5kZXhPZihtYXhDb3MpXVswXSA6ICdVTic7XG4gICAgcmV0dXJuIGFscGhhYmV0O1xufVxuLyoqIFNlbGVjdHMgYSBzdWl0YWJsZSBwYWxldHRlIGJhc2VkIG9uIGNvbHVtbiBkYXRhXG4gKiBAcGFyYW0ge0RHLkNvbHVtbn0gc2VxQ29sIENvbHVtbiB0byBsb29rIGZvciBhIHBhbGV0dGVcbiAqIEBwYXJhbSB7bnVtYmVyfSAgbWluTGVuZ3RoIG1pbmltdW0gbGVuZ3RoIG9mIHNlcXVlbmNlIHRvIGRldGVjdCBwYWxldHRlIChlbXB0eSBzdHJpbmdzIGFyZSBhbGxvd2VkKVxuICogQHJldHVybiB7U2VxUGFsZXR0ZX0gUGFsZXR0ZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBhbHBoYWJldCBvZiB0aGUgc2VxdWVuY2VzIGluIHRoZSBjb2x1bW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBpY2tVcFBhbGV0dGUoc2VxQ29sLCBtaW5MZW5ndGggPSA1KSB7XG4gICAgbGV0IGFscGhhYmV0O1xuICAgIGlmIChzZXFDb2wuc2VtVHlwZSA9PSBERy5TRU1UWVBFLk1BQ1JPTU9MRUNVTEUpIHtcbiAgICAgICAgY29uc3QgdWggPSBuZXcgVW5pdHNIYW5kbGVyKHNlcUNvbCk7XG4gICAgICAgIGFscGhhYmV0ID0gdWguYWxwaGFiZXQ7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjb25zdCBzdGF0cyA9IGdldFN0YXRzKHNlcUNvbCwgbWluTGVuZ3RoLCBzcGxpdHRlckFzRmFzdGEpO1xuICAgICAgICBhbHBoYWJldCA9IGRldGVjdEFscGhhYmV0KHN0YXRzKTtcbiAgICB9XG4gICAgY29uc3QgcmVzID0gZ2V0UGFsZXR0ZUJ5VHlwZShhbHBoYWJldCk7XG4gICAgcmV0dXJuIHJlcztcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWxldHRlQnlUeXBlKHBhbGV0dGVUeXBlKSB7XG4gICAgc3dpdGNoIChwYWxldHRlVHlwZSkge1xuICAgICAgICBjYXNlICdQVCc6XG4gICAgICAgICAgICByZXR1cm4gQW1pbm9hY2lkc1BhbGV0dGVzLkdyb2tHcm91cHM7XG4gICAgICAgIGNhc2UgJ05UJzpcbiAgICAgICAgY2FzZSAnRE5BJzpcbiAgICAgICAgY2FzZSAnUk5BJzpcbiAgICAgICAgICAgIHJldHVybiBOdWNsZW90aWRlc1BhbGV0dGVzLkNocm9tYXRvZ3JhbTtcbiAgICAgICAgLy8gb3RoZXJcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBVbmtub3duU2VxUGFsZXR0ZXMuQ29sb3I7XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIHBpY2tVcFNlcUNvbChkZikge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCBzZW1UeXBlQ29sTGlzdCA9IGRmLmNvbHVtbnMuYnlTZW1UeXBlQWxsKERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRSk7XG4gICAgbGV0IHJlc0NvbCA9IChfYSA9IHNlbVR5cGVDb2xMaXN0LmZpbmQoKGNvbCkgPT4ge1xuICAgICAgICBjb25zdCB1bml0cyA9IGNvbC5nZXRUYWcoREcuVEFHUy5VTklUUyk7XG4gICAgICAgIHJldHVybiB1bml0cyA/IHVuaXRzLmluZGV4T2YoJ01TQScpICE9PSAtMSA6IGZhbHNlO1xuICAgIH0pKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBudWxsO1xuICAgIGlmICghcmVzQ29sICYmIHNlbVR5cGVDb2xMaXN0Lmxlbmd0aCA+IDApXG4gICAgICAgIHJlc0NvbCA9IHNlbVR5cGVDb2xMaXN0WzBdO1xuICAgIHJldHVybiByZXNDb2w7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2liV0ZqY205dGIyeGxZM1ZzWlM1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbTFoWTNKdmJXOXNaV04xYkdVdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJSVUVzVDBGQlR5eExRVUZMTEVWQlFVVXNUVUZCVFN4cFFrRkJhVUlzUTBGQlF6dEJRVU4wUXl4UFFVRlBMRVZCUVVVc1RVRkJUU3hKUVVGSkxFTkJRVU03UVVGRmNFSXNUMEZCVHl4RlFVRkRMRTFCUVUwc1JVRkJReXhOUVVGTkxHbEVRVUZwUkN4RFFVRkRPMEZCUTNaRkxFOUJRVThzUlVGQlF5eFpRVUZaTEVWQlFVVXNaMEpCUVdkQ0xFVkJRVU1zVFVGQlRTeHBSRUZCYVVRc1EwRkJRenRCUVVVdlJpeFBRVUZQTEVWQlFXRXNhMEpCUVd0Q0xFVkJRVU1zVFVGQlRTeGxRVUZsTEVOQlFVTTdRVUZETjBRc1QwRkJUeXhGUVVGakxHMUNRVUZ0UWl4RlFVRkRMRTFCUVUwc1owSkJRV2RDTEVOQlFVTTdRVUZEYUVVc1QwRkJUeXhGUVVGRExHdENRVUZyUWl4RlFVRkRMRTFCUVUwc1dVRkJXU3hEUVVGRE8wRkJRemxETEU5QlFVOHNSVUZCUXl4WlFVRlpMRVZCUVVNc1RVRkJUU3gzUWtGQmQwSXNRMEZCUXp0QlFUUkNia1FzUTBGQlF6dEJRVTFHT3pzN096dEhRVXRITzBGQlEwZ3NUVUZCVFN4VlFVRlZMRkZCUVZFc1EwRkJReXhOUVVGcFFpeEZRVUZGTEZOQlFXbENMRVZCUVVVc1VVRkJjMEk3U1VGRGJrWXNUVUZCVFN4SlFVRkpMRWRCUVRSQ0xFVkJRVVVzUTBGQlF6dEpRVU42UXl4SlFVRkpMRlZCUVZVc1IwRkJSeXhKUVVGSkxFTkJRVU03U1VGRGRFSXNTVUZCU1N4WFFVRlhMRWRCUVVjc1NVRkJTU3hEUVVGRE8wbEJSWFpDTEV0QlFVc3NUVUZCVFN4SFFVRkhMRWxCUVVrc1RVRkJUU3hEUVVGRExGVkJRVlVzUlVGQlJUdFJRVU51UXl4TlFVRk5MRWxCUVVrc1IwRkJSeXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZGTTBJc1NVRkJTU3hYUVVGWExFbEJRVWtzU1VGQlNUdFpRVU55UWl4WFFVRlhMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF6dGhRVU4yUWl4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFdEJRVXNzVjBGQlZ6dFpRVU5zUXl4VlFVRlZMRWRCUVVjc1MwRkJTeXhEUVVGRE8xRkJSWEpDTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTFCUVUwc1NVRkJTU3hUUVVGVExFVkJRVVU3V1VGRE5VSXNTMEZCU3l4TlFVRk5MRU5CUVVNc1NVRkJTU3hKUVVGSkxFVkJRVVU3WjBKQlEzQkNMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeEpRVUZKTEVOQlFVTTdiMEpCUTJRc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0blFrRkRaQ3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMkZCUTJRN1UwRkRSanRMUVVOR08wbEJRMFFzVDBGQlR5eEZRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRVZCUVVVc1ZVRkJWU3hGUVVGRkxGVkJRVlVzUlVGQlF5eERRVUZETzBGQlF6bERMRU5CUVVNN1FVRkZSQ3hOUVVGTkxFTkJRVU1zVFVGQlRTeFRRVUZUTEVkQlFWY3NjVUpCUVhGQ0xFTkJRVU03UVVGRmRrUTdPenRIUVVkSE8wRkJRMGdzVFVGQlRTeFZRVUZWTEdWQlFXVXNRMEZCUXl4SFFVRlJPMGxCUTNSRExFOUJRVThzUlVGQlJTeERRVUZ0UWl4SFFVRkhMRU5CUVVNc1VVRkJVU3hGUVVGRkxFTkJRVU1zVVVGQlVTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMU5CUXpWRUxFZEJRVWNzUTBGQlF5eERRVUZETEVWQlFXOUNMRVZCUVVVc1JVRkJSVHRSUVVNMVFpeEpRVUZKTEVsQlFWa3NRMEZCUXp0UlFVTnFRaXhOUVVGTkxFTkJRVU1zUjBGQlZ5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRlRUlzU1VGQlNTeERRVUZETEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1JVRkJSVHRaUVVOb1FpeEpRVUZKTEVkQlFVY3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xTkJRMlE3WVVGQlRUdFpRVU5NTEVsQlFVa3NSMEZCUnl4RFFVRkRMRU5CUVVNN1UwRkRWanRSUVVORUxFOUJRVThzU1VGQlNTeERRVUZETzBsQlEyUXNRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU03UVVGRGFrSXNRMEZCUXp0QlFVVkVPenM3TzBkQlNVYzdRVUZEU0N4TlFVRk5MRlZCUVZVc2QwSkJRWGRDTEVOQlFVTXNVMEZCYVVJc1JVRkJSU3hSUVVFMFFpeFRRVUZUTzBsQlF5OUdMRTlCUVU4c1EwRkJReXhIUVVGWExFVkJRVVVzUlVGQlJUdFJRVU55UWl4UFFVRlBMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zVTBGQlV5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMGxCUTNKRExFTkJRVU1zUTBGQlF6dEJRVU5LTEVOQlFVTTdRVUZGUkN4TlFVRk5MRTFCUVUwc1IwRkJWeXhwUTBGQmFVTXNRMEZCUXp0QlFVTjZSQ3hOUVVGTkxGTkJRVk1zUjBGQlZ5eG5Ra0ZCWjBJc1EwRkJRenRCUVVVelF6czdPenRIUVVsSE8wRkJRMGdzVFVGQlRTeFZRVUZWTEdOQlFXTXNRMEZCUXl4SFFVRlJPMGxCUTNKRExFMUJRVTBzUTBGQlF5eFRRVUZUTEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUTNKQ0xFMUJRVTBzUlVGQlJTeEhRVUV5UWl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXl4RFFVRkRPMGxCUXk5RUxFMUJRVTBzUzBGQlN5eEhRVUZyUWl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRE8wbEJSUzlETEUxQlFVMHNZVUZCWVN4SFFVRkhMRU5CUVVNc1JVRkJWU3hGUVVGVkxFVkJRVVU3VVVGRE0wTXNVMEZCVXl4RFFVRkRMRk5CUVZNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGVFSXNUVUZCVFN4SlFVRkpMRWRCUVVjc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTm9ReXhKUVVGSkxFbEJRVWtzU1VGQlNTeEpRVUZKTEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNN1dVRkRNVUlzVDBGQlR5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN08xbEJSV1lzVDBGQlR5eEZRVUZGTEVOQlFVTTdTVUZEWkN4RFFVRkRMRU5CUVVNN1NVRkZSaXhOUVVGTkxFMUJRVTBzUjBGQllTeExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJRenRKUVVOMlJDeFBRVUZQTEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU03UVVGRGJrTXNRMEZCUXp0QlFVVkVPenM3T3p0SFFVdEhPMEZCUTBnc1RVRkJUU3hWUVVGVkxGZEJRVmNzUTBGQlF5eExRVUZoTEVWQlFVVXNVMEZCYVVJc1JVRkJSU3hSUVVFMFFpeFRRVUZUTzBsQlEycEhMRWxCUVVrc1MwRkJTeXhEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEZWQlFWVXNPRUpCUVdkQ08xRkJRMmhFTEU5QlFVOHNaVUZCWlN4RFFVRkRPMU5CUTNCQ0xFbEJRVWtzUzBGQlN5eERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRMRlZCUVZVc2MwTkJRVzlDTzFGQlEzcEVMRTlCUVU4c2QwSkJRWGRDTEVOQlFVTXNVMEZCVXl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xTkJReTlETEVsQlFVa3NTMEZCU3l4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRExGVkJRVlVzTkVKQlFXVTdVVUZEY0VRc1QwRkJUeXhqUVVGakxFTkJRVU03TzFGQlJYUkNMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zYjBKQlFXOUNMRXRCUVVzc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRmFrUXNNRUpCUVRCQ08wRkJRelZDTEVOQlFVTTdRVUZGUkRzN08wZEJSMGM3UVVGRFNDeE5RVUZOTEZWQlFWVXNiMEpCUVc5Q0xFTkJRVU1zUjBGQll6dEpRVU5xUkN4SlFVRkpMRWRCUVVjc1EwRkJReXhQUVVGUExFdEJRVXNzUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4aFFVRmhPMUZCUXpGRExFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNOa0pCUVRaQ0xFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVN4VFFVRlRMRU5CUVVNc1EwRkJRenRKUVVWc1JpeE5RVUZOTEV0QlFVc3NSMEZCUnl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1NVRkRlRU1zVFVGQlRTeFRRVUZUTEVkQlFVY3NSMEZCUnl4RFFVRkRMRTFCUVUwc2EwTkJRV2RDTEVOQlFVTTdTVUZETjBNc1QwRkJUeXhYUVVGWExFTkJRVU1zUzBGQlN5eEZRVUZGTEZOQlFWTXNRMEZCUXl4RFFVRkRPMEZCUTNaRExFTkJRVU03UVVGRlJDeE5RVUZOTEdsQ1FVRnBRaXhIUVVGWExGRkJRVkVzUTBGQlF6dEJRVVV6UXl3clEwRkJLME03UVVGREwwTXNUVUZCVFN4VlFVRlZMR05CUVdNc1EwRkJReXhMUVVGaExFVkJRVVVzYTBKQlFUQkNPenRKUVVOMFJTeE5RVUZOTEdWQlFXVXNSMEZCTkVJc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhEUVVGRE8wbEJRMmhHTEUxQlFVMHNWMEZCVnl4SFFVRlpMRXRCUVVzc1EwRkJReXhOUVVGTkxFZEJRVWNzYTBKQlFXdENMRWxCUVVrc1EwRkJReXhOUVVGQkxHVkJRV1VzWVVGQlppeGxRVUZsTEhWQ1FVRm1MR1ZCUVdVc1EwRkJSU3hOUVVGTkxHMURRVUZKTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRKUVVOeVJ5eE5RVUZOTEZWQlFWVXNSMEZCUnl4TlFVRkJMR1ZCUVdVc1lVRkJaaXhsUVVGbExIVkNRVUZtTEdWQlFXVXNRMEZCUnl4RFFVRkRMRU5CUVVNc2JVTkJRVWtzUjBGQlJ5eERRVUZETzBsQlF5OURMRTlCUVU4c1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1ZVRkJWU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVWQlFVVXNhMEpCUVd0Q0xFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTTdRVUZEZGtZc1EwRkJRenRCUVVWRUxFMUJRVTA3UVVGRFRpeE5RVUZOTEZWQlFWVXNWMEZCVnl4RFFVRkRMRkZCUVd0Q08wbEJRelZETEZGQlFWRXNVVUZCVVN4RlFVRkZPMUZCUTJ4Q08xbEJRMFVzVDBGQlR5eFpRVUZaTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU03VVVGRGRrTTdXVUZEUlN4UFFVRlBMRmxCUVZrc1EwRkJReXhuUWtGQlowSXNRMEZCUXp0UlFVTjJRenRaUVVORkxFOUJRVThzV1VGQldTeERRVUZETEc5Q1FVRnZRaXhEUVVGRE8xRkJRek5ETzFsQlEwVXNUVUZCVFN4SlFVRkpMRXRCUVVzc1EwRkJReXg1UWtGQmVVSXNVVUZCVVN4SlFVRkpMRU5CUVVNc1EwRkJRenRMUVVONFJEdEJRVU5JTEVOQlFVTTdRVUZGUkRzN096czdSMEZMUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3h4UWtGQmNVSXNRMEZCUXl4SlFVRnJRaXhGUVVGRkxGRkJRWEZDTEVWQlFVVXNXVUZCYjBJc1IwRkJSenRKUVVOMFJ5eE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRWRCUVVjc1EwRkJVeXhEUVVGRExFZEJRVWNzU1VGQlNTeEhRVUZITEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVkQlFVY3NVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVNelJTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8wbEJSWFpDTEUxQlFVMHNTMEZCU3l4SFFVRmhMRVZCUVVVc1EwRkJRenRKUVVNelFpeE5RVUZOTEZOQlFWTXNSMEZCWVN4RlFVRkZMRU5CUVVNN1NVRkRMMElzUzBGQlN5eE5RVUZOTEVOQlFVTXNTVUZCU1N4SlFVRkpMRVZCUVVVN1VVRkRjRUlzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWxCUVVrc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzQkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRMUVVONlF6dEpRVU5FTERCR1FVRXdSanRKUVVNeFJpeE5RVUZOTEV0QlFVc3NSMEZCVnl4SlFVRkpMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dEpRVU40UXl4TlFVRk5MRk5CUVZNc1IwRkJWeXhKUVVGSkxFMUJRVTBzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0SlFVTm9SQ3hQUVVGUExHZENRVUZuUWl4RFFVRkRMRXRCUVVzc1JVRkJSU3hUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEZsQlFWa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhaUVVGWkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTTVSaXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEdOQlFXTXNRMEZCUXl4TFFVRnJRanRKUVVNdlF5eE5RVUZOTEd0Q1FVRnJRaXhIUVVFMFFqdFJRVU5zUkN4NVFrRkJZeXhaUVVGWkxFTkJRVU1zYjBKQlFXOUNMRU5CUVVNN1VVRkRhRVFzTWtKQlFXVXNXVUZCV1N4RFFVRkRMR2RDUVVGblFpeERRVUZETzFGQlF6ZERMREpDUVVGbExGbEJRVmtzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJRenRMUVVNNVF5eERRVUZETzBsQlJVWXNaMFJCUVdkRU8wbEJRMmhFTEUxQlFVMHNjVUpCUVhGQ0xFZEJRV0VzYTBKQlFXdENMRU5CUVVNc1IwRkJSeXhEUVVNMVJDeERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTJ4RUxFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXh4UWtGQmNVSXNRMEZCUXl4RFFVRkRPMGxCUTJ4RUxFMUJRVTBzVVVGQlVTeEhRVUZITEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExHdENRVUZyUWl4RFFVRkRMSEZDUVVGeFFpeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNN1NVRkRja2NzVDBGQlR5eFJRVUZSTEVOQlFVTTdRVUZEYkVJc1EwRkJRenRCUVVWRU96czdPMGRCU1VjN1FVRkRTQ3hOUVVGTkxGVkJRVlVzWVVGQllTeERRVUZETEUxQlFXbENMRVZCUVVVc1dVRkJiMElzUTBGQlF6dEpRVU53UlN4SlFVRkpMRkZCUVdkQ0xFTkJRVU03U1VGRGNrSXNTVUZCU1N4TlFVRk5MRU5CUVVNc1QwRkJUeXhKUVVGSkxFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVN4RlFVRkZPMUZCUXpsRExFMUJRVTBzUlVGQlJTeEhRVUZwUWl4SlFVRkpMRmxCUVZrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVU5zUkN4UlFVRlJMRWRCUVVjc1JVRkJSU3hEUVVGRExGRkJRVkVzUTBGQlF6dExRVU40UWp0VFFVRk5PMUZCUTB3c1RVRkJUU3hMUVVGTExFZEJRV2RDTEZGQlFWRXNRMEZCUXl4TlFVRk5MRVZCUVVVc1UwRkJVeXhGUVVGRkxHVkJRV1VzUTBGQlF5eERRVUZETzFGQlEzaEZMRkZCUVZFc1IwRkJSeXhqUVVGakxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdTMEZEYkVNN1NVRkZSQ3hOUVVGTkxFZEJRVWNzUjBGQlJ5eG5Ra0ZCWjBJc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEpRVU4yUXl4UFFVRlBMRWRCUVVjc1EwRkJRenRCUVVOaUxFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNaMEpCUVdkQ0xFTkJRVU1zVjBGQmJVSTdTVUZEYkVRc1VVRkJVU3hYUVVGWExFVkJRVVU3VVVGRGNrSXNTMEZCU3l4SlFVRkpPMWxCUTFBc1QwRkJUeXhyUWtGQmEwSXNRMEZCUXl4VlFVRlZMRU5CUVVNN1VVRkRka01zUzBGQlN5eEpRVUZKTEVOQlFVTTdVVUZEVml4TFFVRkxMRXRCUVVzc1EwRkJRenRSUVVOWUxFdEJRVXNzUzBGQlN6dFpRVU5TTEU5QlFVOHNiVUpCUVcxQ0xFTkJRVU1zV1VGQldTeERRVUZETzFGQlEzaERMRkZCUVZFN1VVRkRWanRaUVVORkxFOUJRVThzYTBKQlFXdENMRU5CUVVNc1MwRkJTeXhEUVVGRE8wdEJRMnBETzBGQlEwZ3NRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJWU3haUVVGWkxFTkJRVU1zUlVGQlowSTdPMGxCUXpORExFMUJRVTBzWTBGQll5eEhRVUZITEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1dVRkJXU3hEUVVGRExFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNN1NVRkRla1VzU1VGQlNTeE5RVUZOTEVkQlFYRkNMRTFCUVVFc1kwRkJZeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4RlFVRkZPMUZCUTNwRUxFMUJRVTBzUzBGQlN5eEhRVUZITEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTjRReXhQUVVGUExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRE8wbEJRM0pFTEVOQlFVTXNRMEZCUXl4dFEwRkJTU3hKUVVGSkxFTkJRVU03U1VGRFdDeEpRVUZKTEVOQlFVTXNUVUZCVFN4SlFVRkpMR05CUVdNc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF6dFJRVU4wUXl4TlFVRk5MRWRCUVVjc1kwRkJZeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlF6ZENMRTlCUVU4c1RVRkJUU3hEUVVGRE8wRkJRMmhDTEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdLaUJoY3lCbmNtOXJJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzluY205ckp6dGNibWx0Y0c5eWRDQXFJR0Z6SUhWcElHWnliMjBnSjJSaGRHRm5jbTlyTFdGd2FTOTFhU2M3WEc1cGJYQnZjblFnS2lCaGN5QkVSeUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2Wkdjbk8xeHVhVzF3YjNKMElIZDFJR1p5YjIwZ0ozZDFKenRjYmx4dWFXMXdiM0owSUh0V1pXTjBiM0o5SUdaeWIyMGdKMEJrWVhSaFozSnZheTFzYVdKeVlYSnBaWE12ZFhScGJITXZjM0pqTDNSNWNHVXRaR1ZqYkdGeVlYUnBiMjV6Snp0Y2JtbHRjRzl5ZENCN2RtVmpkRzl5VEdWdVozUm9MQ0IyWldOMGIzSkViM1JRY205a2RXTjBmU0JtY205dElDZEFaR0YwWVdkeWIyc3RiR2xpY21GeWFXVnpMM1YwYVd4ekwzTnlZeTkyWldOMGIzSXRiM0JsY21GMGFXOXVjeWM3WEc1cGJYQnZjblFnZTFObGNWQmhiR1YwZEdWOUlHWnliMjBnSnk0dUwzTmxjUzF3WVd4bGRIUmxjeWM3WEc1cGJYQnZjblFnZTBGdGFXNXZZV05wWkhNc0lFRnRhVzV2WVdOcFpITlFZV3hsZEhSbGMzMGdabkp2YlNBbkxpNHZZVzFwYm05aFkybGtjeWM3WEc1cGJYQnZjblFnZTA1MVkyeGxiM1JwWkdWekxDQk9kV05zWlc5MGFXUmxjMUJoYkdWMGRHVnpmU0JtY205dElDY3VMaTl1ZFdOc1pXOTBhV1JsY3ljN1hHNXBiWEJ2Y25RZ2UxVnVhMjV2ZDI1VFpYRlFZV3hsZEhSbGMzMGdabkp2YlNBbkxpNHZkVzVyYm05M2JpYzdYRzVwYlhCdmNuUWdlMVZ1YVhSelNHRnVaR3hsY24wZ1puSnZiU0FuTGk0dmRYUnBiSE12ZFc1cGRITXRhR0Z1Wkd4bGNpYzdYRzVjYmx4dUx5b3FJR1Z1ZFcwZ2RIbHdaU0IwYnlCemFXMXdiR2xtZVNCelpYUjBhVzVuSUZ3aWRYTmxjaTFtY21sbGJtUnNlVndpSUc1dmRHRjBhVzl1SUdsbUlHNWxZMlZ6YzJGeWVTQXFMMXh1Wlhod2IzSjBJR052Ym5OMElHVnVkVzBnVGs5VVFWUkpUMDRnZTF4dUlDQkdRVk5VUVNBOUlDZG1ZWE4wWVNjc1hHNGdJRk5GVUVGU1FWUlBVaUE5SUNkelpYQmhjbUYwYjNJbkxGeHVJQ0JJUlV4TklEMGdKMmhsYkcwbkxGeHVmVnh1WEc1bGVIQnZjblFnWTI5dWMzUWdaVzUxYlNCQlRFbEhUazFGVGxRZ2UxeHVJQ0JUUlZGZlRWTkJJRDBnSjFORlVTNU5VMEVuTEZ4dUlDQlRSVkVnUFNBblUwVlJKeXhjYm4xY2JseHVaWGh3YjNKMElHTnZibk4wSUdWdWRXMGdRVXhRU0VGQ1JWUWdlMXh1SUNCRVRrRWdQU0FuUkU1Qkp5eGNiaUFnVWs1QklEMGdKMUpPUVNjc1hHNGdJRkJVSUQwZ0oxQlVKeXhjYmlBZ1ZVNGdQU0FuVlU0bkxGeHVmVnh1WEc1bGVIQnZjblFnWTI5dWMzUWdaVzUxYlNCVVFVZFRJSHRjYmlBZ1lXeHBaMjVsWkNBOUlDZGhiR2xuYm1Wa0p5eGNiaUFnWVd4d2FHRmlaWFFnUFNBbllXeHdhR0ZpWlhRbkxGeHVJQ0JoYkhCb1lXSmxkRk5wZW1VZ1BTQW5MbUZzY0doaFltVjBVMmw2WlNjc1hHNGdJR0ZzY0doaFltVjBTWE5OZFd4MGFXTm9ZWElnUFNBbkxtRnNjR2hoWW1WMFNYTk5kV3gwYVdOb1lYSW5MRnh1SUNCelpYQmhjbUYwYjNJZ1BTQW5jMlZ3WVhKaGRHOXlKeXhjYm4wN1hHNWNibVY0Y0c5eWRDQjBlWEJsSUZObGNVTnZiRk4wWVhSeklEMGdleUJtY21WeE9pQk5iMjV2YldWeVJuSmxjWE1zSUhOaGJXVk1aVzVuZEdnNklHSnZiMnhsWVc0Z2ZWeHVaWGh3YjNKMElIUjVjR1VnVTNCc2FYUjBaWEpHZFc1aklEMGdLSE5sY1RvZ2MzUnlhVzVuS1NBOVBpQnpkSEpwYm1kYlhUdGNibVY0Y0c5eWRDQjBlWEJsSUUxdmJtOXRaWEpHY21WeGN5QTlJSHNnVzIwNklITjBjbWx1WjEwNklHNTFiV0psY2lCOU8xeHVYRzR2S2lvZ1UzUmhkSE1nYjJZZ2MyVnhkV1Z1WTJWeklIZHBkR2dnYzNCbFkybG1hV1ZrSUhOd2JHbDBkR1Z5SUdaMWJtTXNJSEpsZEhWeWJuTWdleUJtY21WeExDQnpZVzFsVEdWdVozUm9JSDB1WEc0Z0tpQkFjR0Z5WVcwZ2UwUkhMa052YkhWdGJuMGdjMlZ4UTI5c1hHNGdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdiV2x1VEdWdVozUm9YRzRnS2lCQWNHRnlZVzBnZTFOd2JHbDBkR1Z5Um5WdVkzMGdjM0JzYVhSMFpYSmNiaUFxSUVCeVpYUjFjbTRnZXlCVFpYRkRiMnhUZEdGMGN5QjlMQ0J6WVcxbFRHVnVaM1JvT2lCaWIyOXNaV0Z1SUgwZ2MzUmhkSE1nYjJZZ1kyOXNkVzF1SUhObGNYVmxibU5sYzF4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdaMlYwVTNSaGRITW9jMlZ4UTI5c09pQkVSeTVEYjJ4MWJXNHNJRzFwYmt4bGJtZDBhRG9nYm5WdFltVnlMQ0J6Y0d4cGRIUmxjam9nVTNCc2FYUjBaWEpHZFc1aktUb2dVMlZ4UTI5c1UzUmhkSE1nZTF4dUlDQmpiMjV6ZENCbWNtVnhPaUI3SUZ0dE9pQnpkSEpwYm1kZE9pQnVkVzFpWlhJZ2ZTQTlJSHQ5TzF4dUlDQnNaWFFnYzJGdFpVeGxibWQwYUNBOUlIUnlkV1U3WEc0Z0lHeGxkQ0JtYVhKemRFeGxibWQwYUNBOUlHNTFiR3c3WEc1Y2JpQWdabTl5SUNoamIyNXpkQ0J6WlhFZ2IyWWdjMlZ4UTI5c0xtTmhkR1ZuYjNKcFpYTXBJSHRjYmlBZ0lDQmpiMjV6ZENCdFUyVnhJRDBnYzNCc2FYUjBaWElvYzJWeEtUdGNibHh1SUNBZ0lHbG1JQ2htYVhKemRFeGxibWQwYUNBOVBTQnVkV3hzS1Z4dUlDQWdJQ0FnWm1seWMzUk1aVzVuZEdnZ1BTQnRVMlZ4TG14bGJtZDBhRHRjYmlBZ0lDQmxiSE5sSUdsbUlDaHRVMlZ4TG14bGJtZDBhQ0FoUFQwZ1ptbHljM1JNWlc1bmRHZ3BYRzRnSUNBZ0lDQnpZVzFsVEdWdVozUm9JRDBnWm1Gc2MyVTdYRzVjYmlBZ0lDQnBaaUFvYlZObGNTNXNaVzVuZEdnZ1BqMGdiV2x1VEdWdVozUm9LU0I3WEc0Z0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUcwZ2IyWWdiVk5sY1NrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvSVNodElHbHVJR1p5WlhFcEtWeHVJQ0FnSUNBZ0lDQWdJR1p5WlhGYmJWMGdQU0F3TzF4dUlDQWdJQ0FnSUNCbWNtVnhXMjFkSUNzOUlERTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCN1puSmxjVG9nWm5KbGNTd2djMkZ0WlV4bGJtZDBhRG9nYzJGdFpVeGxibWQwYUgwN1hHNTlYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnRiMjV2YldWeVVtVTZJRkpsWjBWNGNDQTlJQzljWEZzb1hGeDNLeWxjWEYxOEtGeGNkeWw4S0MwcEwyYzdYRzVjYmk4cUtpQlRjR3hwZENCelpYRjFaVzVqWlNCbWIzSWdjMmx1WjJ4bElHTm9ZWEpoWTNSbGNpQnRiMjV2YldWeWN5d2djM0YxWVhKbElHSnlZV05yWlhSeklHMTFiSFJwWTJoaGNpQnRiMjV2YldWeUlHNWhiV1Z6SUc5eUlHZGhjQ0J6ZVcxaWIyd3VYRzRnS2lCQWNHRnlZVzBnZTJGdWVYMGdjMlZ4SUc5aWFtVmpkQ0IzYVhSb0lITmxjWFZsYm1ObFhHNGdLaUJBY21WMGRYSnVJSHR6ZEhKcGJtZGJYWDBnWVhKeVlYa2diMllnYlc5dWIyMWxjbk5jYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlITndiR2wwZEdWeVFYTkdZWE4wWVNoelpYRTZJR0Z1ZVNrNklITjBjbWx1WjF0ZElIdGNiaUFnY21WMGRYSnVJSGQxUEZKbFowVjRjRTFoZEdOb1FYSnlZWGsrS0hObGNTNTBiMU4wY21sdVp5Z3BMbTFoZEdOb1FXeHNLRzF2Ym05dFpYSlNaU2twWEc0Z0lDQWdMbTFoY0Nnb2JXRTZJRkpsWjBWNGNFMWhkR05vUVhKeVlYa3BJRDArSUh0Y2JpQWdJQ0FnSUd4bGRDQnRVbVZ6T2lCemRISnBibWM3WEc0Z0lDQWdJQ0JqYjI1emRDQnRPaUJ6ZEhKcGJtY2dQU0J0WVZzd1hUdGNiaUFnSUNBZ0lHbG1JQ2h0TG14bGJtZDBhQ0ErSURFcElIdGNiaUFnSUNBZ0lDQWdiVkpsY3lBOUlHMWhXekZkTzF4dUlDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnYlZKbGN5QTlJRzA3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J5WlhSMWNtNGdiVkpsY3p0Y2JpQWdJQ0I5S1M1MGIwRnljbUY1S0NrN1hHNTlYRzVjYmk4cUtpQkhaWFJ6SUcxbGRHaHZaQ0IwYnlCemNHeHBkQ0J6WlhGMVpXNWpaU0JpZVNCelpYQmhjbUYwYjNKY2JpQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnpaWEJoY21GMGIzSmNiaUFxSUVCd1lYSmhiU0JzYVcxcGRGeHVJQ29nUUhKbGRIVnliaUI3VTNCc2FYUjBaWEpHZFc1amZWeHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWjJWMFUzQnNhWFIwWlhKWGFYUm9VMlZ3WVhKaGRHOXlLSE5sY0dGeVlYUnZjam9nYzNSeWFXNW5MQ0JzYVcxcGREb2diblZ0WW1WeUlId2dkVzVrWldacGJtVmtJRDBnZFc1a1pXWnBibVZrS1RvZ1UzQnNhWFIwWlhKR2RXNWpJSHRjYmlBZ2NtVjBkWEp1SUNoelpYRTZJSE4wY21sdVp5a2dQVDRnZTF4dUlDQWdJSEpsZEhWeWJpQnpaWEV1YzNCc2FYUW9jMlZ3WVhKaGRHOXlMQ0JzYVcxcGRDazdYRzRnSUgwN1hHNTlYRzVjYm1OdmJuTjBJR2hsYkcxU1pUb2dVbVZuUlhod0lEMGdMeWhRUlZCVVNVUkZNWHhFVGtFeGZGSk9RVEVwWEZ4N0tGdGVmVjByS1gwdlp6dGNibU52Ym5OMElHaGxiRzFRY0RGU1pUb2dVbVZuUlhod0lEMGdMMXhjV3loYlhseGNXMXhjWFYwcktWMHZaenRjYmx4dUx5b3FJRk53YkdsMGN5QklaV3h0SUhOMGNtbHVaeUIwYnlCdGIyNXZiV1Z5Y3l3Z1luVjBJR1J2WlhNZ2JtOTBJSEpsY0d4aFkyVWdiVzl1YjIxbGNpQnVZVzFsY3lCMGJ5QnZkR2hsY2lCdWIzUmhkR2x2YmlBb1pTNW5MaUJtYjNJZ1VrNUJLUzVjYmlBcUlFOXViSGtnWm05eUlHeHBibVZoY2lCd2IyeDViV1Z5Y3l3Z1pHOWxjeUJ1YjNRZ2MzQnNhWFFnVWs1QklHWnZjaUJ5YVdKdmMyVWdZVzVrSUhCb2IzTndhR0YwWlNCdGIyNXZiV1Z5Y3k1Y2JpQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnpaWEVnVTI5MWNtTmxJSE4wY21sdVp5QnZaaUJJUlV4TklHNXZkR0YwYVc5dVhHNGdLaUJBY21WMGRYSnVJSHR6ZEhKcGJtZGJYWDFjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlITndiR2wwZEdWeVFYTklaV3h0S0hObGNUb2dZVzU1S1RvZ2MzUnlhVzVuVzEwZ2UxeHVJQ0JvWld4dFVtVXViR0Z6ZEVsdVpHVjRJRDBnTUR0Y2JpQWdZMjl1YzNRZ1pXRTZJRkpsWjBWNGNFVjRaV05CY25KaGVTQjhJRzUxYkd3Z1BTQm9aV3h0VW1VdVpYaGxZeWh6WlhFdWRHOVRkSEpwYm1jb0tTazdYRzRnSUdOdmJuTjBJR2x1VTJWeE9pQnpkSEpwYm1jZ2ZDQnVkV3hzSUQwZ1pXRWdQeUJsWVZzeVhTQTZJRzUxYkd3N1hHNWNiaUFnWTI5dWMzUWdiVzFRYjNOMFVISnZZMlZ6Y3lBOUlDaHRiVG9nYzNSeWFXNW5LVG9nYzNSeWFXNW5JRDArSUh0Y2JpQWdJQ0JvWld4dFVIQXhVbVV1YkdGemRFbHVaR1Y0SUQwZ01EdGNiaUFnSUNCamIyNXpkQ0J3Y0RGTklEMGdhR1ZzYlZCd01WSmxMbVY0WldNb2JXMHBPMXh1SUNBZ0lHbG1JQ2h3Y0RGTklDWW1JSEJ3TVUwdWJHVnVaM1JvSUQ0OUlESXBYRzRnSUNBZ0lDQnlaWFIxY200Z2NIQXhUVnN4WFR0Y2JpQWdJQ0JsYkhObFhHNGdJQ0FnSUNCeVpYUjFjbTRnYlcwN1hHNGdJSDA3WEc1Y2JpQWdZMjl1YzNRZ2JXMU1hWE4wT2lCemRISnBibWRiWFNBOUlHbHVVMlZ4SUQ4Z2FXNVRaWEV1YzNCc2FYUW9KeTRuS1NBNklGdGRPMXh1SUNCeVpYUjFjbTRnYlcxTWFYTjBMbTFoY0NodGJWQnZjM1JRY205alpYTnpLVHRjYm4xY2JseHVMeW9xSUVkbGRDQnpjR3hwZEhSbGNpQnRaWFJvYjJRZ2RHOGdjM0JzYVhRZ2MyVnhkV1Z1WTJWeklIUnZJRzF2Ym05dFpYSnpYRzRnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnZFc1cGRITmNiaUFxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J6WlhCaGNtRjBiM0pjYmlBcUlFQndZWEpoYlNCc2FXMXBkRnh1SUNvZ1FISmxkSFZ5YmlCN1UzQnNhWFIwWlhKR2RXNWpmVnh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1oyVjBVM0JzYVhSMFpYSW9kVzVwZEhNNklITjBjbWx1Wnl3Z2MyVndZWEpoZEc5eU9pQnpkSEpwYm1jc0lHeHBiV2wwT2lCdWRXMWlaWElnZkNCMWJtUmxabWx1WldRZ1BTQjFibVJsWm1sdVpXUXBPaUJUY0d4cGRIUmxja1oxYm1NZ2UxeHVJQ0JwWmlBb2RXNXBkSE11ZEc5TWIzZGxja05oYzJVb0tTNXpkR0Z5ZEhOWGFYUm9LRTVQVkVGVVNVOU9Ma1pCVTFSQktTbGNiaUFnSUNCeVpYUjFjbTRnYzNCc2FYUjBaWEpCYzBaaGMzUmhPMXh1SUNCbGJITmxJR2xtSUNoMWJtbDBjeTUwYjB4dmQyVnlRMkZ6WlNncExuTjBZWEowYzFkcGRHZ29UazlVUVZSSlQwNHVVMFZRUVZKQlZFOVNLU2xjYmlBZ0lDQnlaWFIxY200Z1oyVjBVM0JzYVhSMFpYSlhhWFJvVTJWd1lYSmhkRzl5S0hObGNHRnlZWFJ2Y2l3Z2JHbHRhWFFwTzF4dUlDQmxiSE5sSUdsbUlDaDFibWwwY3k1MGIweHZkMlZ5UTJGelpTZ3BMbk4wWVhKMGMxZHBkR2dvVGs5VVFWUkpUMDR1U0VWTVRTa3BYRzRnSUNBZ2NtVjBkWEp1SUhOd2JHbDBkR1Z5UVhOSVpXeHRPMXh1SUNCbGJITmxYRzRnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0dCVmJtVjRjR1ZqZEdWa0lIVnVhWFJ6SUNSN2RXNXBkSE45SUM1Z0tUdGNibHh1SUNBdkx5QlVUMFJQT2lCVGNHeHBkSFJsY2lCbWIzSWdTRVZNVFZ4dWZWeHVYRzR2S2lvZ1IyVnVaWEpoZEdVZ2MzQnNhWFIwWlhJZ1puVnVZM1JwYjI0Z1ptOXlJSE5sY1hWbGJtTmxJR052YkhWdGJseHVJQ29nUUhCaGNtRnRJSHRFUnk1RGIyeDFiVzU5SUdOdmJGeHVJQ29nUUhKbGRIVnliaUI3VTNCc2FYUjBaWEpHZFc1amZTQlRjR3hwZEhSbGNpQm1kVzVqZEdsdmJseHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWjJWMFUzQnNhWFIwWlhKR2IzSkRiMngxYlc0b1kyOXNPaUJFUnk1RGIyeDFiVzRwT2lCVGNHeHBkSFJsY2taMWJtTWdlMXh1SUNCcFppQW9ZMjlzTG5ObGJWUjVjR1VnSVQwOUlFUkhMbE5GVFZSWlVFVXVUVUZEVWs5TlQweEZRMVZNUlNsY2JpQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9ZRWRsZENCemNHeHBkSFJsY2lCbWIzSWdjMlZ0Vkhsd1pTQmNJaVI3UkVjdVUwVk5WRmxRUlM1TlFVTlNUMDFQVEVWRFZVeEZmVndpSUc5dWJIa3VZQ2s3WEc1Y2JpQWdZMjl1YzNRZ2RXNXBkSE1nUFNCamIyd3VaMlYwVkdGbktFUkhMbFJCUjFNdVZVNUpWRk1wTzF4dUlDQmpiMjV6ZENCelpYQmhjbUYwYjNJZ1BTQmpiMnd1WjJWMFZHRm5LRlJCUjFNdWMyVndZWEpoZEc5eUtUdGNiaUFnY21WMGRYSnVJR2RsZEZOd2JHbDBkR1Z5S0hWdWFYUnpMQ0J6WlhCaGNtRjBiM0lwTzF4dWZWeHVYRzVqYjI1emRDQnNiMjVuVFc5dWIyMWxjbEJoY25SU1pUb2dVbVZuUlhod0lEMGdMeWhjWEhjcktTOW5PMXh1WEc0dktpb2dRMjl1ZG1WeWRDQnNiMjVuSUcxdmJtOXRaWElnYm1GdFpYTWdkRzhnYzJodmNuUWdiMjVsY3lBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHMXZibTl0WlhKVWIxTm9iM0owS0dGdGFXNXZPaUJ6ZEhKcGJtY3NJRzFoZUV4bGJtZDBhRTltVFc5dWIyMWxjam9nYm5WdFltVnlLVG9nYzNSeWFXNW5JSHRjYmlBZ1kyOXVjM1FnYzJodmNuUkJiV2x1YjAxaGRHTm9PaUJTWldkRmVIQk5ZWFJqYUVGeWNtRjVJSHdnYm5Wc2JDQTlJR0Z0YVc1dkxtMWhkR05vS0d4dmJtZE5iMjV2YldWeVVHRnlkRkpsS1R0Y2JpQWdZMjl1YzNRZ2JtVmxaRUZrWkVSdmRITTZJR0p2YjJ4bFlXNGdQU0JoYldsdWJ5NXNaVzVuZEdnZ1BpQnRZWGhNWlc1bmRHaFBaazF2Ym05dFpYSWdmSHdnS0hOb2IzSjBRVzFwYm05TllYUmphRDh1YkdWdVozUm9JRDgvSURBcElENGdNVHRjYmlBZ1kyOXVjM1FnYzJodmNuUkJiV2x1YnlBOUlITm9iM0owUVcxcGJtOU5ZWFJqYUQ4dVd6QmRJRDgvSUNjZ0p6dGNiaUFnY21WMGRYSnVJQ0Z1WldWa1FXUmtSRzkwY3lBL0lITm9iM0owUVcxcGJtOGdPaUJ6YUc5eWRFRnRhVzV2TG5OMVluTjBjbWx1Wnlnd0xDQnRZWGhNWlc1bmRHaFBaazF2Ym05dFpYSXBJQ3NnSitLQXBpYzdYRzU5WEc1Y2JpOHFLaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdkbGRFRnNjR2hoWW1WMEtHRnNjR2hoWW1WME9pQkJURkJJUVVKRlZDazZJRk5sZER4emRISnBibWMrSUh0Y2JpQWdjM2RwZEdOb0lDaGhiSEJvWVdKbGRDa2dlMXh1SUNCallYTmxJRUZNVUVoQlFrVlVMa1JPUVRwY2JpQWdJQ0J5WlhSMWNtNGdWVzVwZEhOSVlXNWtiR1Z5TGtSdVlVWmhjM1JoUVd4d2FHRmlaWFE3WEc0Z0lHTmhjMlVnUVV4UVNFRkNSVlF1VWs1Qk9seHVJQ0FnSUhKbGRIVnliaUJWYm1sMGMwaGhibVJzWlhJdVVtNWhSbUZ6ZEdGQmJIQm9ZV0psZER0Y2JpQWdZMkZ6WlNCQlRGQklRVUpGVkM1UVZEcGNiaUFnSUNCeVpYUjFjbTRnVlc1cGRITklZVzVrYkdWeUxsQmxjSFJwWkdWR1lYTjBZVUZzY0doaFltVjBPMXh1SUNCa1pXWmhkV3gwT2x4dUlDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGdWVzV6ZFhCd2IzSjBaV1FnWVd4d2FHRmlaWFFnSnlSN1lXeHdhR0ZpWlhSOUp5NWdLVHRjYmlBZ2ZWeHVmVnh1WEc0dktpb2dRMkZzWTNWc1lYUmxJSE5wYldsc1lYSnBkSGtnYVc0Z1kzVnljbVZ1ZENCelpYRjFaVzVqWlNCaGJtUWdZV3h3YUdGaVpYUXVYRzRnS2lCQWNHRnlZVzBnZTAxdmJtOXRaWEpHY21WeGMzMGdabkpsY1Z4dUlDb2dRSEJoY21GdElIdFRaWFE4YzNSeWFXNW5QbjBnWVd4d2FHRmlaWFJjYmlBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCbllYQlRlVzFpYjJ4Y2JpQXFJRUJ5WlhSMWNtNGdlMjUxYldKbGNuMGdRMjl6YVc1bElITnBiV2xzWVhKcGRIbGNiaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdkbGRFRnNjR2hoWW1WMFUybHRhV3hoY21sMGVTaG1jbVZ4T2lCTmIyNXZiV1Z5Um5KbGNYTXNJR0ZzY0doaFltVjBPaUJUWlhROGMzUnlhVzVuUGl3Z1oyRndVM2x0WW05c09pQnpkSEpwYm1jZ1BTQW5MU2NwT2lCdWRXMWlaWElnZTF4dUlDQmpiMjV6ZENCclpYbHpJRDBnYm1WM0lGTmxkRHh6ZEhKcGJtYytLRnN1TGk1dVpYY2dVMlYwS0U5aWFtVmpkQzVyWlhsektHWnlaWEVwS1N3Z0xpNHVZV3h3YUdGaVpYUmRLVHRjYmlBZ2EyVjVjeTVrWld4bGRHVW9aMkZ3VTNsdFltOXNLVHRjYmx4dUlDQmpiMjV6ZENCbWNtVnhRVG9nYm5WdFltVnlXMTBnUFNCYlhUdGNiaUFnWTI5dWMzUWdZV3h3YUdGaVpYUkJPaUJ1ZFcxaVpYSmJYU0E5SUZ0ZE8xeHVJQ0JtYjNJZ0tHTnZibk4wSUcwZ2IyWWdhMlY1Y3lrZ2UxeHVJQ0FnSUdaeVpYRkJMbkIxYzJnb2JTQnBiaUJtY21WeElEOGdabkpsY1Z0dFhTQTZJREFwTzF4dUlDQWdJR0ZzY0doaFltVjBRUzV3ZFhOb0tHRnNjR2hoWW1WMExtaGhjeWh0S1NBL0lERWdPaUF3S1R0Y2JpQWdmVnh1SUNBdktpQlVhR1Z5WlNCM1pYSmxJR0VnWm1WM0lHbGtaV0Z6T2lCamFHa3RjM0YxWVhKbFpDd2djR1ZoY25OdmJpQmpiM0p5Wld4aGRHbHZiaUFvZG1GeWFXRnVZMlUvS1N3Z2MyTmhiR0Z5SUhCeWIyUjFZM1FnS2k5Y2JpQWdZMjl1YzNRZ1puSmxjVlk2SUZabFkzUnZjaUE5SUc1bGR5QldaV04wYjNJb1puSmxjVUVwTzF4dUlDQmpiMjV6ZENCaGJIQm9ZV0psZEZZNklGWmxZM1J2Y2lBOUlHNWxkeUJXWldOMGIzSW9ZV3h3YUdGaVpYUkJLVHRjYmlBZ2NtVjBkWEp1SUhabFkzUnZja1J2ZEZCeWIyUjFZM1FvWm5KbGNWWXNJR0ZzY0doaFltVjBWaWtnTHlBb2RtVmpkRzl5VEdWdVozUm9LR1p5WlhGV0tTQXFJSFpsWTNSdmNreGxibWQwYUNoaGJIQm9ZV0psZEZZcEtUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdSbGRHVmpkRUZzY0doaFltVjBLSE4wWVhSek9pQlRaWEZEYjJ4VGRHRjBjeWs2SUhOMGNtbHVaeUI3WEc0Z0lHTnZibk4wSUdGc2NHaGhZbVYwUTJGdVpHbGtZWFJsY3pvZ1czTjBjbWx1Wnl3Z1UyVjBQSE4wY21sdVp6NWRXMTBnUFNCYlhHNGdJQ0FnVzBGTVVFaEJRa1ZVTGxCVUxDQlZibWwwYzBoaGJtUnNaWEl1VUdWd2RHbGtaVVpoYzNSaFFXeHdhR0ZpWlhSZExGeHVJQ0FnSUZ0QlRGQklRVUpGVkM1RVRrRXNJRlZ1YVhSelNHRnVaR3hsY2k1RWJtRkdZWE4wWVVGc2NHaGhZbVYwWFN4Y2JpQWdJQ0JiUVV4UVNFRkNSVlF1VWs1QkxDQlZibWwwYzBoaGJtUnNaWEl1VW01aFJtRnpkR0ZCYkhCb1lXSmxkRjBzWEc0Z0lGMDdYRzVjYmlBZ0x5OGdRMkZzWTNWc1lYUmxJR3hwYTJWc2FXaHZiMlJ6SUdadmNpQmhiSEJvWVdKbGRGOWpZVzVrYVdSaGRHVnpYRzRnSUdOdmJuTjBJR0ZzY0doaFltVjBRMkZ1Wkdsa1lYUmxjMU5wYlRvZ2JuVnRZbVZ5VzEwZ1BTQmhiSEJvWVdKbGRFTmhibVJwWkdGMFpYTXViV0Z3S0Z4dUlDQWdJQ2hqS1NBOVBpQm5aWFJCYkhCb1lXSmxkRk5wYldsc1lYSnBkSGtvYzNSaGRITXVabkpsY1N3Z1kxc3hYU2twTzF4dUlDQmpiMjV6ZENCdFlYaERiM01nUFNCTllYUm9MbTFoZUNndUxpNWhiSEJvWVdKbGRFTmhibVJwWkdGMFpYTlRhVzBwTzF4dUlDQmpiMjV6ZENCaGJIQm9ZV0psZENBOUlHMWhlRU52Y3lBK0lEQXVOalVnUHlCaGJIQm9ZV0psZEVOaGJtUnBaR0YwWlhOYllXeHdhR0ZpWlhSRFlXNWthV1JoZEdWelUybHRMbWx1WkdWNFQyWW9iV0Y0UTI5ektWMWJNRjBnT2lBblZVNG5PMXh1SUNCeVpYUjFjbTRnWVd4d2FHRmlaWFE3WEc1OVhHNWNiaThxS2lCVFpXeGxZM1J6SUdFZ2MzVnBkR0ZpYkdVZ2NHRnNaWFIwWlNCaVlYTmxaQ0J2YmlCamIyeDFiVzRnWkdGMFlWeHVJQ29nUUhCaGNtRnRJSHRFUnk1RGIyeDFiVzU5SUhObGNVTnZiQ0JEYjJ4MWJXNGdkRzhnYkc5dmF5Qm1iM0lnWVNCd1lXeGxkSFJsWEc0Z0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ0lHMXBia3hsYm1kMGFDQnRhVzVwYlhWdElHeGxibWQwYUNCdlppQnpaWEYxWlc1alpTQjBieUJrWlhSbFkzUWdjR0ZzWlhSMFpTQW9aVzF3ZEhrZ2MzUnlhVzVuY3lCaGNtVWdZV3hzYjNkbFpDbGNiaUFxSUVCeVpYUjFjbTRnZTFObGNWQmhiR1YwZEdWOUlGQmhiR1YwZEdVZ1kyOXljbVZ6Y0c5dVpHbHVaeUIwYnlCMGFHVWdZV3h3YUdGaVpYUWdiMllnZEdobElITmxjWFZsYm1ObGN5QnBiaUIwYUdVZ1kyOXNkVzF1WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQndhV05yVlhCUVlXeGxkSFJsS0hObGNVTnZiRG9nUkVjdVEyOXNkVzF1TENCdGFXNU1aVzVuZEdnNklHNTFiV0psY2lBOUlEVXBPaUJUWlhGUVlXeGxkSFJsSUh0Y2JpQWdiR1YwSUdGc2NHaGhZbVYwT2lCemRISnBibWM3WEc0Z0lHbG1JQ2h6WlhGRGIyd3VjMlZ0Vkhsd1pTQTlQU0JFUnk1VFJVMVVXVkJGTGsxQlExSlBUVTlNUlVOVlRFVXBJSHRjYmlBZ0lDQmpiMjV6ZENCMWFEb2dWVzVwZEhOSVlXNWtiR1Z5SUQwZ2JtVjNJRlZ1YVhSelNHRnVaR3hsY2loelpYRkRiMndwTzF4dUlDQWdJR0ZzY0doaFltVjBJRDBnZFdndVlXeHdhR0ZpWlhRN1hHNGdJSDBnWld4elpTQjdYRzRnSUNBZ1kyOXVjM1FnYzNSaGRITTZJRk5sY1VOdmJGTjBZWFJ6SUQwZ1oyVjBVM1JoZEhNb2MyVnhRMjlzTENCdGFXNU1aVzVuZEdnc0lITndiR2wwZEdWeVFYTkdZWE4wWVNrN1hHNGdJQ0FnWVd4d2FHRmlaWFFnUFNCa1pYUmxZM1JCYkhCb1lXSmxkQ2h6ZEdGMGN5azdYRzRnSUgxY2JseHVJQ0JqYjI1emRDQnlaWE1nUFNCblpYUlFZV3hsZEhSbFFubFVlWEJsS0dGc2NHaGhZbVYwS1R0Y2JpQWdjbVYwZFhKdUlISmxjenRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHZGxkRkJoYkdWMGRHVkNlVlI1Y0dVb2NHRnNaWFIwWlZSNWNHVTZJSE4wY21sdVp5azZJRk5sY1ZCaGJHVjBkR1VnZTF4dUlDQnpkMmwwWTJnZ0tIQmhiR1YwZEdWVWVYQmxLU0I3WEc0Z0lHTmhjMlVnSjFCVUp6cGNiaUFnSUNCeVpYUjFjbTRnUVcxcGJtOWhZMmxrYzFCaGJHVjBkR1Z6TGtkeWIydEhjbTkxY0hNN1hHNGdJR05oYzJVZ0owNVVKenBjYmlBZ1kyRnpaU0FuUkU1Qkp6cGNiaUFnWTJGelpTQW5VazVCSnpwY2JpQWdJQ0J5WlhSMWNtNGdUblZqYkdWdmRHbGtaWE5RWVd4bGRIUmxjeTVEYUhKdmJXRjBiMmR5WVcwN1hHNGdJQ0FnTHk4Z2IzUm9aWEpjYmlBZ1pHVm1ZWFZzZERwY2JpQWdJQ0J5WlhSMWNtNGdWVzVyYm05M2JsTmxjVkJoYkdWMGRHVnpMa052Ykc5eU8xeHVJQ0I5WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQndhV05yVlhCVFpYRkRiMndvWkdZNklFUkhMa1JoZEdGR2NtRnRaU2s2SUVSSExrTnZiSFZ0YmlCOElHNTFiR3dnZTF4dUlDQmpiMjV6ZENCelpXMVVlWEJsUTI5c1RHbHpkQ0E5SUdSbUxtTnZiSFZ0Ym5NdVlubFRaVzFVZVhCbFFXeHNLRVJITGxORlRWUlpVRVV1VFVGRFVrOU5UMHhGUTFWTVJTazdYRzRnSUd4bGRDQnlaWE5EYjJ3NklFUkhMa052YkhWdGJpQjhJRzUxYkd3Z1BTQnpaVzFVZVhCbFEyOXNUR2x6ZEM1bWFXNWtLQ2hqYjJ3cElEMCtJSHRjYmlBZ0lDQmpiMjV6ZENCMWJtbDBjeUE5SUdOdmJDNW5aWFJVWVdjb1JFY3VWRUZIVXk1VlRrbFVVeWs3WEc0Z0lDQWdjbVYwZFhKdUlIVnVhWFJ6SUQ4Z2RXNXBkSE11YVc1a1pYaFBaaWduVFZOQkp5a2dJVDA5SUMweElEb2dabUZzYzJVN1hHNGdJSDBwSUQ4L0lHNTFiR3c3WEc0Z0lHbG1JQ2doY21WelEyOXNJQ1ltSUhObGJWUjVjR1ZEYjJ4TWFYTjBMbXhsYm1kMGFDQStJREFwWEc0Z0lDQWdjbVZ6UTI5c0lEMGdjMlZ0Vkhsd1pVTnZiRXhwYzNSYk1GMDdYRzRnSUhKbGRIVnliaUJ5WlhORGIydzdYRzU5WEc0aVhYMD0iLCJpbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHsgVW5pdHNIYW5kbGVyIH0gZnJvbSAnLi91bml0cy1oYW5kbGVyJztcbmltcG9ydCB7IGdldFNwbGl0dGVyRm9yQ29sdW1uLCBnZXRTdGF0cyB9IGZyb20gJy4vbWFjcm9tb2xlY3VsZSc7XG4vKiogQ2xhc3MgZm9yIGhhbmRsaW5nIGNvbnZlcnNpb24gb2Ygbm90YXRpb24gc3lzdGVtcyBpbiBNYWNyb21vbGVjdWxlIGNvbHVtbnMgKi9cbmV4cG9ydCBjbGFzcyBOb3RhdGlvbkNvbnZlcnRlciBleHRlbmRzIFVuaXRzSGFuZGxlciB7XG4gICAgZ2V0IHNwbGl0dGVyKCkge1xuICAgICAgICBpZiAodGhpcy5fc3BsaXR0ZXIgPT09IG51bGwpXG4gICAgICAgICAgICB0aGlzLl9zcGxpdHRlciA9IGdldFNwbGl0dGVyRm9yQ29sdW1uKHRoaXMuY29sdW1uKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NwbGl0dGVyO1xuICAgIH1cbiAgICB0b0Zhc3RhKHRhcmdldE5vdGF0aW9uKSB7IHJldHVybiB0YXJnZXROb3RhdGlvbiA9PT0gXCJmYXN0YVwiIC8qIE5PVEFUSU9OLkZBU1RBICovOyB9XG4gICAgdG9TZXBhcmF0b3IodGFyZ2V0Tm90YXRpb24pIHsgcmV0dXJuIHRhcmdldE5vdGF0aW9uID09PSBcInNlcGFyYXRvclwiIC8qIE5PVEFUSU9OLlNFUEFSQVRPUiAqLzsgfVxuICAgIHRvSGVsbSh0YXJnZXROb3RhdGlvbikgeyByZXR1cm4gdGFyZ2V0Tm90YXRpb24gPT09IFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi87IH1cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IGEgTWFjcm9tb2xlY3VsZSBjb2x1bW4gZnJvbSBGQVNUQSB0byBTRVBBUkFUT1Igbm90YXRpb25cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZXBhcmF0b3IgIEEgc3BlY2lmaWMgc2VwYXJhdG9yIHRvIGJlIHVzZWRcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZmFzdGFHYXBTeW1ib2wgIEdhcCBzeW1ib2wgaW4gRkFTVEEsICctJyBieSBkZWZhdWx0XG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufSAgICAgICAgQSBuZXcgY29sdW1uIGluIFNFUEFSQVRPUiBub3RhdGlvblxuICAgICAqL1xuICAgIGNvbnZlcnRGYXN0YVRvU2VwYXJhdG9yKHNlcGFyYXRvciwgZmFzdGFHYXBTeW1ib2wgPSBudWxsKSB7XG4gICAgICAgIGlmIChmYXN0YUdhcFN5bWJvbCA9PT0gbnVsbClcbiAgICAgICAgICAgIGZhc3RhR2FwU3ltYm9sID0gdGhpcy5kZWZhdWx0R2FwU3ltYm9sO1xuICAgICAgICBjb25zdCBuZXdDb2x1bW4gPSB0aGlzLmdldE5ld0NvbHVtbihcInNlcGFyYXRvclwiIC8qIE5PVEFUSU9OLlNFUEFSQVRPUiAqLyk7XG4gICAgICAgIC8vIGFzc2lnbiB0aGUgdmFsdWVzIHRvIHRoZSBuZXdseSBjcmVhdGVkIGVtcHR5IGNvbHVtblxuICAgICAgICBuZXdDb2x1bW4uaW5pdCgoaWR4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmYXN0YVBvbHltZXIgPSB0aGlzLmNvbHVtbi5nZXQoaWR4KTtcbiAgICAgICAgICAgIGNvbnN0IGZhc3RhTW9ub21lcnNBcnJheSA9IHRoaXMuc3BsaXR0ZXIoZmFzdGFQb2x5bWVyKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmFzdGFNb25vbWVyc0FycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGZhc3RhTW9ub21lcnNBcnJheVtpXSA9PT0gZmFzdGFHYXBTeW1ib2wpXG4gICAgICAgICAgICAgICAgICAgIGZhc3RhTW9ub21lcnNBcnJheVtpXSA9IFVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LlNFUEFSQVRPUjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYXN0YU1vbm9tZXJzQXJyYXkuam9pbihzZXBhcmF0b3IpO1xuICAgICAgICB9KTtcbiAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhERy5UQUdTLlVOSVRTLCBcInNlcGFyYXRvclwiIC8qIE5PVEFUSU9OLlNFUEFSQVRPUiAqLyk7XG4gICAgICAgIG5ld0NvbHVtbi5zZXRUYWcoXCJzZXBhcmF0b3JcIiAvKiBUQUdTLnNlcGFyYXRvciAqLywgc2VwYXJhdG9yKTtcbiAgICAgICAgcmV0dXJuIG5ld0NvbHVtbjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0IHRoZSB3cmFwcGVyIHN0cmluZ3MgZm9yIEhFTE0sIGRlcGVuZGluZyBvbiB0aGUgdHlwZSBvZiB0aGVcbiAgICAgKiBtYWNyb21vbGVjdWxlIChwZXB0aWRlLCBETkEsIFJOQSlcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge3N0cmluZ1tdfSBBcnJheSBvZiB3cmFwcGVyc1xuICAgICAqL1xuICAgIGdldEhlbG1XcmFwcGVycygpIHtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gKHRoaXMuaXNEbmEoKSkgPyAnRE5BMXsnIDpcbiAgICAgICAgICAgICh0aGlzLmlzUm5hKCkpID8gJ1JOQTF7JyA6XG4gICAgICAgICAgICAgICAgKHRoaXMuaXNQZXB0aWRlKCkpID8gJ1BFUFRJREUxeycgOlxuICAgICAgICAgICAgICAgICAgICAnVW5rbm93bic7IC8vIHRoaXMgY2FzZSBzaG91bGQgYmUgaGFuZGxlZCBhcyBleGNlcHRpb25hbFxuICAgICAgICBpZiAocHJlZml4ID09PSAnVW5rbm93bicpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05laXRoZXIgcGVwdGlkZSwgbm9yIG51Y2xlb3RpZGUnKTtcbiAgICAgICAgY29uc3QgcG9zdGZpeCA9ICd9JCQkJztcbiAgICAgICAgY29uc3QgbGVmdFdyYXBwZXIgPSAodGhpcy5pc0RuYSgpKSA/ICdEKCcgOlxuICAgICAgICAgICAgKHRoaXMuaXNSbmEoKSkgPyAnUignIDogJyc7IC8vIG5vIHdyYXBwZXIgZm9yIHBlcHRpZGVzXG4gICAgICAgIGNvbnN0IHJpZ2h0V3JhcHBlciA9ICh0aGlzLmlzRG5hKCkgfHwgdGhpcy5pc1JuYSgpKSA/ICcpUCcgOiAnJzsgLy8gbm8gd3JhcHBlciBmb3IgcGVwdGlkZXNcbiAgICAgICAgcmV0dXJuIFtwcmVmaXgsIGxlZnRXcmFwcGVyLCByaWdodFdyYXBwZXIsIHBvc3RmaXhdO1xuICAgIH1cbiAgICAvLyBBIGhlbHBlciBmdW5jdGlvbiBmb3IgY29udmVydGluZyBzdHJpbmdzIHRvIEhFTE1cbiAgICBjb252ZXJ0VG9IZWxtSGVscGVyKHNvdXJjZVBvbHltZXIsIHNvdXJjZUdhcFN5bWJvbCwgcHJlZml4LCBsZWZ0V3JhcHBlciwgcmlnaHRXcmFwcGVyLCBwb3N0Zml4KSB7XG4gICAgICAgIGNvbnN0IG1vbm9tZXJBcnJheSA9IHRoaXMuc3BsaXR0ZXIoc291cmNlUG9seW1lcik7XG4gICAgICAgIGNvbnN0IG1vbm9tZXJIZWxtQXJyYXkgPSBtb25vbWVyQXJyYXkubWFwKChtbSkgPT4ge1xuICAgICAgICAgICAgaWYgKG1tID09PSBzb3VyY2VHYXBTeW1ib2wpXG4gICAgICAgICAgICAgICAgcmV0dXJuIFVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LkhFTE07XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2xlZnRXcmFwcGVyfSR7bW19JHtyaWdodFdyYXBwZXJ9YDtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBgJHtwcmVmaXh9JHttb25vbWVySGVsbUFycmF5LmpvaW4oJy4nKX0ke3Bvc3RmaXh9YDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29udmVydCBhIHN0cmluZyB3aXRoIFNFUEFSQVRPUi9GQVNUQSBub3RhdGlvbiB0byBIRUxNXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc291cmNlUG9seW1lciAgQSBzdHJpbmcgdG8gYmUgY29udmVydGVkXG4gICAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsfSBzb3VyY2VHYXBTeW1ib2wgIEFuIG9wdGlvbmFsIGdhcCBzeW1ib2wsIHNldCB0b1xuICAgICAqIGRlZmF1bHQgdmFsdWVzICgnLScgZm9yIEZBU1RBIGFuZCAnJyBmb3IgU0VQQVJBVE9SKSB1bmxlc3Mgc3BlY2lmaWVkXG4gICAgICogQHJldHVybiB7c3RyaW5nfSAgVGhlIHRhcmdldCBIRUxNIHN0cmluZ1xuICAgICAqL1xuICAgIGNvbnZlcnRTdHJpbmdUb0hlbG0oc291cmNlUG9seW1lciwgc291cmNlR2FwU3ltYm9sID0gbnVsbCkge1xuICAgICAgICBpZiAoc291cmNlR2FwU3ltYm9sID09PSBudWxsKVxuICAgICAgICAgICAgc291cmNlR2FwU3ltYm9sID0gdGhpcy5kZWZhdWx0R2FwU3ltYm9sO1xuICAgICAgICBjb25zdCBbcHJlZml4LCBsZWZ0V3JhcHBlciwgcmlnaHRXcmFwcGVyLCBwb3N0Zml4XSA9IHRoaXMuZ2V0SGVsbVdyYXBwZXJzKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRUb0hlbG1IZWxwZXIoc291cmNlUG9seW1lciwgc291cmNlR2FwU3ltYm9sLCBwcmVmaXgsIGxlZnRXcmFwcGVyLCByaWdodFdyYXBwZXIsIHBvc3RmaXgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IGEgY29sdW1uIHRvIEhFTE1cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbH0gc291cmNlR2FwU3ltYm9sXG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufVxuICAgICAqL1xuICAgIGNvbnZlcnRUb0hlbG0oc291cmNlR2FwU3ltYm9sID0gbnVsbCkge1xuICAgICAgICBpZiAoc291cmNlR2FwU3ltYm9sID09PSBudWxsKVxuICAgICAgICAgICAgc291cmNlR2FwU3ltYm9sID0gdGhpcy5kZWZhdWx0R2FwU3ltYm9sO1xuICAgICAgICBjb25zdCBbcHJlZml4LCBsZWZ0V3JhcHBlciwgcmlnaHRXcmFwcGVyLCBwb3N0Zml4XSA9IHRoaXMuZ2V0SGVsbVdyYXBwZXJzKCk7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbiA9IHRoaXMuZ2V0TmV3Q29sdW1uKFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi8pO1xuICAgICAgICAvLyBhc3NpZ24gdGhlIHZhbHVlcyB0byB0aGUgZW1wdHkgY29sdW1uXG4gICAgICAgIG5ld0NvbHVtbi5pbml0KChpZHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNvdXJjZVBvbHltZXIgPSB0aGlzLmNvbHVtbi5nZXQoaWR4KTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRUb0hlbG1IZWxwZXIoc291cmNlUG9seW1lciwgc291cmNlR2FwU3ltYm9sLCBwcmVmaXgsIGxlZnRXcmFwcGVyLCByaWdodFdyYXBwZXIsIHBvc3RmaXgpO1xuICAgICAgICB9KTtcbiAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhERy5UQUdTLlVOSVRTLCBcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovKTtcbiAgICAgICAgcmV0dXJuIG5ld0NvbHVtbjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29udmVydCBTRVBBUkFUT1IgY29sdW1uIHRvIEZBU1RBIG5vdGF0aW9uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGx9IGZhc3RhR2FwU3ltYm9sIE9wdGlvbmFsIGdhcCBzeW1ib2wgZm9yIEZBU1RBXG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufSAgQ29udmVydGVkIGNvbHVtblxuICAgICAqL1xuICAgIGNvbnZlcnRTZXBhcmF0b3JUb0Zhc3RhKGZhc3RhR2FwU3ltYm9sID0gbnVsbCkge1xuICAgICAgICBpZiAoZmFzdGFHYXBTeW1ib2wgPT09IG51bGwpXG4gICAgICAgICAgICBmYXN0YUdhcFN5bWJvbCA9IFVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LkZBU1RBO1xuICAgICAgICBjb25zdCBuZXdDb2x1bW4gPSB0aGlzLmdldE5ld0NvbHVtbihcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi8pO1xuICAgICAgICAvLyBhc3NpZ24gdGhlIHZhbHVlcyB0byB0aGUgZW1wdHkgY29sdW1uXG4gICAgICAgIG5ld0NvbHVtbi5pbml0KChpZHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlcGFyYXRvclBvbHltZXIgPSB0aGlzLmNvbHVtbi5nZXQoaWR4KTtcbiAgICAgICAgICAgIC8vIGl0ZW1zIGNhbiBiZSBtb25vbWVycyBvciBzZXBhcmF0b3JzXG4gICAgICAgICAgICBjb25zdCBzZXBhcmF0b3JJdGVtc0FycmF5ID0gdGhpcy5zcGxpdHRlcihzZXBhcmF0b3JQb2x5bWVyKTtcbiAgICAgICAgICAgIGNvbnN0IGZhc3RhTW9ub21lcnNBcnJheSA9IFtdO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXBhcmF0b3JJdGVtc0FycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IHNlcGFyYXRvckl0ZW1zQXJyYXlbaV07XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGZhc3RhTW9ub21lcnNBcnJheS5wdXNoKGZhc3RhR2FwU3ltYm9sKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoaXRlbS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBjYXNlIG9mIGEgbXVsdGktY2hhcmFjdGVyIG1vbm9tZXJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9ub21lciA9ICdbJyArIGl0ZW0gKyAnXSc7XG4gICAgICAgICAgICAgICAgICAgIGZhc3RhTW9ub21lcnNBcnJheS5wdXNoKG1vbm9tZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZmFzdGFNb25vbWVyc0FycmF5LnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZhc3RhTW9ub21lcnNBcnJheS5qb2luKCcnKTtcbiAgICAgICAgfSk7XG4gICAgICAgIG5ld0NvbHVtbi5zZXRUYWcoREcuVEFHUy5VTklUUywgXCJmYXN0YVwiIC8qIE5PVEFUSU9OLkZBU1RBICovKTtcbiAgICAgICAgcmV0dXJuIG5ld0NvbHVtbjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogIENvbnZlcnQgSEVMTSBjb2x1bW4gdG8gRkFTVEEvU0VQQVJBVE9SXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGd0Tm90YXRpb24gICAgVGFyZ2V0IG5vdGF0aW9uOiBGQVNUQSBvciBTRVBBUkFUT1JcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGd0U2VwYXJhdG9yICAgT3B0aW9uYWwgdGFyZ2V0IHNlcGFyYXRvciAoZm9yIEhFTE0gLT5cbiAgICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGx9IHRndEdhcFN5bWJvbCAgIE9wdGlvbmFsIHRhcmdldCBnYXAgc3ltYm9sXG4gICAgICogU0VQQVJBVE9SKVxuICAgICAqIEByZXR1cm4ge0RHLkNvbHVtbn0gQ29udmVydGVkIGNvbHVtblxuICAgICAqL1xuICAgIGNvbnZlcnRIZWxtKHRndE5vdGF0aW9uLCB0Z3RTZXBhcmF0b3IsIHRndEdhcFN5bWJvbCkge1xuICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIG11c3Qgbm90IGNvbnRhaW4gY2FsbHMgb2YgaXNEbmEoKSBhbmQgaXNSbmEoKSwgZm9yXG4gICAgICAgIC8vIHNvdXJjZSBoZWxtIGNvbHVtbnMgbWF5IGNvbnRhaW4gUk5BLCBETkEgYW5kIFBUIGFjcm9zcyBkaWZmZXJlbnQgcm93c1xuICAgICAgICBpZiAoIXRndEdhcFN5bWJvbCkge1xuICAgICAgICAgICAgdGd0R2FwU3ltYm9sID0gKHRoaXMudG9GYXN0YSh0Z3ROb3RhdGlvbikpID9cbiAgICAgICAgICAgICAgICBVbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdC5GQVNUQSA6XG4gICAgICAgICAgICAgICAgVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QuU0VQQVJBVE9SO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGd0U2VwYXJhdG9yKSB7XG4gICAgICAgICAgICB0Z3RTZXBhcmF0b3IgPSAodGhpcy50b0Zhc3RhKHRndE5vdGF0aW9uKSkgPyAnJyA6IHRoaXMuc2VwYXJhdG9yO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGhlbG1XcmFwcGVyc1JlID0gLyhSXFwofERcXCh8XFwpfFApL2c7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbiA9IHRoaXMuZ2V0TmV3Q29sdW1uKHRndE5vdGF0aW9uKTtcbiAgICAgICAgLy8gYXNzaWduIHRoZSB2YWx1ZXMgdG8gdGhlIGVtcHR5IGNvbHVtblxuICAgICAgICBuZXdDb2x1bW4uaW5pdCgoaWR4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBoZWxtUG9seW1lciA9IHRoaXMuY29sdW1uLmdldChpZHgpO1xuICAgICAgICAgICAgLy8gd2UgY2Fubm90IHVzZSBpc0RuYSgpIG9yIGlzUm5hKCkgYmVjYXVzZSBzb3VyY2UgaGVsbSBjb2x1bW5zIGNhblxuICAgICAgICAgICAgLy8gY29udGFpbiBETkEsIFJOQSBhbmQgUFQgaW4gZGlmZmVyZW50IGNlbGxzLCBzbyB0aGUgY29ycmVzcG9uZGluZ1xuICAgICAgICAgICAgLy8gdGFncyBjYW5ub3QgYmUgc2V0IGZvciB0aGUgd2hvbGUgY29sdW1uXG4gICAgICAgICAgICBjb25zdCBpc051Y2xlb3RpZGUgPSBoZWxtUG9seW1lci5zdGFydHNXaXRoKCdETkEnKSB8fCBoZWxtUG9seW1lci5zdGFydHNXaXRoKCdSTkEnKTtcbiAgICAgICAgICAgIC8vIGl0ZW1zIGNhbiBiZSBtb25vbWVycyBvciBoZWxtc1xuICAgICAgICAgICAgY29uc3QgaGVsbUl0ZW1zQXJyYXkgPSB0aGlzLnNwbGl0dGVyKGhlbG1Qb2x5bWVyKTtcbiAgICAgICAgICAgIGNvbnN0IHRndE1vbm9tZXJzQXJyYXkgPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaGVsbUl0ZW1zQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBsZXQgaXRlbSA9IGhlbG1JdGVtc0FycmF5W2ldO1xuICAgICAgICAgICAgICAgIGlmIChpc051Y2xlb3RpZGUpXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0gPSBpdGVtLnJlcGxhY2UoaGVsbVdyYXBwZXJzUmUsICcnKTtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbSA9PT0gVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QuSEVMTSkge1xuICAgICAgICAgICAgICAgICAgICB0Z3RNb25vbWVyc0FycmF5LnB1c2godGd0R2FwU3ltYm9sKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy50b0Zhc3RhKHRndE5vdGF0aW9uKSAmJiBpdGVtLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGNhc2Ugb2YgYSBtdWx0aS1jaGFyYWN0ZXIgbW9ub21lciBjb252ZXJ0ZWQgdG8gRkFTVEFcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9ub21lciA9ICdbJyArIGl0ZW0gKyAnXSc7XG4gICAgICAgICAgICAgICAgICAgIHRndE1vbm9tZXJzQXJyYXkucHVzaChtb25vbWVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRndE1vbm9tZXJzQXJyYXkucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGd0TW9ub21lcnNBcnJheS5qb2luKHRndFNlcGFyYXRvcik7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBUQUdTLmFsaWduZWQgaXMgbWFuZGF0b3J5IGZvciBjb2x1bW5zIG9mIE5PVEFUSU9OLkZBU1RBIGFuZCBOT1RBVElPTi5TRVBBUkFUT1JcbiAgICAgICAgY29uc3Qgc3BsaXR0ZXIgPSBnZXRTcGxpdHRlckZvckNvbHVtbihuZXdDb2x1bW4pO1xuICAgICAgICBjb25zdCBzdGF0cyA9IGdldFN0YXRzKG5ld0NvbHVtbiwgNSwgc3BsaXR0ZXIpO1xuICAgICAgICBjb25zdCBhbGlnbmVkID0gc3RhdHMuc2FtZUxlbmd0aCA/ICdTRVEuTVNBJyA6ICdTRVEnO1xuICAgICAgICBuZXdDb2x1bW4uc2V0VGFnKFwiYWxpZ25lZFwiIC8qIFRBR1MuYWxpZ25lZCAqLywgYWxpZ25lZCk7XG4gICAgICAgIHJldHVybiBuZXdDb2x1bW47XG4gICAgfVxuICAgIGNvbnZlcnRIZWxtVG9TZXBhcmF0b3IoKSB7XG4gICAgICAgIC8vIFRPRE86IGltcGxlbWVudGF0aW9yZXR1cm4gdGhpcy5nZXROZXdDb2x1bW4oKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TmV3Q29sdW1uKFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovKTtcbiAgICB9XG4gICAgLyoqIERpc3BhdGNoZXIgbWV0aG9kIGZvciBub3RhdGlvbiBjb252ZXJzaW9uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge05PVEFUSU9OfSB0Z3ROb3RhdGlvbiAgIE5vdGF0aW9uIHdlIHdhbnQgdG8gY29udmVydCB0b1xuICAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbH0gdGd0U2VwYXJhdG9yICAgUG9zc2libGUgc2VwYXJhdG9yXG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufSAgICAgICAgICAgICAgICBDb252ZXJ0ZWQgY29sdW1uXG4gICAgICovXG4gICAgY29udmVydCh0Z3ROb3RhdGlvbiwgdGd0U2VwYXJhdG9yID0gbnVsbCkge1xuICAgICAgICAvLyBwb3NzaWJsZSBleGNlcHRpb25zXG4gICAgICAgIGlmICh0aGlzLm5vdGF0aW9uID09PSB0Z3ROb3RhdGlvbilcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndGd0IG5vdGF0aW9uIGlzIGludmFsaWQnKTtcbiAgICAgICAgaWYgKHRoaXMudG9TZXBhcmF0b3IodGd0Tm90YXRpb24pICYmIHRndFNlcGFyYXRvciA9PT0gbnVsbClcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndGd0IHNlcGFyYXRvciBpcyBub3Qgc3BlY2lmaWVkJyk7XG4gICAgICAgIGlmICh0aGlzLmlzRmFzdGEoKSAmJiB0aGlzLnRvU2VwYXJhdG9yKHRndE5vdGF0aW9uKSAmJiB0Z3RTZXBhcmF0b3IgIT09IG51bGwpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0RmFzdGFUb1NlcGFyYXRvcih0Z3RTZXBhcmF0b3IpO1xuICAgICAgICBlbHNlIGlmICgodGhpcy5pc0Zhc3RhKCkgfHwgdGhpcy5pc1NlcGFyYXRvcigpKSAmJiB0aGlzLnRvSGVsbSh0Z3ROb3RhdGlvbikpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0VG9IZWxtKCk7XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuaXNTZXBhcmF0b3IoKSAmJiB0aGlzLnRvRmFzdGEodGd0Tm90YXRpb24pKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udmVydFNlcGFyYXRvclRvRmFzdGEoKTtcbiAgICAgICAgZWxzZSBpZiAodGhpcy5pc0hlbG0oKSAmJiB0aGlzLnRvRmFzdGEodGd0Tm90YXRpb24pKSAvLyB0aGUgY2FzZSBvZiBIRUxNXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0SGVsbSh0Z3ROb3RhdGlvbik7XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuaXNIZWxtKCkgJiYgdGhpcy50b1NlcGFyYXRvcih0Z3ROb3RhdGlvbikpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0SGVsbSh0Z3ROb3RhdGlvbiwgdGd0U2VwYXJhdG9yKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3Qgc3VwcG9ydGVkIGNvbnZlcnNpb24gJyArXG4gICAgICAgICAgICAgICAgYGZyb20gc291cmNlIG5vdGF0aW9uICcke3RoaXMubm90YXRpb259JyB0byB0YXJnZXQgbm90YXRpb24gJyR7dGd0Tm90YXRpb259Jy5gKTtcbiAgICB9XG4gICAgY29uc3RydWN0b3IoY29sKSB7XG4gICAgICAgIHN1cGVyKGNvbCk7XG4gICAgICAgIHRoaXMuX3NwbGl0dGVyID0gbnVsbDtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2libTkwWVhScGIyNHRZMjl1ZG1WeWRHVnlMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaWJtOTBZWFJwYjI0dFkyOXVkbVZ5ZEdWeUxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVWRCTEU5QlFVOHNTMEZCU3l4RlFVRkZMRTFCUVUwc2FVSkJRV2xDTEVOQlFVTTdRVUZGZEVNc1QwRkJUeXhGUVVGRExGbEJRVmtzUlVGQlF5eE5RVUZOTEdsQ1FVRnBRaXhEUVVGRE8wRkJRemRETEU5QlFVOHNSVUZCUXl4dlFrRkJiMElzUlVGQlJTeFJRVUZSTEVWQlFUUkRMRTFCUVUwc2FVSkJRV2xDTEVOQlFVTTdRVUZGTVVjc2FVWkJRV2xHTzBGQlEycEdMRTFCUVUwc1QwRkJUeXhwUWtGQmEwSXNVMEZCVVN4WlFVRlpPMGxCUjJwRUxFbEJRV01zVVVGQlVUdFJRVU53UWl4SlFVRkpMRWxCUVVrc1EwRkJReXhUUVVGVExFdEJRVXNzU1VGQlNUdFpRVU42UWl4SlFVRkpMRU5CUVVNc1UwRkJVeXhIUVVGSExHOUNRVUZ2UWl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVU55UkN4UFFVRlBMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU03U1VGRGVFSXNRMEZCUXp0SlFVVk5MRTlCUVU4c1EwRkJReXhqUVVGM1FpeEpRVUZoTEU5QlFVOHNZMEZCWXl4cFEwRkJiVUlzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGZUVZc1YwRkJWeXhEUVVGRExHTkJRWGRDTEVsQlFXRXNUMEZCVHl4alFVRmpMSGxEUVVGMVFpeERRVUZETEVOQlFVTXNRMEZCUXp0SlFVVm9SeXhOUVVGTkxFTkJRVU1zWTBGQmQwSXNTVUZCWVN4UFFVRlBMR05CUVdNc0swSkJRV3RDTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlRkR096czdPenM3VDBGTlJ6dEpRVU5MTEhWQ1FVRjFRaXhEUVVGRExGTkJRV2xDTEVWQlFVVXNhVUpCUVdkRExFbEJRVWs3VVVGRGNrWXNTVUZCU1N4alFVRmpMRXRCUVVzc1NVRkJTVHRaUVVONlFpeGpRVUZqTEVkQlFVY3NTVUZCU1N4RFFVRkRMR2RDUVVGblFpeERRVUZETzFGQlJYcERMRTFCUVUwc1UwRkJVeXhIUVVGSExFbEJRVWtzUTBGQlF5eFpRVUZaTEhORFFVRnZRaXhEUVVGRE8xRkJRM2hFTEhORVFVRnpSRHRSUVVOMFJDeFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJWeXhGUVVGRkxFVkJRVVU3V1VGRE4wSXNUVUZCVFN4WlFVRlpMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1dVRkRNVU1zVFVGQlRTeHJRa0ZCYTBJc1IwRkJSeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMWxCUTNaRUxFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhyUWtGQmEwSXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3WjBKQlEyeEVMRWxCUVVrc2EwSkJRV3RDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1kwRkJZenR2UWtGRE1VTXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NXVUZCV1N4RFFVRkRMSE5DUVVGelFpeERRVUZETEZOQlFWTXNRMEZCUXp0aFFVTjZSVHRaUVVORUxFOUJRVThzYTBKQlFXdENMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzFGQlF6VkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMGdzVTBGQlV5eERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzZFVOQlFYRkNMRU5CUVVNN1VVRkRjRVFzVTBGQlV5eERRVUZETEUxQlFVMHNiVU5CUVdsQ0xGTkJRVk1zUTBGQlF5eERRVUZETzFGQlF6VkRMRTlCUVU4c1UwRkJVeXhEUVVGRE8wbEJRMjVDTEVOQlFVTTdTVUZGUkRzN096czdUMEZMUnp0SlFVTkxMR1ZCUVdVN1VVRkRja0lzVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1dVRkRka01zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdaMEpCUTNoQ0xFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETzI5Q1FVTm9ReXhUUVVGVExFTkJRVU1zUTBGQlF5dzJRMEZCTmtNN1VVRkZPVVFzU1VGQlNTeE5RVUZOTEV0QlFVc3NVMEZCVXp0WlFVTjBRaXhOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEdsRFFVRnBReXhEUVVGRExFTkJRVU03VVVGRmNrUXNUVUZCVFN4UFFVRlBMRWRCUVVjc1RVRkJUU3hEUVVGRE8xRkJRM1pDTEUxQlFVMHNWMEZCVnl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xbEJRM3BETEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zTUVKQlFUQkNPMUZCUTNoRUxFMUJRVTBzV1VGQldTeEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1JVRkJSU3hKUVVGSkxFbEJRVWtzUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMREJDUVVFd1FqdFJRVU16Uml4UFFVRlBMRU5CUVVNc1RVRkJUU3hGUVVGRkxGZEJRVmNzUlVGQlJTeFpRVUZaTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRkRVFzUTBGQlF6dEpRVVZFTEcxRVFVRnRSRHRKUVVNelF5eHRRa0ZCYlVJc1EwRkRla0lzWVVGQmNVSXNSVUZEY2tJc1pVRkJkVUlzUlVGRGRrSXNUVUZCWXl4RlFVTmtMRmRCUVcxQ0xFVkJRMjVDTEZsQlFXOUNMRVZCUTNCQ0xFOUJRV1U3VVVGRlppeE5RVUZOTEZsQlFWa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzFGQlEyeEVMRTFCUVUwc1owSkJRV2RDTEVkQlFXRXNXVUZCV1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFVkJRVlVzUlVGQlJTeEZRVUZGTzFsQlEycEZMRWxCUVVrc1JVRkJSU3hMUVVGTExHVkJRV1U3WjBKQlEzaENMRTlCUVU4c1dVRkJXU3hEUVVGRExITkNRVUZ6UWl4RFFVRkRMRWxCUVVrc1EwRkJRenM3WjBKQlJXaEVMRTlCUVU4c1IwRkJSeXhYUVVGWExFZEJRVWNzUlVGQlJTeEhRVUZITEZsQlFWa3NSVUZCUlN4RFFVRkRPMUZCUTJoRUxFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEwZ3NUMEZCVHl4SFFVRkhMRTFCUVUwc1IwRkJSeXhuUWtGQlowSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzVDBGQlR5eEZRVUZGTEVOQlFVTTdTVUZETlVRc1EwRkJRenRKUVVWRU96czdPenM3TzA5QlQwYzdTVUZEU1N4dFFrRkJiVUlzUTBGRGVFSXNZVUZCY1VJc1JVRkRja0lzYTBKQlFXbERMRWxCUVVrN1VVRkZja01zU1VGQlNTeGxRVUZsTEV0QlFVc3NTVUZCU1R0WlFVTXhRaXhsUVVGbExFZEJRVWNzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRE8xRkJRekZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRVZCUVVVc1YwRkJWeXhGUVVGRkxGbEJRVmtzUlVGQlJTeFBRVUZQTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1pVRkJaU3hGUVVGRkxFTkJRVU03VVVGRE5VVXNUMEZCVHl4SlFVRkpMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNZVUZCWVN4RlFVRkZMR1ZCUVdVc1JVRkJSU3hOUVVGTkxFVkJRVVVzVjBGQlZ5eEZRVUZGTEZsQlFWa3NSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVNNVJ5eERRVUZETzBsQlJVUTdPenM3TzA5QlMwYzdTVUZEU3l4aFFVRmhMRU5CUVVNc2EwSkJRV2xETEVsQlFVazdVVUZEZWtRc1NVRkJTU3hsUVVGbExFdEJRVXNzU1VGQlNUdFpRVU14UWl4bFFVRmxMRWRCUVVjc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRPMUZCUlRGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVWQlFVVXNWMEZCVnl4RlFVRkZMRmxCUVZrc1JVRkJSU3hQUVVGUExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNaVUZCWlN4RlFVRkZMRU5CUVVNN1VVRkZOVVVzVFVGQlRTeFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMRmxCUVZrc05FSkJRV1VzUTBGQlF6dFJRVU51UkN4M1EwRkJkME03VVVGRGVFTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFZEJRVmNzUlVGQlJTeEZRVUZGTzFsQlF6ZENMRTFCUVUwc1lVRkJZU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRek5ETEU5QlFVOHNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeERRVUZETEdGQlFXRXNSVUZCUlN4bFFVRm5RaXhGUVVGRkxFMUJRVTBzUlVGQlJTeFhRVUZYTEVWQlFVVXNXVUZCV1N4RlFVRkZMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJReTlITEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTBnc1UwRkJVeXhEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc05rSkJRV2RDTEVOQlFVTTdVVUZETDBNc1QwRkJUeXhUUVVGVExFTkJRVU03U1VGRGJrSXNRMEZCUXp0SlFVVkVPenM3T3p0UFFVdEhPMGxCUTBzc2RVSkJRWFZDTEVOQlFVTXNhVUpCUVdkRExFbEJRVWs3VVVGRGJFVXNTVUZCU1N4alFVRmpMRXRCUVVzc1NVRkJTVHRaUVVONlFpeGpRVUZqTEVkQlFVY3NXVUZCV1N4RFFVRkRMSE5DUVVGelFpeERRVUZETEV0QlFVc3NRMEZCUXp0UlFVVTNSQ3hOUVVGTkxGTkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNXVUZCV1N3NFFrRkJaMElzUTBGQlF6dFJRVU53UkN4M1EwRkJkME03VVVGRGVFTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFZEJRVmNzUlVGQlJTeEZRVUZGTzFsQlF6ZENMRTFCUVUwc1owSkJRV2RDTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZET1VNc2MwTkJRWE5ETzFsQlEzUkRMRTFCUVUwc2JVSkJRVzFDTEVkQlFVY3NTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRPMWxCUXpWRUxFMUJRVTBzYTBKQlFXdENMRWRCUVdFc1JVRkJSU3hEUVVGRE8xbEJRM2hETEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eHRRa0ZCYlVJc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdaMEpCUTI1RUxFMUJRVTBzU1VGQlNTeEhRVUZITEcxQ1FVRnRRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTndReXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEV0QlFVc3NRMEZCUXl4RlFVRkZPMjlDUVVOeVFpeHJRa0ZCYTBJc1EwRkJReXhKUVVGSkxFTkJRVU1zWTBGQlpTeERRVUZETEVOQlFVTTdhVUpCUXpGRE8zRkNRVUZOTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFVkJRVVU3YjBKQlF6RkNMSGREUVVGM1F6dHZRa0ZEZUVNc1RVRkJUU3hQUVVGUExFZEJRVWNzUjBGQlJ5eEhRVUZITEVsQlFVa3NSMEZCUnl4SFFVRkhMRU5CUVVNN2IwSkJRMnBETEd0Q1FVRnJRaXhEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0cFFrRkRiRU03Y1VKQlFVMDdiMEpCUTB3c2EwSkJRV3RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8ybENRVU12UWp0aFFVTkdPMWxCUTBRc1QwRkJUeXhyUWtGQmEwSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRGNrTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRTQ3hUUVVGVExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXdyUWtGQmFVSXNRMEZCUXp0UlFVTm9SQ3hQUVVGUExGTkJRVk1zUTBGQlF6dEpRVU51UWl4RFFVRkRPMGxCUlVRN096czdPenM3TzA5QlVVYzdTVUZEU3l4WFFVRlhMRU5CUVVNc1YwRkJiVUlzUlVGQlJTeFpRVUZ4UWl4RlFVRkZMRmxCUVhGQ08xRkJRMjVHTEcxRlFVRnRSVHRSUVVOdVJTeDNSVUZCZDBVN1VVRkRlRVVzU1VGQlNTeERRVUZETEZsQlFWa3NSVUZCUlR0WlFVTnFRaXhaUVVGWkxFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRmRCUVhWQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTNSRUxGbEJRVmtzUTBGQlF5eHpRa0ZCYzBJc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dG5Ra0ZETTBNc1dVRkJXU3hEUVVGRExITkNRVUZ6UWl4RFFVRkRMRk5CUVZNc1EwRkJRenRUUVVOcVJEdFJRVVZFTEVsQlFVa3NRMEZCUXl4WlFVRlpMRVZCUVVVN1dVRkRha0lzV1VGQldTeEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhYUVVGMVFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRPMU5CUXpsRk8xRkJSVVFzVFVGQlRTeGpRVUZqTEVkQlFVY3NhVUpCUVdsQ0xFTkJRVU03VVVGRGVrTXNUVUZCVFN4VFFVRlRMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eFhRVUYxUWl4RFFVRkRMRU5CUVVNN1VVRkROMFFzZDBOQlFYZERPMUZCUTNoRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SFFVRlhMRVZCUVVVc1JVRkJSVHRaUVVNM1FpeE5RVUZOTEZkQlFWY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVVjZReXh0UlVGQmJVVTdXVUZEYmtVc2JVVkJRVzFGTzFsQlEyNUZMREJEUVVFd1F6dFpRVU14UXl4TlFVRk5MRmxCUVZrc1IwRkJSeXhYUVVGWExFTkJRVU1zVlVGQlZTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRmRCUVZjc1EwRkJReXhWUVVGVkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdXVUZGY0VZc2FVTkJRV2xETzFsQlEycERMRTFCUVUwc1kwRkJZeXhIUVVGSExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNN1dVRkRiRVFzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJZU3hGUVVGRkxFTkJRVU03V1VGRGRFTXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEdOQlFXTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3WjBKQlF6bERMRWxCUVVrc1NVRkJTU3hIUVVGSExHTkJRV01zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0blFrRkROMElzU1VGQlNTeFpRVUZaTzI5Q1FVTmtMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEdOQlFXTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJRenRuUWtGRE1VTXNTVUZCU1N4SlFVRkpMRXRCUVVzc1dVRkJXU3hEUVVGRExITkNRVUZ6UWl4RFFVRkRMRWxCUVVrc1JVRkJSVHR2UWtGRGNrUXNaMEpCUVdkQ0xFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFXRXNRMEZCUXl4RFFVRkRPMmxDUVVOMFF6dHhRa0ZCVFN4SlFVRkpMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zVjBGQmRVSXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEZRVUZGTzI5Q1FVTnVSU3d5UkVGQk1rUTdiMEpCUXpORUxFMUJRVTBzVDBGQlR5eEhRVUZITEVkQlFVY3NSMEZCUnl4SlFVRkpMRWRCUVVjc1IwRkJSeXhEUVVGRE8yOUNRVU5xUXl4blFrRkJaMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN2FVSkJRMmhETzNGQ1FVRk5PMjlDUVVOTUxHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dHBRa0ZETjBJN1lVRkRSanRaUVVORUxFOUJRVThzWjBKQlFXZENMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzFGQlF6ZERMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJSVWdzYVVaQlFXbEdPMUZCUTJwR0xFMUJRVTBzVVVGQlVTeEhRVUZwUWl4dlFrRkJiMElzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0UlFVTXZSQ3hOUVVGTkxFdEJRVXNzUjBGQlowSXNVVUZCVVN4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRExFVkJRVVVzVVVGQlVTeERRVUZETEVOQlFVTTdVVUZETlVRc1RVRkJUU3hQUVVGUExFZEJRVWNzUzBGQlN5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTTdVVUZEY2tRc1UwRkJVeXhEUVVGRExFMUJRVTBzSzBKQlFXVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkZlRU1zVDBGQlR5eFRRVUZUTEVOQlFVTTdTVUZEYmtJc1EwRkJRenRKUVVWUExITkNRVUZ6UWp0UlFVTTFRaXhwUkVGQmFVUTdVVUZEYWtRc1QwRkJUeXhKUVVGSkxFTkJRVU1zV1VGQldTeHpRMEZCYjBJc1EwRkJRenRKUVVNdlF5eERRVUZETzBsQlJVUTdPenM3TzA5QlMwYzdTVUZEU1N4UFFVRlBMRU5CUVVNc1YwRkJjVUlzUlVGQlJTeGxRVUU0UWl4SlFVRkpPMUZCUTNSRkxITkNRVUZ6UWp0UlFVTjBRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eFJRVUZSTEV0QlFVc3NWMEZCVnp0WlFVTXZRaXhOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEhsQ1FVRjVRaXhEUVVGRExFTkJRVU03VVVGRE4wTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExGZEJRVmNzUTBGQlF5eEpRVUZKTEZsQlFWa3NTMEZCU3l4SlFVRkpPMWxCUTNoRUxFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNaME5CUVdkRExFTkJRVU1zUTBGQlF6dFJRVVZ3UkN4SlFVRkpMRWxCUVVrc1EwRkJReXhQUVVGUExFVkJRVVVzU1VGQlNTeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRmRCUVZjc1EwRkJReXhKUVVGSkxGbEJRVmtzUzBGQlN5eEpRVUZKTzFsQlF6RkZMRTlCUVU4c1NVRkJTU3hEUVVGRExIVkNRVUYxUWl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8yRkJReTlETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVGRkxFbEJRVWtzU1VGQlNTeERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRMRWxCUVVrc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFhRVUZYTEVOQlFVTTdXVUZEZWtVc1QwRkJUeXhKUVVGSkxFTkJRVU1zWVVGQllTeEZRVUZGTEVOQlFVTTdZVUZEZWtJc1NVRkJTU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhYUVVGWExFTkJRVU03V1VGRGRFUXNUMEZCVHl4SlFVRkpMRU5CUVVNc2RVSkJRWFZDTEVWQlFVVXNRMEZCUXp0aFFVTnVReXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNTVUZCU1N4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExGZEJRVmNzUTBGQlF5eEZRVUZGTEcxQ1FVRnRRanRaUVVOMFJTeFBRVUZQTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU03WVVGRGJFTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFbEJRVWtzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4WFFVRlhMRU5CUVVNN1dVRkRja1FzVDBGQlR5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRmRCUVZjc1JVRkJSU3haUVVGaExFTkJRVU1zUTBGQlF6czdXVUZGY0VRc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5d3lRa0ZCTWtJN1owSkJRM3BETEhsQ1FVRjVRaXhKUVVGSkxFTkJRVU1zVVVGQlVTeDVRa0ZCZVVJc1YwRkJWeXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU4wUml4RFFVRkRPMGxCUlVRc1dVRkJiVUlzUjBGQll6dFJRVU12UWl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVFM1VFd3NZMEZCVXl4SFFVRjNRaXhKUVVGSkxFTkJRVU03U1VFNFVEbERMRU5CUVVNN1EwRkRSaUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4cUlFUnZJRzV2ZENCamFHRnVaMlVnZEdobGMyVWdhVzF3YjNKMElHeHBibVZ6SUhSdklHMWhkR05vSUdWNGRHVnlibUZzSUcxdlpIVnNaWE1nYVc0Z2QyVmljR0ZqYXlCamIyNW1hV2QxY21GMGFXOXVJQ292WEc1cGJYQnZjblFnS2lCaGN5Qm5jbTlySUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5bmNtOXJKenRjYm1sdGNHOXlkQ0FxSUdGeklIVnBJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzkxYVNjN1hHNXBiWEJ2Y25RZ0tpQmhjeUJFUnlCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdlpHY25PMXh1WEc1cGJYQnZjblFnZTFWdWFYUnpTR0Z1Wkd4bGNuMGdabkp2YlNBbkxpOTFibWwwY3kxb1lXNWtiR1Z5Snp0Y2JtbHRjRzl5ZENCN1oyVjBVM0JzYVhSMFpYSkdiM0pEYjJ4MWJXNHNJR2RsZEZOMFlYUnpMQ0JPVDFSQlZFbFBUaXdnVTJWeFEyOXNVM1JoZEhNc0lGTndiR2wwZEdWeVJuVnVZeXdnVkVGSFUzMGdabkp2YlNBbkxpOXRZV055YjIxdmJHVmpkV3hsSnp0Y2JseHVMeW9xSUVOc1lYTnpJR1p2Y2lCb1lXNWtiR2x1WnlCamIyNTJaWEp6YVc5dUlHOW1JRzV2ZEdGMGFXOXVJSE41YzNSbGJYTWdhVzRnVFdGamNtOXRiMnhsWTNWc1pTQmpiMngxYlc1eklDb3ZYRzVsZUhCdmNuUWdZMnhoYzNNZ1RtOTBZWFJwYjI1RGIyNTJaWEowWlhJZ1pYaDBaVzVrY3lCVmJtbDBjMGhoYm1Sc1pYSWdlMXh1SUNCd2NtbDJZWFJsSUY5emNHeHBkSFJsY2pvZ1UzQnNhWFIwWlhKR2RXNWpJSHdnYm5Wc2JDQTlJRzUxYkd3N1hHNWNiaUFnY0hKdmRHVmpkR1ZrSUdkbGRDQnpjR3hwZEhSbGNpZ3BPaUJUY0d4cGRIUmxja1oxYm1NZ2UxeHVJQ0FnSUdsbUlDaDBhR2x6TGw5emNHeHBkSFJsY2lBOVBUMGdiblZzYkNsY2JpQWdJQ0FnSUhSb2FYTXVYM053YkdsMGRHVnlJRDBnWjJWMFUzQnNhWFIwWlhKR2IzSkRiMngxYlc0b2RHaHBjeTVqYjJ4MWJXNHBPMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbDl6Y0d4cGRIUmxjanRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUIwYjBaaGMzUmhLSFJoY21kbGRFNXZkR0YwYVc5dU9pQk9UMVJCVkVsUFRpazZJR0p2YjJ4bFlXNGdleUJ5WlhSMWNtNGdkR0Z5WjJWMFRtOTBZWFJwYjI0Z1BUMDlJRTVQVkVGVVNVOU9Ma1pCVTFSQk95QjlYRzVjYmlBZ2NIVmliR2xqSUhSdlUyVndZWEpoZEc5eUtIUmhjbWRsZEU1dmRHRjBhVzl1T2lCT1QxUkJWRWxQVGlrNklHSnZiMnhsWVc0Z2V5QnlaWFIxY200Z2RHRnlaMlYwVG05MFlYUnBiMjRnUFQwOUlFNVBWRUZVU1U5T0xsTkZVRUZTUVZSUFVqc2dmVnh1WEc0Z0lIQjFZbXhwWXlCMGIwaGxiRzBvZEdGeVoyVjBUbTkwWVhScGIyNDZJRTVQVkVGVVNVOU9LVG9nWW05dmJHVmhiaUI3SUhKbGRIVnliaUIwWVhKblpYUk9iM1JoZEdsdmJpQTlQVDBnVGs5VVFWUkpUMDR1U0VWTVRUc2dmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkRiMjUyWlhKMElHRWdUV0ZqY205dGIyeGxZM1ZzWlNCamIyeDFiVzRnWm5KdmJTQkdRVk5VUVNCMGJ5QlRSVkJCVWtGVVQxSWdibTkwWVhScGIyNWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJSE5sY0dGeVlYUnZjaUFnUVNCemNHVmphV1pwWXlCelpYQmhjbUYwYjNJZ2RHOGdZbVVnZFhObFpGeHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnWm1GemRHRkhZWEJUZVcxaWIyd2dJRWRoY0NCemVXMWliMndnYVc0Z1JrRlRWRUVzSUNjdEp5QmllU0JrWldaaGRXeDBYRzRnSUNBcUlFQnlaWFIxY200Z2UwUkhMa052YkhWdGJuMGdJQ0FnSUNBZ0lFRWdibVYzSUdOdmJIVnRiaUJwYmlCVFJWQkJVa0ZVVDFJZ2JtOTBZWFJwYjI1Y2JpQWdJQ292WEc0Z0lIQnlhWFpoZEdVZ1kyOXVkbVZ5ZEVaaGMzUmhWRzlUWlhCaGNtRjBiM0lvYzJWd1lYSmhkRzl5T2lCemRISnBibWNzSUdaaGMzUmhSMkZ3VTNsdFltOXNPaUJ6ZEhKcGJtY2dmQ0J1ZFd4c0lEMGdiblZzYkNrNklFUkhMa052YkhWdGJpQjdYRzRnSUNBZ2FXWWdLR1poYzNSaFIyRndVM2x0WW05c0lEMDlQU0J1ZFd4c0tWeHVJQ0FnSUNBZ1ptRnpkR0ZIWVhCVGVXMWliMndnUFNCMGFHbHpMbVJsWm1GMWJIUkhZWEJUZVcxaWIydzdYRzVjYmlBZ0lDQmpiMjV6ZENCdVpYZERiMngxYlc0Z1BTQjBhR2x6TG1kbGRFNWxkME52YkhWdGJpaE9UMVJCVkVsUFRpNVRSVkJCVWtGVVQxSXBPMXh1SUNBZ0lDOHZJR0Z6YzJsbmJpQjBhR1VnZG1Gc2RXVnpJSFJ2SUhSb1pTQnVaWGRzZVNCamNtVmhkR1ZrSUdWdGNIUjVJR052YkhWdGJseHVJQ0FnSUc1bGQwTnZiSFZ0Ymk1cGJtbDBLQ2hwWkhnNklHNTFiV0psY2lrZ1BUNGdlMXh1SUNBZ0lDQWdZMjl1YzNRZ1ptRnpkR0ZRYjJ4NWJXVnlJRDBnZEdocGN5NWpiMngxYlc0dVoyVjBLR2xrZUNrN1hHNGdJQ0FnSUNCamIyNXpkQ0JtWVhOMFlVMXZibTl0WlhKelFYSnlZWGtnUFNCMGFHbHpMbk53YkdsMGRHVnlLR1poYzNSaFVHOXNlVzFsY2lrN1hHNGdJQ0FnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElHWmhjM1JoVFc5dWIyMWxjbk5CY25KaGVTNXNaVzVuZEdnN0lHa3JLeWtnZTF4dUlDQWdJQ0FnSUNCcFppQW9abUZ6ZEdGTmIyNXZiV1Z5YzBGeWNtRjVXMmxkSUQwOVBTQm1ZWE4wWVVkaGNGTjViV0p2YkNsY2JpQWdJQ0FnSUNBZ0lDQm1ZWE4wWVUxdmJtOXRaWEp6UVhKeVlYbGJhVjBnUFNCVmJtbDBjMGhoYm1Sc1pYSXVYMlJsWm1GMWJIUkhZWEJUZVcxaWIyeHpSR2xqZEM1VFJWQkJVa0ZVVDFJN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnWm1GemRHRk5iMjV2YldWeWMwRnljbUY1TG1wdmFXNG9jMlZ3WVhKaGRHOXlLVHRjYmlBZ0lDQjlLVHRjYmlBZ0lDQnVaWGREYjJ4MWJXNHVjMlYwVkdGbktFUkhMbFJCUjFNdVZVNUpWRk1zSUU1UFZFRlVTVTlPTGxORlVFRlNRVlJQVWlrN1hHNGdJQ0FnYm1WM1EyOXNkVzF1TG5ObGRGUmhaeWhVUVVkVExuTmxjR0Z5WVhSdmNpd2djMlZ3WVhKaGRHOXlLVHRjYmlBZ0lDQnlaWFIxY200Z2JtVjNRMjlzZFcxdU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRWRsZENCMGFHVWdkM0poY0hCbGNpQnpkSEpwYm1keklHWnZjaUJJUlV4TkxDQmtaWEJsYm1ScGJtY2diMjRnZEdobElIUjVjR1VnYjJZZ2RHaGxYRzRnSUNBcUlHMWhZM0p2Ylc5c1pXTjFiR1VnS0hCbGNIUnBaR1VzSUVST1FTd2dVazVCS1Z4dUlDQWdLbHh1SUNBZ0tpQkFjbVYwZFhKdUlIdHpkSEpwYm1kYlhYMGdRWEp5WVhrZ2IyWWdkM0poY0hCbGNuTmNiaUFnSUNvdlhHNGdJSEJ5YVhaaGRHVWdaMlYwU0dWc2JWZHlZWEJ3WlhKektDazZJSE4wY21sdVoxdGRJSHRjYmlBZ0lDQmpiMjV6ZENCd2NtVm1hWGdnUFNBb2RHaHBjeTVwYzBSdVlTZ3BLU0EvSUNkRVRrRXhleWNnT2x4dUlDQWdJQ0FnS0hSb2FYTXVhWE5TYm1Fb0tTa2dQeUFuVWs1Qk1Yc25JRHBjYmlBZ0lDQWdJQ0FnS0hSb2FYTXVhWE5RWlhCMGFXUmxLQ2twSUQ4Z0oxQkZVRlJKUkVVeGV5Y2dPbHh1SUNBZ0lDQWdJQ0FnSUNkVmJtdHViM2R1SnpzZ0x5OGdkR2hwY3lCallYTmxJSE5vYjNWc1pDQmlaU0JvWVc1a2JHVmtJR0Z6SUdWNFkyVndkR2x2Ym1Gc1hHNWNiaUFnSUNCcFppQW9jSEpsWm1sNElEMDlQU0FuVlc1cmJtOTNiaWNwWEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9KMDVsYVhSb1pYSWdjR1Z3ZEdsa1pTd2dibTl5SUc1MVkyeGxiM1JwWkdVbktUdGNibHh1SUNBZ0lHTnZibk4wSUhCdmMzUm1hWGdnUFNBbmZTUWtKQ2M3WEc0Z0lDQWdZMjl1YzNRZ2JHVm1kRmR5WVhCd1pYSWdQU0FvZEdocGN5NXBjMFJ1WVNncEtTQS9JQ2RFS0NjZ09seHVJQ0FnSUNBZ0tIUm9hWE11YVhOU2JtRW9LU2tnUHlBblVpZ25JRG9nSnljN0lDOHZJRzV2SUhkeVlYQndaWElnWm05eUlIQmxjSFJwWkdWelhHNGdJQ0FnWTI5dWMzUWdjbWxuYUhSWGNtRndjR1Z5SUQwZ0tIUm9hWE11YVhORWJtRW9LU0I4ZkNCMGFHbHpMbWx6VW01aEtDa3BJRDhnSnlsUUp5QTZJQ2NuT3lBdkx5QnVieUIzY21Gd2NHVnlJR1p2Y2lCd1pYQjBhV1JsYzF4dUlDQWdJSEpsZEhWeWJpQmJjSEpsWm1sNExDQnNaV1owVjNKaGNIQmxjaXdnY21sbmFIUlhjbUZ3Y0dWeUxDQndiM04wWm1sNFhUdGNiaUFnZlZ4dVhHNGdJQzh2SUVFZ2FHVnNjR1Z5SUdaMWJtTjBhVzl1SUdadmNpQmpiMjUyWlhKMGFXNW5JSE4wY21sdVozTWdkRzhnU0VWTVRWeHVJQ0J3Y21sMllYUmxJR052Ym5abGNuUlViMGhsYkcxSVpXeHdaWElvWEc0Z0lDQWdjMjkxY21ObFVHOXNlVzFsY2pvZ2MzUnlhVzVuTEZ4dUlDQWdJSE52ZFhKalpVZGhjRk41YldKdmJEb2djM1J5YVc1bkxGeHVJQ0FnSUhCeVpXWnBlRG9nYzNSeWFXNW5MRnh1SUNBZ0lHeGxablJYY21Gd2NHVnlPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2NtbG5hSFJYY21Gd2NHVnlPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2NHOXpkR1pwZURvZ2MzUnlhVzVuWEc0Z0lDazZJSE4wY21sdVp5QjdYRzRnSUNBZ1kyOXVjM1FnYlc5dWIyMWxja0Z5Y21GNUlEMGdkR2hwY3k1emNHeHBkSFJsY2loemIzVnlZMlZRYjJ4NWJXVnlLVHRjYmlBZ0lDQmpiMjV6ZENCdGIyNXZiV1Z5U0dWc2JVRnljbUY1T2lCemRISnBibWRiWFNBOUlHMXZibTl0WlhKQmNuSmhlUzV0WVhBb0tHMXRPaUJ6ZEhKcGJtY3BJRDArSUh0Y2JpQWdJQ0FnSUdsbUlDaHRiU0E5UFQwZ2MyOTFjbU5sUjJGd1UzbHRZbTlzS1Z4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnVlc1cGRITklZVzVrYkdWeUxsOWtaV1poZFd4MFIyRndVM2x0WW05c2MwUnBZM1F1U0VWTVRUdGNiaUFnSUNBZ0lHVnNjMlZjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR0FrZTJ4bFpuUlhjbUZ3Y0dWeWZTUjdiVzE5Skh0eWFXZG9kRmR5WVhCd1pYSjlZRHRjYmlBZ0lDQjlLVHRjYmlBZ0lDQnlaWFIxY200Z1lDUjdjSEpsWm1sNGZTUjdiVzl1YjIxbGNraGxiRzFCY25KaGVTNXFiMmx1S0NjdUp5bDlKSHR3YjNOMFptbDRmV0E3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1EyOXVkbVZ5ZENCaElITjBjbWx1WnlCM2FYUm9JRk5GVUVGU1FWUlBVaTlHUVZOVVFTQnViM1JoZEdsdmJpQjBieUJJUlV4TlhHNGdJQ0FxWEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnpiM1Z5WTJWUWIyeDViV1Z5SUNCQklITjBjbWx1WnlCMGJ5QmlaU0JqYjI1MlpYSjBaV1JjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1jZ2ZDQnVkV3hzZlNCemIzVnlZMlZIWVhCVGVXMWliMndnSUVGdUlHOXdkR2x2Ym1Gc0lHZGhjQ0J6ZVcxaWIyd3NJSE5sZENCMGIxeHVJQ0FnS2lCa1pXWmhkV3gwSUhaaGJIVmxjeUFvSnkwbklHWnZjaUJHUVZOVVFTQmhibVFnSnljZ1ptOXlJRk5GVUVGU1FWUlBVaWtnZFc1c1pYTnpJSE53WldOcFptbGxaRnh1SUNBZ0tpQkFjbVYwZFhKdUlIdHpkSEpwYm1kOUlDQlVhR1VnZEdGeVoyVjBJRWhGVEUwZ2MzUnlhVzVuWEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nWTI5dWRtVnlkRk4wY21sdVoxUnZTR1ZzYlNoY2JpQWdJQ0J6YjNWeVkyVlFiMng1YldWeU9pQnpkSEpwYm1jc1hHNGdJQ0FnYzI5MWNtTmxSMkZ3VTNsdFltOXNPaUJ6ZEhKcGJtY2dmQ0J1ZFd4c0lEMGdiblZzYkZ4dUlDQXBPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lHbG1JQ2h6YjNWeVkyVkhZWEJUZVcxaWIyd2dQVDA5SUc1MWJHd3BYRzRnSUNBZ0lDQnpiM1Z5WTJWSFlYQlRlVzFpYjJ3Z1BTQjBhR2x6TG1SbFptRjFiSFJIWVhCVGVXMWliMnc3WEc0Z0lDQWdZMjl1YzNRZ1czQnlaV1pwZUN3Z2JHVm1kRmR5WVhCd1pYSXNJSEpwWjJoMFYzSmhjSEJsY2l3Z2NHOXpkR1pwZUYwZ1BTQjBhR2x6TG1kbGRFaGxiRzFYY21Gd2NHVnljeWdwTzF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1OdmJuWmxjblJVYjBobGJHMUlaV3h3WlhJb2MyOTFjbU5sVUc5c2VXMWxjaXdnYzI5MWNtTmxSMkZ3VTNsdFltOXNMQ0J3Y21WbWFYZ3NJR3hsWm5SWGNtRndjR1Z5TENCeWFXZG9kRmR5WVhCd1pYSXNJSEJ2YzNSbWFYZ3BPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOdmJuWmxjblFnWVNCamIyeDFiVzRnZEc4Z1NFVk1UVnh1SUNBZ0tseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaeUI4SUc1MWJHeDlJSE52ZFhKalpVZGhjRk41YldKdmJGeHVJQ0FnS2lCQWNtVjBkWEp1SUh0RVJ5NURiMngxYlc1OVhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElHTnZiblpsY25SVWIwaGxiRzBvYzI5MWNtTmxSMkZ3VTNsdFltOXNPaUJ6ZEhKcGJtY2dmQ0J1ZFd4c0lEMGdiblZzYkNrNklFUkhMa052YkhWdGJpQjdYRzRnSUNBZ2FXWWdLSE52ZFhKalpVZGhjRk41YldKdmJDQTlQVDBnYm5Wc2JDbGNiaUFnSUNBZ0lITnZkWEpqWlVkaGNGTjViV0p2YkNBOUlIUm9hWE11WkdWbVlYVnNkRWRoY0ZONWJXSnZiRHRjYmx4dUlDQWdJR052Ym5OMElGdHdjbVZtYVhnc0lHeGxablJYY21Gd2NHVnlMQ0J5YVdkb2RGZHlZWEJ3WlhJc0lIQnZjM1JtYVhoZElEMGdkR2hwY3k1blpYUklaV3h0VjNKaGNIQmxjbk1vS1R0Y2JseHVJQ0FnSUdOdmJuTjBJRzVsZDBOdmJIVnRiaUE5SUhSb2FYTXVaMlYwVG1WM1EyOXNkVzF1S0U1UFZFRlVTVTlPTGtoRlRFMHBPMXh1SUNBZ0lDOHZJR0Z6YzJsbmJpQjBhR1VnZG1Gc2RXVnpJSFJ2SUhSb1pTQmxiWEIwZVNCamIyeDFiVzVjYmlBZ0lDQnVaWGREYjJ4MWJXNHVhVzVwZENnb2FXUjRPaUJ1ZFcxaVpYSXBJRDArSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSE52ZFhKalpWQnZiSGx0WlhJZ1BTQjBhR2x6TG1OdmJIVnRiaTVuWlhRb2FXUjRLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG1OdmJuWmxjblJVYjBobGJHMUlaV3h3WlhJb2MyOTFjbU5sVUc5c2VXMWxjaXdnYzI5MWNtTmxSMkZ3VTNsdFltOXNJU3dnY0hKbFptbDRMQ0JzWldaMFYzSmhjSEJsY2l3Z2NtbG5hSFJYY21Gd2NHVnlMQ0J3YjNOMFptbDRLVHRjYmlBZ0lDQjlLVHRjYmlBZ0lDQnVaWGREYjJ4MWJXNHVjMlYwVkdGbktFUkhMbFJCUjFNdVZVNUpWRk1zSUU1UFZFRlVTVTlPTGtoRlRFMHBPMXh1SUNBZ0lISmxkSFZ5YmlCdVpYZERiMngxYlc0N1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRMjl1ZG1WeWRDQlRSVkJCVWtGVVQxSWdZMjlzZFcxdUlIUnZJRVpCVTFSQklHNXZkR0YwYVc5dVhHNGdJQ0FxWEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bklId2diblZzYkgwZ1ptRnpkR0ZIWVhCVGVXMWliMndnVDNCMGFXOXVZV3dnWjJGd0lITjViV0p2YkNCbWIzSWdSa0ZUVkVGY2JpQWdJQ29nUUhKbGRIVnliaUI3UkVjdVEyOXNkVzF1ZlNBZ1EyOXVkbVZ5ZEdWa0lHTnZiSFZ0Ymx4dUlDQWdLaTljYmlBZ2NISnBkbUYwWlNCamIyNTJaWEowVTJWd1lYSmhkRzl5Vkc5R1lYTjBZU2htWVhOMFlVZGhjRk41YldKdmJEb2djM1J5YVc1bklId2diblZzYkNBOUlHNTFiR3dwT2lCRVJ5NURiMngxYlc0Z2UxeHVJQ0FnSUdsbUlDaG1ZWE4wWVVkaGNGTjViV0p2YkNBOVBUMGdiblZzYkNsY2JpQWdJQ0FnSUdaaGMzUmhSMkZ3VTNsdFltOXNJRDBnVlc1cGRITklZVzVrYkdWeUxsOWtaV1poZFd4MFIyRndVM2x0WW05c2MwUnBZM1F1UmtGVFZFRTdYRzVjYmlBZ0lDQmpiMjV6ZENCdVpYZERiMngxYlc0Z1BTQjBhR2x6TG1kbGRFNWxkME52YkhWdGJpaE9UMVJCVkVsUFRpNUdRVk5VUVNrN1hHNGdJQ0FnTHk4Z1lYTnphV2R1SUhSb1pTQjJZV3gxWlhNZ2RHOGdkR2hsSUdWdGNIUjVJR052YkhWdGJseHVJQ0FnSUc1bGQwTnZiSFZ0Ymk1cGJtbDBLQ2hwWkhnNklHNTFiV0psY2lrZ1BUNGdlMXh1SUNBZ0lDQWdZMjl1YzNRZ2MyVndZWEpoZEc5eVVHOXNlVzFsY2lBOUlIUm9hWE11WTI5c2RXMXVMbWRsZENocFpIZ3BPMXh1SUNBZ0lDQWdMeThnYVhSbGJYTWdZMkZ1SUdKbElHMXZibTl0WlhKeklHOXlJSE5sY0dGeVlYUnZjbk5jYmlBZ0lDQWdJR052Ym5OMElITmxjR0Z5WVhSdmNrbDBaVzF6UVhKeVlYa2dQU0IwYUdsekxuTndiR2wwZEdWeUtITmxjR0Z5WVhSdmNsQnZiSGx0WlhJcE8xeHVJQ0FnSUNBZ1kyOXVjM1FnWm1GemRHRk5iMjV2YldWeWMwRnljbUY1T2lCemRISnBibWRiWFNBOUlGdGRPMXh1SUNBZ0lDQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0J6WlhCaGNtRjBiM0pKZEdWdGMwRnljbUY1TG14bGJtZDBhRHNnYVNzcktTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHbDBaVzBnUFNCelpYQmhjbUYwYjNKSmRHVnRjMEZ5Y21GNVcybGRPMXh1SUNBZ0lDQWdJQ0JwWmlBb2FYUmxiUzVzWlc1bmRHZ2dQVDA5SURBcElIdGNiaUFnSUNBZ0lDQWdJQ0JtWVhOMFlVMXZibTl0WlhKelFYSnlZWGt1Y0hWemFDaG1ZWE4wWVVkaGNGTjViV0p2YkNFcE8xeHVJQ0FnSUNBZ0lDQjlJR1ZzYzJVZ2FXWWdLR2wwWlcwdWJHVnVaM1JvSUQ0Z01Ta2dlMXh1SUNBZ0lDQWdJQ0FnSUM4dklIUm9aU0JqWVhObElHOW1JR0VnYlhWc2RHa3RZMmhoY21GamRHVnlJRzF2Ym05dFpYSmNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQnRiMjV2YldWeUlEMGdKMXNuSUNzZ2FYUmxiU0FySUNkZEp6dGNiaUFnSUNBZ0lDQWdJQ0JtWVhOMFlVMXZibTl0WlhKelFYSnlZWGt1Y0hWemFDaHRiMjV2YldWeUtUdGNiaUFnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0JtWVhOMFlVMXZibTl0WlhKelFYSnlZWGt1Y0hWemFDaHBkR1Z0S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUdaaGMzUmhUVzl1YjIxbGNuTkJjbkpoZVM1cWIybHVLQ2NuS1R0Y2JpQWdJQ0I5S1R0Y2JpQWdJQ0J1WlhkRGIyeDFiVzR1YzJWMFZHRm5LRVJITGxSQlIxTXVWVTVKVkZNc0lFNVBWRUZVU1U5T0xrWkJVMVJCS1R0Y2JpQWdJQ0J5WlhSMWNtNGdibVYzUTI5c2RXMXVPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUNCRGIyNTJaWEowSUVoRlRFMGdZMjlzZFcxdUlIUnZJRVpCVTFSQkwxTkZVRUZTUVZSUFVseHVJQ0FnS2x4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdkR2QwVG05MFlYUnBiMjRnSUNBZ1ZHRnlaMlYwSUc1dmRHRjBhVzl1T2lCR1FWTlVRU0J2Y2lCVFJWQkJVa0ZVVDFKY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJSFJuZEZObGNHRnlZWFJ2Y2lBZ0lFOXdkR2x2Ym1Gc0lIUmhjbWRsZENCelpYQmhjbUYwYjNJZ0tHWnZjaUJJUlV4TklDMCtYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuSUh3Z2JuVnNiSDBnZEdkMFIyRndVM2x0WW05c0lDQWdUM0IwYVc5dVlXd2dkR0Z5WjJWMElHZGhjQ0J6ZVcxaWIyeGNiaUFnSUNvZ1UwVlFRVkpCVkU5U0tWeHVJQ0FnS2lCQWNtVjBkWEp1SUh0RVJ5NURiMngxYlc1OUlFTnZiblpsY25SbFpDQmpiMngxYlc1Y2JpQWdJQ292WEc0Z0lIQnlhWFpoZEdVZ1kyOXVkbVZ5ZEVobGJHMG9kR2QwVG05MFlYUnBiMjQ2SUhOMGNtbHVaeXdnZEdkMFUyVndZWEpoZEc5eVB6b2djM1J5YVc1bkxDQjBaM1JIWVhCVGVXMWliMncvT2lCemRISnBibWNwT2lCRVJ5NURiMngxYlc0Z2UxeHVJQ0FnSUM4dklGUm9hWE1nWm5WdVkzUnBiMjRnYlhWemRDQnViM1FnWTI5dWRHRnBiaUJqWVd4c2N5QnZaaUJwYzBSdVlTZ3BJR0Z1WkNCcGMxSnVZU2dwTENCbWIzSmNiaUFnSUNBdkx5QnpiM1Z5WTJVZ2FHVnNiU0JqYjJ4MWJXNXpJRzFoZVNCamIyNTBZV2x1SUZKT1FTd2dSRTVCSUdGdVpDQlFWQ0JoWTNKdmMzTWdaR2xtWm1WeVpXNTBJSEp2ZDNOY2JpQWdJQ0JwWmlBb0lYUm5kRWRoY0ZONWJXSnZiQ2tnZTF4dUlDQWdJQ0FnZEdkMFIyRndVM2x0WW05c0lEMGdLSFJvYVhNdWRHOUdZWE4wWVNoMFozUk9iM1JoZEdsdmJpQmhjeUJPVDFSQlZFbFBUaWtwSUQ5Y2JpQWdJQ0FnSUNBZ1ZXNXBkSE5JWVc1a2JHVnlMbDlrWldaaGRXeDBSMkZ3VTNsdFltOXNjMFJwWTNRdVJrRlRWRUVnT2x4dUlDQWdJQ0FnSUNCVmJtbDBjMGhoYm1Sc1pYSXVYMlJsWm1GMWJIUkhZWEJUZVcxaWIyeHpSR2xqZEM1VFJWQkJVa0ZVVDFJN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tDRjBaM1JUWlhCaGNtRjBiM0lwSUh0Y2JpQWdJQ0FnSUhSbmRGTmxjR0Z5WVhSdmNpQTlJQ2gwYUdsekxuUnZSbUZ6ZEdFb2RHZDBUbTkwWVhScGIyNGdZWE1nVGs5VVFWUkpUMDRwS1NBL0lDY25JRG9nZEdocGN5NXpaWEJoY21GMGIzSTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnYUdWc2JWZHlZWEJ3WlhKelVtVWdQU0F2S0ZKY1hDaDhSRnhjS0h4Y1hDbDhVQ2t2Wnp0Y2JpQWdJQ0JqYjI1emRDQnVaWGREYjJ4MWJXNGdQU0IwYUdsekxtZGxkRTVsZDBOdmJIVnRiaWgwWjNST2IzUmhkR2x2YmlCaGN5Qk9UMVJCVkVsUFRpazdYRzRnSUNBZ0x5OGdZWE56YVdkdUlIUm9aU0IyWVd4MVpYTWdkRzhnZEdobElHVnRjSFI1SUdOdmJIVnRibHh1SUNBZ0lHNWxkME52YkhWdGJpNXBibWwwS0NocFpIZzZJRzUxYldKbGNpa2dQVDRnZTF4dUlDQWdJQ0FnWTI5dWMzUWdhR1ZzYlZCdmJIbHRaWElnUFNCMGFHbHpMbU52YkhWdGJpNW5aWFFvYVdSNEtUdGNibHh1SUNBZ0lDQWdMeThnZDJVZ1kyRnVibTkwSUhWelpTQnBjMFJ1WVNncElHOXlJR2x6VW01aEtDa2dZbVZqWVhWelpTQnpiM1Z5WTJVZ2FHVnNiU0JqYjJ4MWJXNXpJR05oYmx4dUlDQWdJQ0FnTHk4Z1kyOXVkR0ZwYmlCRVRrRXNJRkpPUVNCaGJtUWdVRlFnYVc0Z1pHbG1abVZ5Wlc1MElHTmxiR3h6TENCemJ5QjBhR1VnWTI5eWNtVnpjRzl1WkdsdVoxeHVJQ0FnSUNBZ0x5OGdkR0ZuY3lCallXNXViM1FnWW1VZ2MyVjBJR1p2Y2lCMGFHVWdkMmh2YkdVZ1kyOXNkVzF1WEc0Z0lDQWdJQ0JqYjI1emRDQnBjMDUxWTJ4bGIzUnBaR1VnUFNCb1pXeHRVRzlzZVcxbGNpNXpkR0Z5ZEhOWGFYUm9LQ2RFVGtFbktTQjhmQ0JvWld4dFVHOXNlVzFsY2k1emRHRnlkSE5YYVhSb0tDZFNUa0VuS1R0Y2JseHVJQ0FnSUNBZ0x5OGdhWFJsYlhNZ1kyRnVJR0psSUcxdmJtOXRaWEp6SUc5eUlHaGxiRzF6WEc0Z0lDQWdJQ0JqYjI1emRDQm9aV3h0U1hSbGJYTkJjbkpoZVNBOUlIUm9hWE11YzNCc2FYUjBaWElvYUdWc2JWQnZiSGx0WlhJcE8xeHVJQ0FnSUNBZ1kyOXVjM1FnZEdkMFRXOXViMjFsY25OQmNuSmhlVG9nYzNSeWFXNW5XMTBnUFNCYlhUdGNiaUFnSUNBZ0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2dhR1ZzYlVsMFpXMXpRWEp5WVhrdWJHVnVaM1JvT3lCcEt5c3BJSHRjYmlBZ0lDQWdJQ0FnYkdWMElHbDBaVzBnUFNCb1pXeHRTWFJsYlhOQmNuSmhlVnRwWFR0Y2JpQWdJQ0FnSUNBZ2FXWWdLR2x6VG5WamJHVnZkR2xrWlNsY2JpQWdJQ0FnSUNBZ0lDQnBkR1Z0SUQwZ2FYUmxiUzV5WlhCc1lXTmxLR2hsYkcxWGNtRndjR1Z5YzFKbExDQW5KeWs3WEc0Z0lDQWdJQ0FnSUdsbUlDaHBkR1Z0SUQwOVBTQlZibWwwYzBoaGJtUnNaWEl1WDJSbFptRjFiSFJIWVhCVGVXMWliMnh6UkdsamRDNUlSVXhOS1NCN1hHNGdJQ0FnSUNBZ0lDQWdkR2QwVFc5dWIyMWxjbk5CY25KaGVTNXdkWE5vS0hSbmRFZGhjRk41YldKdmJDRXBPMXh1SUNBZ0lDQWdJQ0I5SUdWc2MyVWdhV1lnS0hSb2FYTXVkRzlHWVhOMFlTaDBaM1JPYjNSaGRHbHZiaUJoY3lCT1QxUkJWRWxQVGlrZ0ppWWdhWFJsYlM1c1pXNW5kR2dnUGlBeEtTQjdYRzRnSUNBZ0lDQWdJQ0FnTHk4Z2RHaGxJR05oYzJVZ2IyWWdZU0J0ZFd4MGFTMWphR0Z5WVdOMFpYSWdiVzl1YjIxbGNpQmpiMjUyWlhKMFpXUWdkRzhnUmtGVFZFRmNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQnRiMjV2YldWeUlEMGdKMXNuSUNzZ2FYUmxiU0FySUNkZEp6dGNiaUFnSUNBZ0lDQWdJQ0IwWjNSTmIyNXZiV1Z5YzBGeWNtRjVMbkIxYzJnb2JXOXViMjFsY2lrN1hHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdkR2QwVFc5dWIyMWxjbk5CY25KaGVTNXdkWE5vS0dsMFpXMHBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkR2QwVFc5dWIyMWxjbk5CY25KaGVTNXFiMmx1S0hSbmRGTmxjR0Z5WVhSdmNpazdYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQXZMeUJVUVVkVExtRnNhV2R1WldRZ2FYTWdiV0Z1WkdGMGIzSjVJR1p2Y2lCamIyeDFiVzV6SUc5bUlFNVBWRUZVU1U5T0xrWkJVMVJCSUdGdVpDQk9UMVJCVkVsUFRpNVRSVkJCVWtGVVQxSmNiaUFnSUNCamIyNXpkQ0J6Y0d4cGRIUmxjam9nVTNCc2FYUjBaWEpHZFc1aklEMGdaMlYwVTNCc2FYUjBaWEpHYjNKRGIyeDFiVzRvYm1WM1EyOXNkVzF1S1R0Y2JpQWdJQ0JqYjI1emRDQnpkR0YwY3pvZ1UyVnhRMjlzVTNSaGRITWdQU0JuWlhSVGRHRjBjeWh1WlhkRGIyeDFiVzRzSURVc0lITndiR2wwZEdWeUtUdGNiaUFnSUNCamIyNXpkQ0JoYkdsbmJtVmtJRDBnYzNSaGRITXVjMkZ0WlV4bGJtZDBhQ0EvSUNkVFJWRXVUVk5CSnlBNklDZFRSVkVuTzF4dUlDQWdJRzVsZDBOdmJIVnRiaTV6WlhSVVlXY29WRUZIVXk1aGJHbG5ibVZrTENCaGJHbG5ibVZrS1R0Y2JseHVJQ0FnSUhKbGRIVnliaUJ1WlhkRGIyeDFiVzQ3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdOdmJuWmxjblJJWld4dFZHOVRaWEJoY21GMGIzSW9LVG9nUkVjdVEyOXNkVzF1SUh0Y2JpQWdJQ0F2THlCVVQwUlBPaUJwYlhCc1pXMWxiblJoZEdsdmNtVjBkWEp1SUhSb2FYTXVaMlYwVG1WM1EyOXNkVzF1S0NrN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVoyVjBUbVYzUTI5c2RXMXVLRTVQVkVGVVNVOU9MbE5GVUVGU1FWUlBVaWs3WEc0Z0lIMWNibHh1SUNBdktpb2dSR2x6Y0dGMFkyaGxjaUJ0WlhSb2IyUWdabTl5SUc1dmRHRjBhVzl1SUdOdmJuWmxjbk5wYjI1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElIdE9UMVJCVkVsUFRuMGdkR2QwVG05MFlYUnBiMjRnSUNCT2IzUmhkR2x2YmlCM1pTQjNZVzUwSUhSdklHTnZiblpsY25RZ2RHOWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWNnZkNCdWRXeHNmU0IwWjNSVFpYQmhjbUYwYjNJZ0lDQlFiM056YVdKc1pTQnpaWEJoY21GMGIzSmNiaUFnSUNvZ1FISmxkSFZ5YmlCN1JFY3VRMjlzZFcxdWZTQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCRGIyNTJaWEowWldRZ1kyOXNkVzF1WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nWTI5dWRtVnlkQ2gwWjNST2IzUmhkR2x2YmpvZ1RrOVVRVlJKVDA0c0lIUm5kRk5sY0dGeVlYUnZjam9nYzNSeWFXNW5JSHdnYm5Wc2JDQTlJRzUxYkd3cE9pQkVSeTVEYjJ4MWJXNGdlMXh1SUNBZ0lDOHZJSEJ2YzNOcFlteGxJR1Y0WTJWd2RHbHZibk5jYmlBZ0lDQnBaaUFvZEdocGN5NXViM1JoZEdsdmJpQTlQVDBnZEdkMFRtOTBZWFJwYjI0cFhHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjNSbmRDQnViM1JoZEdsdmJpQnBjeUJwYm5aaGJHbGtKeWs3WEc0Z0lDQWdhV1lnS0hSb2FYTXVkRzlUWlhCaGNtRjBiM0lvZEdkMFRtOTBZWFJwYjI0cElDWW1JSFJuZEZObGNHRnlZWFJ2Y2lBOVBUMGdiblZzYkNsY2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWduZEdkMElITmxjR0Z5WVhSdmNpQnBjeUJ1YjNRZ2MzQmxZMmxtYVdWa0p5azdYRzVjYmlBZ0lDQnBaaUFvZEdocGN5NXBjMFpoYzNSaEtDa2dKaVlnZEdocGN5NTBiMU5sY0dGeVlYUnZjaWgwWjNST2IzUmhkR2x2YmlrZ0ppWWdkR2QwVTJWd1lYSmhkRzl5SUNFOVBTQnVkV3hzS1Z4dUlDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVkyOXVkbVZ5ZEVaaGMzUmhWRzlUWlhCaGNtRjBiM0lvZEdkMFUyVndZWEpoZEc5eUtUdGNiaUFnSUNCbGJITmxJR2xtSUNnb2RHaHBjeTVwYzBaaGMzUmhLQ2tnZkh3Z2RHaHBjeTVwYzFObGNHRnlZWFJ2Y2lncEtTQW1KaUIwYUdsekxuUnZTR1ZzYlNoMFozUk9iM1JoZEdsdmJpa3BYRzRnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVqYjI1MlpYSjBWRzlJWld4dEtDazdYRzRnSUNBZ1pXeHpaU0JwWmlBb2RHaHBjeTVwYzFObGNHRnlZWFJ2Y2lncElDWW1JSFJvYVhNdWRHOUdZWE4wWVNoMFozUk9iM1JoZEdsdmJpa3BYRzRnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVqYjI1MlpYSjBVMlZ3WVhKaGRHOXlWRzlHWVhOMFlTZ3BPMXh1SUNBZ0lHVnNjMlVnYVdZZ0tIUm9hWE11YVhOSVpXeHRLQ2tnSmlZZ2RHaHBjeTUwYjBaaGMzUmhLSFJuZEU1dmRHRjBhVzl1S1NrZ0x5OGdkR2hsSUdOaGMyVWdiMllnU0VWTVRWeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVZMjl1ZG1WeWRFaGxiRzBvZEdkMFRtOTBZWFJwYjI0cE8xeHVJQ0FnSUdWc2MyVWdhV1lnS0hSb2FYTXVhWE5JWld4dEtDa2dKaVlnZEdocGN5NTBiMU5sY0dGeVlYUnZjaWgwWjNST2IzUmhkR2x2YmlrcFhHNGdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NWpiMjUyWlhKMFNHVnNiU2gwWjNST2IzUmhkR2x2Yml3Z2RHZDBVMlZ3WVhKaGRHOXlJU2s3WEc0Z0lDQWdaV3h6WlZ4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLQ2RPYjNRZ2MzVndjRzl5ZEdWa0lHTnZiblpsY25OcGIyNGdKeUFyWEc0Z0lDQWdJQ0FnSUdCbWNtOXRJSE52ZFhKalpTQnViM1JoZEdsdmJpQW5KSHQwYUdsekxtNXZkR0YwYVc5dWZTY2dkRzhnZEdGeVoyVjBJRzV2ZEdGMGFXOXVJQ2NrZTNSbmRFNXZkR0YwYVc5dWZTY3VZQ2s3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWTI5dWMzUnlkV04wYjNJb1kyOXNPaUJFUnk1RGIyeDFiVzRwSUh0Y2JpQWdJQ0J6ZFhCbGNpaGpiMndwTzF4dUlDQjlYRzU5WEc0aVhYMD0iLCJpbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHsgZGV0ZWN0QWxwaGFiZXQsIGdldFNwbGl0dGVyRm9yQ29sdW1uLCBnZXRTdGF0cywgc3BsaXR0ZXJBc0Zhc3RhIH0gZnJvbSAnLi9tYWNyb21vbGVjdWxlJztcbi8qKiBDbGFzcyBmb3IgaGFuZGxpbmcgbm90YXRpb24gdW5pdHMgaW4gTWFjcm9tb2xlY3VsZSBjb2x1bW5zICovXG5leHBvcnQgY2xhc3MgVW5pdHNIYW5kbGVyIHtcbiAgICBzdGF0aWMgc2V0VW5pdHNUb0Zhc3RhQ29sdW1uKGNvbCkge1xuICAgICAgICBpZiAoY29sLnNlbVR5cGUgIT09IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRmFzdGEgY29sdW1uIG11c3QgYmUgTUFDUk9NT0xFQ1VMRScpO1xuICAgICAgICBjb25zdCBzdGF0cyA9IGdldFN0YXRzKGNvbCwgNSwgc3BsaXR0ZXJBc0Zhc3RhKTtcbiAgICAgICAgY29uc3QgYWxpZ25lZCA9IHN0YXRzLnNhbWVMZW5ndGggPyAnU0VRLk1TQScgOiAnU0VRJztcbiAgICAgICAgY29uc3QgYWxwaGFiZXQgPSBkZXRlY3RBbHBoYWJldChzdGF0cyk7XG4gICAgICAgIGNvbC5zZXRUYWcoREcuVEFHUy5VTklUUywgXCJmYXN0YVwiIC8qIE5PVEFUSU9OLkZBU1RBICovKTtcbiAgICAgICAgY29sLnNldFRhZyhcImFsaWduZWRcIiAvKiBUQUdTLmFsaWduZWQgKi8sIGFsaWduZWQpO1xuICAgICAgICBjb2wuc2V0VGFnKFwiYWxwaGFiZXRcIiAvKiBUQUdTLmFscGhhYmV0ICovLCBhbHBoYWJldCk7XG4gICAgfVxuICAgIGdldCB1bml0cygpIHsgcmV0dXJuIHRoaXMuX3VuaXRzOyB9XG4gICAgZ2V0IGNvbHVtbigpIHsgcmV0dXJuIHRoaXMuX2NvbHVtbjsgfVxuICAgIGdldCBub3RhdGlvbigpIHsgcmV0dXJuIHRoaXMuX25vdGF0aW9uOyB9XG4gICAgZ2V0IGRlZmF1bHRHYXBTeW1ib2woKSB7IHJldHVybiB0aGlzLl9kZWZhdWx0R2FwU3ltYm9sOyB9XG4gICAgZ2V0IHNlcGFyYXRvcigpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBzZXBhcmF0b3IgPSAoX2EgPSB0aGlzLmNvbHVtbi5nZXRUYWcoXCJzZXBhcmF0b3JcIiAvKiBUQUdTLnNlcGFyYXRvciAqLykpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHRoaXMubm90YXRpb24gPT09IFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovICYmIHNlcGFyYXRvciA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTZXBhcmF0b3IgaXMgbWFuZGF0b3J5ICBmb3IgY29sdW1uICcke3RoaXMuY29sdW1uLm5hbWV9JyBvZiBub3RhdGlvbiAnJHt0aGlzLm5vdGF0aW9ufScuYCk7XG4gICAgICAgIHJldHVybiBzZXBhcmF0b3I7XG4gICAgfVxuICAgIGdldCBhbGlnbmVkKCkge1xuICAgICAgICBjb25zdCBhbGlnbmVkID0gdGhpcy5jb2x1bW4uZ2V0VGFnKFwiYWxpZ25lZFwiIC8qIFRBR1MuYWxpZ25lZCAqLyk7XG4gICAgICAgIC8vIFRBR1MuYWxpZ25lZCBpcyBtYW5kYXRvcnkgZm9yIGNvbHVtbnMgb2YgTk9UQVRJT04uRkFTVEEgYW5kIE5PVEFUSU9OLlNFUEFSQVRPUlxuICAgICAgICBpZiAoIWFsaWduZWQgJiYgKHRoaXMuaXNGYXN0YSgpIHx8IHRoaXMuaXNTZXBhcmF0b3IoKSkpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RhZyBhbGlnbmVkIG5vdCBzZXQnKTtcbiAgICAgICAgcmV0dXJuIGFsaWduZWQ7XG4gICAgfVxuICAgIC8qKiBBbHBoYWJldCBuYW1lICh1cHBlciBjYXNlKSAqL1xuICAgIGdldCBhbHBoYWJldCgpIHtcbiAgICAgICAgY29uc3QgYWxwaGFiZXQgPSB0aGlzLmNvbHVtbi5nZXRUYWcoXCJhbHBoYWJldFwiIC8qIFRBR1MuYWxwaGFiZXQgKi8pO1xuICAgICAgICAvLyBUQUdTLmFscGhhYmV0IGlzIG1hbmRhdG9yeSBmb3IgY29sdW1ucyBvZiBOT1RBVElPTi5GQVNUQSBhbmQgTk9UQVRJT04uU0VQQVJBVE9SXG4gICAgICAgIGlmICghYWxwaGFiZXQgJiYgKHRoaXMuaXNGYXN0YSgpIHx8IHRoaXMuaXNTZXBhcmF0b3IoKSkpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RhZyBhbHBoYWJldCBub3Qgc2V0Jyk7XG4gICAgICAgIHJldHVybiBhbHBoYWJldDtcbiAgICB9XG4gICAgZ2V0QWxwaGFiZXRTaXplKCkge1xuICAgICAgICBpZiAodGhpcy5ub3RhdGlvbiA9PSBcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovIHx8IHRoaXMuYWxwaGFiZXQgPT0gXCJVTlwiIC8qIEFMUEhBQkVULlVOICovKSB7XG4gICAgICAgICAgICBjb25zdCBhbHBoYWJldFNpemVTdHIgPSB0aGlzLmNvbHVtbi5nZXRUYWcoXCIuYWxwaGFiZXRTaXplXCIgLyogVEFHUy5hbHBoYWJldFNpemUgKi8pO1xuICAgICAgICAgICAgbGV0IGFscGhhYmV0U2l6ZTtcbiAgICAgICAgICAgIGlmIChhbHBoYWJldFNpemVTdHIpIHtcbiAgICAgICAgICAgICAgICBhbHBoYWJldFNpemUgPSBwYXJzZUludChhbHBoYWJldFNpemVTdHIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gY2FsY3VsYXRlIGFscGhhYmV0U2l6ZSBvbiBkZW1hbmRcbiAgICAgICAgICAgICAgICBjb25zdCBzcGxpdHRlciA9IGdldFNwbGl0dGVyRm9yQ29sdW1uKHRoaXMuY29sdW1uKTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGF0cyA9IGdldFN0YXRzKHRoaXMuY29sdW1uLCAxLCBzcGxpdHRlcik7XG4gICAgICAgICAgICAgICAgYWxwaGFiZXRTaXplID0gT2JqZWN0LmtleXMoc3RhdHMuZnJlcSkubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGFscGhhYmV0U2l6ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5hbHBoYWJldCkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJQVFwiIC8qIEFMUEhBQkVULlBUICovOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMjA7XG4gICAgICAgICAgICAgICAgY2FzZSBcIkROQVwiIC8qIEFMUEhBQkVULkROQSAqLzpcbiAgICAgICAgICAgICAgICBjYXNlIFwiUk5BXCIgLyogQUxQSEFCRVQuUk5BICovOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gNDtcbiAgICAgICAgICAgICAgICBjYXNlICdOVCc6XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVW5leHBlY3RlZCBhbHBoYWJldCAnTlQnLmApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gNDtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgYWxwaGFiZXQgJyR7dGhpcy5hbHBoYWJldH0nLmApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGdldEFscGhhYmV0SXNNdWx0aWNoYXIoKSB7XG4gICAgICAgIGlmICh0aGlzLm5vdGF0aW9uID09IFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi8gfHwgdGhpcy5hbHBoYWJldCA9PSBcIlVOXCIgLyogQUxQSEFCRVQuVU4gKi8pXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW4uZ2V0VGFnKFwiLmFscGhhYmV0SXNNdWx0aWNoYXJcIiAvKiBUQUdTLmFscGhhYmV0SXNNdWx0aWNoYXIgKi8pID09ICd0cnVlJztcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpc0Zhc3RhKCkgeyByZXR1cm4gdGhpcy5ub3RhdGlvbiA9PT0gXCJmYXN0YVwiIC8qIE5PVEFUSU9OLkZBU1RBICovOyB9XG4gICAgaXNTZXBhcmF0b3IoKSB7IHJldHVybiB0aGlzLm5vdGF0aW9uID09PSBcInNlcGFyYXRvclwiIC8qIE5PVEFUSU9OLlNFUEFSQVRPUiAqLzsgfVxuICAgIGlzSGVsbSgpIHsgcmV0dXJuIHRoaXMubm90YXRpb24gPT09IFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi87IH1cbiAgICBpc1JuYSgpIHsgcmV0dXJuIHRoaXMuYWxwaGFiZXQgPT09IFwiUk5BXCIgLyogQUxQSEFCRVQuUk5BICovOyB9XG4gICAgaXNEbmEoKSB7IHJldHVybiB0aGlzLmFscGhhYmV0ID09PSBcIkROQVwiIC8qIEFMUEhBQkVULkROQSAqLzsgfVxuICAgIGlzUGVwdGlkZSgpIHsgcmV0dXJuIHRoaXMuYWxwaGFiZXQgPT09IFwiUFRcIiAvKiBBTFBIQUJFVC5QVCAqLzsgfVxuICAgIGlzTXNhKCkgeyByZXR1cm4gdGhpcy5hbGlnbmVkID8gdGhpcy5hbGlnbmVkLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoJ01TQScpIDogZmFsc2U7IH1cbiAgICAvKiogQXNzb2NpYXRlIG5vdGF0aW9uIHR5cGVzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgdW5pdHMgKi9cbiAgICAvKipcbiAgICAgKiBAcmV0dXJuIHtOT1RBVElPTn0gICAgIE5vdGF0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgdW5pdHMgdHlwZVxuICAgICAqL1xuICAgIGdldE5vdGF0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy51bml0cy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJmYXN0YVwiIC8qIE5PVEFUSU9OLkZBU1RBICovKSlcbiAgICAgICAgICAgIHJldHVybiBcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi87XG4gICAgICAgIGVsc2UgaWYgKHRoaXMudW5pdHMudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovKSlcbiAgICAgICAgICAgIHJldHVybiBcInNlcGFyYXRvclwiIC8qIE5PVEFUSU9OLlNFUEFSQVRPUiAqLztcbiAgICAgICAgZWxzZSBpZiAodGhpcy51bml0cy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJoZWxtXCIgLyogTk9UQVRJT04uSEVMTSAqLykpXG4gICAgICAgICAgICByZXR1cm4gXCJoZWxtXCIgLyogTk9UQVRJT04uSEVMTSAqLztcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb2x1bW4gJyR7dGhpcy5jb2x1bW4ubmFtZX0nIGhhcyB1bmV4cGVjdGVkIG5vdGF0aW9uICcke3RoaXMudW5pdHN9Jy5gKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgbmV3IGVtcHR5IGNvbHVtbiBvZiB0aGUgc3BlY2lmaWVkIG5vdGF0aW9uIHR5cGUgYW5kIHRoZSBzYW1lXG4gICAgICogbGVuZ3RoIGFzIGNvbHVtblxuICAgICAqXG4gICAgICogQHBhcmFtIHtOT1RBVElPTn0gdGFyZ2V0Tm90YXRpb25cbiAgICAgKiBAcmV0dXJuIHtERy5Db2x1bW59XG4gICAgICovXG4gICAgZ2V0TmV3Q29sdW1uKHRhcmdldE5vdGF0aW9uKSB7XG4gICAgICAgIGNvbnN0IGNvbCA9IHRoaXMuY29sdW1uO1xuICAgICAgICBjb25zdCBsZW4gPSBjb2wubGVuZ3RoO1xuICAgICAgICBjb25zdCBuYW1lID0gdGFyZ2V0Tm90YXRpb24udG9Mb3dlckNhc2UoKSArICcoJyArIGNvbC5uYW1lICsgJyknO1xuICAgICAgICBjb25zdCBuZXdDb2xOYW1lID0gY29sLmRhdGFGcmFtZS5jb2x1bW5zLmdldFVudXNlZE5hbWUobmFtZSk7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbiA9IERHLkNvbHVtbi5mcm9tTGlzdCgnc3RyaW5nJywgbmV3Q29sTmFtZSwgbmV3IEFycmF5KGxlbikuZmlsbCgnJykpO1xuICAgICAgICBuZXdDb2x1bW4uc2VtVHlwZSA9IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRTtcbiAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhERy5UQUdTLlVOSVRTLCB0YXJnZXROb3RhdGlvbik7XG4gICAgICAgIG5ld0NvbHVtbi5zZXRUYWcoREcuVEFHUy5DRUxMX1JFTkRFUkVSLCAnTWFjcm9tb2xlY3VsZScpO1xuICAgICAgICBjb25zdCBzcmNBbGlnbmVkID0gY29sLmdldFRhZyhcImFsaWduZWRcIiAvKiBUQUdTLmFsaWduZWQgKi8pO1xuICAgICAgICBpZiAoc3JjQWxpZ25lZClcbiAgICAgICAgICAgIG5ld0NvbHVtbi5zZXRUYWcoXCJhbGlnbmVkXCIgLyogVEFHUy5hbGlnbmVkICovLCBzcmNBbGlnbmVkKTtcbiAgICAgICAgY29uc3Qgc3JjQWxwaGFiZXQgPSBjb2wuZ2V0VGFnKFwiYWxwaGFiZXRcIiAvKiBUQUdTLmFscGhhYmV0ICovKTtcbiAgICAgICAgaWYgKHNyY0FscGhhYmV0KVxuICAgICAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhcImFscGhhYmV0XCIgLyogVEFHUy5hbHBoYWJldCAqLywgc3JjQWxwaGFiZXQpO1xuICAgICAgICBsZXQgc3JjQWxwaGFiZXRTaXplID0gY29sLmdldFRhZyhcIi5hbHBoYWJldFNpemVcIiAvKiBUQUdTLmFscGhhYmV0U2l6ZSAqLyk7XG4gICAgICAgIGlmIChzcmNBbHBoYWJldFNpemUpXG4gICAgICAgICAgICBuZXdDb2x1bW4uc2V0VGFnKFwiLmFscGhhYmV0U2l6ZVwiIC8qIFRBR1MuYWxwaGFiZXRTaXplICovLCBzcmNBbHBoYWJldFNpemUpO1xuICAgICAgICBjb25zdCBzcmNBbHBoYWJldElzTXVsdGljaGFyID0gY29sLmdldFRhZyhcIi5hbHBoYWJldElzTXVsdGljaGFyXCIgLyogVEFHUy5hbHBoYWJldElzTXVsdGljaGFyICovKTtcbiAgICAgICAgaWYgKHNyY0FscGhhYmV0SXNNdWx0aWNoYXIgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIG5ld0NvbHVtbi5zZXRUYWcoXCIuYWxwaGFiZXRJc011bHRpY2hhclwiIC8qIFRBR1MuYWxwaGFiZXRJc011bHRpY2hhciAqLywgc3JjQWxwaGFiZXRJc011bHRpY2hhcik7XG4gICAgICAgIGlmICh0YXJnZXROb3RhdGlvbiA9PSBcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovKSB7XG4gICAgICAgICAgICBzcmNBbHBoYWJldFNpemUgPSB0aGlzLmdldEFscGhhYmV0U2l6ZSgpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICBuZXdDb2x1bW4uc2V0VGFnKFwiLmFscGhhYmV0U2l6ZVwiIC8qIFRBR1MuYWxwaGFiZXRTaXplICovLCBzcmNBbHBoYWJldFNpemUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXdDb2x1bW47XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIG5ldyBlbXB0eSBjb2x1bW4gdXNpbmcgdGVtcGxhdGVDb2wgYXMgYSB0ZW1wbGF0ZVxuICAgICAqXG4gICAgICogQHBhcmFtIHtERy5Db2x1bW59IHRlbXBsYXRlQ29sICB0aGUgcHJvcGVydGllcyBhbmQgdW5pdHMgb2YgdGhpcyBjb2x1bW4gYXJlIHVzZWQgYXMgYVxuICAgICAqIHRlbXBsYXRlIHRvIGJ1aWxkIHRoZSBuZXcgb25lXG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufVxuICAgICAqL1xuICAgIHN0YXRpYyBnZXROZXdDb2x1bW4odGVtcGxhdGVDb2wpIHtcbiAgICAgICAgY29uc3QgY29sID0gbmV3IFVuaXRzSGFuZGxlcih0ZW1wbGF0ZUNvbCk7XG4gICAgICAgIGNvbnN0IHRhcmdldE5vdGF0aW9uID0gY29sLm5vdGF0aW9uO1xuICAgICAgICByZXR1cm4gY29sLmdldE5ld0NvbHVtbih0YXJnZXROb3RhdGlvbik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEEgaGVscGVyIGZ1bmN0aW9uIGNoZWNraW5nIHRoZSB2YWxpZGl0eSBvZiB0aGUgJ3VuaXRzJyBzdHJpbmdcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0cyAgdGhlIHN0cmluZyB0byBiZSB2YWxpZGF0ZWRcbiAgICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgICAqL1xuICAgIHN0YXRpYyB1bml0c1N0cmluZ0lzVmFsaWQodW5pdHMpIHtcbiAgICAgICAgdW5pdHMgPSB1bml0cy50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBwcmVmaXhlcyA9IFtcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi8sIFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovLCBcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovXTtcbiAgICAgICAgY29uc3QgcG9zdGZpeGVzID0gWydybmEnLCAnZG5hJywgJ3B0J107XG4gICAgICAgIGNvbnN0IHByZWZpeENyaXRlcmlvbiA9IHByZWZpeGVzLnNvbWUoKHApID0+IHVuaXRzLnN0YXJ0c1dpdGgocC50b0xvd2VyQ2FzZSgpKSk7XG4gICAgICAgIHJldHVybiBwcmVmaXhDcml0ZXJpb247XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdCBhIG5ldyBjb2x1bW4gb2Ygc2VtYW50aWMgdHlwZSBNQUNST01PTEVDVUxFIGZyb20gdGhlIGxpc3Qgb2ZcbiAgICAgKiBzcGVjaWZpZWQgcGFyYW1ldGVyc1xuICAgICAqXG4gICAgICogQHBhcmFtIHtudW1iZXJ9ICAgIGxlbiAgdGhlIGxlbmd0aCBvZiB0aGUgbmV3IGNvbHVtblxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSAgICBuYW1lICB0aGUgbmFtZSBvZiB0aGUgbmV3IGNvbHVtblxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSAgICB1bml0cyAgdGhlIHVuaXRzIG9mIHRoZSBuZXcgY29sdW1uXG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufVxuICAgICAqL1xuICAgIHN0YXRpYyBnZXROZXdDb2x1bW5Gcm9tUGFyYW1zKGxlbiwgbmFtZSwgdW5pdHMpIHtcbiAgICAgICAgLy8gV0FSTklORzogaW4gdGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBpcyBpbXBvc3NpYmxlIHRvIHZlcmlmeSB0aGUgdW5pcXVlbmVzc1xuICAgICAgICAvLyBvZiB0aGUgbmV3IGNvbHVtbidzIG5hbWVcbiAgICAgICAgLy8gVE9ETzogdmVyaWZ5IHRoZSB2YWxpZGl0eSBvZiB1bml0cyBwYXJhbWV0ZXJcbiAgICAgICAgaWYgKCFVbml0c0hhbmRsZXIudW5pdHNTdHJpbmdJc1ZhbGlkKHVuaXRzKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBmb3JtYXQgb2YgXFwndW5pdHNcXCcgcGFyYW1ldGVyJyk7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbiA9IERHLkNvbHVtbi5mcm9tTGlzdCgnc3RyaW5nJywgbmFtZSwgbmV3IEFycmF5KGxlbikuZmlsbCgnJykpO1xuICAgICAgICBuZXdDb2x1bW4uc2VtVHlwZSA9IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRTtcbiAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhERy5UQUdTLlVOSVRTLCB1bml0cyk7XG4gICAgICAgIHJldHVybiBuZXdDb2x1bW47XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKGNvbCkge1xuICAgICAgICB0aGlzLl9jb2x1bW4gPSBjb2w7XG4gICAgICAgIGNvbnN0IHVuaXRzID0gdGhpcy5fY29sdW1uLnRhZ3NbREcuVEFHUy5VTklUU107XG4gICAgICAgIGlmICh1bml0cyAhPT0gbnVsbClcbiAgICAgICAgICAgIHRoaXMuX3VuaXRzID0gdW5pdHM7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5pdHMgYXJlIG5vdCBzcGVjaWZpZWQgaW4gY29sdW1uJyk7XG4gICAgICAgIHRoaXMuX25vdGF0aW9uID0gdGhpcy5nZXROb3RhdGlvbigpO1xuICAgICAgICB0aGlzLl9kZWZhdWx0R2FwU3ltYm9sID0gKHRoaXMuaXNGYXN0YSgpKSA/IFVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LkZBU1RBIDpcbiAgICAgICAgICAgICh0aGlzLmlzSGVsbSgpKSA/IFVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LkhFTE0gOlxuICAgICAgICAgICAgICAgIFVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LlNFUEFSQVRPUjtcbiAgICAgICAgaWYgKCF0aGlzLmNvbHVtbi50YWdzLmhhcyhcImFsaWduZWRcIiAvKiBUQUdTLmFsaWduZWQgKi8pKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0Zhc3RhKCkgfHwgdGhpcy5pc1NlcGFyYXRvcigpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRm9yIGNvbHVtbiAnJHt0aGlzLmNvbHVtbi5uYW1lfScgb2Ygbm90YXRpb24gJyR7dGhpcy5ub3RhdGlvbn0nIGAgK1xuICAgICAgICAgICAgICAgICAgICBgdGFnICcke1wiYWxpZ25lZFwiIC8qIFRBR1MuYWxpZ25lZCAqL30nIGlzIG1hbmRhdG9yeS5gKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBpZiAoIXRoaXMuY29sdW1uLnRhZ3MuaGFzKFRBR1MuYWxwaGFiZXRTaXplKSkge1xuICAgICAgICAvLyAgIGlmICh0aGlzLmlzSGVsbSgpKVxuICAgICAgICAvLyAgICAgdGhyb3cgbmV3IEVycm9yKGBGb3IgY29sdW1uICcke3RoaXMuY29sdW1uLm5hbWV9JyBvZiBub3RhdGlvbiAnJHt0aGlzLm5vdGF0aW9ufScgYCArXG4gICAgICAgIC8vICAgICAgIGB0YWcgJyR7VEFHUy5hbHBoYWJldFNpemV9JyBpcyBtYW5kYXRvcnkuYCk7XG4gICAgICAgIC8vICAgZWxzZSBpZiAoWydVTiddLmluY2x1ZGVzKHRoaXMuYWxwaGFiZXQpKVxuICAgICAgICAvLyAgICAgdGhyb3cgbmV3IEVycm9yKGBGb3IgY29sdW1uICcke3RoaXMuY29sdW1uLm5hbWV9JyBvZiBhbHBoYWJldCAnJHt0aGlzLmFscGhhYmV0fScgYCArXG4gICAgICAgIC8vICAgICAgIGB0YWcgJyR7VEFHUy5hbHBoYWJldFNpemV9JyBpcyBtYW5kYXRvcnkuYCk7XG4gICAgICAgIC8vIH1cbiAgICAgICAgaWYgKCF0aGlzLmNvbHVtbi50YWdzLmhhcyhcIi5hbHBoYWJldElzTXVsdGljaGFyXCIgLyogVEFHUy5hbHBoYWJldElzTXVsdGljaGFyICovKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNIZWxtKCkpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGb3IgY29sdW1uICcke3RoaXMuY29sdW1uLm5hbWV9JyBvZiBub3RhdGlvbiAnJHt0aGlzLm5vdGF0aW9ufScgYCArXG4gICAgICAgICAgICAgICAgICAgIGB0YWcgJyR7XCIuYWxwaGFiZXRJc011bHRpY2hhclwiIC8qIFRBR1MuYWxwaGFiZXRJc011bHRpY2hhciAqL30nIGlzIG1hbmRhdG9yeS5gKTtcbiAgICAgICAgICAgIGVsc2UgaWYgKFsnVU4nXS5pbmNsdWRlcyh0aGlzLmFscGhhYmV0KSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZvciBjb2x1bW4gJyR7dGhpcy5jb2x1bW4ubmFtZX0nIG9mIGFscGhhYmV0ICcke3RoaXMuYWxwaGFiZXR9JyBgICtcbiAgICAgICAgICAgICAgICAgICAgYHRhZyAnJHtcIi5hbHBoYWJldElzTXVsdGljaGFyXCIgLyogVEFHUy5hbHBoYWJldElzTXVsdGljaGFyICovfScgaXMgbWFuZGF0b3J5LmApO1xuICAgICAgICB9XG4gICAgfVxufVxuVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QgPSB7XG4gICAgSEVMTTogJyonLFxuICAgIFNFUEFSQVRPUjogJycsXG4gICAgRkFTVEE6ICctJyxcbn07XG5Vbml0c0hhbmRsZXIuUGVwdGlkZUZhc3RhQWxwaGFiZXQgPSBuZXcgU2V0KFtcbiAgICAnRycsICdMJywgJ1knLCAnUycsICdFJywgJ1EnLCAnRCcsICdOJywgJ0YnLCAnQScsXG4gICAgJ0snLCAnUicsICdIJywgJ0MnLCAnVicsICdQJywgJ1cnLCAnSScsICdNJywgJ1QnLFxuXSk7XG5Vbml0c0hhbmRsZXIuRG5hRmFzdGFBbHBoYWJldCA9IG5ldyBTZXQoWydBJywgJ0MnLCAnRycsICdUJ10pO1xuVW5pdHNIYW5kbGVyLlJuYUZhc3RhQWxwaGFiZXQgPSBuZXcgU2V0KFsnQScsICdDJywgJ0cnLCAnVSddKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRXNXBkSE10YUdGdVpHeGxjaTVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYkluVnVhWFJ6TFdoaGJtUnNaWEl1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNUMEZCVHl4TFFVRkxMRVZCUVVVc1RVRkJUU3hwUWtGQmFVSXNRMEZCUXp0QlFVVjBReXhQUVVGUExFVkJSVXdzWTBGQll5eEZRVU5rTEc5Q1FVRnZRaXhGUVVOd1FpeFJRVUZSTEVWQlIxSXNaVUZCWlN4RlFVZG9RaXhOUVVGTkxHbENRVUZwUWl4RFFVRkRPMEZCUlhwQ0xHbEZRVUZwUlR0QlFVTnFSU3hOUVVGTkxFOUJRVThzV1VGQldUdEpRV3RDYUVJc1RVRkJUU3hEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRWRCUVdNN1VVRkRhRVFzU1VGQlNTeEhRVUZITEVOQlFVTXNUMEZCVHl4TFFVRkxMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zWVVGQllUdFpRVU14UXl4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExHOURRVUZ2UXl4RFFVRkRMRU5CUVVNN1VVRkZlRVFzVFVGQlRTeExRVUZMTEVkQlFXZENMRkZCUVZFc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eEZRVUZGTEdWQlFXVXNRMEZCUXl4RFFVRkRPMUZCUXpkRUxFMUJRVTBzVDBGQlR5eEhRVUZITEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRPMUZCUTNKRUxFMUJRVTBzVVVGQlVTeEhRVUZITEdOQlFXTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVWMlF5eEhRVUZITEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5d3JRa0ZCYVVJc1EwRkJRenRSUVVNeFF5eEhRVUZITEVOQlFVTXNUVUZCVFN3clFrRkJaU3hQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU5zUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hwUTBGQlowSXNVVUZCVVN4RFFVRkRMRU5CUVVNN1NVRkRkRU1zUTBGQlF6dEpRVVZFTEVsQlFXTXNTMEZCU3l4TFFVRmhMRTlCUVU4c1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGY2tRc1NVRkJZeXhOUVVGTkxFdEJRV2RDTEU5QlFVOHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU03U1VGRk1VUXNTVUZCVnl4UlFVRlJMRXRCUVdVc1QwRkJUeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVVXhSQ3hKUVVGWExHZENRVUZuUWl4TFFVRmhMRTlCUVU4c1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVWNFJTeEpRVUZYTEZOQlFWTTdPMUZCUTJ4Q0xFMUJRVTBzVTBGQlV5eEhRVUYxUWl4TlFVRkJMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeHJRMEZCWjBJc2JVTkJRVWtzVTBGQlV5eERRVUZETzFGQlEzUkdMRWxCUVVrc1NVRkJTU3hEUVVGRExGRkJRVkVzZVVOQlFYVkNMRWxCUVVrc1UwRkJVeXhMUVVGTExGTkJRVk03V1VGRGFrVXNUVUZCVFN4SlFVRkpMRXRCUVVzc1EwRkJReXgxUTBGQmRVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxHdENRVUZyUWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU01Unl4UFFVRlBMRk5CUVZNc1EwRkJRenRKUVVOdVFpeERRVUZETzBsQlJVUXNTVUZCVnl4UFFVRlBPMUZCUTJoQ0xFMUJRVTBzVDBGQlR5eEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3c0UWtGQll5eERRVUZETzFGQlJXcEVMR2xHUVVGcFJqdFJRVU5xUml4SlFVRkpMRU5CUVVNc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNSVUZCUlN4SlFVRkpMRWxCUVVrc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dFpRVU53UkN4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRU5CUVVNN1VVRkZla01zVDBGQlR5eFBRVUZQTEVOQlFVTTdTVUZEYWtJc1EwRkJRenRKUVVWRUxHbERRVUZwUXp0SlFVTnFReXhKUVVGWExGRkJRVkU3VVVGRGFrSXNUVUZCVFN4UlFVRlJMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEdkRFFVRmxMRU5CUVVNN1VVRkZia1FzYTBaQlFXdEdPMUZCUTJ4R0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVGRkxFbEJRVWtzU1VGQlNTeERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRPMWxCUTNKRUxFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNjMEpCUVhOQ0xFTkJRVU1zUTBGQlF6dFJRVVV4UXl4UFFVRlBMRkZCUVZFc1EwRkJRenRKUVVOc1FpeERRVUZETzBsQlJVMHNaVUZCWlR0UlFVTndRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eFJRVUZSTERoQ1FVRnBRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eFJRVUZSTERCQ1FVRmxMRVZCUVVVN1dVRkRiRVVzVFVGQlRTeGxRVUZsTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxIbERRVUZ0UWl4RFFVRkRPMWxCUXpsRUxFbEJRVWtzV1VGQmIwSXNRMEZCUXp0WlFVTjZRaXhKUVVGSkxHVkJRV1VzUlVGQlJUdG5Ra0ZEYmtJc1dVRkJXU3hIUVVGSExGRkJRVkVzUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXp0aFFVTXhRenRwUWtGQlRUdG5Ra0ZEVEN4dFEwRkJiVU03WjBKQlEyNURMRTFCUVUwc1VVRkJVU3hIUVVGcFFpeHZRa0ZCYjBJc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdaMEpCUTJwRkxFMUJRVTBzUzBGQlN5eEhRVUZITEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeFJRVUZSTEVOQlFVTXNRMEZCUXp0blFrRkRha1FzV1VGQldTeEhRVUZITEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXp0aFFVTXZRenRaUVVORUxFOUJRVThzV1VGQldTeERRVUZETzFOQlEzSkNPMkZCUVUwN1dVRkRUQ3hSUVVGUkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVTdaMEpCUTNaQ08yOUNRVU5GTEU5QlFVOHNSVUZCUlN4RFFVRkRPMmRDUVVOYUxEaENRVUZyUWp0blFrRkRiRUk3YjBKQlEwVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1owSkJRMWdzUzBGQlN5eEpRVUZKTzI5Q1FVTlFMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zTWtKQlFUSkNMRU5CUVVNc1EwRkJRenR2UWtGRE1VTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1owSkJRMWc3YjBKQlEwVXNUVUZCVFN4SlFVRkpMRXRCUVVzc1EwRkJReXgzUWtGQmQwSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1NVRkJTU3hEUVVGRExFTkJRVU03WVVGRE5VUTdVMEZEUmp0SlFVTklMRU5CUVVNN1NVRkZUU3h6UWtGQmMwSTdVVUZETTBJc1NVRkJTU3hKUVVGSkxFTkJRVU1zVVVGQlVTdzRRa0ZCYVVJc1NVRkJTU3hKUVVGSkxFTkJRVU1zVVVGQlVTd3dRa0ZCWlR0WlFVTm9SU3hQUVVGUExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4MVJFRkJNRUlzU1VGQlNTeE5RVUZOTEVOQlFVTTdPMWxCUlRsRUxFOUJRVThzUzBGQlN5eERRVUZETzBsQlEycENMRU5CUVVNN1NVRkZUU3hQUVVGUExFdEJRV01zVDBGQlR5eEpRVUZKTEVOQlFVTXNVVUZCVVN4cFEwRkJiVUlzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGTDBRc1YwRkJWeXhMUVVGakxFOUJRVThzU1VGQlNTeERRVUZETEZGQlFWRXNlVU5CUVhWQ0xFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJYWkZMRTFCUVUwc1MwRkJZeXhQUVVGUExFbEJRVWtzUTBGQlF5eFJRVUZSTEN0Q1FVRnJRaXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVUzUkN4TFFVRkxMRXRCUVdNc1QwRkJUeXhKUVVGSkxFTkJRVU1zVVVGQlVTdzJRa0ZCYVVJc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRk0wUXNTMEZCU3l4TFFVRmpMRTlCUVU4c1NVRkJTU3hEUVVGRExGRkJRVkVzTmtKQlFXbENMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJSVE5FTEZOQlFWTXNTMEZCWXl4UFFVRlBMRWxCUVVrc1EwRkJReXhSUVVGUkxESkNRVUZuUWl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVVNVJDeExRVUZMTEV0QlFXTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVZ5Unl3MFJFRkJORVE3U1VGRE5VUTdPMDlCUlVjN1NVRkRUeXhYUVVGWE8xRkJRMjVDTEVsQlFVa3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF5eFZRVUZWTERoQ1FVRm5RanRaUVVOeVJDeHZRMEZCYzBJN1lVRkRia0lzU1VGQlNTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRExGVkJRVlVzYzBOQlFXOUNPMWxCUXpsRUxEUkRRVUV3UWp0aFFVTjJRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNc1ZVRkJWU3cwUWtGQlpUdFpRVU42UkN4clEwRkJjVUk3TzFsQlJYSkNMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zVjBGQlZ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc09FSkJRVGhDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRemRHTEVOQlFVTTdTVUZGUkRzN096czdPMDlCVFVjN1NVRkRUeXhaUVVGWkxFTkJRVU1zWTBGQmQwSTdVVUZETjBNc1RVRkJUU3hIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXp0UlFVTjRRaXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEhRVUZITEVOQlFVTXNUVUZCVFN4RFFVRkRPMUZCUTNaQ0xFMUJRVTBzU1VGQlNTeEhRVUZITEdOQlFXTXNRMEZCUXl4WFFVRlhMRVZCUVVVc1IwRkJSeXhIUVVGSExFZEJRVWNzUjBGQlJ5eERRVUZETEVsQlFVa3NSMEZCUnl4SFFVRkhMRU5CUVVNN1VVRkRha1VzVFVGQlRTeFZRVUZWTEVkQlFVY3NSMEZCUnl4RFFVRkRMRk5CUVZNc1EwRkJReXhQUVVGUExFTkJRVU1zWVVGQllTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUXpkRUxFMUJRVTBzVTBGQlV5eEhRVUZITEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1VVRkJVU3hEUVVGRExGRkJRVkVzUlVGQlJTeFZRVUZWTEVWQlFVVXNTVUZCU1N4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRjRVlzVTBGQlV5eERRVUZETEU5QlFVOHNSMEZCUnl4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExHRkJRV0VzUTBGQlF6dFJRVU0zUXl4VFFVRlRMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVRkZMR05CUVdNc1EwRkJReXhEUVVGRE8xRkJRMmhFTEZOQlFWTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eGhRVUZoTEVWQlFVVXNaVUZCWlN4RFFVRkRMRU5CUVVNN1VVRkZla1FzVFVGQlRTeFZRVUZWTEVkQlFVY3NSMEZCUnl4RFFVRkRMRTFCUVUwc09FSkJRV01zUTBGQlF6dFJRVU0xUXl4SlFVRkpMRlZCUVZVN1dVRkRXaXhUUVVGVExFTkJRVU1zVFVGQlRTd3JRa0ZCWlN4VlFVRlZMRU5CUVVNc1EwRkJRenRSUVVVM1F5eE5RVUZOTEZkQlFWY3NSMEZCUnl4SFFVRkhMRU5CUVVNc1RVRkJUU3huUTBGQlpTeERRVUZETzFGQlF6bERMRWxCUVVrc1YwRkJWenRaUVVOaUxGTkJRVk1zUTBGQlF5eE5RVUZOTEdsRFFVRm5RaXhYUVVGWExFTkJRVU1zUTBGQlF6dFJRVVV2UXl4SlFVRkpMR1ZCUVdVc1IwRkJWeXhIUVVGSExFTkJRVU1zVFVGQlRTeDVRMEZCYlVJc1EwRkJRenRSUVVNMVJDeEpRVUZKTEdWQlFXVTdXVUZEYWtJc1UwRkJVeXhEUVVGRExFMUJRVTBzTUVOQlFXOUNMR1ZCUVdVc1EwRkJReXhEUVVGRE8xRkJSWFpFTEUxQlFVMHNjMEpCUVhOQ0xFZEJRVmNzUjBGQlJ5eERRVUZETEUxQlFVMHNkVVJCUVRCQ0xFTkJRVU03VVVGRE5VVXNTVUZCU1N4elFrRkJjMElzUzBGQlN5eFRRVUZUTzFsQlEzUkRMRk5CUVZNc1EwRkJReXhOUVVGTkxIZEVRVUV5UWl4elFrRkJjMElzUTBGQlF5eERRVUZETzFGQlJYSkZMRWxCUVVrc1kwRkJZeXc0UWtGQmFVSXNSVUZCUlR0WlFVTnVReXhsUVVGbExFZEJRVWNzU1VGQlNTeERRVUZETEdWQlFXVXNSVUZCUlN4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRE8xbEJRM0JFTEZOQlFWTXNRMEZCUXl4TlFVRk5MREJEUVVGdlFpeGxRVUZsTEVOQlFVTXNRMEZCUXp0VFFVTjBSRHRSUVVWRUxFOUJRVThzVTBGQlV5eERRVUZETzBsQlEyNUNMRU5CUVVNN1NVRkZSRHM3T3pzN08wOUJUVWM3U1VGRFNTeE5RVUZOTEVOQlFVTXNXVUZCV1N4RFFVRkRMRmRCUVhOQ08xRkJReTlETEUxQlFVMHNSMEZCUnl4SFFVRnBRaXhKUVVGSkxGbEJRVmtzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXp0UlFVTjRSQ3hOUVVGTkxHTkJRV01zUjBGQlJ5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRPMUZCUTNCRExFOUJRVThzUjBGQlJ5eERRVUZETEZsQlFWa3NRMEZCUXl4alFVRmpMRU5CUVVNc1EwRkJRenRKUVVNeFF5eERRVUZETzBsQlJVUTdPenM3TzA5QlMwYzdTVUZEU1N4TlFVRk5MRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNTMEZCWVR0UlFVTTFReXhMUVVGTExFZEJRVWNzUzBGQlN5eERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRPMUZCUXpWQ0xFMUJRVTBzVVVGQlVTeEhRVUZITEdkSFFVRnRSQ3hEUVVGRE8xRkJRM0pGTEUxQlFVMHNVMEZCVXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhGUVVGRkxFdEJRVXNzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVVjJReXhOUVVGTkxHVkJRV1VzUjBGQlJ5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eExRVUZMTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEYUVZc1QwRkJUeXhsUVVGbExFTkJRVU03U1VGRGVrSXNRMEZCUXp0SlFVVkVPenM3T3pzN096dFBRVkZITzBsQlEwa3NUVUZCVFN4RFFVRkRMSE5DUVVGelFpeERRVU5zUXl4SFFVRlhMRVZCUTFnc1NVRkJXU3hGUVVOYUxFdEJRV0U3VVVGRllpdzBSVUZCTkVVN1VVRkROVVVzTWtKQlFUSkNPMUZCUXpOQ0xDdERRVUVyUXp0UlFVTXZReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEd0Q1FVRnJRaXhEUVVGRExFdEJRVXNzUTBGQlF6dFpRVU42UXl4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExIVkRRVUYxUXl4RFFVRkRMRU5CUVVNN1VVRkRNMFFzVFVGQlRTeFRRVUZUTEVkQlFVY3NSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhSUVVGUkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVsQlFVa3NSVUZCUlN4SlFVRkpMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVNNVJTeFRRVUZUTEVOQlFVTXNUMEZCVHl4SFFVRkhMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zWVVGQllTeERRVUZETzFGQlF6ZERMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGRrTXNUMEZCVHl4VFFVRlRMRU5CUVVNN1NVRkRia0lzUTBGQlF6dEpRVVZFTEZsQlFXMUNMRWRCUVdNN1VVRkRMMElzU1VGQlNTeERRVUZETEU5QlFVOHNSMEZCUnl4SFFVRkhMRU5CUVVNN1VVRkRia0lzVFVGQlRTeExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVNdlF5eEpRVUZKTEV0QlFVc3NTMEZCU3l4SlFVRkpPMWxCUTJoQ0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVkQlFVY3NTMEZCU3l4RFFVRkRPenRaUVVWd1FpeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMRzFEUVVGdFF5eERRVUZETEVOQlFVTTdVVUZEZGtRc1NVRkJTU3hEUVVGRExGTkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNN1VVRkRjRU1zU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGbEJRVmtzUTBGQlF5eHpRa0ZCYzBJc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFpRVU55Uml4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4WlFVRlpMRU5CUVVNc2MwSkJRWE5DTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1owSkJRekZFTEZsQlFWa3NRMEZCUXl4elFrRkJjMElzUTBGQlF5eFRRVUZUTEVOQlFVTTdVVUZGYkVRc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc09FSkJRV01zUlVGQlJUdFpRVU4yUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhQUVVGUExFVkJRVVVzU1VGQlNTeEpRVUZKTEVOQlFVTXNWMEZCVnl4RlFVRkZPMmRDUVVOMFF5eE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMR1ZCUVdVc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEd0Q1FVRnJRaXhKUVVGSkxFTkJRVU1zVVVGQlVTeEpRVUZKTzI5Q1FVTm9SaXhSUVVGUkxEUkNRVUZaTEdsQ1FVRnBRaXhEUVVGRExFTkJRVU03VTBGRE5VTTdVVUZGUkN4clJFRkJhMFE3VVVGRGJFUXNkVUpCUVhWQ08xRkJRM1pDTERKR1FVRXlSanRSUVVNelJpeHhSRUZCY1VRN1VVRkRja1FzTmtOQlFUWkRPMUZCUXpkRExESkdRVUV5Ump0UlFVTXpSaXh4UkVGQmNVUTdVVUZEY2tRc1NVRkJTVHRSUVVWS0xFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExIVkVRVUV3UWl4RlFVRkZPMWxCUTI1RUxFbEJRVWtzU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlR0blFrRkRaaXhOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEdWQlFXVXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxHdENRVUZyUWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hKUVVGSk8yOUNRVU5vUml4UlFVRlJMSEZFUVVGM1FpeHBRa0ZCYVVJc1EwRkJReXhEUVVGRE8ybENRVU5zUkN4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNN1owSkJRM0pETEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc1pVRkJaU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NhMEpCUVd0Q0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVsQlFVazdiMEpCUTJoR0xGRkJRVkVzY1VSQlFYZENMR2xDUVVGcFFpeERRVUZETEVOQlFVTTdVMEZEZUVRN1NVRkRTQ3hEUVVGRE96dEJRV2hSZVVJc2JVTkJRWE5DTEVkQlFVYzdTVUZEYWtRc1NVRkJTU3hGUVVGRkxFZEJRVWM3U1VGRFZDeFRRVUZUTEVWQlFVVXNSVUZCUlR0SlFVTmlMRXRCUVVzc1JVRkJSU3hIUVVGSE8wTkJRMWdzUTBGQlF6dEJRVVZ4UWl4cFEwRkJiMElzUjBGQlJ5eEpRVUZKTEVkQlFVY3NRMEZCVXp0SlFVTTFSQ3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSE8wbEJRMmhFTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVYzdRMEZEYWtRc1EwRkJReXhEUVVGRE8wRkJRMjlDTERaQ1FVRm5RaXhIUVVGSExFbEJRVWtzUjBGQlJ5eERRVUZUTEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjZSQ3cyUWtGQlowSXNSMEZCUnl4SlFVRkpMRWRCUVVjc1EwRkJVeXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnS2lCaGN5QkVSeUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2Wkdjbk8xeHVYRzVwYlhCdmNuUWdlMXh1SUNCQlRGQklRVUpGVkN4Y2JpQWdaR1YwWldOMFFXeHdhR0ZpWlhRc1hHNGdJR2RsZEZOd2JHbDBkR1Z5Um05eVEyOXNkVzF1TEZ4dUlDQm5aWFJUZEdGMGN5eGNiaUFnVGs5VVFWUkpUMDRzWEc0Z0lGTmxjVU52YkZOMFlYUnpMRnh1SUNCemNHeHBkSFJsY2tGelJtRnpkR0VzWEc0Z0lGTndiR2wwZEdWeVJuVnVZeXhjYmlBZ1ZFRkhVMXh1ZlNCbWNtOXRJQ2N1TDIxaFkzSnZiVzlzWldOMWJHVW5PMXh1WEc0dktpb2dRMnhoYzNNZ1ptOXlJR2hoYm1Sc2FXNW5JRzV2ZEdGMGFXOXVJSFZ1YVhSeklHbHVJRTFoWTNKdmJXOXNaV04xYkdVZ1kyOXNkVzF1Y3lBcUwxeHVaWGh3YjNKMElHTnNZWE56SUZWdWFYUnpTR0Z1Wkd4bGNpQjdYRzRnSUhCeWIzUmxZM1JsWkNCeVpXRmtiMjVzZVNCZlkyOXNkVzF1T2lCRVJ5NURiMngxYlc0N0lDOHZJSFJvWlNCamIyeDFiVzRnZEc4Z1ltVWdZMjl1ZG1WeWRHVmtYRzRnSUhCeWIzUmxZM1JsWkNCZmRXNXBkSE02SUhOMGNtbHVaenNnTHk4Z2RXNXBkSE1zSUc5bUlIUm9aU0JtYjNKdElHWmhjM1JoTENCelpYQmhjbUYwYjNKY2JpQWdjSEp2ZEdWamRHVmtJRjl1YjNSaGRHbHZiam9nVGs5VVFWUkpUMDQ3SUM4dklHTjFjbkpsYm5RZ2JtOTBZWFJwYjI0Z0tIZHBkR2h2ZFhRZ09sTkZVVHBPVkN3Z1pYUmpMaWxjYmlBZ2NISnZkR1ZqZEdWa0lGOWtaV1poZFd4MFIyRndVM2x0WW05c09pQnpkSEpwYm1jN1hHNGdJSEJ5YjNSbFkzUmxaQ0J6ZEdGMGFXTWdjbVZoWkc5dWJIa2dYMlJsWm1GMWJIUkhZWEJUZVcxaWIyeHpSR2xqZENBOUlIdGNiaUFnSUNCSVJVeE5PaUFuS2ljc1hHNGdJQ0FnVTBWUVFWSkJWRTlTT2lBbkp5eGNiaUFnSUNCR1FWTlVRVG9nSnkwbkxGeHVJQ0I5TzF4dVhHNGdJSEIxWW14cFl5QnpkR0YwYVdNZ2NtVmhaRzl1YkhrZ1VHVndkR2xrWlVaaGMzUmhRV3h3YUdGaVpYUWdQU0J1WlhjZ1UyVjBQSE4wY21sdVp6NG9XMXh1SUNBZ0lDZEhKeXdnSjB3bkxDQW5XU2NzSUNkVEp5d2dKMFVuTENBblVTY3NJQ2RFSnl3Z0owNG5MQ0FuUmljc0lDZEJKeXhjYmlBZ0lDQW5TeWNzSUNkU0p5d2dKMGduTENBblF5Y3NJQ2RXSnl3Z0oxQW5MQ0FuVnljc0lDZEpKeXdnSjAwbkxDQW5WQ2NzWEc0Z0lGMHBPMXh1SUNCd2RXSnNhV01nYzNSaGRHbGpJSEpsWVdSdmJteDVJRVJ1WVVaaGMzUmhRV3h3YUdGaVpYUWdQU0J1WlhjZ1UyVjBQSE4wY21sdVp6NG9XeWRCSnl3Z0owTW5MQ0FuUnljc0lDZFVKMTBwTzF4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUhKbFlXUnZibXg1SUZKdVlVWmhjM1JoUVd4d2FHRmlaWFFnUFNCdVpYY2dVMlYwUEhOMGNtbHVaejRvV3lkQkp5d2dKME1uTENBblJ5Y3NJQ2RWSjEwcE8xeHVYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdjMlYwVlc1cGRITlViMFpoYzNSaFEyOXNkVzF1S0dOdmJEb2dSRWN1UTI5c2RXMXVLU0I3WEc0Z0lDQWdhV1lnS0dOdmJDNXpaVzFVZVhCbElDRTlQU0JFUnk1VFJVMVVXVkJGTGsxQlExSlBUVTlNUlVOVlRFVXBYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb0owWmhjM1JoSUdOdmJIVnRiaUJ0ZFhOMElHSmxJRTFCUTFKUFRVOU1SVU5WVEVVbktUdGNibHh1SUNBZ0lHTnZibk4wSUhOMFlYUnpPaUJUWlhGRGIyeFRkR0YwY3lBOUlHZGxkRk4wWVhSektHTnZiQ3dnTlN3Z2MzQnNhWFIwWlhKQmMwWmhjM1JoS1R0Y2JpQWdJQ0JqYjI1emRDQmhiR2xuYm1Wa0lEMGdjM1JoZEhNdWMyRnRaVXhsYm1kMGFDQS9JQ2RUUlZFdVRWTkJKeUE2SUNkVFJWRW5PMXh1SUNBZ0lHTnZibk4wSUdGc2NHaGhZbVYwSUQwZ1pHVjBaV04wUVd4d2FHRmlaWFFvYzNSaGRITXBPMXh1WEc0Z0lDQWdZMjlzTG5ObGRGUmhaeWhFUnk1VVFVZFRMbFZPU1ZSVExDQk9UMVJCVkVsUFRpNUdRVk5VUVNrN1hHNGdJQ0FnWTI5c0xuTmxkRlJoWnloVVFVZFRMbUZzYVdkdVpXUXNJR0ZzYVdkdVpXUXBPMXh1SUNBZ0lHTnZiQzV6WlhSVVlXY29WRUZIVXk1aGJIQm9ZV0psZEN3Z1lXeHdhR0ZpWlhRcE8xeHVJQ0I5WEc1Y2JpQWdjSEp2ZEdWamRHVmtJR2RsZENCMWJtbDBjeWdwT2lCemRISnBibWNnZXlCeVpYUjFjbTRnZEdocGN5NWZkVzVwZEhNN0lIMWNibHh1SUNCd2NtOTBaV04wWldRZ1oyVjBJR052YkhWdGJpZ3BPaUJFUnk1RGIyeDFiVzRnZXlCeVpYUjFjbTRnZEdocGN5NWZZMjlzZFcxdU95QjlYRzVjYmlBZ2NIVmliR2xqSUdkbGRDQnViM1JoZEdsdmJpZ3BPaUJPVDFSQlZFbFBUaUI3SUhKbGRIVnliaUIwYUdsekxsOXViM1JoZEdsdmJqc2dmVnh1WEc0Z0lIQjFZbXhwWXlCblpYUWdaR1ZtWVhWc2RFZGhjRk41YldKdmJDZ3BPaUJ6ZEhKcGJtY2dleUJ5WlhSMWNtNGdkR2hwY3k1ZlpHVm1ZWFZzZEVkaGNGTjViV0p2YkRzZ2ZWeHVYRzRnSUhCMVlteHBZeUJuWlhRZ2MyVndZWEpoZEc5eUtDazZJSE4wY21sdVp5QjhJSFZ1WkdWbWFXNWxaQ0I3WEc0Z0lDQWdZMjl1YzNRZ2MyVndZWEpoZEc5eU9pQnpkSEpwYm1jZ2ZDQjFibVJsWm1sdVpXUWdQU0IwYUdsekxtTnZiSFZ0Ymk1blpYUlVZV2NvVkVGSFV5NXpaWEJoY21GMGIzSXBJRDgvSUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0JwWmlBb2RHaHBjeTV1YjNSaGRHbHZiaUE5UFQwZ1RrOVVRVlJKVDA0dVUwVlFRVkpCVkU5U0lDWW1JSE5sY0dGeVlYUnZjaUE5UFQwZ2RXNWtaV1pwYm1Wa0tWeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0dCVFpYQmhjbUYwYjNJZ2FYTWdiV0Z1WkdGMGIzSjVJQ0JtYjNJZ1kyOXNkVzF1SUNja2UzUm9hWE11WTI5c2RXMXVMbTVoYldWOUp5QnZaaUJ1YjNSaGRHbHZiaUFuSkh0MGFHbHpMbTV2ZEdGMGFXOXVmU2N1WUNrN1hHNGdJQ0FnY21WMGRYSnVJSE5sY0dGeVlYUnZjanRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJuWlhRZ1lXeHBaMjVsWkNncE9pQnpkSEpwYm1jZ2UxeHVJQ0FnSUdOdmJuTjBJR0ZzYVdkdVpXUWdQU0IwYUdsekxtTnZiSFZ0Ymk1blpYUlVZV2NvVkVGSFV5NWhiR2xuYm1Wa0tUdGNibHh1SUNBZ0lDOHZJRlJCUjFNdVlXeHBaMjVsWkNCcGN5QnRZVzVrWVhSdmNua2dabTl5SUdOdmJIVnRibk1nYjJZZ1RrOVVRVlJKVDA0dVJrRlRWRUVnWVc1a0lFNVBWRUZVU1U5T0xsTkZVRUZTUVZSUFVseHVJQ0FnSUdsbUlDZ2hZV3hwWjI1bFpDQW1KaUFvZEdocGN5NXBjMFpoYzNSaEtDa2dmSHdnZEdocGN5NXBjMU5sY0dGeVlYUnZjaWdwS1NsY2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWduVkdGbklHRnNhV2R1WldRZ2JtOTBJSE5sZENjcE8xeHVYRzRnSUNBZ2NtVjBkWEp1SUdGc2FXZHVaV1E3WEc0Z0lIMWNibHh1SUNBdktpb2dRV3h3YUdGaVpYUWdibUZ0WlNBb2RYQndaWElnWTJGelpTa2dLaTljYmlBZ2NIVmliR2xqSUdkbGRDQmhiSEJvWVdKbGRDZ3BPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lHTnZibk4wSUdGc2NHaGhZbVYwSUQwZ2RHaHBjeTVqYjJ4MWJXNHVaMlYwVkdGbktGUkJSMU11WVd4d2FHRmlaWFFwTzF4dVhHNGdJQ0FnTHk4Z1ZFRkhVeTVoYkhCb1lXSmxkQ0JwY3lCdFlXNWtZWFJ2Y25rZ1ptOXlJR052YkhWdGJuTWdiMllnVGs5VVFWUkpUMDR1UmtGVFZFRWdZVzVrSUU1UFZFRlVTVTlPTGxORlVFRlNRVlJQVWx4dUlDQWdJR2xtSUNnaFlXeHdhR0ZpWlhRZ0ppWWdLSFJvYVhNdWFYTkdZWE4wWVNncElIeDhJSFJvYVhNdWFYTlRaWEJoY21GMGIzSW9LU2twWEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9KMVJoWnlCaGJIQm9ZV0psZENCdWIzUWdjMlYwSnlrN1hHNWNiaUFnSUNCeVpYUjFjbTRnWVd4d2FHRmlaWFE3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWjJWMFFXeHdhR0ZpWlhSVGFYcGxLQ2s2SUc1MWJXSmxjaUI3WEc0Z0lDQWdhV1lnS0hSb2FYTXVibTkwWVhScGIyNGdQVDBnVGs5VVFWUkpUMDR1U0VWTVRTQjhmQ0IwYUdsekxtRnNjR2hoWW1WMElEMDlJRUZNVUVoQlFrVlVMbFZPS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JoYkhCb1lXSmxkRk5wZW1WVGRISWdQU0IwYUdsekxtTnZiSFZ0Ymk1blpYUlVZV2NvVkVGSFV5NWhiSEJvWVdKbGRGTnBlbVVwTzF4dUlDQWdJQ0FnYkdWMElHRnNjR2hoWW1WMFUybDZaVG9nYm5WdFltVnlPMXh1SUNBZ0lDQWdhV1lnS0dGc2NHaGhZbVYwVTJsNlpWTjBjaWtnZTF4dUlDQWdJQ0FnSUNCaGJIQm9ZV0psZEZOcGVtVWdQU0J3WVhKelpVbHVkQ2hoYkhCb1lXSmxkRk5wZW1WVGRISXBPMXh1SUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdMeThnWTJGc1kzVnNZWFJsSUdGc2NHaGhZbVYwVTJsNlpTQnZiaUJrWlcxaGJtUmNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2MzQnNhWFIwWlhJNklGTndiR2wwZEdWeVJuVnVZeUE5SUdkbGRGTndiR2wwZEdWeVJtOXlRMjlzZFcxdUtIUm9hWE11WTI5c2RXMXVLVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjM1JoZEhNZ1BTQm5aWFJUZEdGMGN5aDBhR2x6TG1OdmJIVnRiaXdnTVN3Z2MzQnNhWFIwWlhJcE8xeHVJQ0FnSUNBZ0lDQmhiSEJvWVdKbGRGTnBlbVVnUFNCUFltcGxZM1F1YTJWNWN5aHpkR0YwY3k1bWNtVnhLUzVzWlc1bmRHZzdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnlaWFIxY200Z1lXeHdhR0ZpWlhSVGFYcGxPMXh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNCemQybDBZMmdnS0hSb2FYTXVZV3h3YUdGaVpYUXBJSHRjYmlBZ0lDQWdJR05oYzJVZ1FVeFFTRUZDUlZRdVVGUTZYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQXlNRHRjYmlBZ0lDQWdJR05oYzJVZ1FVeFFTRUZDUlZRdVJFNUJPbHh1SUNBZ0lDQWdZMkZ6WlNCQlRGQklRVUpGVkM1U1RrRTZYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQTBPMXh1SUNBZ0lDQWdZMkZ6WlNBblRsUW5PbHh1SUNBZ0lDQWdJQ0JqYjI1emIyeGxMbmRoY200b1lGVnVaWGh3WldOMFpXUWdZV3h3YUdGaVpYUWdKMDVVSnk1Z0tUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlEUTdYRzRnSUNBZ0lDQmtaV1poZFd4ME9seHVJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb1lGVnVaWGh3WldOMFpXUWdZV3h3YUdGaVpYUWdKeVI3ZEdocGN5NWhiSEJvWVdKbGRIMG5MbUFwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJuWlhSQmJIQm9ZV0psZEVselRYVnNkR2xqYUdGeUtDazZJR0p2YjJ4bFlXNGdlMXh1SUNBZ0lHbG1JQ2gwYUdsekxtNXZkR0YwYVc5dUlEMDlJRTVQVkVGVVNVOU9Ma2hGVEUwZ2ZId2dkR2hwY3k1aGJIQm9ZV0psZENBOVBTQkJURkJJUVVKRlZDNVZUaWxjYmlBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG1OdmJIVnRiaTVuWlhSVVlXY29WRUZIVXk1aGJIQm9ZV0psZEVselRYVnNkR2xqYUdGeUtTQTlQU0FuZEhKMVpTYzdYRzRnSUNBZ1pXeHpaVnh1SUNBZ0lDQWdjbVYwZFhKdUlHWmhiSE5sTzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdselJtRnpkR0VvS1RvZ1ltOXZiR1ZoYmlCN0lISmxkSFZ5YmlCMGFHbHpMbTV2ZEdGMGFXOXVJRDA5UFNCT1QxUkJWRWxQVGk1R1FWTlVRVHNnZlZ4dVhHNGdJSEIxWW14cFl5QnBjMU5sY0dGeVlYUnZjaWdwT2lCaWIyOXNaV0Z1SUhzZ2NtVjBkWEp1SUhSb2FYTXVibTkwWVhScGIyNGdQVDA5SUU1UFZFRlVTVTlPTGxORlVFRlNRVlJQVWpzZ2ZWeHVYRzRnSUhCMVlteHBZeUJwYzBobGJHMG9LVG9nWW05dmJHVmhiaUI3SUhKbGRIVnliaUIwYUdsekxtNXZkR0YwYVc5dUlEMDlQU0JPVDFSQlZFbFBUaTVJUlV4Tk95QjlYRzVjYmlBZ2NIVmliR2xqSUdselVtNWhLQ2s2SUdKdmIyeGxZVzRnZXlCeVpYUjFjbTRnZEdocGN5NWhiSEJvWVdKbGRDQTlQVDBnUVV4UVNFRkNSVlF1VWs1Qk95QjlYRzVjYmlBZ2NIVmliR2xqSUdselJHNWhLQ2s2SUdKdmIyeGxZVzRnZXlCeVpYUjFjbTRnZEdocGN5NWhiSEJvWVdKbGRDQTlQVDBnUVV4UVNFRkNSVlF1UkU1Qk95QjlYRzVjYmlBZ2NIVmliR2xqSUdselVHVndkR2xrWlNncE9pQmliMjlzWldGdUlIc2djbVYwZFhKdUlIUm9hWE11WVd4d2FHRmlaWFFnUFQwOUlFRk1VRWhCUWtWVUxsQlVPeUI5WEc1Y2JpQWdjSFZpYkdsaklHbHpUWE5oS0NrNklHSnZiMnhsWVc0Z2V5QnlaWFIxY200Z2RHaHBjeTVoYkdsbmJtVmtJRDhnZEdocGN5NWhiR2xuYm1Wa0xuUnZWWEJ3WlhKRFlYTmxLQ2t1YVc1amJIVmtaWE1vSjAxVFFTY3BJRG9nWm1Gc2MyVTdJSDFjYmx4dUlDQXZLaW9nUVhOemIyTnBZWFJsSUc1dmRHRjBhVzl1SUhSNWNHVnpJSGRwZEdnZ2RHaGxJR052Y25KbGMzQnZibVJwYm1jZ2RXNXBkSE1nS2k5Y2JpQWdMeW9xWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMDVQVkVGVVNVOU9mU0FnSUNBZ1RtOTBZWFJwYjI0Z1lYTnpiMk5wWVhSbFpDQjNhWFJvSUhSb1pTQjFibWwwY3lCMGVYQmxYRzRnSUNBcUwxeHVJQ0J3Y205MFpXTjBaV1FnWjJWMFRtOTBZWFJwYjI0b0tUb2dUazlVUVZSSlQwNGdlMXh1SUNBZ0lHbG1JQ2gwYUdsekxuVnVhWFJ6TG5SdlRHOTNaWEpEWVhObEtDa3VjM1JoY25SelYybDBhQ2hPVDFSQlZFbFBUaTVHUVZOVVFTa3BYRzRnSUNBZ0lDQnlaWFIxY200Z1RrOVVRVlJKVDA0dVJrRlRWRUU3WEc0Z0lDQWdaV3h6WlNCcFppQW9kR2hwY3k1MWJtbDBjeTUwYjB4dmQyVnlRMkZ6WlNncExuTjBZWEowYzFkcGRHZ29UazlVUVZSSlQwNHVVMFZRUVZKQlZFOVNLU2xjYmlBZ0lDQWdJSEpsZEhWeWJpQk9UMVJCVkVsUFRpNVRSVkJCVWtGVVQxSTdYRzRnSUNBZ1pXeHpaU0JwWmlBb2RHaHBjeTUxYm1sMGN5NTBiMHh2ZDJWeVEyRnpaU2dwTG5OMFlYSjBjMWRwZEdnb1RrOVVRVlJKVDA0dVNFVk1UU2twWEc0Z0lDQWdJQ0J5WlhSMWNtNGdUazlVUVZSSlQwNHVTRVZNVFR0Y2JpQWdJQ0JsYkhObFhHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvWUVOdmJIVnRiaUFuSkh0MGFHbHpMbU52YkhWdGJpNXVZVzFsZlNjZ2FHRnpJSFZ1Wlhod1pXTjBaV1FnYm05MFlYUnBiMjRnSnlSN2RHaHBjeTUxYm1sMGMzMG5MbUFwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFTnlaV0YwWlNCaElHNWxkeUJsYlhCMGVTQmpiMngxYlc0Z2IyWWdkR2hsSUhOd1pXTnBabWxsWkNCdWIzUmhkR2x2YmlCMGVYQmxJR0Z1WkNCMGFHVWdjMkZ0WlZ4dUlDQWdLaUJzWlc1bmRHZ2dZWE1nWTI5c2RXMXVYRzRnSUNBcVhHNGdJQ0FxSUVCd1lYSmhiU0I3VGs5VVFWUkpUMDU5SUhSaGNtZGxkRTV2ZEdGMGFXOXVYRzRnSUNBcUlFQnlaWFIxY200Z2UwUkhMa052YkhWdGJuMWNiaUFnSUNvdlhHNGdJSEJ5YjNSbFkzUmxaQ0JuWlhST1pYZERiMngxYlc0b2RHRnlaMlYwVG05MFlYUnBiMjQ2SUU1UFZFRlVTVTlPS1RvZ1JFY3VRMjlzZFcxdUlIdGNiaUFnSUNCamIyNXpkQ0JqYjJ3Z1BTQjBhR2x6TG1OdmJIVnRianRjYmlBZ0lDQmpiMjV6ZENCc1pXNGdQU0JqYjJ3dWJHVnVaM1JvTzF4dUlDQWdJR052Ym5OMElHNWhiV1VnUFNCMFlYSm5aWFJPYjNSaGRHbHZiaTUwYjB4dmQyVnlRMkZ6WlNncElDc2dKeWduSUNzZ1kyOXNMbTVoYldVZ0t5QW5LU2M3WEc0Z0lDQWdZMjl1YzNRZ2JtVjNRMjlzVG1GdFpTQTlJR052YkM1a1lYUmhSbkpoYldVdVkyOXNkVzF1Y3k1blpYUlZiblZ6WldST1lXMWxLRzVoYldVcE8xeHVJQ0FnSUdOdmJuTjBJRzVsZDBOdmJIVnRiaUE5SUVSSExrTnZiSFZ0Ymk1bWNtOXRUR2x6ZENnbmMzUnlhVzVuSnl3Z2JtVjNRMjlzVG1GdFpTd2dibVYzSUVGeWNtRjVLR3hsYmlrdVptbHNiQ2duSnlrcE8xeHVJQ0FnSUc1bGQwTnZiSFZ0Ymk1elpXMVVlWEJsSUQwZ1JFY3VVMFZOVkZsUVJTNU5RVU5TVDAxUFRFVkRWVXhGTzF4dUlDQWdJRzVsZDBOdmJIVnRiaTV6WlhSVVlXY29SRWN1VkVGSFV5NVZUa2xVVXl3Z2RHRnlaMlYwVG05MFlYUnBiMjRwTzF4dUlDQWdJRzVsZDBOdmJIVnRiaTV6WlhSVVlXY29SRWN1VkVGSFV5NURSVXhNWDFKRlRrUkZVa1ZTTENBblRXRmpjbTl0YjJ4bFkzVnNaU2NwTzF4dVhHNGdJQ0FnWTI5dWMzUWdjM0pqUVd4cFoyNWxaQ0E5SUdOdmJDNW5aWFJVWVdjb1ZFRkhVeTVoYkdsbmJtVmtLVHRjYmlBZ0lDQnBaaUFvYzNKalFXeHBaMjVsWkNsY2JpQWdJQ0FnSUc1bGQwTnZiSFZ0Ymk1elpYUlVZV2NvVkVGSFV5NWhiR2xuYm1Wa0xDQnpjbU5CYkdsbmJtVmtLVHRjYmx4dUlDQWdJR052Ym5OMElITnlZMEZzY0doaFltVjBJRDBnWTI5c0xtZGxkRlJoWnloVVFVZFRMbUZzY0doaFltVjBLVHRjYmlBZ0lDQnBaaUFvYzNKalFXeHdhR0ZpWlhRcFhHNGdJQ0FnSUNCdVpYZERiMngxYlc0dWMyVjBWR0ZuS0ZSQlIxTXVZV3h3YUdGaVpYUXNJSE55WTBGc2NHaGhZbVYwS1R0Y2JseHVJQ0FnSUd4bGRDQnpjbU5CYkhCb1lXSmxkRk5wZW1VNklITjBjbWx1WnlBOUlHTnZiQzVuWlhSVVlXY29WRUZIVXk1aGJIQm9ZV0psZEZOcGVtVXBPMXh1SUNBZ0lHbG1JQ2h6Y21OQmJIQm9ZV0psZEZOcGVtVXBYRzRnSUNBZ0lDQnVaWGREYjJ4MWJXNHVjMlYwVkdGbktGUkJSMU11WVd4d2FHRmlaWFJUYVhwbExDQnpjbU5CYkhCb1lXSmxkRk5wZW1VcE8xeHVYRzRnSUNBZ1kyOXVjM1FnYzNKalFXeHdhR0ZpWlhSSmMwMTFiSFJwWTJoaGNqb2djM1J5YVc1bklEMGdZMjlzTG1kbGRGUmhaeWhVUVVkVExtRnNjR2hoWW1WMFNYTk5kV3gwYVdOb1lYSXBPMXh1SUNBZ0lHbG1JQ2h6Y21OQmJIQm9ZV0psZEVselRYVnNkR2xqYUdGeUlDRTlQU0IxYm1SbFptbHVaV1FwWEc0Z0lDQWdJQ0J1WlhkRGIyeDFiVzR1YzJWMFZHRm5LRlJCUjFNdVlXeHdhR0ZpWlhSSmMwMTFiSFJwWTJoaGNpd2djM0pqUVd4d2FHRmlaWFJKYzAxMWJIUnBZMmhoY2lrN1hHNWNiaUFnSUNCcFppQW9kR0Z5WjJWMFRtOTBZWFJwYjI0Z1BUMGdUazlVUVZSSlQwNHVTRVZNVFNrZ2UxeHVJQ0FnSUNBZ2MzSmpRV3h3YUdGaVpYUlRhWHBsSUQwZ2RHaHBjeTVuWlhSQmJIQm9ZV0psZEZOcGVtVW9LUzUwYjFOMGNtbHVaeWdwTzF4dUlDQWdJQ0FnYm1WM1EyOXNkVzF1TG5ObGRGUmhaeWhVUVVkVExtRnNjR2hoWW1WMFUybDZaU3dnYzNKalFXeHdhR0ZpWlhSVGFYcGxLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z2JtVjNRMjlzZFcxdU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU55WldGMFpTQmhJRzVsZHlCbGJYQjBlU0JqYjJ4MWJXNGdkWE5wYm1jZ2RHVnRjR3hoZEdWRGIyd2dZWE1nWVNCMFpXMXdiR0YwWlZ4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwUkhMa052YkhWdGJuMGdkR1Z0Y0d4aGRHVkRiMndnSUhSb1pTQndjbTl3WlhKMGFXVnpJR0Z1WkNCMWJtbDBjeUJ2WmlCMGFHbHpJR052YkhWdGJpQmhjbVVnZFhObFpDQmhjeUJoWEc0Z0lDQXFJSFJsYlhCc1lYUmxJSFJ2SUdKMWFXeGtJSFJvWlNCdVpYY2diMjVsWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMFJITGtOdmJIVnRibjFjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdaMlYwVG1WM1EyOXNkVzF1S0hSbGJYQnNZWFJsUTI5c09pQkVSeTVEYjJ4MWJXNHBPaUJFUnk1RGIyeDFiVzRnZTF4dUlDQWdJR052Ym5OMElHTnZiRG9nVlc1cGRITklZVzVrYkdWeUlEMGdibVYzSUZWdWFYUnpTR0Z1Wkd4bGNpaDBaVzF3YkdGMFpVTnZiQ2s3WEc0Z0lDQWdZMjl1YzNRZ2RHRnlaMlYwVG05MFlYUnBiMjRnUFNCamIyd3VibTkwWVhScGIyNDdYRzRnSUNBZ2NtVjBkWEp1SUdOdmJDNW5aWFJPWlhkRGIyeDFiVzRvZEdGeVoyVjBUbTkwWVhScGIyNHBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVFZ2FHVnNjR1Z5SUdaMWJtTjBhVzl1SUdOb1pXTnJhVzVuSUhSb1pTQjJZV3hwWkdsMGVTQnZaaUIwYUdVZ0ozVnVhWFJ6SnlCemRISnBibWRjYmlBZ0lDcGNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhWdWFYUnpJQ0IwYUdVZ2MzUnlhVzVuSUhSdklHSmxJSFpoYkdsa1lYUmxaRnh1SUNBZ0tpQkFjbVYwZFhKdUlIdGliMjlzWldGdWZWeHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCMWJtbDBjMU4wY21sdVowbHpWbUZzYVdRb2RXNXBkSE02SUhOMGNtbHVaeWs2SUdKdmIyeGxZVzRnZTF4dUlDQWdJSFZ1YVhSeklEMGdkVzVwZEhNdWRHOU1iM2RsY2tOaGMyVW9LVHRjYmlBZ0lDQmpiMjV6ZENCd2NtVm1hWGhsY3lBOUlGdE9UMVJCVkVsUFRpNUdRVk5VUVN3Z1RrOVVRVlJKVDA0dVUwVlFRVkpCVkU5U0xDQk9UMVJCVkVsUFRpNUlSVXhOWFR0Y2JpQWdJQ0JqYjI1emRDQndiM04wWm1sNFpYTWdQU0JiSjNKdVlTY3NJQ2RrYm1FbkxDQW5jSFFuWFR0Y2JseHVJQ0FnSUdOdmJuTjBJSEJ5WldacGVFTnlhWFJsY21sdmJpQTlJSEJ5WldacGVHVnpMbk52YldVb0tIQXBJRDArSUhWdWFYUnpMbk4wWVhKMGMxZHBkR2dvY0M1MGIweHZkMlZ5UTJGelpTZ3BLU2s3WEc0Z0lDQWdjbVYwZFhKdUlIQnlaV1pwZUVOeWFYUmxjbWx2Ymp0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkRiMjV6ZEhKMVkzUWdZU0J1WlhjZ1kyOXNkVzF1SUc5bUlITmxiV0Z1ZEdsaklIUjVjR1VnVFVGRFVrOU5UMHhGUTFWTVJTQm1jbTl0SUhSb1pTQnNhWE4wSUc5bVhHNGdJQ0FxSUhOd1pXTnBabWxsWkNCd1lYSmhiV1YwWlhKelhHNGdJQ0FxWEc0Z0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQWdJQ0JzWlc0Z0lIUm9aU0JzWlc1bmRHZ2diMllnZEdobElHNWxkeUJqYjJ4MWJXNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUNBZ0lHNWhiV1VnSUhSb1pTQnVZVzFsSUc5bUlIUm9aU0J1WlhjZ1kyOXNkVzF1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQWdJQ0IxYm1sMGN5QWdkR2hsSUhWdWFYUnpJRzltSUhSb1pTQnVaWGNnWTI5c2RXMXVYRzRnSUNBcUlFQnlaWFIxY200Z2UwUkhMa052YkhWdGJuMWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QnpkR0YwYVdNZ1oyVjBUbVYzUTI5c2RXMXVSbkp2YlZCaGNtRnRjeWhjYmlBZ0lDQnNaVzQ2SUc1MWJXSmxjaXhjYmlBZ0lDQnVZVzFsT2lCemRISnBibWNzWEc0Z0lDQWdkVzVwZEhNNklITjBjbWx1WjF4dUlDQXBPaUJFUnk1RGIyeDFiVzRnZTF4dUlDQWdJQzh2SUZkQlVrNUpUa2M2SUdsdUlIUm9hWE1nYVcxd2JHVnRaVzUwWVhScGIyNGdhWE1nYVhNZ2FXMXdiM056YVdKc1pTQjBieUIyWlhKcFpua2dkR2hsSUhWdWFYRjFaVzVsYzNOY2JpQWdJQ0F2THlCdlppQjBhR1VnYm1WM0lHTnZiSFZ0YmlkeklHNWhiV1ZjYmlBZ0lDQXZMeUJVVDBSUE9pQjJaWEpwWm5rZ2RHaGxJSFpoYkdsa2FYUjVJRzltSUhWdWFYUnpJSEJoY21GdFpYUmxjbHh1SUNBZ0lHbG1JQ2doVlc1cGRITklZVzVrYkdWeUxuVnVhWFJ6VTNSeWFXNW5TWE5XWVd4cFpDaDFibWwwY3lrcFhHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjBsdWRtRnNhV1FnWm05eWJXRjBJRzltSUZ4Y0ozVnVhWFJ6WEZ3bklIQmhjbUZ0WlhSbGNpY3BPMXh1SUNBZ0lHTnZibk4wSUc1bGQwTnZiSFZ0YmlBOUlFUkhMa052YkhWdGJpNW1jbTl0VEdsemRDZ25jM1J5YVc1bkp5d2dibUZ0WlN3Z2JtVjNJRUZ5Y21GNUtHeGxiaWt1Wm1sc2JDZ25KeWtwTzF4dUlDQWdJRzVsZDBOdmJIVnRiaTV6WlcxVWVYQmxJRDBnUkVjdVUwVk5WRmxRUlM1TlFVTlNUMDFQVEVWRFZVeEZPMXh1SUNBZ0lHNWxkME52YkhWdGJpNXpaWFJVWVdjb1JFY3VWRUZIVXk1VlRrbFVVeXdnZFc1cGRITXBPMXh1SUNBZ0lISmxkSFZ5YmlCdVpYZERiMngxYlc0N1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1kyOXVjM1J5ZFdOMGIzSW9ZMjlzT2lCRVJ5NURiMngxYlc0cElIdGNiaUFnSUNCMGFHbHpMbDlqYjJ4MWJXNGdQU0JqYjJ3N1hHNGdJQ0FnWTI5dWMzUWdkVzVwZEhNZ1BTQjBhR2x6TGw5amIyeDFiVzR1ZEdGbmMxdEVSeTVVUVVkVExsVk9TVlJUWFR0Y2JpQWdJQ0JwWmlBb2RXNXBkSE1nSVQwOUlHNTFiR3dwWEc0Z0lDQWdJQ0IwYUdsekxsOTFibWwwY3lBOUlIVnVhWFJ6TzF4dUlDQWdJR1ZzYzJWY2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWduVlc1cGRITWdZWEpsSUc1dmRDQnpjR1ZqYVdacFpXUWdhVzRnWTI5c2RXMXVKeWs3WEc0Z0lDQWdkR2hwY3k1ZmJtOTBZWFJwYjI0Z1BTQjBhR2x6TG1kbGRFNXZkR0YwYVc5dUtDazdYRzRnSUNBZ2RHaHBjeTVmWkdWbVlYVnNkRWRoY0ZONWJXSnZiQ0E5SUNoMGFHbHpMbWx6Um1GemRHRW9LU2tnUHlCVmJtbDBjMGhoYm1Sc1pYSXVYMlJsWm1GMWJIUkhZWEJUZVcxaWIyeHpSR2xqZEM1R1FWTlVRU0E2WEc0Z0lDQWdJQ0FvZEdocGN5NXBjMGhsYkcwb0tTa2dQeUJWYm1sMGMwaGhibVJzWlhJdVgyUmxabUYxYkhSSFlYQlRlVzFpYjJ4elJHbGpkQzVJUlV4TklEcGNiaUFnSUNBZ0lDQWdWVzVwZEhOSVlXNWtiR1Z5TGw5a1pXWmhkV3gwUjJGd1UzbHRZbTlzYzBScFkzUXVVMFZRUVZKQlZFOVNPMXh1WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbU52YkhWdGJpNTBZV2R6TG1oaGN5aFVRVWRUTG1Gc2FXZHVaV1FwS1NCN1hHNGdJQ0FnSUNCcFppQW9kR2hwY3k1cGMwWmhjM1JoS0NrZ2ZId2dkR2hwY3k1cGMxTmxjR0Z5WVhSdmNpZ3BLVnh1SUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9ZRVp2Y2lCamIyeDFiVzRnSnlSN2RHaHBjeTVqYjJ4MWJXNHVibUZ0WlgwbklHOW1JRzV2ZEdGMGFXOXVJQ2NrZTNSb2FYTXVibTkwWVhScGIyNTlKeUJnSUN0Y2JpQWdJQ0FnSUNBZ0lDQmdkR0ZuSUNja2UxUkJSMU11WVd4cFoyNWxaSDBuSUdseklHMWhibVJoZEc5eWVTNWdLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZMeUJwWmlBb0lYUm9hWE11WTI5c2RXMXVMblJoWjNNdWFHRnpLRlJCUjFNdVlXeHdhR0ZpWlhSVGFYcGxLU2tnZTF4dUlDQWdJQzh2SUNBZ2FXWWdLSFJvYVhNdWFYTklaV3h0S0NrcFhHNGdJQ0FnTHk4Z0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGdSbTl5SUdOdmJIVnRiaUFuSkh0MGFHbHpMbU52YkhWdGJpNXVZVzFsZlNjZ2IyWWdibTkwWVhScGIyNGdKeVI3ZEdocGN5NXViM1JoZEdsdmJuMG5JR0FnSzF4dUlDQWdJQzh2SUNBZ0lDQWdJR0IwWVdjZ0p5UjdWRUZIVXk1aGJIQm9ZV0psZEZOcGVtVjlKeUJwY3lCdFlXNWtZWFJ2Y25rdVlDazdYRzRnSUNBZ0x5OGdJQ0JsYkhObElHbG1JQ2hiSjFWT0oxMHVhVzVqYkhWa1pYTW9kR2hwY3k1aGJIQm9ZV0psZENrcFhHNGdJQ0FnTHk4Z0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGdSbTl5SUdOdmJIVnRiaUFuSkh0MGFHbHpMbU52YkhWdGJpNXVZVzFsZlNjZ2IyWWdZV3h3YUdGaVpYUWdKeVI3ZEdocGN5NWhiSEJvWVdKbGRIMG5JR0FnSzF4dUlDQWdJQzh2SUNBZ0lDQWdJR0IwWVdjZ0p5UjdWRUZIVXk1aGJIQm9ZV0psZEZOcGVtVjlKeUJwY3lCdFlXNWtZWFJ2Y25rdVlDazdYRzRnSUNBZ0x5OGdmVnh1WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbU52YkhWdGJpNTBZV2R6TG1oaGN5aFVRVWRUTG1Gc2NHaGhZbVYwU1hOTmRXeDBhV05vWVhJcEtTQjdYRzRnSUNBZ0lDQnBaaUFvZEdocGN5NXBjMGhsYkcwb0tTbGNiaUFnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtHQkdiM0lnWTI5c2RXMXVJQ2NrZTNSb2FYTXVZMjlzZFcxdUxtNWhiV1Y5SnlCdlppQnViM1JoZEdsdmJpQW5KSHQwYUdsekxtNXZkR0YwYVc5dWZTY2dZQ0FyWEc0Z0lDQWdJQ0FnSUNBZ1lIUmhaeUFuSkh0VVFVZFRMbUZzY0doaFltVjBTWE5OZFd4MGFXTm9ZWEo5SnlCcGN5QnRZVzVrWVhSdmNua3VZQ2s3WEc0Z0lDQWdJQ0JsYkhObElHbG1JQ2hiSjFWT0oxMHVhVzVqYkhWa1pYTW9kR2hwY3k1aGJIQm9ZV0psZENrcFhHNGdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2loZ1JtOXlJR052YkhWdGJpQW5KSHQwYUdsekxtTnZiSFZ0Ymk1dVlXMWxmU2NnYjJZZ1lXeHdhR0ZpWlhRZ0p5UjdkR2hwY3k1aGJIQm9ZV0psZEgwbklHQWdLMXh1SUNBZ0lDQWdJQ0FnSUdCMFlXY2dKeVI3VkVGSFV5NWhiSEJvWVdKbGRFbHpUWFZzZEdsamFHRnlmU2NnYVhNZ2JXRnVaR0YwYjNKNUxtQXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dWZWeHVJbDE5IiwiaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgeyBmaW5kTW9ub21lcnMsIHBhcnNlSGVsbSwgZ2V0UGFydHMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IHByaW50TGVmdE9yQ2VudGVyZWQgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdXRpbHMvY2VsbC1yZW5kZXJlcic7XG5leHBvcnQgY2xhc3MgSGVsbUNlbGxSZW5kZXJlciBleHRlbmRzIERHLkdyaWRDZWxsUmVuZGVyZXIge1xuICAgIGdldCBuYW1lKCkgeyByZXR1cm4gJ2hlbG0nOyB9XG4gICAgZ2V0IGNlbGxUeXBlKCkgeyByZXR1cm4gJ2hlbG0nOyB9XG4gICAgZ2V0IGRlZmF1bHRXaWR0aCgpIHsgcmV0dXJuIDQwMDsgfVxuICAgIGdldCBkZWZhdWx0SGVpZ2h0KCkgeyByZXR1cm4gMTAwOyB9XG4gICAgb25Nb3VzZU1vdmUoZ3JpZENlbGwsIGUpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGNvbnN0IG1heExlbmd0aFdvcmRzU3VtID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4udGVtcFsnaGVsbS1zdW0tbWF4TGVuZ3RoV29yZHMnXTtcbiAgICAgICAgY29uc3QgbWF4SW5kZXggPSBPYmplY3QudmFsdWVzKGdyaWRDZWxsLmNlbGwuY29sdW1uLnRlbXBbJ2hlbG0tbWF4TGVuZ3RoV29yZHMnXSkubGVuZ3RoIC0gMTtcbiAgICAgICAgY29uc3QgYXJnc1ggPSBlLm9mZnNldFggLSBncmlkQ2VsbC5ncmlkQ29sdW1uLmxlZnQgKyAoZ3JpZENlbGwuZ3JpZENvbHVtbi5sZWZ0IC0gZ3JpZENlbGwuYm91bmRzLngpO1xuICAgICAgICBsZXQgbGVmdCA9IDA7XG4gICAgICAgIGxldCByaWdodCA9IG1heEluZGV4O1xuICAgICAgICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgICAgICAgbWF4TGVuZ3RoV29yZHNTdW1bbWF4SW5kZXggKyAxXSA9IGFyZ3NYICsgMTtcbiAgICAgICAgbGV0IG1pZCA9IDA7XG4gICAgICAgIGlmIChhcmdzWCA+IG1heExlbmd0aFdvcmRzU3VtWzBdKSB7XG4gICAgICAgICAgICB3aGlsZSAoIWZvdW5kKSB7XG4gICAgICAgICAgICAgICAgbWlkID0gTWF0aC5mbG9vcigocmlnaHQgKyBsZWZ0KSAvIDIpO1xuICAgICAgICAgICAgICAgIGlmIChhcmdzWCA+PSBtYXhMZW5ndGhXb3Jkc1N1bVttaWRdICYmIGFyZ3NYIDw9IG1heExlbmd0aFdvcmRzU3VtW21pZCArIDFdKSB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSBtaWQ7XG4gICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoYXJnc1ggPCBtYXhMZW5ndGhXb3Jkc1N1bVttaWRdKSB7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0ID0gbWlkIC0gMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoYXJnc1ggPiBtYXhMZW5ndGhXb3Jkc1N1bVttaWQgKyAxXSkge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0ID0gbWlkICsgMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGxlZnQgPT0gcmlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsZWZ0ID0gKGFyZ3NYID49IG1heExlbmd0aFdvcmRzU3VtW2xlZnRdKSA/IGxlZnQgKyAxIDogbGVmdDtcbiAgICAgICAgY29uc3QgbW9ub21lcnMgPSBmaW5kTW9ub21lcnMoZ3JpZENlbGwuY2VsbC52YWx1ZSk7XG4gICAgICAgIGxldCBzID0gKF9hID0gZ3JpZENlbGwuY2VsbC52YWx1ZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJyc7XG4gICAgICAgIGxldCBzdWJQYXJ0cyA9IHBhcnNlSGVsbShzKTtcbiAgICAgICAgbGV0IGFsbFBhcnRzID0gZ2V0UGFydHMoc3ViUGFydHMsIHMpO1xuICAgICAgICBsZXQgdG9vbHRpcE1lc3NhZ2UgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbGxQYXJ0cy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgaWYgKG1vbm9tZXJzLmhhcyhhbGxQYXJ0c1tpXSkpXG4gICAgICAgICAgICAgICAgdG9vbHRpcE1lc3NhZ2VbaV0gPSB1aS5kaXZWKFtcbiAgICAgICAgICAgICAgICAgICAgdWkuZGl2VGV4dChgTW9ub21lciAke2FsbFBhcnRzW2ldfSBub3QgZm91bmQuYCksXG4gICAgICAgICAgICAgICAgICAgIHVpLmRpdlRleHQoJ09wZW4gdGhlIENvbnRleHQgUGFuZWwsIHRoZW4gZXhwYW5kIE1hbmFnZSBMaWJyYXJpZXMnKVxuICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICB9XG4gICAgICAgICgoKChfYyA9IChfYiA9IHRvb2x0aXBNZXNzYWdlW2xlZnRdKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2hpbGROb2Rlcy5sZW5ndGgpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IDApID4gMCkpXG4gICAgICAgICAgICA/IHVpLnRvb2x0aXAuc2hvdyh1aS5kaXYodG9vbHRpcE1lc3NhZ2VbbGVmdF0pLCBlLnggKyAxNiwgZS55ICsgMTYpXG4gICAgICAgICAgICA6IHVpLnRvb2x0aXAuaGlkZSgpO1xuICAgIH1cbiAgICByZW5kZXIoZywgeCwgeSwgdywgaCwgZ3JpZENlbGwsIGNlbGxTdHlsZSkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IGdyaWQgPSBncmlkQ2VsbC5ncmlkUm93ICE9PSAtMSA/IGdyaWRDZWxsLmdyaWQgOiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IHVuZGVmaW5lZENvbG9yID0gJ3JnYigxMDAsMTAwLDEwMCknO1xuICAgICAgICBjb25zdCBncmF5Q29sb3IgPSAnIzgwODA4MCc7XG4gICAgICAgIGNvbnN0IG1vbm9tZXJzID0gZmluZE1vbm9tZXJzKGdyaWRDZWxsLmNlbGwudmFsdWUpO1xuICAgICAgICBsZXQgcyA9IChfYSA9IGdyaWRDZWxsLmNlbGwudmFsdWUpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICcnO1xuICAgICAgICBsZXQgc3ViUGFydHMgPSBwYXJzZUhlbG0ocyk7XG4gICAgICAgIGlmIChtb25vbWVycy5zaXplID09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGhvc3QgPSB1aS5kaXYoW10sIHsgc3R5bGU6IHsgd2lkdGg6IGAke3d9cHhgLCBoZWlnaHQ6IGAke2h9cHhgIH0gfSk7XG4gICAgICAgICAgICBob3N0LnNldEF0dHJpYnV0ZSgnZGF0YWZvcm1hdCcsICdoZWxtJyk7XG4gICAgICAgICAgICBob3N0LnNldEF0dHJpYnV0ZSgnZGF0YScsIGdyaWRDZWxsLmNlbGwudmFsdWUpO1xuICAgICAgICAgICAgZ3JpZENlbGwuZWxlbWVudCA9IGhvc3Q7XG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgICAgIGNvbnN0IGNhbnZhcyA9IG5ldyBKU0RyYXcyLkVkaXRvcihob3N0LCB7IHdpZHRoOiB3LCBoZWlnaHQ6IGgsIHNraW46ICd3OCcsIHZpZXdvbmx5OiB0cnVlIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtb25vbWVycy5zaXplID4gMCkge1xuICAgICAgICAgICAgdyA9IGdyaWQgPyBNYXRoLm1pbihncmlkLmNhbnZhcy53aWR0aCAtIHgsIHcpIDogZy5jYW52YXMud2lkdGggLSB4O1xuICAgICAgICAgICAgZy5zYXZlKCk7XG4gICAgICAgICAgICBnLmJlZ2luUGF0aCgpO1xuICAgICAgICAgICAgZy5yZWN0KHgsIHksIHcsIGgpO1xuICAgICAgICAgICAgZy5jbGlwKCk7XG4gICAgICAgICAgICBnLmZvbnQgPSAnMTJweCBtb25vc3BhY2UnO1xuICAgICAgICAgICAgZy50ZXh0QmFzZWxpbmUgPSAndG9wJztcbiAgICAgICAgICAgIGxldCB4MSA9IHg7XG4gICAgICAgICAgICBsZXQgbWF4TGVuZ3RoV29yZHMgPSB7fTtcbiAgICAgICAgICAgIGxldCBtYXhMZW5ndGhXb3JkU3VtID0ge307XG4gICAgICAgICAgICBsZXQgYWxsUGFydHMgPSBnZXRQYXJ0cyhzdWJQYXJ0cywgcyk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFsbFBhcnRzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICAgICAgbWF4TGVuZ3RoV29yZHNbaV0gPSBhbGxQYXJ0c1tpXS5sZW5ndGggKiA3O1xuICAgICAgICAgICAgICAgIGxldCBjb2xvciA9IG1vbm9tZXJzLmhhcyhhbGxQYXJ0c1tpXSkgPyAncmVkJyA6IGdyYXlDb2xvcjtcbiAgICAgICAgICAgICAgICBnLmZpbGxTdHlsZSA9IHVuZGVmaW5lZENvbG9yO1xuICAgICAgICAgICAgICAgIHgxID0gcHJpbnRMZWZ0T3JDZW50ZXJlZCh4MSwgeSwgdywgaCwgZywgYWxsUGFydHNbaV0sIGNvbG9yLCAwLCB0cnVlLCAxLjApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbWF4TGVuZ3RoV29yZFN1bVswXSA9IG1heExlbmd0aFdvcmRzWzBdO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBhbGxQYXJ0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIG1heExlbmd0aFdvcmRTdW1baV0gPSBtYXhMZW5ndGhXb3JkU3VtW2kgLSAxXSArIG1heExlbmd0aFdvcmRzW2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZ3JpZENlbGwuY2VsbC5jb2x1bW4udGVtcCA9IHtcbiAgICAgICAgICAgICAgICAnaGVsbS1zdW0tbWF4TGVuZ3RoV29yZHMnOiBtYXhMZW5ndGhXb3JkU3VtLFxuICAgICAgICAgICAgICAgICdoZWxtLW1heExlbmd0aFdvcmRzJzogbWF4TGVuZ3RoV29yZHNcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBnLnJlc3RvcmUoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsImV4cG9ydCBjb25zdCBqc29uU2RmTW9ub21lckxpYkRpY3QgPSB7XG4gICAgXCJtb25vbWVyVHlwZVwiOiBudWxsLFxuICAgIFwic21pbGVzXCI6IG51bGwsXG4gICAgXCJuYW1lXCI6IFwiTW9ub21lck5hbWVcIixcbiAgICBcImF1dGhvclwiOiBudWxsLFxuICAgIFwibW9sZmlsZVwiOiBcIm1vbGVjdWxlXCIsXG4gICAgXCJuYXR1cmFsQW5hbG9nXCI6IFwiTW9ub21lck5hdHVyYWxBbmFsb2dDb2RlXCIsXG4gICAgXCJyZ3JvdXBzXCI6IFwiTW9ub21lckNhcHNcIixcbiAgICBcImNyZWF0ZURhdGVcIjogbnVsbCxcbiAgICBcImlkXCI6IG51bGwsXG4gICAgXCJwb2x5bWVyVHlwZVwiOiBcIk1vbm9tZXJUeXBlXCIsXG4gICAgXCJzeW1ib2xcIjogXCJNb25vbWVyQ29kZVwiXG59O1xuZXhwb3J0IGNvbnN0IFNNSUxFUyA9ICdzbWlsZXMnO1xuZXhwb3J0IGNvbnN0IFJHUk9VUFMgPSBcInJncm91cHNcIjtcbmV4cG9ydCBjb25zdCBNT05PTUVSX1NZTUJPTCA9IFwic3ltYm9sXCI7XG5leHBvcnQgY29uc3QgUkdST1VQX0NBUF9HUk9VUF9TTUlMRVMgPSBcImNhcEdyb3VwU21pbGVzXCI7XG5leHBvcnQgY29uc3QgUkdST1VQX0FMVEVSX0lEID0gXCJhbHRlcm5hdGVJZFwiO1xuZXhwb3J0IGNvbnN0IFJHUk9VUF9DQVBfR1JPVVBfTkFNRSA9IFwiY2FwR3JvdXBOYW1lXCI7XG5leHBvcnQgY29uc3QgUkdST1VQX0xBQkVMID0gXCJsYWJlbFwiO1xuZXhwb3J0IGNvbnN0IFNERl9NT05PTUVSX05BTUUgPSBcIk1vbm9tZXJOYW1lXCI7XG4iLCJpbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuZXhwb3J0IGNsYXNzIEhlbG1XZWJFZGl0b3Ige1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLncgPSAyMDA7XG4gICAgICAgIHRoaXMuaCA9IDEwMDtcbiAgICAgICAgdGhpcy5ob3N0ID0gdWkuZGl2KFtdLCB7IHN0eWxlOiB7IHdpZHRoOiBgJHt0aGlzLnd9cHhgLCBoZWlnaHQ6IGAke3RoaXMuaH1weGAgfSB9KTtcbiAgICAgICAgdGhpcy5lZGl0b3IgPSBuZXcgSlNEcmF3Mi5FZGl0b3IodGhpcy5ob3N0LCB7IHdpZHRoOiB0aGlzLncsIGhlaWdodDogdGhpcy5oLCB2aWV3b25seTogdHJ1ZSB9KTtcbiAgICB9XG4gICAgcmVzaXplRWRpdG9yKHcsIGgpIHtcbiAgICAgICAgdGhpcy5lZGl0b3Iuc2V0U2l6ZSh3LCBoKTtcbiAgICB9XG4gICAgY3JlYXRlV2ViRWRpdG9yKHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGVkaXRvclZpZXcgPSB1aS5kaXYoKTtcbiAgICAgICAgb3JnLmhlbG0ud2ViZWRpdG9yLk1vbFZpZXdlci5tb2xzY2FsZSA9IDAuODtcbiAgICAgICAgY29uc3Qgd2ViRWRpdG9yID0gbmV3IHNjaWwuaGVsbS5BcHAoZWRpdG9yVmlldywge1xuICAgICAgICAgICAgc2hvd2Fib3V0OiBmYWxzZSxcbiAgICAgICAgICAgIG1leGZvbnRzaXplOiAnOTAlJyxcbiAgICAgICAgICAgIG1leHJuYXBpbm9udGFiOiB0cnVlLFxuICAgICAgICAgICAgdG9wbWFyZ2luOiAyMCxcbiAgICAgICAgICAgIG1leG1vbm9tZXJzdGFiOiB0cnVlLFxuICAgICAgICAgICAgc2VxdWVuY2V2aWV3b25seTogZmFsc2UsXG4gICAgICAgICAgICBtZXhmYXZvcml0ZWZpcnN0OiB0cnVlLFxuICAgICAgICAgICAgbWV4ZmlsdGVyOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzaXplcyA9IHdlYkVkaXRvci5jYWxjdWxhdGVTaXplcygpO1xuICAgICAgICB3ZWJFZGl0b3IuY2FudmFzLnJlc2l6ZShzaXplcy5yaWdodHdpZHRoIC0gMTAwLCBzaXplcy50b3BoZWlnaHQgLSAyMTApO1xuICAgICAgICBsZXQgcyA9IHsgd2lkdGg6IHNpemVzLnJpZ2h0d2lkdGggLSAxMDAgKyAncHgnLCBoZWlnaHQ6IHNpemVzLmJvdHRvbWhlaWdodCArICdweCcgfTtcbiAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgIHNjaWwuYXBwbHkod2ViRWRpdG9yLnNlcXVlbmNlLnN0eWxlLCBzKTtcbiAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgIHNjaWwuYXBwbHkod2ViRWRpdG9yLm5vdGF0aW9uLnN0eWxlLCBzKTtcbiAgICAgICAgcyA9IHsgd2lkdGg6IHNpemVzLnJpZ2h0d2lkdGggKyAncHgnLCBoZWlnaHQ6IChzaXplcy5ib3R0b21oZWlnaHQgKyB3ZWJFZGl0b3IudG9vbGJhcmhlaWdodCkgKyAncHgnIH07XG4gICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICBzY2lsLmFwcGx5KHdlYkVkaXRvci5wcm9wZXJ0aWVzLnBhcmVudC5zdHlsZSwgcyk7XG4gICAgICAgIHdlYkVkaXRvci5zdHJ1Y3R1cmV2aWV3LnJlc2l6ZShzaXplcy5yaWdodHdpZHRoLCBzaXplcy5ib3R0b21oZWlnaHQgKyB3ZWJFZGl0b3IudG9vbGJhcmhlaWdodCk7XG4gICAgICAgIHdlYkVkaXRvci5tZXgucmVzaXplKHNpemVzLnRvcGhlaWdodCAtIDgwKTtcbiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB3ZWJFZGl0b3IuY2FudmFzLmhlbG0uc2V0U2VxdWVuY2UodmFsdWUsICdIRUxNJyk7XG4gICAgICAgIH0sIDIwMCk7XG4gICAgICAgIHJldHVybiB7IGVkaXRvckRpdjogZWRpdG9yVmlldywgd2ViRWRpdG9yOiB3ZWJFZGl0b3IgfTtcbiAgICB9XG59XG4iLCJleHBvcnQgZnVuY3Rpb24gZ2V0UGFydHMoc3ViUGFydHMsIHMpIHtcbiAgICBsZXQgaiA9IDA7XG4gICAgbGV0IGFsbFBhcnRzID0gW107XG4gICAgZm9yIChsZXQgayA9IDA7IGsgPCBzdWJQYXJ0cy5sZW5ndGg7ICsraykge1xuICAgICAgICBsZXQgaW5kZXhPZk1vbm9tZXIgPSBzLmluZGV4T2Yoc3ViUGFydHNba10pO1xuICAgICAgICBsZXQgaGVsbUJlZm9yZU1vbm9tZXIgPSBzLnNsaWNlKGosIGluZGV4T2ZNb25vbWVyKTtcbiAgICAgICAgYWxsUGFydHMucHVzaChoZWxtQmVmb3JlTW9ub21lcik7XG4gICAgICAgIGFsbFBhcnRzLnB1c2goc3ViUGFydHNba10pO1xuICAgICAgICBzID0gcy5zdWJzdHJpbmcoaW5kZXhPZk1vbm9tZXIgKyBzdWJQYXJ0c1trXS5sZW5ndGgpO1xuICAgIH1cbiAgICBhbGxQYXJ0cy5wdXNoKHMpO1xuICAgIHJldHVybiBhbGxQYXJ0cztcbn1cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUhlbG0ocykge1xuICAgIHZhciBzZWN0aW9ucyA9IHNwbGl0KHMsICckJyk7XG4gICAgcyA9IHNlY3Rpb25zWzBdO1xuICAgIHZhciBtb25vbWVycyA9IFtdO1xuICAgIC8vQHRzLWlnbm9yZVxuICAgIGlmICghc2NpbC5VdGlscy5pc051bGxPckVtcHR5KHMpKSB7XG4gICAgICAgIHZhciBzZXFzID0gc3BsaXQocywgJ3wnKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZXFzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICB2YXIgZSA9IGRldGFjaEFubm90YXRpb24oc2Vxc1tpXSk7XG4gICAgICAgICAgICBzID0gZS5zdHI7XG4gICAgICAgICAgICB2YXIgcCA9IHMuaW5kZXhPZigneycpO1xuICAgICAgICAgICAgcyA9IHMuc3Vic3RyaW5nKHAgKyAxKTtcbiAgICAgICAgICAgIHAgPSBzLmluZGV4T2YoJ30nKTtcbiAgICAgICAgICAgIHMgPSBzLnN1YnN0cmluZygwLCBwKTtcbiAgICAgICAgICAgIHZhciBzcyA9IHNwbGl0KHMsICcuJyk7XG4gICAgICAgICAgICBmb3IgKHZhciBtb25vbWVyIG9mIHNzKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1vbm9tZXIuaW5jbHVkZXMoJygnKSAmJiBtb25vbWVyLmluY2x1ZGVzKCcpJykpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGVsZW1lbnRzID0gbW9ub21lci5yZXBsYWNlKC9bKCldL2csICcnKS5zcGxpdCgnJyk7XG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGVsIG9mIGVsZW1lbnRzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb25vbWVycy5wdXNoKGVsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChtb25vbWVyLmluY2x1ZGVzKCdbJykgJiYgbW9ub21lci5pbmNsdWRlcygnXScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBlbGVtZW50ID0gbW9ub21lci5tYXRjaCgvKD88PVxcWykuKj8oPz1cXF0pL2csICcnKTtcbiAgICAgICAgICAgICAgICAgICAgbW9ub21lcnMucHVzaChlbGVtZW50WzBdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG1vbm9tZXJzLnB1c2gobW9ub21lcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBtb25vbWVycztcbn1cbmV4cG9ydCBmdW5jdGlvbiBmaW5kTW9ub21lcnMoaGVsbVN0cmluZykge1xuICAgIC8vQHRzLWlnbm9yZVxuICAgIGNvbnN0IHR5cGVzID0gT2JqZWN0LmtleXMob3JnLmhlbG0ud2ViZWRpdG9yLm1vbm9tZXJUeXBlTGlzdCgpKTtcbiAgICBjb25zdCBtb25vbWVycyA9IFtdO1xuICAgIGNvbnN0IG1vbm9tZXJfbmFtZXMgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHR5cGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICBtb25vbWVycy5wdXNoKG5ldyBzY2lsLmhlbG0uTW9ub21lcnMuZ2V0TW9ub21lclNldCh0eXBlc1tpXSkpO1xuICAgICAgICBPYmplY3Qua2V5cyhtb25vbWVyc1tpXSkuZm9yRWFjaChrID0+IHtcbiAgICAgICAgICAgIG1vbm9tZXJfbmFtZXMucHVzaChtb25vbWVyc1tpXVtrXS5pZCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBzcGxpdF9zdHJpbmcgPSBwYXJzZUhlbG0oaGVsbVN0cmluZyk7XG4gICAgcmV0dXJuIG5ldyBTZXQoc3BsaXRfc3RyaW5nLmZpbHRlcih2YWwgPT4gIW1vbm9tZXJfbmFtZXMuaW5jbHVkZXModmFsKSkpO1xufVxuZnVuY3Rpb24gc3BsaXQocywgc2VwKSB7XG4gICAgdmFyIHJldCA9IFtdO1xuICAgIHZhciBmcmFnID0gJyc7XG4gICAgdmFyIHBhcmVudGhlc2VzID0gMDtcbiAgICB2YXIgYnJhY2tldCA9IDA7XG4gICAgdmFyIGJyYWNlcyA9IDA7XG4gICAgdmFyIHF1b3RlID0gMDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgdmFyIGMgPSBzLnN1YnN0cmluZyhpLCBpICsgMSk7XG4gICAgICAgIGlmIChjID09IHNlcCAmJiBicmFja2V0ID09IDAgJiYgcGFyZW50aGVzZXMgPT0gMCAmJiBicmFjZXMgPT0gMCAmJiBxdW90ZSA9PSAwKSB7XG4gICAgICAgICAgICByZXQucHVzaChmcmFnKTtcbiAgICAgICAgICAgIGZyYWcgPSAnJztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGZyYWcgKz0gYztcbiAgICAgICAgICAgIGlmIChxdW90ZSA+IDApIHtcbiAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXFxcXCcgJiYgaSArIDEgPCBzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICArK2k7XG4gICAgICAgICAgICAgICAgICAgIHZhciBjMiA9IHMuc3Vic3RyaW5nKGksIGkgKyAxKTtcbiAgICAgICAgICAgICAgICAgICAgZnJhZyArPSBjMjtcbiAgICAgICAgICAgICAgICAgICAgYyArPSBjMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoYyA9PSAnXFxcIicpIHtcbiAgICAgICAgICAgICAgICBpZiAoIShpID4gMCAmJiBzLnN1YnN0cmluZyhpIC0gMSwgaSkgPT0gJ1xcXFwnKSlcbiAgICAgICAgICAgICAgICAgICAgcXVvdGUgPSBxdW90ZSA9PSAwID8gMSA6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjID09ICdbJylcbiAgICAgICAgICAgICAgICArK2JyYWNrZXQ7XG4gICAgICAgICAgICBlbHNlIGlmIChjID09ICddJylcbiAgICAgICAgICAgICAgICAtLWJyYWNrZXQ7XG4gICAgICAgICAgICBlbHNlIGlmIChjID09ICcoJylcbiAgICAgICAgICAgICAgICArK3BhcmVudGhlc2VzO1xuICAgICAgICAgICAgZWxzZSBpZiAoYyA9PSAnKScpXG4gICAgICAgICAgICAgICAgLS1wYXJlbnRoZXNlcztcbiAgICAgICAgICAgIGVsc2UgaWYgKGMgPT0gJ3snKVxuICAgICAgICAgICAgICAgICsrYnJhY2VzO1xuICAgICAgICAgICAgZWxzZSBpZiAoYyA9PSAnfScpXG4gICAgICAgICAgICAgICAgLS1icmFjZXM7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0LnB1c2goZnJhZyk7XG4gICAgcmV0dXJuIHJldDtcbn1cbmZ1bmN0aW9uIGRldGFjaEFubm90YXRpb24ocykge1xuICAgIHZhciByZXQgPSBfZGV0YWNoQXBwZW5kaXgocywgJ1xcXCInKTtcbiAgICBpZiAocmV0LnRhZyAhPSBudWxsKVxuICAgICAgICByZXR1cm4gcmV0O1xuICAgIHZhciByID0gX2RldGFjaEFwcGVuZGl4KHMsICdcXCcnKTtcbiAgICByZXR1cm4geyB0YWc6IHJldC50YWcsIHJlcGVhdDogci50YWcsIHN0cjogci5zdHIgfTtcbn1cbmZ1bmN0aW9uIF9kZXRhY2hBcHBlbmRpeChzLCBjKSB7XG4gICAgdmFyIHRhZyA9IG51bGw7XG4gICAgLy9AdHMtaWdub3JlXG4gICAgaWYgKHNjaWwuVXRpbHMuZW5kc3dpdGgocywgYykpIHtcbiAgICAgICAgdmFyIHAgPSBzLmxlbmd0aCAtIDE7XG4gICAgICAgIHdoaWxlIChwID4gMCkge1xuICAgICAgICAgICAgcCA9IHMubGFzdEluZGV4T2YoYywgcCAtIDEpO1xuICAgICAgICAgICAgaWYgKHAgPD0gMCB8fCBzLnN1YnN0cmluZyhwIC0gMSwgcCkgIT0gJ1xcXFwnKVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwID4gMCAmJiBwIDwgcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICB0YWcgPSBzLnN1YnN0cmluZyhwICsgMSwgcy5sZW5ndGggLSAxKTtcbiAgICAgICAgICAgIHMgPSBzLnN1YnN0cmluZygwLCBwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAodGFnICE9IG51bGwpXG4gICAgICAgIHRhZyA9IHRhZy5yZXBsYWNlKG5ldyBSZWdFeHAoJ1xcXFwnICsgYywgJ2cnKSwgYyk7XG4gICAgcmV0dXJuIHsgdGFnOiB1bmVzY2FwZSh0YWcpLCBzdHI6IHMgfTtcbn1cbmZ1bmN0aW9uIHVuZXNjYXBlKHMpIHtcbiAgICAvL0B0cy1pZ25vcmVcbiAgICBpZiAoc2NpbC5VdGlscy5pc051bGxPckVtcHR5KHMpKVxuICAgICAgICByZXR1cm4gcztcbiAgICByZXR1cm4gcy5yZXBsYWNlKC9bXFxcXF0uL2csIGZ1bmN0aW9uIChtKSB7XG4gICAgICAgIHN3aXRjaCAobSkge1xuICAgICAgICAgICAgY2FzZSAnXFxcXHInOlxuICAgICAgICAgICAgICAgIHJldHVybiAnXFxyJztcbiAgICAgICAgICAgIGNhc2UgJ1xcXFxuJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1xcbic7XG4gICAgICAgICAgICBjYXNlICdcXFxcdCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdcXHQnO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gbS5zdWJzdHJpbmcoMSk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbiIsIm1vZHVsZS5leHBvcnRzID0gREc7IiwibW9kdWxlLmV4cG9ydHMgPSBncm9rOyIsIm1vZHVsZS5leHBvcnRzID0gdWk7IiwibW9kdWxlLmV4cG9ydHMgPSB3dTsiLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuIiwiLy8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbl9fd2VicGFja19yZXF1aXJlX18ubiA9IChtb2R1bGUpID0+IHtcblx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG5cdFx0KCkgPT4gKG1vZHVsZVsnZGVmYXVsdCddKSA6XG5cdFx0KCkgPT4gKG1vZHVsZSk7XG5cdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuXHRyZXR1cm4gZ2V0dGVyO1xufTsiLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG4vKiBEbyBub3QgY2hhbmdlIHRoZXNlIGltcG9ydCBsaW5lcyB0byBtYXRjaCBleHRlcm5hbCBtb2R1bGVzIGluIHdlYnBhY2sgY29uZmlndXJhdGlvbiAqL1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB7IFJHUk9VUF9DQVBfR1JPVVBfTkFNRSwgUkdST1VQX0xBQkVMLCBTTUlMRVMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBIZWxtV2ViRWRpdG9yIH0gZnJvbSAnLi9oZWxtLXdlYi1lZGl0b3InO1xuaW1wb3J0IHsgSGVsbUNlbGxSZW5kZXJlciB9IGZyb20gJy4vY2VsbC1yZW5kZXJlcic7XG5pbXBvcnQgeyBOb3RhdGlvbkNvbnZlcnRlciB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy9ub3RhdGlvbi1jb252ZXJ0ZXInO1xuaW1wb3J0IHsgZmluZE1vbm9tZXJzIH0gZnJvbSAnLi91dGlscyc7XG5leHBvcnQgY29uc3QgX3BhY2thZ2UgPSBuZXcgREcuUGFja2FnZSgpO1xubGV0IG1vbm9tZXJMaWIgPSBudWxsO1xuLy90YWdzOiBpbml0XG5leHBvcnQgZnVuY3Rpb24gaW5pdEhlbG0oKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIGRvam8ucmVhZHkoZnVuY3Rpb24gKCkgeyByZXNvbHZlKG51bGwpOyB9KTtcbiAgICAgICAgICAgIH0pLCB5aWVsZCBncm9rLmZ1bmN0aW9ucy5jYWxsKCdCaW86Z2V0QmlvTGliJyldKS50aGVuKChbXywgbGliXSkgPT4ge1xuICAgICAgICAgICAgbW9ub21lckxpYiA9IGxpYjtcbiAgICAgICAgICAgIHJld3JpdGVMaWJyYXJpZXMoKTtcbiAgICAgICAgICAgIG1vbm9tZXJMaWIub25DaGFuZ2VkLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICAgICAgICAgIHJld3JpdGVMaWJyYXJpZXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIHJld3JpdGVMaWJyYXJpZXMoKSB7XG4gICAgb3JnLmhlbG0ud2ViZWRpdG9yLk1vbm9tZXJzLmNsZWFyKCk7XG4gICAgbW9ub21lckxpYi5nZXRUeXBlcygpLmZvckVhY2godHlwZSA9PiB7XG4gICAgICAgIGNvbnN0IG1tcyA9IG1vbm9tZXJMaWIuZ2V0TW9ub21lck5hbWVzQnlUeXBlKHR5cGUpO1xuICAgICAgICBtbXMuZm9yRWFjaChzeW1ib2wgPT4ge1xuICAgICAgICAgICAgbGV0IGlzQnJva2VuID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBtb25vbWVyID0gbW9ub21lckxpYi5nZXRNb25vbWVyKHR5cGUsIHN5bWJvbCk7XG4gICAgICAgICAgICBjb25zdCB3ZWJFZGl0b3JNb25vbWVyID0ge1xuICAgICAgICAgICAgICAgIGlkOiBzeW1ib2wsXG4gICAgICAgICAgICAgICAgbTogbW9ub21lci5tb2xmaWxlLFxuICAgICAgICAgICAgICAgIG46IG1vbm9tZXIubmFtZSxcbiAgICAgICAgICAgICAgICBuYTogbW9ub21lci5uYXR1cmFsQW5hbG9nLFxuICAgICAgICAgICAgICAgIHJzOiBtb25vbWVyLnJncm91cHMubGVuZ3RoLFxuICAgICAgICAgICAgICAgIHR5cGU6IG1vbm9tZXIucG9seW1lclR5cGUsXG4gICAgICAgICAgICAgICAgbXQ6IG1vbm9tZXIubW9ub21lclR5cGUsXG4gICAgICAgICAgICAgICAgYXQ6IHt9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKG1vbm9tZXIucmdyb3Vwcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgd2ViRWRpdG9yTW9ub21lci5ycyA9IG1vbm9tZXIucmdyb3Vwcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgY29uc3QgYXQgPSB7fTtcbiAgICAgICAgICAgICAgICBtb25vbWVyLnJncm91cHMuZm9yRWFjaChpdCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGF0W2l0W1JHUk9VUF9MQUJFTF1dID0gaXRbUkdST1VQX0NBUF9HUk9VUF9OQU1FXTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB3ZWJFZGl0b3JNb25vbWVyLmF0ID0gYXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChtb25vbWVyLmRhdGFbU01JTEVTXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgd2ViRWRpdG9yTW9ub21lci5ycyA9IE9iamVjdC5rZXlzKGdldFJTKG1vbm9tZXIuZGF0YVtTTUlMRVNdLnRvU3RyaW5nKCkpKS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgd2ViRWRpdG9yTW9ub21lci5hdCA9IGdldFJTKG1vbm9tZXIuZGF0YVtTTUlMRVNdLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGlzQnJva2VuID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICghaXNCcm9rZW4pXG4gICAgICAgICAgICAgICAgb3JnLmhlbG0ud2ViZWRpdG9yLk1vbm9tZXJzLmFkZE9uZU1vbm9tZXIod2ViRWRpdG9yTW9ub21lcik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIC8vIE9ic29sZXRlXG4gICAgbGV0IGdyaWQgPSBncm9rLnNoZWxsLnR2LmdyaWQ7XG4gICAgZ3JpZC5pbnZhbGlkYXRlKCk7XG59XG4vL25hbWU6IGhlbG1DZWxsUmVuZGVyZXJcbi8vdGFnczogY2VsbFJlbmRlcmVyXG4vL21ldGEuY2VsbFR5cGU6IGhlbG1cbi8vbWV0YS5jb2x1bW5UYWdzOiB1bml0cz1oZWxtXG4vL291dHB1dDogZ3JpZF9jZWxsX3JlbmRlcmVyIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIGhlbG1DZWxsUmVuZGVyZXIoKSB7XG4gICAgcmV0dXJuIG5ldyBIZWxtQ2VsbFJlbmRlcmVyKCk7XG59XG4vL3RhZ3M6IGNlbGxFZGl0b3Jcbi8vZGVzY3JpcHRpb246IE1hY3JvbW9sZWN1bGVcbi8vaW5wdXQ6IGdyaWRfY2VsbCBjZWxsXG5leHBvcnQgZnVuY3Rpb24gZWRpdE1vbGVjdWxlQ2VsbChjZWxsKSB7XG4gICAgY29uc3QgbW9ub21lcnMgPSBmaW5kTW9ub21lcnMoY2VsbC5jZWxsLnZhbHVlKTtcbiAgICBpZiAoY2VsbC5ncmlkQ29sdW1uLmNvbHVtbi50YWdzW0RHLlRBR1MuVU5JVFNdID09PSAnaGVsbScgJiYgbW9ub21lcnMuc2l6ZSA9PT0gMClcbiAgICAgICAgd2ViRWRpdG9yKGNlbGwpO1xuICAgIGVsc2VcbiAgICAgICAgZ3Jvay5zaGVsbC53YXJuaW5nKGBNb25vbWVycyAke0FycmF5LmZyb20obW9ub21lcnMpLmpvaW4oJywgJyl9IGFyZSBhYnNlbnQhYCk7XG59XG4vL25hbWU6IE9wZW4gSGVsbSBXZWIgRWRpdG9yXG4vL2Rlc2NyaXB0aW9uOiBBZGRzIGVkaXRvclxuLy9tZXRhLmFjdGlvbjogT3BlbiBIZWxtIFdlYiBFZGl0b3Jcbi8vaW5wdXQ6IHN0cmluZyBtb2wgeyBzZW1UeXBlOiBNYWNyb21vbGVjdWxlIH1cbmV4cG9ydCBmdW5jdGlvbiBvcGVuRWRpdG9yKG1vbCkge1xuICAgIGxldCBkZiA9IGdyb2suc2hlbGwudHYuZ3JpZC5kYXRhRnJhbWU7XG4gICAgbGV0IGNvbnZlcnRlciA9IG5ldyBOb3RhdGlvbkNvbnZlcnRlcihkZi5jb2x1bW5zLmJ5U2VtVHlwZSgnTWFjcm9tb2xlY3VsZScpKTtcbiAgICBjb25zdCByZXNTdHIgPSBjb252ZXJ0ZXIuY29udmVydFN0cmluZ1RvSGVsbShtb2wsICcvJyk7XG4gICAgd2ViRWRpdG9yKHVuZGVmaW5lZCwgcmVzU3RyKTtcbn1cbi8vbmFtZTogUHJvcGVydGllc1xuLy90YWdzOiBwYW5lbCwgd2lkZ2V0c1xuLy9pbnB1dDogc3RyaW5nIGhlbG1TdHJpbmcge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG4vL291dHB1dDogd2lkZ2V0IHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIHByb3BlcnRpZXNQYW5lbChoZWxtU3RyaW5nKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgbGV0IGdyaWQgPSBncm9rLnNoZWxsLnR2LmdyaWQ7XG4gICAgICAgIGxldCBwYXJlbnQgPSBncmlkLnJvb3QucGFyZW50RWxlbWVudDtcbiAgICAgICAgY29uc3QgaG9zdCA9IHVpLmRpdihbXSk7XG4gICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZChob3N0KTtcbiAgICAgICAgbGV0IGVkaXRvciA9IG5ldyBKU0RyYXcyLkVkaXRvcihob3N0LCB7IHZpZXdvbmx5OiB0cnVlIH0pO1xuICAgICAgICBob3N0LnN0eWxlLndpZHRoID0gJzBweCc7XG4gICAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gJzBweCc7XG4gICAgICAgIGVkaXRvci5zZXRIZWxtKGhlbG1TdHJpbmcpO1xuICAgICAgICBsZXQgZm9ybXVsYSA9IGVkaXRvci5nZXRGb3JtdWxhKHRydWUpO1xuICAgICAgICBsZXQgbW9sV2VpZ2h0ID0gTWF0aC5yb3VuZChlZGl0b3IuZ2V0TW9sV2VpZ2h0KCkgKiAxMDApIC8gMTAwO1xuICAgICAgICBsZXQgY29lZiA9IE1hdGgucm91bmQoZWRpdG9yLmdldEV4dGluY3Rpb25Db2VmZmljaWVudCh0cnVlKSAqIDEwMCkgLyAxMDA7XG4gICAgICAgIHBhcmVudC5sYXN0Q2hpbGQucmVtb3ZlKCk7XG4gICAgICAgIHJldHVybiBuZXcgREcuV2lkZ2V0KHVpLnRhYmxlRnJvbU1hcCh7XG4gICAgICAgICAgICAnZm9ybXVsYSc6IGZvcm11bGEucmVwbGFjZSgvPHN1Yj4vZywgJycpLnJlcGxhY2UoLzxcXC9zdWI+L2csICcnKSxcbiAgICAgICAgICAgICdtb2xlY3VsYXIgd2VpZ2h0JzogbW9sV2VpZ2h0LFxuICAgICAgICAgICAgJ2V4dGluY3Rpb24gY29lZmZpY2llbnQnOiBjb2VmLFxuICAgICAgICB9KSk7XG4gICAgfSk7XG59XG5mdW5jdGlvbiB3ZWJFZGl0b3IoY2VsbCwgdmFsdWUpIHtcbiAgICBsZXQgdmlldyA9IHVpLmRpdigpO1xuICAgIG9yZy5oZWxtLndlYmVkaXRvci5Nb2xWaWV3ZXIubW9sc2NhbGUgPSAwLjg7XG4gICAgbGV0IGFwcCA9IG5ldyBzY2lsLmhlbG0uQXBwKHZpZXcsIHtcbiAgICAgICAgc2hvd2Fib3V0OiBmYWxzZSxcbiAgICAgICAgbWV4Zm9udHNpemU6ICc5MCUnLFxuICAgICAgICBtZXhybmFwaW5vbnRhYjogdHJ1ZSxcbiAgICAgICAgdG9wbWFyZ2luOiAyMCxcbiAgICAgICAgbWV4bW9ub21lcnN0YWI6IHRydWUsXG4gICAgICAgIHNlcXVlbmNldmlld29ubHk6IGZhbHNlLFxuICAgICAgICBtZXhmYXZvcml0ZWZpcnN0OiB0cnVlLFxuICAgICAgICBtZXhmaWx0ZXI6IHRydWVcbiAgICB9KTtcbiAgICB2YXIgc2l6ZXMgPSBhcHAuY2FsY3VsYXRlU2l6ZXMoKTtcbiAgICBhcHAuY2FudmFzLnJlc2l6ZShzaXplcy5yaWdodHdpZHRoIC0gMTAwLCBzaXplcy50b3BoZWlnaHQgLSAyMTApO1xuICAgIHZhciBzID0geyB3aWR0aDogc2l6ZXMucmlnaHR3aWR0aCAtIDEwMCArICdweCcsIGhlaWdodDogc2l6ZXMuYm90dG9taGVpZ2h0ICsgJ3B4JyB9O1xuICAgIC8vQHRzLWlnbm9yZVxuICAgIHNjaWwuYXBwbHkoYXBwLnNlcXVlbmNlLnN0eWxlLCBzKTtcbiAgICAvL0B0cy1pZ25vcmVcbiAgICBzY2lsLmFwcGx5KGFwcC5ub3RhdGlvbi5zdHlsZSwgcyk7XG4gICAgcyA9IHsgd2lkdGg6IHNpemVzLnJpZ2h0d2lkdGggKyAncHgnLCBoZWlnaHQ6IChzaXplcy5ib3R0b21oZWlnaHQgKyBhcHAudG9vbGJhcmhlaWdodCkgKyAncHgnIH07XG4gICAgLy9AdHMtaWdub3JlXG4gICAgc2NpbC5hcHBseShhcHAucHJvcGVydGllcy5wYXJlbnQuc3R5bGUsIHMpO1xuICAgIGFwcC5zdHJ1Y3R1cmV2aWV3LnJlc2l6ZShzaXplcy5yaWdodHdpZHRoLCBzaXplcy5ib3R0b21oZWlnaHQgKyBhcHAudG9vbGJhcmhlaWdodCk7XG4gICAgYXBwLm1leC5yZXNpemUoc2l6ZXMudG9waGVpZ2h0IC0gODApO1xuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodHlwZW9mIGNlbGwgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBhcHAuY2FudmFzLmhlbG0uc2V0U2VxdWVuY2UoY2VsbC5jZWxsLnZhbHVlLCAnSEVMTScpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgYXBwLmNhbnZhcy5oZWxtLnNldFNlcXVlbmNlKHZhbHVlLCAnSEVMTScpO1xuICAgICAgICB9XG4gICAgfSwgMjAwKTtcbiAgICAvL0B0cy1pZ25vcmVcbiAgICB1aS5kaWFsb2coeyBzaG93SGVhZGVyOiBmYWxzZSwgc2hvd0Zvb3RlcjogdHJ1ZSB9KVxuICAgICAgICAuYWRkKHZpZXcpXG4gICAgICAgIC5vbk9LKCgpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBjZWxsICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY2VsbC5jZWxsLnZhbHVlID0gYXBwLmNhbnZhcy5nZXRIZWxtKHRydWUpLnJlcGxhY2UoLzxcXC9zcGFuPi9nLCAnJykucmVwbGFjZSgvPHNwYW4gc3R5bGU9J2JhY2tncm91bmQ6I2JiZjsnPi9nLCAnJyk7XG4gICAgICAgIH1cbiAgICB9KS5zaG93KHsgbW9kYWw6IHRydWUsIGZ1bGxTY3JlZW46IHRydWUgfSk7XG59XG5mdW5jdGlvbiBhY2Nlc3NTZXJ2ZXIodXJsLCBrZXkpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICdBY2NlcHQnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZmV0Y2godXJsLCBwYXJhbXMpO1xuICAgICAgICBjb25zdCBqc29uID0geWllbGQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgICByZXR1cm4ganNvbltrZXldO1xuICAgIH0pO1xufVxuLy9uYW1lOiBoZWxtVG9GYXN0YVxuLy9pbnB1dDogc3RyaW5nIGhlbG1TdHJpbmcge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG4vL291dHB1dDogc3RyaW5nIHJlc1xuZXhwb3J0IGZ1bmN0aW9uIGhlbG1Ub0Zhc3RhKGhlbG1TdHJpbmcpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCB1cmwgPSBgaHR0cDovL2xvY2FsaG9zdDo4MDgxL1dlYlNlcnZpY2Uvc2VydmljZS9GYXN0YS9Qcm9kdWNlLyR7aGVsbVN0cmluZ31gO1xuICAgICAgICByZXR1cm4geWllbGQgYWNjZXNzU2VydmVyKHVybCwgJ0Zhc3RhRmlsZScpO1xuICAgIH0pO1xufVxuLy9uYW1lOiBoZWxtVG9STkFcbi8vZGVzY3JpcHRpb246IGNvbnZlcnRzIHRvIHJuYSBhbmFsb2d1ZSBzZXF1ZW5jZVxuLy9pbnB1dDogc3RyaW5nIGhlbG1TdHJpbmcge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG4vL291dHB1dDogc3RyaW5nIHJlc1xuZXhwb3J0IGZ1bmN0aW9uIGhlbG1Ub1JOQShoZWxtU3RyaW5nKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgdXJsID0gYGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MS9XZWJTZXJ2aWNlL3NlcnZpY2UvRmFzdGEvQ29udmVydC9STkEvJHtoZWxtU3RyaW5nfWA7XG4gICAgICAgIHJldHVybiB5aWVsZCBhY2Nlc3NTZXJ2ZXIodXJsLCAnU2VxdWVuY2UnKTtcbiAgICB9KTtcbn1cbi8vbmFtZTogaGVsbVRvUGVwdGlkZVxuLy9kZXNjcmlwdGlvbjogY29udmVydHMgdG8gcGVwdGlkZSBhbmFsb2d1ZSBzZXF1ZW5jZVxuLy9pbnB1dDogc3RyaW5nIGhlbG1TdHJpbmcge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG4vL291dHB1dDogc3RyaW5nIHJlc1xuZXhwb3J0IGZ1bmN0aW9uIGhlbG1Ub1BlcHRpZGUoaGVsbVN0cmluZykge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IGBodHRwOi8vbG9jYWxob3N0OjgwODEvV2ViU2VydmljZS9zZXJ2aWNlL0Zhc3RhL0NvbnZlcnQvUEVQVElERS8ke2hlbG1TdHJpbmd9YDtcbiAgICAgICAgcmV0dXJuIHlpZWxkIGFjY2Vzc1NlcnZlcih1cmwsICdTZXF1ZW5jZScpO1xuICAgIH0pO1xufVxuLy9uYW1lOiBoZWxtVG9TbWlsZXNcbi8vZGVzY3JpcHRpb246IGNvbnZlcnRzIHRvIHNtaWxlc1xuLy9pbnB1dDogc3RyaW5nIGhlbG1TdHJpbmcge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG4vL291dHB1dDogc3RyaW5nIHNtaWxlcyB7c2VtVHlwZTogTW9sZWN1bGV9XG5leHBvcnQgZnVuY3Rpb24gaGVsbVRvU21pbGVzKGhlbG1TdHJpbmcpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCB1cmwgPSBgaHR0cDovL2xvY2FsaG9zdDo4MDgxL1dlYlNlcnZpY2Uvc2VydmljZS9TTUlMRVMvJHtoZWxtU3RyaW5nfWA7XG4gICAgICAgIHJldHVybiB5aWVsZCBhY2Nlc3NTZXJ2ZXIodXJsLCAnU01JTEVTJyk7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBnZXRSUyhzbWlsZXMpIHtcbiAgICBjb25zdCBuZXdTID0gc21pbGVzLm1hdGNoKC8oPzw9XFxbKVteXFxdW10qKD89XSkvZ20pO1xuICAgIGNvbnN0IHJlcyA9IHt9O1xuICAgIGxldCBlbCA9ICcnO1xuICAgIGxldCBkaWdpdDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5ld1MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKG5ld1NbaV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKC9cXGQvLnRlc3QobmV3U1tpXSkpIHtcbiAgICAgICAgICAgICAgICBkaWdpdCA9IG5ld1NbaV1bbmV3U1tpXS5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgICAgICBuZXdTW2ldID0gbmV3U1tpXS5yZXBsYWNlKC9bMC05XS9nLCAnJyk7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBuZXdTW2ldLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuZXdTW2ldW2pdICE9ICc6JylcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsICs9IG5ld1NbaV1bal07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJlc1snUicgKyBkaWdpdF0gPSBlbDtcbiAgICAgICAgICAgICAgICBlbCA9ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXM7XG59XG4vL25hbWU6IGdldE1vbGZpbGVzXG4vL2lucHV0OiBjb2x1bW4gY29sIHtzZW1UeXBlOiBNYWNyb21vbGVjdWxlfVxuLy9vdXRwdXQ6IGNvbHVtbiByZXMgXG5leHBvcnQgZnVuY3Rpb24gZ2V0TW9sZmlsZXMoY29sKSB7XG4gICAgbGV0IGdyaWQgPSBncm9rLnNoZWxsLnR2LmdyaWQ7XG4gICAgbGV0IHBhcmVudCA9IGdyaWQucm9vdC5wYXJlbnRFbGVtZW50O1xuICAgIGxldCByZXMgPSBERy5Db2x1bW4uc3RyaW5nKCdtb2xzJywgY29sLmxlbmd0aCk7XG4gICAgY29uc3QgaG9zdCA9IHVpLmRpdihbXSk7XG4gICAgcGFyZW50LmFwcGVuZENoaWxkKGhvc3QpO1xuICAgIGxldCBlZGl0b3IgPSBuZXcgSlNEcmF3Mi5FZGl0b3IoaG9zdCwgeyB2aWV3b25seTogdHJ1ZSB9KTtcbiAgICBob3N0LnN0eWxlLndpZHRoID0gJzBweCc7XG4gICAgaG9zdC5zdHlsZS5oZWlnaHQgPSAnMHB4JztcbiAgICByZXMuaW5pdCgoaSkgPT4ge1xuICAgICAgICBlZGl0b3Iuc2V0SGVsbShjb2wuZ2V0KGkpKTtcbiAgICAgICAgbGV0IG1vbCA9IGVkaXRvci5nZXRNb2xmaWxlKCk7XG4gICAgICAgIHJldHVybiBtb2w7XG4gICAgfSk7XG4gICAgcGFyZW50Lmxhc3RDaGlsZC5yZW1vdmUoKTtcbiAgICByZXR1cm4gcmVzO1xufVxuLy9uYW1lOiBoZWxtV2ViRWRpdG9yXG4vL291dHB1dDogb2JqZWN0XG5leHBvcnQgZnVuY3Rpb24gaGVsbVdlYkVkaXRvcigpIHtcbiAgICByZXR1cm4gbmV3IEhlbG1XZWJFZGl0b3IoKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==