"use strict"; (self["webpackChunk_core_volunteer_app"] = self["webpackChunk_core_volunteer_app"] || []).push([["vendors-node_modules_react-dom_client_js-node_modules_react-is_index_js-node_modules_react-ph-987385"],{ /***/ "../../../node_modules/react-dom/client.js": /*!*************************************************!*\ !*** ../../../node_modules/react-dom/client.js ***! \*************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { var m = __webpack_require__(/*! react-dom */ "../../../node_modules/react-dom/index.js"); if (false) {} else { var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; exports.createRoot = function(c, o) { i.usingClientEntryPoint = true; try { return m.createRoot(c, o); } finally { i.usingClientEntryPoint = false; } }; exports.hydrateRoot = function(c, h, o) { i.usingClientEntryPoint = true; try { return m.hydrateRoot(c, h, o); } finally { i.usingClientEntryPoint = false; } }; } /***/ }), /***/ "../../../node_modules/react-dom/index.js": /*!************************************************!*\ !*** ../../../node_modules/react-dom/index.js ***! \************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { function checkDCE() { /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */ if ( typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function' ) { return; } if (true) { // This branch is unreachable because this function is only called // in production, but the condition is true only in development. // Therefore if the branch is still here, dead code elimination wasn't // properly applied. // Don't change the message. React DevTools relies on it. Also make sure // this message doesn't occur elsewhere in this function, or it will cause // a false positive. throw new Error('^_^'); } try { // Verify that the code above has been dead code eliminated (DCE'd). __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE); } catch (err) { // DevTools shouldn't crash React, no matter what. // We should still report in case we break this code. console.error(err); } } if (false) {} else { module.exports = __webpack_require__(/*! ./cjs/react-dom.development.js */ "../../../node_modules/react-dom/cjs/react-dom.development.js"); } /***/ }), /***/ "../../../node_modules/react-is/cjs/react-is.development.js": /*!******************************************************************!*\ !*** ../../../node_modules/react-is/cjs/react-is.development.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, exports) => { /** * @license React * react-is.development.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ if (true) { (function() { 'use strict'; // ATTENTION // When adding new symbols to this file, // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols' // The Symbol used to tag the ReactElement-like types. var REACT_ELEMENT_TYPE = Symbol.for('react.element'); var REACT_PORTAL_TYPE = Symbol.for('react.portal'); var REACT_FRAGMENT_TYPE = Symbol.for('react.fragment'); var REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode'); var REACT_PROFILER_TYPE = Symbol.for('react.profiler'); var REACT_PROVIDER_TYPE = Symbol.for('react.provider'); var REACT_CONTEXT_TYPE = Symbol.for('react.context'); var REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context'); var REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref'); var REACT_SUSPENSE_TYPE = Symbol.for('react.suspense'); var REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list'); var REACT_MEMO_TYPE = Symbol.for('react.memo'); var REACT_LAZY_TYPE = Symbol.for('react.lazy'); var REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen'); // ----------------------------------------------------------------------------- var enableScopeAPI = false; // Experimental Create Event Handle API. var enableCacheElement = false; var enableTransitionTracing = false; // No known bugs, but needs performance testing var enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber // stuff. Intended to enable React core members to more easily debug scheduling // issues in DEV builds. var enableDebugTracing = false; // Track which Fiber(s) schedule render work. var REACT_MODULE_REFERENCE; { REACT_MODULE_REFERENCE = Symbol.for('react.module.reference'); } function isValidElementType(type) { if (typeof type === 'string' || typeof type === 'function') { return true; } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill). if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) { return true; } if (typeof type === 'object' && type !== null) { if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object // types supported by any Flight configuration anywhere since // we don't know which Flight build this will end up being used // with. type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) { return true; } } return false; } function typeOf(object) { if (typeof object === 'object' && object !== null) { var $$typeof = object.$$typeof; switch ($$typeof) { case REACT_ELEMENT_TYPE: var type = object.type; switch (type) { case REACT_FRAGMENT_TYPE: case REACT_PROFILER_TYPE: case REACT_STRICT_MODE_TYPE: case REACT_SUSPENSE_TYPE: case REACT_SUSPENSE_LIST_TYPE: return type; default: var $$typeofType = type && type.$$typeof; switch ($$typeofType) { case REACT_SERVER_CONTEXT_TYPE: case REACT_CONTEXT_TYPE: case REACT_FORWARD_REF_TYPE: case REACT_LAZY_TYPE: case REACT_MEMO_TYPE: case REACT_PROVIDER_TYPE: return $$typeofType; default: return $$typeof; } } case REACT_PORTAL_TYPE: return $$typeof; } } return undefined; } var ContextConsumer = REACT_CONTEXT_TYPE; var ContextProvider = REACT_PROVIDER_TYPE; var Element = REACT_ELEMENT_TYPE; var ForwardRef = REACT_FORWARD_REF_TYPE; var Fragment = REACT_FRAGMENT_TYPE; var Lazy = REACT_LAZY_TYPE; var Memo = REACT_MEMO_TYPE; var Portal = REACT_PORTAL_TYPE; var Profiler = REACT_PROFILER_TYPE; var StrictMode = REACT_STRICT_MODE_TYPE; var Suspense = REACT_SUSPENSE_TYPE; var SuspenseList = REACT_SUSPENSE_LIST_TYPE; var hasWarnedAboutDeprecatedIsAsyncMode = false; var hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated function isAsyncMode(object) { { if (!hasWarnedAboutDeprecatedIsAsyncMode) { hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.'); } } return false; } function isConcurrentMode(object) { { if (!hasWarnedAboutDeprecatedIsConcurrentMode) { hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.'); } } return false; } function isContextConsumer(object) { return typeOf(object) === REACT_CONTEXT_TYPE; } function isContextProvider(object) { return typeOf(object) === REACT_PROVIDER_TYPE; } function isElement(object) { return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; } function isForwardRef(object) { return typeOf(object) === REACT_FORWARD_REF_TYPE; } function isFragment(object) { return typeOf(object) === REACT_FRAGMENT_TYPE; } function isLazy(object) { return typeOf(object) === REACT_LAZY_TYPE; } function isMemo(object) { return typeOf(object) === REACT_MEMO_TYPE; } function isPortal(object) { return typeOf(object) === REACT_PORTAL_TYPE; } function isProfiler(object) { return typeOf(object) === REACT_PROFILER_TYPE; } function isStrictMode(object) { return typeOf(object) === REACT_STRICT_MODE_TYPE; } function isSuspense(object) { return typeOf(object) === REACT_SUSPENSE_TYPE; } function isSuspenseList(object) { return typeOf(object) === REACT_SUSPENSE_LIST_TYPE; } exports.ContextConsumer = ContextConsumer; exports.ContextProvider = ContextProvider; exports.Element = Element; exports.ForwardRef = ForwardRef; exports.Fragment = Fragment; exports.Lazy = Lazy; exports.Memo = Memo; exports.Portal = Portal; exports.Profiler = Profiler; exports.StrictMode = StrictMode; exports.Suspense = Suspense; exports.SuspenseList = SuspenseList; exports.isAsyncMode = isAsyncMode; exports.isConcurrentMode = isConcurrentMode; exports.isContextConsumer = isContextConsumer; exports.isContextProvider = isContextProvider; exports.isElement = isElement; exports.isForwardRef = isForwardRef; exports.isFragment = isFragment; exports.isLazy = isLazy; exports.isMemo = isMemo; exports.isPortal = isPortal; exports.isProfiler = isProfiler; exports.isStrictMode = isStrictMode; exports.isSuspense = isSuspense; exports.isSuspenseList = isSuspenseList; exports.isValidElementType = isValidElementType; exports.typeOf = typeOf; })(); } /***/ }), /***/ "../../../node_modules/react-is/index.js": /*!***********************************************!*\ !*** ../../../node_modules/react-is/index.js ***! \***********************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { if (false) {} else { module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "../../../node_modules/react-is/cjs/react-is.development.js"); } /***/ }), /***/ "../../../node_modules/react-phone-hooks/index.js": /*!********************************************************!*\ !*** ../../../node_modules/react-phone-hooks/index.js ***! \********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ checkValidity: () => (/* binding */ checkValidity), /* harmony export */ cleanInput: () => (/* binding */ cleanInput), /* harmony export */ displayFormat: () => (/* binding */ displayFormat), /* harmony export */ getCountry: () => (/* binding */ getCountry), /* harmony export */ getDefaultISO2Code: () => (/* binding */ getDefaultISO2Code), /* harmony export */ getFormattedNumber: () => (/* binding */ getFormattedNumber), /* harmony export */ getMetadata: () => (/* binding */ getMetadata), /* harmony export */ getRawValue: () => (/* binding */ getRawValue), /* harmony export */ parsePhoneNumber: () => (/* binding */ parsePhoneNumber), /* harmony export */ useMask: () => (/* binding */ useMask), /* harmony export */ usePhone: () => (/* binding */ usePhone) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./locale */ "../../../node_modules/react-phone-hooks/locale.js"); /* harmony import */ var _metadata_countries_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./metadata/countries.json */ "../../../node_modules/react-phone-hooks/metadata/countries.json"); /* harmony import */ var _metadata_timezones_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./metadata/timezones.json */ "../../../node_modules/react-phone-hooks/metadata/timezones.json"); /* harmony import */ var _metadata_validations_json__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./metadata/validations.json */ "../../../node_modules/react-phone-hooks/metadata/validations.json"); "use client"; const slots = new Set("."); const getMetadata = (rawValue, countriesList = _metadata_countries_json__WEBPACK_IMPORTED_MODULE_2__, country = null) => { country = country == null && rawValue.startsWith("44") ? "gb" : country; if (country != null) countriesList = countriesList.filter((c) => c[0] === country); return [...countriesList].sort((a, b) => b[2].length - a[2].length).find((c) => rawValue.startsWith(c[2])); }; const getCountry = (countryCode) => { return _metadata_countries_json__WEBPACK_IMPORTED_MODULE_2__.find(([iso]) => iso === countryCode); }; const getRawValue = (value) => { if (typeof value === "string") return value.replaceAll(/\D/g, ""); return [value === null || value === void 0 ? void 0 : value.countryCode, value === null || value === void 0 ? void 0 : value.areaCode, value === null || value === void 0 ? void 0 : value.phoneNumber].filter(Boolean).join(""); }; const displayFormat = (value) => { /** Returns the formatted value that can be displayed as an actual input value */ return value.replace(/[.\s\D]+$/, "").replace(/(\(\d+)$/, "$1)"); }; const cleanInput = (input, pattern) => { input = input.match(/\d/g) || []; return Array.from(pattern, c => input[0] === c || slots.has(c) ? input.shift() || c : c); }; const getFormattedNumber = (rawValue, pattern) => { var _a; /** Returns the reformatted input value based on the given pattern */ pattern = pattern || ((_a = getMetadata(rawValue)) === null || _a === void 0 ? void 0 : _a[3]) || ""; return displayFormat(cleanInput(rawValue, pattern.replaceAll(/\d/g, ".")).join("")); }; const checkValidity = (metadata, strict = false) => { /** Checks if both the area code and phone number match the validation pattern */ const pattern = _metadata_validations_json__WEBPACK_IMPORTED_MODULE_4__[metadata.isoCode][Number(strict)]; return new RegExp(pattern).test([metadata.areaCode, metadata.phoneNumber].filter(Boolean).join("")); }; const getDefaultISO2Code = () => { /** Returns the default ISO2 code, based on the user's timezone */ return (_metadata_timezones_json__WEBPACK_IMPORTED_MODULE_3__[Intl.DateTimeFormat().resolvedOptions().timeZone] || "") || "us"; }; const parsePhoneNumber = (formattedNumber, countriesList = _metadata_countries_json__WEBPACK_IMPORTED_MODULE_2__, country = null) => { var _a; const value = getRawValue(formattedNumber); const isoCode = ((_a = getMetadata(value, countriesList, country)) === null || _a === void 0 ? void 0 : _a[0]) || getDefaultISO2Code(); const countryCodePattern = /\+\d+/; const areaCodePattern = /^\+\d+\s\(?(\d+)/; /** Parses the matching partials of the phone number by predefined regex patterns */ const countryCodeMatch = formattedNumber ? (formattedNumber.match(countryCodePattern) || []) : []; const areaCodeMatch = formattedNumber ? (formattedNumber.match(areaCodePattern) || []) : []; /** Converts the parsed values of the country and area codes to integers if values present */ const countryCode = countryCodeMatch.length > 0 ? parseInt(countryCodeMatch[0]) : null; const areaCode = areaCodeMatch.length > 1 ? areaCodeMatch[1] : null; /** Parses the phone number by removing the country and area codes from the formatted value */ const phoneNumberPattern = new RegExp(`^${countryCode}${(areaCode || "")}(\\d+)`); const phoneNumberMatch = value ? (value.match(phoneNumberPattern) || []) : []; const phoneNumber = phoneNumberMatch.length > 1 ? phoneNumberMatch[1] : null; return { countryCode, areaCode, phoneNumber, isoCode }; }; const useMask = (pattern) => { const backRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false); const clean = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((input) => { return cleanInput(input, pattern.replaceAll(/\d/g, ".")); }, [pattern]); const first = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => { return [...pattern].findIndex(c => slots.has(c)); }, [pattern]); const prev = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)((j = 0) => { return Array.from(pattern.replaceAll(/\d/g, "."), (c, i) => { return slots.has(c) ? j = i + 1 : j; }); }, [pattern]); const onKeyDown = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((event) => { backRef.current = event.key === "Backspace"; }, []); const onInput = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({ target }) => { const [i, j] = [target.selectionStart, target.selectionEnd].map((i) => { i = clean(target.value.slice(0, i)).findIndex(c => slots.has(c)); return i < 0 ? prev[prev.length - 1] : backRef.current ? prev[i - 1] || first : i; }); target.value = getFormattedNumber(target.value, pattern); target.setSelectionRange(i, j); backRef.current = false; }, [clean, first, pattern, prev]); return { onInput, onKeyDown, }; }; const usePhone = ({ query = "", locale = "", country = "", distinct = false, countryCode = "", initialValue = "", onlyCountries = [], excludeCountries = [], preferredCountries = [], disableParentheses = false, }) => { var _a; const defaultValue = getRawValue(initialValue); const defaultMetadata = getMetadata(defaultValue) || _metadata_countries_json__WEBPACK_IMPORTED_MODULE_2__.find(([iso]) => iso === country); const defaultValueState = defaultValue || ((_a = _metadata_countries_json__WEBPACK_IMPORTED_MODULE_2__.find(([iso]) => iso === (defaultMetadata === null || defaultMetadata === void 0 ? void 0 : defaultMetadata[0]))) === null || _a === void 0 ? void 0 : _a[2]); const [value, setValue] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(defaultValueState); const countriesOnly = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => { const allowList = onlyCountries.length > 0 ? onlyCountries : _metadata_countries_json__WEBPACK_IMPORTED_MODULE_2__.map(([iso]) => iso); return _metadata_countries_json__WEBPACK_IMPORTED_MODULE_2__.filter(([iso, _1, dial]) => { return (allowList.includes(iso) || allowList.includes(dial)) && !excludeCountries.includes(iso) && !excludeCountries.includes(dial); }); }, [onlyCountries, excludeCountries]); const countriesList = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => { const filteredCountries = countriesOnly.filter(([_1, name, dial, mask]) => { var _a; const q = query.toLowerCase(); const countries = locale && ((_a = (_locale__WEBPACK_IMPORTED_MODULE_1__[locale])) === null || _a === void 0 ? void 0 : _a.countries); const localized = countries && (countries[name] || "").toLowerCase(); return [localized, name.toLowerCase(), dial, mask].some(component => component.includes(q)); }); const seen = new Set(); const whitelistCountries = [ ...filteredCountries.filter(([iso]) => preferredCountries.includes(iso)), ...filteredCountries.filter(([iso]) => !preferredCountries.includes(iso)), ]; if (!distinct) return whitelistCountries; return whitelistCountries.filter(([iso]) => !seen.has(iso) && seen.add(iso)); }, [countriesOnly, preferredCountries, distinct, locale, query]); const metadata = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => { const calculatedMetadata = getMetadata(getRawValue(value), countriesList, countryCode); if (countriesList.find(([iso]) => iso === (calculatedMetadata === null || calculatedMetadata === void 0 ? void 0 : calculatedMetadata[0]) || iso === (defaultMetadata === null || defaultMetadata === void 0 ? void 0 : defaultMetadata[0]))) { return calculatedMetadata || defaultMetadata; } return countriesList[0]; }, [countriesList, countryCode, defaultMetadata, value]); const pattern = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => { const mask = (metadata === null || metadata === void 0 ? void 0 : metadata[3]) || (defaultMetadata === null || defaultMetadata === void 0 ? void 0 : defaultMetadata[3]) || ""; return disableParentheses ? mask.replace(/[()]/g, "") : mask; }, [disableParentheses, defaultMetadata, metadata]); return { value, pattern, metadata, setValue, countriesList, }; }; /***/ }), /***/ "../../../node_modules/react-phone-hooks/metadata/countries.json": /*!***********************************************************************!*\ !*** ../../../node_modules/react-phone-hooks/metadata/countries.json ***! \***********************************************************************/ /***/ ((module) => { module.exports = /*#__PURE__*/JSON.parse('[["af","Afghanistan","93","+93 (..) ... ...."],["al","Albania","355","+355 (...) ... ..."],["dz","Algeria","213","+213 (...) ... ..."],["as","American Samoa","1684","+1 (684) .... ..."],["ad","Andorra","376","+376 (...) ... ..."],["ao","Angola","244","+244 (...) ... ..."],["ai","Anguilla","1264","+1 (264) .... ..."],["ag","Antigua and Barbuda","1268","+1 (268) .... ..."],["ar","Argentina","5411","+54 (11.) ... ....."],["ar","Argentina","54221","+54 (221) ... ....."],["ar","Argentina","54223","+54 (223) ... ....."],["ar","Argentina","54261","+54 (261) ... ....."],["ar","Argentina","54264","+54 (264) ... ....."],["ar","Argentina","542652","+54 (265) 2.. ....."],["ar","Argentina","54280","+54 (280) ... ....."],["ar","Argentina","542905","+54 (290) 5.. ....."],["ar","Argentina","54291","+54 (291) ... ....."],["ar","Argentina","542920","+54 (292) 0.. ....."],["ar","Argentina","542966","+54 (296) 6.. ....."],["ar","Argentina","54299","+54 (299) ... ....."],["ar","Argentina","54341","+54 (341) ... ....."],["ar","Argentina","54342","+54 (342) ... ....."],["ar","Argentina","54343","+54 (343) ... ....."],["ar","Argentina","54351","+54 (351) ... ....."],["ar","Argentina","54376","+54 (376) ... ....."],["ar","Argentina","54379","+54 (379) ... ....."],["ar","Argentina","54381","+54 (381) ... ....."],["ar","Argentina","543833","+54 (383) 3.. ....."],["ar","Argentina","54385","+54 (385) ... ....."],["ar","Argentina","54387","+54 (387) ... ....."],["ar","Argentina","54388","+54 (388) ... ....."],["am","Armenia","374","+374 (..) ... ..."],["aw","Aruba","297","+297 (...) ...."],["au","Australia","612","+61 (2) .... .... ..."],["au","Australia","613","+61 (3) .... .... ..."],["au","Australia","614","+61 (4) .... .... ..."],["au","Australia","617","+61 (7) .... .... ..."],["au","Australia","618","+61 (8) .... .... ..."],["au","Australia","6102","+61 (0) 2... .... ..."],["au","Australia","6103","+61 (0) 3... .... ..."],["au","Australia","6104","+61 (0) 4... .... ..."],["au","Australia","6107","+61 (0) 7... .... ..."],["au","Australia","6108","+61 (0) 8... .... ..."],["at","Austria","43","+43 (...) ... ... ...."],["az","Azerbaijan","994","+994 (..) ... ...."],["bs","Bahamas","1242","+1 (242) .... ..."],["bh","Bahrain","973","+973 (....) ...."],["bd","Bangladesh","880","+880 (..) ... ....."],["bb","Barbados","1246","+1 (246) .... ..."],["by","Belarus","375","+375 (..) ... ... ..."],["be","Belgium","32","+32 (...) ... ..."],["bz","Belize","501","+501 (...) ...."],["bj","Benin","229","+229 (..) ... ... .."],["bm","Bermuda","1441","+1 (441) .... ..."],["bt","Bhutan","975","+975 (.) ... ...."],["bo","Bolivia","591","+591 (.) ... ....."],["ba","Bosnia and Herzegovina","387","+387 (..) ......."],["bw","Botswana","267","+267 (..) ... ..."],["br","Brazil","55","+55 (..) ..... ...."],["io","British Indian Ocean Territory","246","+246 (...) ...."],["vg","British Virgin Islands","1284","+1 (284) .... ..."],["bn","Brunei","673","+673 (...) ...."],["bg","Bulgaria","359","+359 (...) ... ..."],["bf","Burkina Faso","226","+226 (..) ... ..."],["bi","Burundi","257","+257 (..) ... ..."],["kh","Cambodia","855","+855 (..) ... ....."],["cm","Cameroon","237","+237 (....) ....."],["ca","Canada","1204","+1 (204) ... ...."],["ca","Canada","1226","+1 (226) ... ...."],["ca","Canada","1236","+1 (236) ... ...."],["ca","Canada","1249","+1 (249) ... ...."],["ca","Canada","1250","+1 (250) ... ...."],["ca","Canada","1289","+1 (289) ... ...."],["ca","Canada","1306","+1 (306) ... ...."],["ca","Canada","1343","+1 (343) ... ...."],["ca","Canada","1365","+1 (365) ... ...."],["ca","Canada","1387","+1 (387) ... ...."],["ca","Canada","1403","+1 (403) ... ...."],["ca","Canada","1416","+1 (416) ... ...."],["ca","Canada","1418","+1 (418) ... ...."],["ca","Canada","1431","+1 (431) ... ...."],["ca","Canada","1437","+1 (437) ... ...."],["ca","Canada","1438","+1 (438) ... ...."],["ca","Canada","1450","+1 (450) ... ...."],["ca","Canada","1506","+1 (506) ... ...."],["ca","Canada","1514","+1 (514) ... ...."],["ca","Canada","1519","+1 (519) ... ...."],["ca","Canada","1548","+1 (548) ... ...."],["ca","Canada","1579","+1 (579) ... ...."],["ca","Canada","1581","+1 (581) ... ...."],["ca","Canada","1587","+1 (587) ... ...."],["ca","Canada","1604","+1 (604) ... ...."],["ca","Canada","1613","+1 (613) ... ...."],["ca","Canada","1639","+1 (639) ... ...."],["ca","Canada","1647","+1 (647) ... ...."],["ca","Canada","1672","+1 (672) ... ...."],["ca","Canada","1705","+1 (705) ... ...."],["ca","Canada","1709","+1 (709) ... ...."],["ca","Canada","1742","+1 (742) ... ...."],["ca","Canada","1778","+1 (778) ... ...."],["ca","Canada","1780","+1 (780) ... ...."],["ca","Canada","1782","+1 (782) ... ...."],["ca","Canada","1807","+1 (807) ... ...."],["ca","Canada","1819","+1 (819) ... ...."],["ca","Canada","1825","+1 (825) ... ...."],["ca","Canada","1867","+1 (867) ... ...."],["ca","Canada","1873","+1 (873) ... ...."],["ca","Canada","1902","+1 (902) ... ...."],["ca","Canada","1905","+1 (905) ... ...."],["cv","Cape Verde","238","+238 (...) ...."],["bq","Caribbean Netherlands","599","+599 (...) ...."],["ky","Cayman Islands","1345","+1 (345) ... ...."],["cf","Central African Republic","236","+236 (..) ... ..."],["td","Chad","235","+235 (..) ... ..."],["cl","Chile","56","+56 (.) .... ......"],["cn","China","86","+86 (..) ..... ....."],["co","Colombia","57","+57 (...) ... ....."],["km","Comoros","269","+269 (..) ....."],["cd","Congo","243","+243 (...) ... ...."],["cg","Congo","242","+242 (..) ... ...."],["ck","Cook Islands","682","+682 (..) ..."],["cr","Costa Rica","506","+506 (....) ... ..."],["hr","Croatia","385","+385 (..) ... ...."],["cu","Cuba","53","+53 (.) ... ... ..."],["cw","Curaçao","599","+599 (...) ....."],["cy","Cyprus","357","+357 (..) ... ..."],["cz","Czech Republic","420","+420 (...) ... ... ..."],["ci","Côte d’Ivoire","225","+225 (..) ... ....."],["dk","Denmark","45","+45 (..) ... ..."],["dj","Djibouti","253","+253 (..) ... ..."],["dm","Dominica","1767","+1 (767) .... ..."],["do","Dominican Republic","1809","+1 (809) ... ...."],["do","Dominican Republic","1829","+1 (829) ... ...."],["do","Dominican Republic","1849","+1 (849) ... ...."],["ec","Ecuador","593","+593 (..) ... ...."],["eg","Egypt","20","+20 (...) ... ...."],["sv","El Salvador","503","+503 (..) ... ... ..."],["gq","Equatorial Guinea","240","+240 (..) ... ...."],["er","Eritrea","291","+291 (.) ... ..."],["ee","Estonia","372","+372 (...) ....."],["ee","Estonia","37287","+372 (87.) ....."],["ee","Estonia","3725","+372 (5...) ...."],["ee","Estonia","3728","+372 (8...) ...."],["ee","Estonia","37240","+372 (40..) ...."],["et","Ethiopia","251","+251 (..) ... ...."],["fk","Falkland Islands","500","+500 ....."],["fo","Faroe Islands","298","+298 (...) ..."],["fj","Fiji","679","+679 (..) ....."],["fi","Finland","358","+358 (...) ... ... ..."],["fr","France","33","+33 (...) ... ..."],["gf","French Guiana","594","+594 (.....) ...."],["pf","French Polynesia","689","+689 (..) ... ..."],["ga","Gabon","241","+241 (.) ... ...."],["gm","Gambia","220","+220 (...) ...."],["ge","Georgia","995","+995 (...) ... ..."],["de","Germany","49","+49 (....) ... ... ....."],["gh","Ghana","233","+233 (...) ... ..."],["gi","Gibraltar","350","+350 (...) ....."],["gr","Greece","30","+30 (...) ... ...."],["gl","Greenland","299","+299 (..) ...."],["gd","Grenada","1473","+1 (473) ... ...."],["gp","Guadeloupe","590","+590 (...) ... ..."],["gu","Guam","1671","+1 (671) .... ..."],["gt","Guatemala","502","+502 (.) ... ... ...."],["gn","Guinea","224","+224 (..) ... ...."],["gw","Guinea-Bissau","245","+245 (.) ... ....."],["gy","Guyana","592","+592 (...) ...."],["ht","Haiti","509","+509 (..) ... ..."],["hn","Honduras","504","+504 (....) ... ...."],["hk","Hong Kong","852","+852 (....) .... ..."],["hu","Hungary","36","+36 (...) ... ..."],["is","Iceland","354","+354 (...) ... ..."],["in","India","91","+91 (....) ... ... ..."],["id","Indonesia","62","+62 (..) ... ... ... ... ..."],["ir","Iran","98","+98 (...) ... ...."],["iq","Iraq","964","+964 (...) ... ...."],["ie","Ireland","353","+353 (...) ... ...."],["il","Israel","972","+972 (..) ... ... ...."],["it","Italy","39","+39 (...) ... ... ..."],["jm","Jamaica","1876","+1 (876) ... ...."],["jp","Japan","81","+81 (..) ... ... ... ... ..."],["je","Jersey","44","+44 (..) ... ....."],["jo","Jordan","962","+962 (.) ... ....."],["kz","Kazakhstan","7310","+7 (310) ... ...."],["kz","Kazakhstan","7311","+7 (311) ... ...."],["kz","Kazakhstan","7312","+7 (312) ... ...."],["kz","Kazakhstan","7313","+7 (313) ... ...."],["kz","Kazakhstan","7315","+7 (315) ... ...."],["kz","Kazakhstan","7318","+7 (318) ... ...."],["kz","Kazakhstan","7321","+7 (321) ... ...."],["kz","Kazakhstan","7324","+7 (324) ... ...."],["kz","Kazakhstan","7325","+7 (325) ... ...."],["kz","Kazakhstan","7326","+7 (326) ... ...."],["kz","Kazakhstan","7327","+7 (327) ... ...."],["kz","Kazakhstan","7336","+7 (336) ... ...."],["kz","Kazakhstan","77172","+7 (717) 2.. ...."],["kz","Kazakhstan","773622","+7 (736) 22. ...."],["ke","Kenya","254","+254 (...) ... ..."],["ki","Kiribati","686","+686 (..) ... ..."],["xk","Kosovo","383","+383 (...) ... ... ..."],["kw","Kuwait","965","+965 (....) ...."],["kg","Kyrgyzstan","996","+996 (...) ... ..."],["la","Laos","856","+856 (..) ... ....."],["lv","Latvia","371","+371 (..) ... ..."],["lb","Lebanon","961","+961 (..) ... ..."],["ls","Lesotho","266","+266 (.) ... ...."],["lr","Liberia","231","+231 (..) ... ...."],["ly","Libya","218","+218 (..) ... ...."],["li","Liechtenstein","423","+423 (...) ... ..."],["lt","Lithuania","370","+370 (...) ....."],["lu","Luxembourg","352","+352 (...) ... ....."],["mo","Macau","853","+853 (....) ...."],["mk","Macedonia","389","+389 (..) ... ..."],["mg","Madagascar","261","+261 (..) ... ...."],["mw","Malawi","265","+265 (.) ... ....."],["my","Malaysia","60","+60 (...) ... ...."],["mv","Maldives","960","+960 (...) ... ...."],["ml","Mali","223","+223 (..) ... ..."],["mt","Malta","356","+356 (....) ...."],["mh","Marshall Islands","692","+692 (...) ...."],["mq","Martinique","596","+596 (...) ... ..."],["mr","Mauritania","222","+222 (..) ... ..."],["mu","Mauritius","230","+230 (...) ....."],["mx","Mexico","52","+52 (...) ... ...."],["mx","Mexico","5233","+52 (33) .... ...."],["mx","Mexico","5255","+52 (55) .... ...."],["mx","Mexico","5256","+52 (56) .... ...."],["mx","Mexico","5281","+52 (81) .... ...."],["mx","Mexico","52221","+52 (221) ... ...."],["mx","Mexico","52222","+52 (222) ... ...."],["mx","Mexico","52229","+52 (229) ... ...."],["mx","Mexico","52440","+52 (440) ... ...."],["mx","Mexico","52442","+52 (442) ... ...."],["mx","Mexico","52443","+52 (443) ... ...."],["mx","Mexico","52444","+52 (444) ... ...."],["mx","Mexico","52446","+52 (446) ... ...."],["mx","Mexico","52449","+52 (449) ... ...."],["mx","Mexico","52477","+52 (477) ... ...."],["mx","Mexico","52479","+52 (479) ... ...."],["mx","Mexico","52612","+52 (612) ... ...."],["mx","Mexico","52614","+52 (614) ... ...."],["mx","Mexico","52618","+52 (618) ... ...."],["mx","Mexico","52624","+52 (624) ... ...."],["mx","Mexico","52631","+52 (631) ... ...."],["mx","Mexico","52633","+52 (633) ... ...."],["mx","Mexico","52642","+52 (642) ... ...."],["mx","Mexico","52644","+52 (644) ... ...."],["mx","Mexico","52645","+52 (645) ... ...."],["mx","Mexico","52656","+52 (656) ... ...."],["mx","Mexico","52662","+52 (662) ... ...."],["mx","Mexico","52663","+52 (663) ... ...."],["mx","Mexico","52664","+52 (664) ... ...."],["mx","Mexico","52667","+52 (667) ... ...."],["mx","Mexico","52686","+52 (686) ... ...."],["mx","Mexico","52722","+52 (722) ... ...."],["mx","Mexico","52729","+52 (729) ... ...."],["mx","Mexico","52744","+52 (744) ... ...."],["mx","Mexico","52771","+52 (771) ... ...."],["mx","Mexico","52833","+52 (833) ... ...."],["mx","Mexico","52844","+52 (844) ... ...."],["mx","Mexico","52868","+52 (868) ... ...."],["mx","Mexico","52871","+52 (871) ... ...."],["mx","Mexico","52899","+52 (899) ... ...."],["mx","Mexico","52921","+52 (921) ... ...."],["mx","Mexico","52961","+52 (961) ... ...."],["mx","Mexico","52981","+52 (981) ... ...."],["mx","Mexico","52990","+52 (990) ... ...."],["mx","Mexico","52998","+52 (998) ... ...."],["mx","Mexico","52999","+52 (999) ... ...."],["fm","Micronesia","691","+691 (...) ...."],["md","Moldova","373","+373 (....) ...."],["mc","Monaco","377","+377 (...) ... ..."],["mn","Mongolia","976","+976 (..) ... ....."],["me","Montenegro","382","+382 (..) ... ..."],["ms","Montserrat","1664","+1 (664) ... ...."],["ma","Morocco","212","+212 (..) ... ...."],["mz","Mozambique","258","+258 (..) ... ...."],["mm","Myanmar","95","+95 (..) ... ....."],["na","Namibia","264","+264 (..) ... ...."],["nr","Nauru","674","+674 (...) ...."],["np","Nepal","977","+977 (..) ... ....."],["nl","Netherlands","31","+31 (..) ... ... ..."],["nc","New Caledonia","687","+687 (..) ...."],["nz","New Zealand","64","+64 (...) ... ...."],["ni","Nicaragua","505","+505 (....) ...."],["ne","Niger","227","+227 (..) ... ..."],["ng","Nigeria","234","+234 (...) ... ... ....."],["nu","Niue","683","+683 ... ...."],["nf","Norfolk Island","672","+672 (..) ...."],["kp","North Korea","850","+850 (...) ... ...."],["mp","Northern Mariana Islands","1670","+1 (670) ... ...."],["no","Norway","47","+47 (...) ....."],["om","Oman","968","+968 (..) ... ..."],["pk","Pakistan","92","+92 (...) ... ... ..."],["pw","Palau","680","+680 (...) ...."],["ps","Palestine","970","+970 (..) ... ....."],["pa","Panama","507","+507 (...) ....."],["pg","Papua New Guinea","675","+675 (...) ....."],["py","Paraguay","595","+595 (...) ... ..."],["pe","Peru","51","+51 (...) ... ..."],["ph","Philippines","63","+63 (...) ... ...."],["pl","Poland","48","+48 (...) ... ..."],["pt","Portugal","351","+351 (..) ... ...."],["pr","Puerto Rico","1787","+1 (787) ... ...."],["pr","Puerto Rico","1939","+1 (939) ... ...."],["qa","Qatar","974","+974 (....) ...."],["ro","Romania","40","+40 (..) ... ...."],["ru","Russia","7","+7 (...) ... ...."],["rw","Rwanda","250","+250 (...) ... ..."],["re","Réunion","262","+262 (.....) ...."],["kn","Saint Kitts and Nevis","1869","+1 (869) ... ...."],["lc","Saint Lucia","1758","+1 (758) ... ...."],["vc","Saint Vincent and the Grenadines","1784","+1 (784) ... ...."],["ws","Samoa","685","+685 (..) ... ....."],["sm","San Marino","378","+378 (....) ... ..."],["sa","Saudi Arabia","966","+966 (.) ... ... ..."],["sn","Senegal","221","+221 (..) ... ...."],["rs","Serbia","381","+381 (..) ... ... ...."],["sc","Seychelles","248","+248 (.) ... ..."],["sl","Sierra Leone","232","+232 (..) ... ..."],["sg","Singapore","65","+65 (....) .... ..."],["sx","Sint Maarten","1721","+1 (721) ... ...."],["sk","Slovakia","421","+421 (...) ... ..."],["si","Slovenia","386","+386 (..) ... ..."],["sb","Solomon Islands","677","+677 (...) ...."],["so","Somalia","252","+252 (..) ... ...."],["za","South Africa","27","+27 (..) ... ....."],["kr","South Korea","82","+82 (..) ... ... ... ..."],["ss","South Sudan","211","+211 (..) ... ...."],["es","Spain","34","+34 (...) .. .. .."],["lk","Sri Lanka","94","+94 (..) ... ...."],["sh","St. Helena","290","+290 ....."],["pm","St. Pierre & Miquelon","508","+508 (...) ... ..."],["sd","Sudan","249","+249 (..) ... ...."],["sr","Suriname","597","+597 (...) ...."],["sz","Swaziland","268","+268 (..) ... ...."],["se","Sweden","46","+46 (..) ... ... ...."],["ch","Switzerland","41","+41 (..) ... ... ...."],["sy","Syria","963","+963 (..) ... ...."],["st","São Tomé and Príncipe","239","+239 (..) ....."],["tw","Taiwan","886","+886 (.) ... ... ...."],["tj","Tajikistan","992","+992 (..) ... ...."],["tz","Tanzania","255","+255 (..) ... ...."],["th","Thailand","66","+66 (..) ... ....."],["tl","Timor-Leste","670","+670 (...) ....."],["tg","Togo","228","+228 (..) ... ..."],["tk","Tokelau","690","+690 ... ...."],["to","Tonga","676","+676 ... ...."],["tt","Trinidad and Tobago","1868","+1 (868) ... ...."],["tn","Tunisia","216","+216 (..) ... ..."],["tr","Turkey","90","+90 (...) ... .. .."],["tm","Turkmenistan","993","+993 (.) ... ...."],["tc","Turks & Caicos Islands","1649","+1 (649) ... ...."],["tv","Tuvalu","688","+688 ... ...."],["vi","U.S. Virgin Islands","1340","+1 (340) ... ...."],["ug","Uganda","256","+256 (...) ... ..."],["ua","Ukraine","380","+380 (..) ... ....."],["ae","United Arab Emirates","971","+971 (.) ... ....."],["ae","United Arab Emirates","9715","+971 (..) ... ...."],["gb","United Kingdom","44","+44 (..) ... ....."],["us","United States","1","+1 (...) ... ...."],["us","United States","1907","+1 (907) ... ...."],["us","United States","1205","+1 (205) ... ...."],["us","United States","1251","+1 (251) ... ...."],["us","United States","1256","+1 (256) ... ...."],["us","United States","1334","+1 (334) ... ...."],["us","United States","1479","+1 (479) ... ...."],["us","United States","1501","+1 (501) ... ...."],["us","United States","1870","+1 (870) ... ...."],["us","United States","1480","+1 (480) ... ...."],["us","United States","1520","+1 (520) ... ...."],["us","United States","1602","+1 (602) ... ...."],["us","United States","1623","+1 (623) ... ...."],["us","United States","1928","+1 (928) ... ...."],["us","United States","1209","+1 (209) ... ...."],["us","United States","1213","+1 (213) ... ...."],["us","United States","1310","+1 (310) ... ...."],["us","United States","1323","+1 (323) ... ...."],["us","United States","1408","+1 (408) ... ...."],["us","United States","1415","+1 (415) ... ...."],["us","United States","1510","+1 (510) ... ...."],["us","United States","1530","+1 (530) ... ...."],["us","United States","1559","+1 (559) ... ...."],["us","United States","1562","+1 (562) ... ...."],["us","United States","1619","+1 (619) ... ...."],["us","United States","1626","+1 (626) ... ...."],["us","United States","1650","+1 (650) ... ...."],["us","United States","1661","+1 (661) ... ...."],["us","United States","1707","+1 (707) ... ...."],["us","United States","1714","+1 (714) ... ...."],["us","United States","1760","+1 (760) ... ...."],["us","United States","1805","+1 (805) ... ...."],["us","United States","1818","+1 (818) ... ...."],["us","United States","1831","+1 (831) ... ...."],["us","United States","1858","+1 (858) ... ...."],["us","United States","1909","+1 (909) ... ...."],["us","United States","1916","+1 (916) ... ...."],["us","United States","1925","+1 (925) ... ...."],["us","United States","1949","+1 (949) ... ...."],["us","United States","1951","+1 (951) ... ...."],["us","United States","1303","+1 (303) ... ...."],["us","United States","1719","+1 (719) ... ...."],["us","United States","1970","+1 (970) ... ...."],["us","United States","1203","+1 (203) ... ...."],["us","United States","1860","+1 (860) ... ...."],["us","United States","1202","+1 (202) ... ...."],["us","United States","1302","+1 (302) ... ...."],["us","United States","1239","+1 (239) ... ...."],["us","United States","1305","+1 (305) ... ...."],["us","United States","1321","+1 (321) ... ...."],["us","United States","1352","+1 (352) ... ...."],["us","United States","1386","+1 (386) ... ...."],["us","United States","1407","+1 (407) ... ...."],["us","United States","1561","+1 (561) ... ...."],["us","United States","1727","+1 (727) ... ...."],["us","United States","1772","+1 (772) ... ...."],["us","United States","1813","+1 (813) ... ...."],["us","United States","1850","+1 (850) ... ...."],["us","United States","1863","+1 (863) ... ...."],["us","United States","1904","+1 (904) ... ...."],["us","United States","1941","+1 (941) ... ...."],["us","United States","1954","+1 (954) ... ...."],["us","United States","1229","+1 (229) ... ...."],["us","United States","1404","+1 (404) ... ...."],["us","United States","1478","+1 (478) ... ...."],["us","United States","1706","+1 (706) ... ...."],["us","United States","1770","+1 (770) ... ...."],["us","United States","1912","+1 (912) ... ...."],["us","United States","1808","+1 (808) ... ...."],["us","United States","1319","+1 (319) ... ...."],["us","United States","1515","+1 (515) ... ...."],["us","United States","1563","+1 (563) ... ...."],["us","United States","1641","+1 (641) ... ...."],["us","United States","1712","+1 (712) ... ...."],["us","United States","1208","+1 (208) ... ...."],["us","United States","1217","+1 (217) ... ...."],["us","United States","1309","+1 (309) ... ...."],["us","United States","1312","+1 (312) ... ...."],["us","United States","1618","+1 (618) ... ...."],["us","United States","1630","+1 (630) ... ...."],["us","United States","1708","+1 (708) ... ...."],["us","United States","1773","+1 (773) ... ...."],["us","United States","1815","+1 (815) ... ...."],["us","United States","1847","+1 (847) ... ...."],["us","United States","1219","+1 (219) ... ...."],["us","United States","1260","+1 (260) ... ...."],["us","United States","1317","+1 (317) ... ...."],["us","United States","1574","+1 (574) ... ...."],["us","United States","1765","+1 (765) ... ...."],["us","United States","1812","+1 (812) ... ...."],["us","United States","1316","+1 (316) ... ...."],["us","United States","1620","+1 (620) ... ...."],["us","United States","1785","+1 (785) ... ...."],["us","United States","1913","+1 (913) ... ...."],["us","United States","1270","+1 (270) ... ...."],["us","United States","1502","+1 (502) ... ...."],["us","United States","1606","+1 (606) ... ...."],["us","United States","1859","+1 (859) ... ...."],["us","United States","1225","+1 (225) ... ...."],["us","United States","1318","+1 (318) ... ...."],["us","United States","1337","+1 (337) ... ...."],["us","United States","1504","+1 (504) ... ...."],["us","United States","1985","+1 (985) ... ...."],["us","United States","1413","+1 (413) ... ...."],["us","United States","1508","+1 (508) ... ...."],["us","United States","1617","+1 (617) ... ...."],["us","United States","1781","+1 (781) ... ...."],["us","United States","1978","+1 (978) ... ...."],["us","United States","1301","+1 (301) ... ...."],["us","United States","1410","+1 (410) ... ...."],["us","United States","1207","+1 (207) ... ...."],["us","United States","1231","+1 (231) ... ...."],["us","United States","1248","+1 (248) ... ...."],["us","United States","1269","+1 (269) ... ...."],["us","United States","1313","+1 (313) ... ...."],["us","United States","1517","+1 (517) ... ...."],["us","United States","1586","+1 (586) ... ...."],["us","United States","1616","+1 (616) ... ...."],["us","United States","1734","+1 (734) ... ...."],["us","United States","1810","+1 (810) ... ...."],["us","United States","1906","+1 (906) ... ...."],["us","United States","1989","+1 (989) ... ...."],["us","United States","1218","+1 (218) ... ...."],["us","United States","1320","+1 (320) ... ...."],["us","United States","1507","+1 (507) ... ...."],["us","United States","1612","+1 (612) ... ...."],["us","United States","1651","+1 (651) ... ...."],["us","United States","1763","+1 (763) ... ...."],["us","United States","1952","+1 (952) ... ...."],["us","United States","1314","+1 (314) ... ...."],["us","United States","1417","+1 (417) ... ...."],["us","United States","1573","+1 (573) ... ...."],["us","United States","1636","+1 (636) ... ...."],["us","United States","1660","+1 (660) ... ...."],["us","United States","1816","+1 (816) ... ...."],["us","United States","1228","+1 (228) ... ...."],["us","United States","1601","+1 (601) ... ...."],["us","United States","1662","+1 (662) ... ...."],["us","United States","1406","+1 (406) ... ...."],["us","United States","1252","+1 (252) ... ...."],["us","United States","1336","+1 (336) ... ...."],["us","United States","1704","+1 (704) ... ...."],["us","United States","1828","+1 (828) ... ...."],["us","United States","1910","+1 (910) ... ...."],["us","United States","1919","+1 (919) ... ...."],["us","United States","1701","+1 (701) ... ...."],["us","United States","1308","+1 (308) ... ...."],["us","United States","1402","+1 (402) ... ...."],["us","United States","1603","+1 (603) ... ...."],["us","United States","1201","+1 (201) ... ...."],["us","United States","1609","+1 (609) ... ...."],["us","United States","1732","+1 (732) ... ...."],["us","United States","1856","+1 (856) ... ...."],["us","United States","1908","+1 (908) ... ...."],["us","United States","1973","+1 (973) ... ...."],["us","United States","1505","+1 (505) ... ...."],["us","United States","1575","+1 (575) ... ...."],["us","United States","1702","+1 (702) ... ...."],["us","United States","1775","+1 (775) ... ...."],["us","United States","1212","+1 (212) ... ...."],["us","United States","1315","+1 (315) ... ...."],["us","United States","1516","+1 (516) ... ...."],["us","United States","1518","+1 (518) ... ...."],["us","United States","1585","+1 (585) ... ...."],["us","United States","1607","+1 (607) ... ...."],["us","United States","1631","+1 (631) ... ...."],["us","United States","1716","+1 (716) ... ...."],["us","United States","1718","+1 (718) ... ...."],["us","United States","1845","+1 (845) ... ...."],["us","United States","1914","+1 (914) ... ...."],["us","United States","1216","+1 (216) ... ...."],["us","United States","1330","+1 (330) ... ...."],["us","United States","1419","+1 (419) ... ...."],["us","United States","1440","+1 (440) ... ...."],["us","United States","1513","+1 (513) ... ...."],["us","United States","1614","+1 (614) ... ...."],["us","United States","1740","+1 (740) ... ...."],["us","United States","1937","+1 (937) ... ...."],["us","United States","1405","+1 (405) ... ...."],["us","United States","1580","+1 (580) ... ...."],["us","United States","1918","+1 (918) ... ...."],["us","United States","1503","+1 (503) ... ...."],["us","United States","1541","+1 (541) ... ...."],["us","United States","1215","+1 (215) ... ...."],["us","United States","1412","+1 (412) ... ...."],["us","United States","1570","+1 (570) ... ...."],["us","United States","1610","+1 (610) ... ...."],["us","United States","1717","+1 (717) ... ...."],["us","United States","1724","+1 (724) ... ...."],["us","United States","1814","+1 (814) ... ...."],["us","United States","1401","+1 (401) ... ...."],["us","United States","1803","+1 (803) ... ...."],["us","United States","1843","+1 (843) ... ...."],["us","United States","1864","+1 (864) ... ...."],["us","United States","1605","+1 (605) ... ...."],["us","United States","1423","+1 (423) ... ...."],["us","United States","1615","+1 (615) ... ...."],["us","United States","1731","+1 (731) ... ...."],["us","United States","1865","+1 (865) ... ...."],["us","United States","1901","+1 (901) ... ...."],["us","United States","1931","+1 (931) ... ...."],["us","United States","1210","+1 (210) ... ...."],["us","United States","1214","+1 (214) ... ...."],["us","United States","1254","+1 (254) ... ...."],["us","United States","1281","+1 (281) ... ...."],["us","United States","1325","+1 (325) ... ...."],["us","United States","1361","+1 (361) ... ...."],["us","United States","1409","+1 (409) ... ...."],["us","United States","1432","+1 (432) ... ...."],["us","United States","1512","+1 (512) ... ...."],["us","United States","1713","+1 (713) ... ...."],["us","United States","1806","+1 (806) ... ...."],["us","United States","1817","+1 (817) ... ...."],["us","United States","1830","+1 (830) ... ...."],["us","United States","1903","+1 (903) ... ...."],["us","United States","1915","+1 (915) ... ...."],["us","United States","1936","+1 (936) ... ...."],["us","United States","1940","+1 (940) ... ...."],["us","United States","1956","+1 (956) ... ...."],["us","United States","1972","+1 (972) ... ...."],["us","United States","1979","+1 (979) ... ...."],["us","United States","1435","+1 (435) ... ...."],["us","United States","1801","+1 (801) ... ...."],["us","United States","1276","+1 (276) ... ...."],["us","United States","1434","+1 (434) ... ...."],["us","United States","1540","+1 (540) ... ...."],["us","United States","1703","+1 (703) ... ...."],["us","United States","1757","+1 (757) ... ...."],["us","United States","1804","+1 (804) ... ...."],["us","United States","1802","+1 (802) ... ...."],["us","United States","1206","+1 (206) ... ...."],["us","United States","1253","+1 (253) ... ...."],["us","United States","1360","+1 (360) ... ...."],["us","United States","1425","+1 (425) ... ...."],["us","United States","1509","+1 (509) ... ...."],["us","United States","1262","+1 (262) ... ...."],["us","United States","1414","+1 (414) ... ...."],["us","United States","1608","+1 (608) ... ...."],["us","United States","1715","+1 (715) ... ...."],["us","United States","1920","+1 (920) ... ...."],["us","United States","1304","+1 (304) ... ...."],["us","United States","1307","+1 (307) ... ...."],["uy","Uruguay","598","+598 (.) ... ...."],["uz","Uzbekistan","998","+998 (..) ... ...."],["vu","Vanuatu","678","+678 (..) ....."],["va","Vatican City","39","+39 (.) ... ... ....."],["ve","Venezuela","58","+58 (...) ... ...."],["vn","Vietnam","84","+84 (...) .... ..."],["wf","Wallis & Futuna","681","+681 (..) ...."],["ye","Yemen","967","+967 (...) ... ..."],["zm","Zambia","260","+260 (..) ... ...."],["zw","Zimbabwe","263","+263 (.) ... ... ..."]]'); /***/ }), /***/ "../../../node_modules/react-phone-hooks/metadata/timezones.json": /*!***********************************************************************!*\ !*** ../../../node_modules/react-phone-hooks/metadata/timezones.json ***! \***********************************************************************/ /***/ ((module) => { module.exports = /*#__PURE__*/JSON.parse('{"Africa/Abidjan":"ci","Africa/Accra":"gh","Africa/Addis_Ababa":"et","Africa/Algiers":"dz","Africa/Asmara":"er","Africa/Asmera":"er","Africa/Bamako":"ml","Africa/Bangui":"cf","Africa/Banjul":"gm","Africa/Bissau":"gw","Africa/Blantyre":"mw","Africa/Brazzaville":"cg","Africa/Bujumbura":"bi","Africa/Cairo":"eg","Africa/Casablanca":"ma","Africa/Ceuta":"es","Africa/Conakry":"gn","Africa/Dakar":"sn","Africa/Dar_es_Salaam":"tz","Africa/Djibouti":"dj","Africa/Douala":"cm","Africa/El_Aaiun":"ma","Africa/Freetown":"sl","Africa/Gaborone":"bw","Africa/Harare":"zw","Africa/Johannesburg":"za","Africa/Juba":"ss","Africa/Kampala":"ug","Africa/Khartoum":"sd","Africa/Kigali":"rw","Africa/Kinshasa":"cd","Africa/Lagos":"ng","Africa/Libreville":"ga","Africa/Lome":"tg","Africa/Luanda":"ao","Africa/Lubumbashi":"cd","Africa/Lusaka":"zm","Africa/Malabo":"gq","Africa/Maputo":"mz","Africa/Maseru":"ls","Africa/Mbabane":"sz","Africa/Mogadishu":"so","Africa/Monrovia":"lr","Africa/Nairobi":"ke","Africa/Ndjamena":"td","Africa/Niamey":"ne","Africa/Nouakchott":"mr","Africa/Ouagadougou":"bf","Africa/Porto-Novo":"bj","Africa/Sao_Tome":"st","Africa/Timbuktu":"ml","Africa/Tripoli":"ly","Africa/Tunis":"tn","Africa/Windhoek":"na","America/Adak":"us","America/Anchorage":"us","America/Anguilla":"ai","America/Antigua":"ag","America/Araguaina":"br","America/Argentina/Buenos_Aires":"ar","America/Argentina/Catamarca":"ar","America/Argentina/Cordoba":"ar","America/Argentina/Jujuy":"ar","America/Argentina/La_Rioja":"ar","America/Argentina/Mendoza":"ar","America/Argentina/Rio_Gallegos":"ar","America/Argentina/Salta":"ar","America/Argentina/San_Juan":"ar","America/Argentina/San_Luis":"ar","America/Argentina/Tucuman":"ar","America/Argentina/Ushuaia":"ar","America/Aruba":"aw","America/Asuncion":"py","America/Atikokan":"ca","America/Bahia":"br","America/Bahia_Banderas":"mx","America/Barbados":"bb","America/Belem":"br","America/Belize":"bz","America/Blanc-Sablon":"ca","America/Boa_Vista":"br","America/Bogota":"co","America/Boise":"us","America/Cambridge_Bay":"ca","America/Campo_Grande":"br","America/Cancun":"mx","America/Caracas":"ve","America/Cayenne":"gf","America/Cayman":"ky","America/Chicago":"us","America/Chihuahua":"mx","America/Coral_Harbour":"ca","America/Costa_Rica":"cr","America/Creston":"ca","America/Cuiaba":"br","America/Curacao":"cw","America/Danmarkshavn":"gl","America/Dawson":"ca","America/Dawson_Creek":"ca","America/Denver":"us","America/Detroit":"us","America/Dominica":"dm","America/Edmonton":"ca","America/Eirunepe":"br","America/El_Salvador":"sv","America/Fort_Nelson":"ca","America/Fortaleza":"br","America/Glace_Bay":"ca","America/Goose_Bay":"ca","America/Grand_Turk":"tc","America/Grenada":"gd","America/Guadeloupe":"gp","America/Guatemala":"gt","America/Guayaquil":"ec","America/Guyana":"gy","America/Halifax":"ca","America/Havana":"cu","America/Hermosillo":"mx","America/Indiana/Indianapolis":"us","America/Indiana/Knox":"us","America/Indiana/Marengo":"us","America/Indiana/Petersburg":"us","America/Indiana/Tell_City":"us","America/Indiana/Vevay":"us","America/Indiana/Vincennes":"us","America/Indiana/Winamac":"us","America/Inuvik":"ca","America/Iqaluit":"ca","America/Jamaica":"jm","America/Juneau":"us","America/Kentucky/Louisville":"us","America/Kentucky/Monticello":"us","America/Kralendijk":"bq","America/La_Paz":"bo","America/Lima":"pe","America/Los_Angeles":"us","America/Lower_Princes":"sx","America/Maceio":"br","America/Managua":"ni","America/Manaus":"br","America/Marigot":"mf","America/Martinique":"mq","America/Matamoros":"mx","America/Mazatlan":"mx","America/Menominee":"us","America/Merida":"mx","America/Metlakatla":"us","America/Mexico_City":"mx","America/Miquelon":"pm","America/Moncton":"ca","America/Monterrey":"mx","America/Montevideo":"uy","America/Montreal":"ca","America/Montserrat":"ms","America/Nassau":"bs","America/New_York":"us","America/Nipigon":"ca","America/Nome":"us","America/Noronha":"br","America/North_Dakota/Beulah":"us","America/North_Dakota/Center":"us","America/North_Dakota/New_Salem":"us","America/Nuuk":"gl","America/Ojinaga":"mx","America/Panama":"pa","America/Pangnirtung":"ca","America/Paramaribo":"sr","America/Phoenix":"us","America/Port-au-Prince":"ht","America/Port_of_Spain":"tt","America/Porto_Velho":"br","America/Puerto_Rico":"pr","America/Punta_Arenas":"cl","America/Rainy_River":"ca","America/Rankin_Inlet":"ca","America/Recife":"br","America/Regina":"ca","America/Resolute":"ca","America/Rio_Branco":"br","America/Santarem":"br","America/Santiago":"cl","America/Santo_Domingo":"do","America/Sao_Paulo":"br","America/Scoresbysund":"gl","America/Sitka":"us","America/St_Barthelemy":"bl","America/St_Johns":"ca","America/St_Kitts":"kn","America/St_Lucia":"lc","America/St_Thomas":"vi","America/St_Vincent":"vc","America/Swift_Current":"ca","America/Tegucigalpa":"hn","America/Thule":"gl","America/Thunder_Bay":"ca","America/Tijuana":"mx","America/Toronto":"ca","America/Tortola":"vg","America/Vancouver":"ca","America/Virgin":"vi","America/Whitehorse":"ca","America/Winnipeg":"ca","America/Yakutat":"us","America/Yellowknife":"ca","Antarctica/Casey":"aq","Antarctica/Davis":"aq","Antarctica/DumontDUrville":"aq","Antarctica/Macquarie":"au","Antarctica/Mawson":"aq","Antarctica/McMurdo":"aq","Antarctica/Palmer":"aq","Antarctica/Rothera":"aq","Antarctica/South_Pole":"aq","Antarctica/Syowa":"aq","Antarctica/Troll":"aq","Antarctica/Vostok":"aq","Arctic/Longyearbyen":"no","Asia/Aden":"ye","Asia/Almaty":"kz","Asia/Amman":"jo","Asia/Anadyr":"ru","Asia/Aqtau":"kz","Asia/Aqtobe":"kz","Asia/Ashgabat":"tm","Asia/Atyrau":"kz","Asia/Baghdad":"iq","Asia/Bahrain":"bh","Asia/Baku":"az","Asia/Bangkok":"th","Asia/Barnaul":"ru","Asia/Beirut":"lb","Asia/Bishkek":"kg","Asia/Brunei":"bn","Asia/Chita":"ru","Asia/Choibalsan":"mn","Asia/Colombo":"lk","Asia/Damascus":"sy","Asia/Dhaka":"bd","Asia/Dili":"tl","Asia/Dubai":"ae","Asia/Dushanbe":"tj","Asia/Famagusta":"cy","Asia/Gaza":"ps","Asia/Hebron":"ps","Asia/Ho_Chi_Minh":"vn","Asia/Hong_Kong":"hk","Asia/Hovd":"mn","Asia/Irkutsk":"ru","Asia/Jakarta":"id","Asia/Jayapura":"id","Asia/Jerusalem":"il","Asia/Kabul":"af","Asia/Kamchatka":"ru","Asia/Karachi":"pk","Asia/Kathmandu":"np","Asia/Khandyga":"ru","Asia/Kolkata":"in","Asia/Krasnoyarsk":"ru","Asia/Kuala_Lumpur":"my","Asia/Kuching":"my","Asia/Kuwait":"kw","Asia/Macau":"mo","Asia/Magadan":"ru","Asia/Makassar":"id","Asia/Manila":"ph","Asia/Muscat":"om","Asia/Nicosia":"cy","Asia/Novokuznetsk":"ru","Asia/Novosibirsk":"ru","Asia/Omsk":"ru","Asia/Oral":"kz","Asia/Phnom_Penh":"kh","Asia/Pontianak":"id","Asia/Pyongyang":"kp","Asia/Qatar":"qa","Asia/Qostanay":"kz","Asia/Qyzylorda":"kz","Asia/Riyadh":"sa","Asia/Sakhalin":"ru","Asia/Samarkand":"uz","Asia/Seoul":"kr","Asia/Shanghai":"cn","Asia/Singapore":"sg","Asia/Srednekolymsk":"ru","Asia/Taipei":"tw","Asia/Tashkent":"uz","Asia/Tbilisi":"ge","Asia/Tehran":"ir","Asia/Thimphu":"bt","Asia/Tokyo":"jp","Asia/Tomsk":"ru","Asia/Ulaanbaatar":"mn","Asia/Urumqi":"cn","Asia/Ust-Nera":"ru","Asia/Vientiane":"la","Asia/Vladivostok":"ru","Asia/Yakutsk":"ru","Asia/Yangon":"mm","Asia/Yekaterinburg":"ru","Asia/Yerevan":"am","Atlantic/Azores":"pt","Atlantic/Bermuda":"bm","Atlantic/Canary":"es","Atlantic/Cape_Verde":"cv","Atlantic/Faroe":"fo","Atlantic/Jan_Mayen":"no","Atlantic/Madeira":"pt","Atlantic/Reykjavik":"is","Atlantic/South_Georgia":"ni","Atlantic/St_Helena":"sh","Atlantic/Stanley":"fk","Australia/Adelaide":"au","Australia/Brisbane":"au","Australia/Broken_Hill":"au","Australia/Darwin":"au","Australia/Eucla":"au","Australia/Hobart":"au","Australia/Lindeman":"au","Australia/Lord_Howe":"au","Australia/Melbourne":"au","Australia/Perth":"au","Australia/Sydney":"au","Canada/Eastern":"ca","Europe/Amsterdam":"nl","Europe/Andorra":"ad","Europe/Astrakhan":"ru","Europe/Athens":"gr","Europe/Belfast":"gb","Europe/Belgrade":"rs","Europe/Berlin":"de","Europe/Bratislava":"sk","Europe/Brussels":"be","Europe/Bucharest":"ro","Europe/Budapest":"hu","Europe/Busingen":"de","Europe/Chisinau":"md","Europe/Copenhagen":"dk","Europe/Dublin":"ie","Europe/Gibraltar":"gi","Europe/Guernsey":"gb","Europe/Helsinki":"fi","Europe/Isle_of_Man":"gb","Europe/Istanbul":"tr","Europe/Jersey":"je","Europe/Kaliningrad":"ru","Europe/Kiev":"ua","Europe/Kirov":"ru","Europe/Lisbon":"pt","Europe/Ljubljana":"si","Europe/London":"gb","Europe/Luxembourg":"lu","Europe/Madrid":"es","Europe/Malta":"mt","Europe/Mariehamn":"sc","Europe/Minsk":"by","Europe/Monaco":"mc","Europe/Moscow":"ru","Europe/Oslo":"no","Europe/Paris":"fr","Europe/Podgorica":"me","Europe/Prague":"cz","Europe/Riga":"lv","Europe/Rome":"it","Europe/Samara":"ru","Europe/San_Marino":"sm","Europe/Sarajevo":"ba","Europe/Saratov":"ru","Europe/Simferopol":"ru","Europe/Skopje":"mk","Europe/Sofia":"bg","Europe/Stockholm":"se","Europe/Tallinn":"ee","Europe/Tirane":"al","Europe/Ulyanovsk":"ru","Europe/Uzhgorod":"ua","Europe/Vaduz":"li","Europe/Vatican":"va","Europe/Vienna":"at","Europe/Vilnius":"lt","Europe/Volgograd":"ru","Europe/Warsaw":"pl","Europe/Zagreb":"hr","Europe/Zaporozhye":"ua","Europe/Zurich":"ch","GB":"gb","GB-Eire":"gb","Indian/Antananarivo":"mg","Indian/Chagos":"io","Indian/Christmas":"au","Indian/Cocos":"au","Indian/Comoro":"km","Indian/Kerguelen":"zm","Indian/Mahe":"sc","Indian/Maldives":"mv","Indian/Mauritius":"mu","Indian/Mayotte":"re","Indian/Reunion":"re","NZ":"nz","Pacific/Apia":"ws","Pacific/Auckland":"nz","Pacific/Bougainville":"pg","Pacific/Chatham":"nz","Pacific/Chuuk":"fm","Pacific/Easter":"cl","Pacific/Efate":"vu","Pacific/Fakaofo":"tk","Pacific/Fiji":"fj","Pacific/Funafuti":"tv","Pacific/Galapagos":"ec","Pacific/Gambier":"pf","Pacific/Guadalcanal":"sb","Pacific/Guam":"gu","Pacific/Honolulu":"us","Pacific/Johnston":"us","Pacific/Kanton":"ki","Pacific/Kiritimati":"ki","Pacific/Kosrae":"fm","Pacific/Kwajalein":"mh","Pacific/Majuro":"mh","Pacific/Marquesas":"pf","Pacific/Midway":"us","Pacific/Nauru":"nr","Pacific/Niue":"nu","Pacific/Norfolk":"nf","Pacific/Noumea":"nc","Pacific/Pago_Pago":"as","Pacific/Palau":"pw","Pacific/Pitcairn":"nz","Pacific/Pohnpei":"fm","Pacific/Port_Moresby":"pg","Pacific/Rarotonga":"ck","Pacific/Saipan":"mp","Pacific/Samoa":"ws","Pacific/Tahiti":"pf","Pacific/Tarawa":"ki","Pacific/Tongatapu":"to","Pacific/Wake":"us","Pacific/Wallis":"wf","Singapore":"sg","US/Arizona":"us","US/Hawaii":"us","US/Samoa":"ws"}'); /***/ }), /***/ "../../../node_modules/react-phone-hooks/metadata/validations.json": /*!*************************************************************************!*\ !*** ../../../node_modules/react-phone-hooks/metadata/validations.json ***! \*************************************************************************/ /***/ ((module) => { module.exports = /*#__PURE__*/JSON.parse('{"ad":["^\\\\d{6,9}$","^(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}$"],"ae":["^\\\\d{8,9}$","^(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}$"],"af":["^\\\\d{9}$","^[2-7]\\\\d{8}$"],"ag":["^\\\\d{10}$","^(?:268|[58]\\\\d\\\\d|900)\\\\d{7}$"],"ai":["^\\\\d{10}$","^(?:264|[58]\\\\d\\\\d|900)\\\\d{7}$"],"al":["^\\\\d{6,9}$","^(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}$"],"am":["^\\\\d{8}$","^(?:[1-489]\\\\d|55|60|77)\\\\d{6}$"],"ao":["^\\\\d{9}$","^[29]\\\\d{8}$"],"ar":["^\\\\d{10,11}$","^(?:11|[89]\\\\d\\\\d)\\\\d{8}|[2368]\\\\d{9}$"],"as":["^\\\\d{10}$","^(?:[58]\\\\d\\\\d|684|900)\\\\d{7}$"],"at":["^\\\\d{4,13}$","^1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}$"],"au":["^\\\\d{5,12}$","^1(?:[0-79]\\\\d{7}(?:\\\\d(?:\\\\d{2})?)?|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}$"],"aw":["^\\\\d{7}$","^(?:[25-79]\\\\d\\\\d|800)\\\\d{4}$"],"az":["^\\\\d{9}$","^365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}$"],"ba":["^\\\\d{8,9}$","^6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}$"],"bb":["^\\\\d{10}$","^(?:246|[58]\\\\d\\\\d|900)\\\\d{7}$"],"bd":["^\\\\d{6,10}$","^[1-469]\\\\d{9}|8[0-79]\\\\d{7,8}|[2-79]\\\\d{8}|[2-9]\\\\d{7}|[3-9]\\\\d{6}|[57-9]\\\\d{5}$"],"be":["^\\\\d{8,9}$","^4\\\\d{8}|[1-9]\\\\d{7}$"],"bf":["^\\\\d{8}$","^[025-7]\\\\d{7}$"],"bg":["^\\\\d{6,9}$","^00800\\\\d{7}|[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}$"],"bh":["^\\\\d{8}$","^[136-9]\\\\d{7}$"],"bi":["^\\\\d{8}$","^(?:[267]\\\\d|31)\\\\d{6}$"],"bj":["^\\\\d{8,10}$","^(?:01\\\\d|[24-689])\\\\d{7}$"],"bm":["^\\\\d{10}$","^(?:441|[58]\\\\d\\\\d|900)\\\\d{7}$"],"bn":["^\\\\d{7}$","^[2-578]\\\\d{6}$"],"bo":["^\\\\d{8,9}$","^8001\\\\d{5}|(?:[2-467]\\\\d|50)\\\\d{6}$"],"bq":["^\\\\d{7}$","^(?:[34]1|7\\\\d)\\\\d{5}$"],"br":["^\\\\d{8,11}$","^(?:[1-46-9]\\\\d\\\\d|5(?:[0-46-9]\\\\d|5[0-46-9]))\\\\d{8}|[1-9]\\\\d{9}|[3589]\\\\d{8}|[34]\\\\d{7}$"],"bs":["^\\\\d{10}$","^(?:242|[58]\\\\d\\\\d|900)\\\\d{7}$"],"bt":["^\\\\d{7,8}$","^[17]\\\\d{7}|[2-8]\\\\d{6}$"],"bw":["^\\\\d{7,8}$","^(?:0800|(?:[37]|800)\\\\d)\\\\d{6}|(?:[2-6]\\\\d|90)\\\\d{5}$"],"by":["^\\\\d{6,11}$","^(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}$"],"bz":["^\\\\d{7}$","^(?:0800\\\\d|[2-8])\\\\d{6}$"],"ca":["^\\\\d{7,10}$","^[2-9]\\\\d{9}|3\\\\d{6}$"],"cd":["^\\\\d{7,10}$","^(?:(?:[189]|5\\\\d)\\\\d|2)\\\\d{7}|[1-68]\\\\d{6}$"],"cf":["^\\\\d{8}$","^(?:[27]\\\\d{3}|8776)\\\\d{4}$"],"cg":["^\\\\d{9}$","^222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}$"],"ch":["^\\\\d{9,12}$","^8\\\\d{11}|[2-9]\\\\d{8}$"],"ci":["^\\\\d{10}$","^[02]\\\\d{9}$"],"ck":["^\\\\d{5}$","^[2-578]\\\\d{4}$"],"cl":["^\\\\d{9,11}$","^12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}$"],"cm":["^\\\\d{9}$","^[26]\\\\d{8}|88\\\\d{6,7}$"],"cn":["^\\\\d{7,12}$","^(?:(?:1[03-689]|2\\\\d)\\\\d\\\\d|6)\\\\d{8}|1\\\\d{10}|[126]\\\\d{6}(?:\\\\d(?:\\\\d{2})?)?|86\\\\d{5,6}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{5,9}$"],"co":["^\\\\d{8,11}$","^(?:46|60\\\\d\\\\d)\\\\d{6}|(?:1\\\\d|[39])\\\\d{9}$"],"cr":["^\\\\d{8,10}$","^(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}$"],"cu":["^\\\\d{6,10}$","^(?:[2-7]|8\\\\d\\\\d)\\\\d{7}|[2-47]\\\\d{6}|[34]\\\\d{5}$"],"cv":["^\\\\d{7}$","^(?:[2-59]\\\\d\\\\d|800)\\\\d{4}$"],"cw":["^\\\\d{7,8}$","^(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}$"],"cy":["^\\\\d{8}$","^(?:[279]\\\\d|[58]0)\\\\d{6}$"],"cz":["^\\\\d{9,12}$","^(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}$"],"de":["^\\\\d{4,15}$","^[2579]\\\\d{5,14}|49(?:[34]0|69|8\\\\d)\\\\d\\\\d?|49(?:37|49|60|7[089]|9\\\\d)\\\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\\\d{1,8}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}|49(?:[015]\\\\d|2[13]|31|[46][1-8])\\\\d{1,9}$"],"dj":["^\\\\d{8}$","^(?:2\\\\d|77)\\\\d{6}$"],"dk":["^\\\\d{8}$","^[2-9]\\\\d{7}$"],"dm":["^\\\\d{10}$","^(?:[58]\\\\d\\\\d|767|900)\\\\d{7}$"],"do":["^\\\\d{10}$","^(?:[58]\\\\d\\\\d|900)\\\\d{7}$"],"dz":["^\\\\d{8,9}$","^(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}$"],"ec":["^\\\\d{8,9}$","^1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}$"],"ee":["^\\\\d{7,8}$","^8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}$"],"eg":["^\\\\d{8,10}$","^[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}$"],"er":["^\\\\d{7}$","^[178]\\\\d{6}$"],"es":["^\\\\d{9}$","^[5-9]\\\\d{8}$"],"et":["^\\\\d{9}$","^(?:11|[2-579]\\\\d)\\\\d{7}$"],"fi":["^\\\\d{5,12}$","^[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}$"],"fj":["^\\\\d{7}$","^45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}$"],"fk":["^\\\\d{5}$","^[2-7]\\\\d{4}$"],"fm":["^\\\\d{7}$","^(?:[39]\\\\d\\\\d|820)\\\\d{4}$"],"fo":["^\\\\d{6}$","^[2-9]\\\\d{5}$"],"fr":["^\\\\d{9}$","^[1-9]\\\\d{8}$"],"ga":["^\\\\d{7,8}$","^(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}$"],"gb":["^\\\\d{7,10}$","^[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}$"],"gd":["^\\\\d{10}$","^(?:473|[58]\\\\d\\\\d|900)\\\\d{7}$"],"ge":["^\\\\d{9}$","^(?:[3-57]\\\\d\\\\d|800)\\\\d{6}$"],"gf":["^\\\\d{9}$","^(?:[56]94\\\\d|7093)\\\\d{5}|(?:80|9\\\\d)\\\\d{7}$"],"gh":["^\\\\d{8,9}$","^(?:[235]\\\\d{3}|800)\\\\d{5}$"],"gi":["^\\\\d{8}$","^(?:[25]\\\\d|60)\\\\d{6}$"],"gl":["^\\\\d{6}$","^(?:19|[2-689]\\\\d|70)\\\\d{4}$"],"gm":["^\\\\d{7}$","^[2-9]\\\\d{6}$"],"gn":["^\\\\d{8,9}$","^722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}$"],"gp":["^\\\\d{9}$","^(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}$"],"gq":["^\\\\d{9}$","^222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}$"],"gr":["^\\\\d{10}$","^5005000\\\\d{3}|8\\\\d{9,11}|(?:[269]\\\\d|70)\\\\d{8}$"],"gt":["^\\\\d{8,11}$","^80\\\\d{6}|(?:1\\\\d{3}|[2-7])\\\\d{7}$"],"gu":["^\\\\d{10}$","^(?:[58]\\\\d\\\\d|671|900)\\\\d{7}$"],"gw":["^\\\\d{7,9}$","^[49]\\\\d{8}|4\\\\d{6}$"],"gy":["^\\\\d{7}$","^(?:[2-8]\\\\d{3}|9008)\\\\d{3}$"],"hk":["^\\\\d{5,11}$","^8[0-46-9]\\\\d{6,7}|9\\\\d{4,7}|(?:[2-7]|9\\\\d{3})\\\\d{7}$"],"hn":["^\\\\d{8,11}$","^8\\\\d{10}|[237-9]\\\\d{7}$"],"hr":["^\\\\d{6,9}$","^(?:[24-69]\\\\d|3[0-79])\\\\d{7}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{5,6}$"],"ht":["^\\\\d{8}$","^(?:[2-489]\\\\d|55)\\\\d{6}$"],"hu":["^\\\\d{8,9}$","^[235-7]\\\\d{8}|[1-9]\\\\d{7}$"],"id":["^\\\\d{7,17}$","^00[1-9]\\\\d{9,14}|(?:[1-36]|8\\\\d{5})\\\\d{6}|00\\\\d{9}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}$"],"ie":["^\\\\d{7,10}$","^(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}$"],"il":["^\\\\d{8,12}$","^1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}$"],"in":["^\\\\d{8,13}$","^(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}$"],"io":["^\\\\d{7}$","^3\\\\d{6}$"],"iq":["^\\\\d{8,10}$","^(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}$"],"ir":["^\\\\d{4,10}$","^[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}$"],"is":["^\\\\d{7,9}$","^(?:38\\\\d|[4-9])\\\\d{6}$"],"it":["^\\\\d{6,12}$","^0\\\\d{5,10}|1\\\\d{8,10}|3(?:[0-8]\\\\d{7,10}|9\\\\d{7,8})|(?:43|55|70)\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?$"],"je":["^\\\\d{10}$","^1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}$"],"jm":["^\\\\d{10}$","^(?:[58]\\\\d\\\\d|658|900)\\\\d{7}$"],"jo":["^\\\\d{8,9}$","^(?:(?:[2689]|7\\\\d)\\\\d|32|53)\\\\d{6}$"],"jp":["^\\\\d{8,17}$","^00[1-9]\\\\d{6,14}|[25-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}$"],"ke":["^\\\\d{7,9}$","^(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}$"],"kg":["^\\\\d{9}$","^8\\\\d{9}|[235-9]\\\\d{8}$"],"kh":["^\\\\d{8,10}$","^1\\\\d{9}|[1-9]\\\\d{7,8}$"],"ki":["^\\\\d{5,8}$","^(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}$"],"km":["^\\\\d{7}$","^[3478]\\\\d{6}$"],"kn":["^\\\\d{10}$","^(?:[58]\\\\d\\\\d|900)\\\\d{7}$"],"kp":["^\\\\d{8,10}$","^85\\\\d{6}|(?:19\\\\d|[2-7])\\\\d{7}$"],"kr":["^\\\\d{5,14}$","^00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}$"],"kw":["^\\\\d{8}$","^18\\\\d{5}|(?:[2569]\\\\d|41)\\\\d{6}$"],"ky":["^\\\\d{10}$","^(?:345|[58]\\\\d\\\\d|900)\\\\d{7}$"],"kz":["^\\\\d{10}$","^(?:33622|8\\\\d{8})\\\\d{5}|[78]\\\\d{9}$"],"la":["^\\\\d{8,10}$","^[23]\\\\d{9}|3\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}$"],"lb":["^\\\\d{7,8}$","^[27-9]\\\\d{7}|[13-9]\\\\d{6}$"],"lc":["^\\\\d{10}$","^(?:[58]\\\\d\\\\d|758|900)\\\\d{7}$"],"li":["^\\\\d{7,9}$","^[68]\\\\d{8}|(?:[2378]\\\\d|90)\\\\d{5}$"],"lk":["^\\\\d{9}$","^[1-9]\\\\d{8}$"],"lr":["^\\\\d{7,9}$","^(?:[245]\\\\d|33|77|88)\\\\d{7}|(?:2\\\\d|[4-6])\\\\d{6}$"],"ls":["^\\\\d{8}$","^(?:[256]\\\\d\\\\d|800)\\\\d{5}$"],"lt":["^\\\\d{8}$","^(?:[3469]\\\\d|52|[78]0)\\\\d{6}$"],"lu":["^\\\\d{4,11}$","^35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}$"],"lv":["^\\\\d{8}$","^(?:[268]\\\\d|90)\\\\d{6}$"],"ly":["^\\\\d{9}$","^[2-9]\\\\d{8}$"],"ma":["^\\\\d{9}$","^[5-8]\\\\d{8}$"],"mc":["^\\\\d{8,9}$","^(?:[3489]|6\\\\d)\\\\d{7}$"],"md":["^\\\\d{8}$","^(?:[235-7]\\\\d|[89]0)\\\\d{6}$"],"me":["^\\\\d{8}$","^(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}$"],"mg":["^\\\\d{9}$","^[23]\\\\d{8}$"],"mh":["^\\\\d{7}$","^329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}$"],"mk":["^\\\\d{8}$","^[2-578]\\\\d{7}$"],"ml":["^\\\\d{8}$","^[24-9]\\\\d{7}$"],"mm":["^\\\\d{6,10}$","^1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}$"],"mn":["^\\\\d{8,10}$","^[12]\\\\d{7,9}|[5-9]\\\\d{7}$"],"mo":["^\\\\d{8}$","^0800\\\\d{3}|(?:28|[68]\\\\d)\\\\d{6}$"],"mp":["^\\\\d{10}$","^[58]\\\\d{9}|(?:67|90)0\\\\d{7}$"],"mq":["^\\\\d{9}$","^(?:596\\\\d|7091)\\\\d{5}|(?:69|[89]\\\\d)\\\\d{7}$"],"mr":["^\\\\d{8}$","^(?:[2-4]\\\\d\\\\d|800)\\\\d{5}$"],"ms":["^\\\\d{10}$","^(?:[58]\\\\d\\\\d|664|900)\\\\d{7}$"],"mt":["^\\\\d{8}$","^3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}$"],"mu":["^\\\\d{7,8}$","^(?:[57]|8\\\\d\\\\d)\\\\d{7}|[2-468]\\\\d{6}$"],"mv":["^\\\\d{7,10}$","^(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}$"],"mw":["^\\\\d{7,9}$","^(?:[1289]\\\\d|31|77)\\\\d{7}|1\\\\d{6}$"],"mx":["^\\\\d{10}$","^[2-9]\\\\d{9}$"],"my":["^\\\\d{8,10}$","^1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}$"],"mz":["^\\\\d{8,9}$","^(?:2|8\\\\d)\\\\d{7}$"],"na":["^\\\\d{8,9}$","^[68]\\\\d{7,8}$"],"nc":["^\\\\d{6}$","^(?:050|[2-57-9]\\\\d\\\\d)\\\\d{3}$"],"ne":["^\\\\d{8}$","^[027-9]\\\\d{7}$"],"nf":["^\\\\d{6}$","^[13]\\\\d{5}$"],"ng":["^\\\\d{8,14}$","^38\\\\d{6}|[78]\\\\d{9,13}|(?:20|9\\\\d)\\\\d{8}$"],"ni":["^\\\\d{8}$","^(?:1800|[25-8]\\\\d{3})\\\\d{4}$"],"nl":["^\\\\d{5,11}$","^(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|8\\\\d{6,9}|9\\\\d{6,10}|1\\\\d{4,5}$"],"no":["^\\\\d{5,8}$","^(?:0|[2-9]\\\\d{3})\\\\d{4}$"],"np":["^\\\\d{8,10}$","^(?:1\\\\d|9)\\\\d{9}|[1-9]\\\\d{7}$"],"nr":["^\\\\d{7}$","^(?:444|(?:55|8\\\\d)\\\\d|666)\\\\d{4}$"],"nu":["^\\\\d{4,7}$","^(?:[4-7]|888\\\\d)\\\\d{3}$"],"nz":["^\\\\d{5,10}$","^[1289]\\\\d{9}|50\\\\d{5}(?:\\\\d{2,3})?|[27-9]\\\\d{7,8}|(?:[34]\\\\d|6[0-35-9])\\\\d{6}|8\\\\d{4,6}$"],"om":["^\\\\d{8}$","^(?:1505|[279]\\\\d{3}|500)\\\\d{4}|800\\\\d{5,6}$"],"pa":["^\\\\d{7,8}$","^(?:00800|8\\\\d{3})\\\\d{6}|[68]\\\\d{7}|[1-57-9]\\\\d{6}$"],"pe":["^\\\\d{8,9}$","^(?:[14-8]|9\\\\d)\\\\d{7}$"],"pf":["^\\\\d{6,8}$","^4\\\\d{5}(?:\\\\d{2})?|8\\\\d{7,8}$"],"pg":["^\\\\d{7,8}$","^(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}$"],"ph":["^\\\\d{6,10}$","^(?:[2-7]|9\\\\d)\\\\d{8}|2\\\\d{5}|(?:1800|8)\\\\d{7,9}$"],"pk":["^\\\\d{8,12}$","^122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}$"],"pl":["^\\\\d{6,9}$","^(?:6|8\\\\d\\\\d)\\\\d{7}|[1-9]\\\\d{6}(?:\\\\d{2})?|[26]\\\\d{5}$"],"pm":["^\\\\d{6,9}$","^[45]\\\\d{5}|(?:708|8\\\\d\\\\d)\\\\d{6}$"],"pr":["^\\\\d{10}$","^(?:[589]\\\\d\\\\d|787)\\\\d{7}$"],"ps":["^\\\\d{8,10}$","^[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}$"],"pt":["^\\\\d{9}$","^1693\\\\d{5}|(?:[26-9]\\\\d|30)\\\\d{7}$"],"pw":["^\\\\d{7}$","^(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}$"],"py":["^\\\\d{6,9}$","^59\\\\d{4,6}|9\\\\d{5,10}|(?:[2-46-8]\\\\d|5[0-8])\\\\d{4,7}$"],"qa":["^\\\\d{7,8}$","^800\\\\d{4}|(?:2|800)\\\\d{6}|(?:0080|[3-7])\\\\d{7}$"],"re":["^\\\\d{9}$","^709\\\\d{6}|(?:26|[689]\\\\d)\\\\d{7}$"],"ro":["^\\\\d{6,9}$","^(?:[236-8]\\\\d|90)\\\\d{7}|[23]\\\\d{5}$"],"rs":["^\\\\d{6,12}$","^38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}$"],"ru":["^\\\\d{10}$","^8\\\\d{13}|[347-9]\\\\d{9}$"],"rw":["^\\\\d{8,9}$","^(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}$"],"sa":["^\\\\d{9,10}$","^92\\\\d{7}|(?:[15]|8\\\\d)\\\\d{8}$"],"sb":["^\\\\d{5,7}$","^[6-9]\\\\d{6}|[1-6]\\\\d{4}$"],"sc":["^\\\\d{7}$","^(?:[2489]\\\\d|64)\\\\d{5}$"],"sd":["^\\\\d{9}$","^[19]\\\\d{8}$"],"se":["^\\\\d{7,12}$","^(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}$"],"sg":["^\\\\d{8,11}$","^(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}$"],"sh":["^\\\\d{4,5}$","^(?:[256]\\\\d|8)\\\\d{3}$"],"si":["^\\\\d{5,8}$","^[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}$"],"sk":["^\\\\d{6,9}$","^[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}$"],"sl":["^\\\\d{8}$","^(?:[237-9]\\\\d|66)\\\\d{6}$"],"sm":["^\\\\d{8,10}$","^(?:0549|[5-7]\\\\d)\\\\d{6}$"],"sn":["^\\\\d{9}$","^(?:[378]\\\\d|93)\\\\d{7}$"],"so":["^\\\\d{6,9}$","^[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}$"],"sr":["^\\\\d{6,7}$","^(?:[2-5]|68|[78]\\\\d)\\\\d{5}$"],"ss":["^\\\\d{9}$","^[19]\\\\d{8}$"],"st":["^\\\\d{7}$","^(?:22|9\\\\d)\\\\d{5}$"],"sv":["^\\\\d{7,11}$","^[267]\\\\d{7}|(?:80\\\\d|900)\\\\d{4}(?:\\\\d{4})?$"],"sx":["^\\\\d{10}$","^7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}$"],"sy":["^\\\\d{8,9}$","^[1-359]\\\\d{8}|[1-5]\\\\d{7}$"],"sz":["^\\\\d{8,9}$","^0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}$"],"tc":["^\\\\d{10}$","^(?:[58]\\\\d\\\\d|649|900)\\\\d{7}$"],"td":["^\\\\d{8}$","^(?:22|[689]\\\\d|77)\\\\d{6}$"],"tg":["^\\\\d{8}$","^[279]\\\\d{7}$"],"th":["^\\\\d{8,10}$","^(?:001800|[2-57]|[689]\\\\d)\\\\d{7}|1\\\\d{7,9}$"],"tj":["^\\\\d{9}$","^[0-57-9]\\\\d{8}$"],"tk":["^\\\\d{4,7}$","^[2-47]\\\\d{3,6}$"],"tl":["^\\\\d{7,8}$","^7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}$"],"tm":["^\\\\d{8}$","^(?:[1-6]\\\\d|71)\\\\d{6}$"],"tn":["^\\\\d{8}$","^[2-57-9]\\\\d{7}$"],"to":["^\\\\d{5,7}$","^(?:0800|(?:[5-8]\\\\d\\\\d|999)\\\\d)\\\\d{3}|[2-8]\\\\d{4}$"],"tr":["^\\\\d{7,10}$","^4\\\\d{6}|8\\\\d{11,12}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}$"],"tt":["^\\\\d{10}$","^(?:[58]\\\\d\\\\d|900)\\\\d{7}$"],"tv":["^\\\\d{5,7}$","^(?:2|7\\\\d\\\\d|90)\\\\d{4}$"],"tw":["^\\\\d{7,11}$","^[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}$"],"tz":["^\\\\d{9}$","^(?:[25-8]\\\\d|41|90)\\\\d{7}$"],"ua":["^\\\\d{9,10}$","^[89]\\\\d{9}|[3-9]\\\\d{8}$"],"ug":["^\\\\d{9}$","^800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}$"],"us":["^\\\\d{10}$","^[2-9]\\\\d{9}|3\\\\d{6}$"],"uy":["^\\\\d{7,8}$","^0004\\\\d{2,9}|[1249]\\\\d{7}|(?:[49]\\\\d|80)\\\\d{5}$"],"uz":["^\\\\d{9}$","^(?:20|33|[5-9]\\\\d)\\\\d{7}$"],"va":["^\\\\d{6,12}$","^0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}$"],"vc":["^\\\\d{10}$","^(?:[58]\\\\d\\\\d|784|900)\\\\d{7}$"],"ve":["^\\\\d{10}$","^[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}$"],"vg":["^\\\\d{10}$","^(?:284|[58]\\\\d\\\\d|900)\\\\d{7}$"],"vi":["^\\\\d{10}$","^[58]\\\\d{9}|(?:34|90)0\\\\d{7}$"],"vn":["^\\\\d{7,10}$","^[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}$"],"vu":["^\\\\d{5,7}$","^[57-9]\\\\d{6}|(?:[238]\\\\d|48)\\\\d{3}$"],"wf":["^\\\\d{6}$","^(?:40|72|8\\\\d{4})\\\\d{4}|[89]\\\\d{5}$"],"ws":["^\\\\d{5,10}$","^(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}$"],"xk":["^\\\\d{8,12}$","^2\\\\d{7,8}|3\\\\d{7,11}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}$"],"ye":["^\\\\d{7,9}$","^(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}$"],"za":["^\\\\d{5,10}$","^[1-79]\\\\d{8}|8\\\\d{4,9}$"],"zm":["^\\\\d{9}$","^800\\\\d{6}|(?:21|63|[79]\\\\d)\\\\d{7}$"],"zw":["^\\\\d{5,10}$","^2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}$"],"ac":["^\\\\d{5,6}$","^(?:[01589]\\\\d|[46])\\\\d{4}$"],"ax":["^\\\\d{5,12}$","^2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}$"],"bl":["^\\\\d{9}$","^(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}$"],"cc":["^\\\\d{6,12}$","^1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}$"],"cx":["^\\\\d{6,12}$","^1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}$"],"eh":["^\\\\d{9}$","^[5-8]\\\\d{8}$"],"gg":["^\\\\d{7,10}$","^(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?$"],"im":["^\\\\d{10}$","^1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}$"],"mf":["^\\\\d{9}$","^(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}$"],"sj":["^\\\\d{5,8}$","^0\\\\d{4}|(?:[489]\\\\d|79)\\\\d{6}$"],"ta":["^\\\\d{4}$","^8\\\\d{3}$"],"yt":["^\\\\d{9}$","^7093\\\\d{5}|(?:80|9\\\\d)\\\\d{7}|(?:26|63)9\\\\d{6}$"],"001":["^\\\\d{9}$","^[1359]\\\\d{8}$"]}'); /***/ }), /***/ "../../../node_modules/react-phone-hooks/styles.js": /*!*********************************************************!*\ !*** ../../../node_modules/react-phone-hooks/styles.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ injectStyles: () => (/* binding */ injectStyles), /* harmony export */ jsonToCss: () => (/* binding */ jsonToCss) /* harmony export */ }); "use client"; const jsonToCss = (stylesheet) => { /** Convert the given `stylesheet` object to raw CSS */ return Object.entries(stylesheet).map(([selector, rules]) => { return `${selector} {` + Object.entries(rules).map(([key, value]) => { return `${key}: ${value}; `; }).join("") + "} "; }).join(""); }; const injectStyles = (cssText) => { /** Inject the given `cssText` in the document head */ try { const style = document.createElement("style"); style.setAttribute("type", "text/css"); if (style.styleSheet) { style.styleSheet.cssText = cssText; } else { style.appendChild(document.createTextNode(cssText)); } document.head.appendChild(style); } catch (err) { } }; /***/ }), /***/ "../../../node_modules/react-phone-hooks/stylesheet.json": /*!***************************************************************!*\ !*** ../../../node_modules/react-phone-hooks/stylesheet.json ***! \***************************************************************/ /***/ ((module) => { module.exports = /*#__PURE__*/JSON.parse('{".flag":{"width":"16px","height":"11px","background-image":"url(data:image\\\\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAACmCAMAAAACnqETAAADAFBMVEUAAAD30gQCKn0GJJ4MP4kMlD43WGf9\\\\/f329vcBAQHhAADx8vHvAwL8AQL7UlL4RUUzqDP2MjLp6un2Jyj0Ghn2PTr9fHvi5OJYuln7Xl75+UPpNzXUAQH29jH6cXC+AAIAJwBNtE\\\\/23Ff5aGdDr0TJAQHsZV3qR0IAOQB3x3fdRD\\\\/Z2NvuWFLkcG7fVlH4kI4AAlXO0M8BATsdS6MCagIBfQEASgPoKSc4VKL442q4xeQAigD46eetAABYd9jvf3nZMiwAAoD30zz55X5ng9tPbKZnwGXz8x77+lY7OTjzzikABGsenh72pKNPldEAWgHgGBgAACH88\\\\/Gqt95JR0OWAwP3uLd\\\\/qdr53kMBBJJ3d3XMPTpWer8NnAwABKPH1O1VVFIuLSz13NtZnlf2kEh9keLn7vfZ4vNkZGHzvwJIXZRfZLuDwfv4y8tvk79LlUblzsxorGcCBusFKuYCCcdmfq5jqvlxt\\\\/tzktEABLb8\\\\/HL2tlTAw8SLlMFpj\\\\/ZlpNhBZ81BYbQcGxuToN9SYdjXY2Lz7lD0dCQ6S9Dm0EUCYPdDlvWWvd2AnviXqc11eMZTqPc3cPMCRev16ZrRUE0Hf\\\\/tNT7HIJyTptDVTffSsTkvhtgQ0T4jigoFUx\\\\/g+hsX9\\\\/QUHzQY1dbJ7sHV02Pduvd0leiK1XmaTrfpCQPgELrrdsrY1NamgyPrh03iPxosvX92ysbCgoZzk5kP1YD7t6AILnu+45LykNS40qvXDdHnR6tBennz6u3TSxU1Or9Swz6wqzCsPZKzglJbIqEY8hDhyAgFzbJxuOC+Li4d9sJLFsnhwbvH2d1A3kzAqPZQITsN76nq2dzaZdKJf4F6RJkb078YFiM+tnWZGh2F+dDibykYoMcsnekdI1UhCAwWb25qVkEq43km9yBrclQMGwfyZ3\\\\/zZ2QK9gJxsJWCBUk32QwqOSYKRxh6Xdm3B4oMW22EPZzawnR72kgZltCqPxrdH1dkBkqDdWwwMwMO9O2sqKXHvipPGJkzlRVLhJjVIs9KrAAAAB3RSTlMA\\\\/v3+\\\\/Pn9Fk05qAAAUU9JREFUeNp0nAlYVNcVxzHazoroGBkXhAgCCjMsroDoKIgKdFABBwQUnSAoCqLRFBfcCBIM4kbqShO1hlSrCJqQQmNssVFqjBarsdjFJWlMTOLXJDZt8\\\\/X7+j\\\\/n3pk3vNq\\\\/bb8+3nbP79137\\\\/+dd954qTVt8uTJL73OMhqNer03ady4cWOhWbNmjV+0FfKGjMb36Y9\\\\/1fXUst9cb2y8\\\\/lpb797z5k2dOjXVD9Ljn59fcHBwQEDAgGch3l9on6feeeedn0r9kvT222+\\\\/sErRgvcDArwV8f5tN\\\\/rcvPnMZ22pqVFRSVGjR38k9Rsp9fLql\\\\/MXLj20VGjt2rVeak2Og\\\\/auI\\\\/kHBQ3We\\\\/tCo0ZNhwYNGj58\\\\/NaWlpbOyMhIX1\\\\/\\\\/2\\\\/jTrICvckhXruQsWbJw4cL3tzhPORynSk5lZWVtglL9IkmdDQ05NqvVGhLwbKSUL+Tvb9yH\\\\/2sj+eN0IZZ3fvq3Hnp71ZtCOyofdnTYSzq9xX7UtsF9+\\\\/Y1FpeZT54sc2aUlq6Jy89YM\\\\/qj2oZaoeOkMR8dV\\\\/Tee++NWb04rrA5MRYKDAyc\\\\/NKCpwDIyKhE9LEzZ\\\\/r4DLQAAE6EyEeM6AcNH7m1pTMnB+fHX7tG9Bs0Xt+GwM\\\\/frqm5tz950aKDk6rsiA0xbUrbRAii\\\\/BDeV9bGhQsPRlyOCAuZ9GykZwT++n2RHPnVYQU+oaFDPQD8jEQAPiDdaLPaHGVXbn\\\\/O7YHQuIH9B\\\\/gYgzts1iqrtSopKWlNRkzS6I8arFaOFvTfew8AfiYil\\\\/rN6sWTKwtbArOzExISUl7+vwCuQNt8Bg71AQCcTwNpWeFbW3IIQEmJr08XgIzX2xDcvZrs7Jru5EWXwwKSwh2RkQ77w7Q0bXp6YRoDaKO+kZl8MCwsYpJ3pEf8liAAoPhDhqUMQ\\\\/wAkF+oqKiosJYA7HxotdnTtVe6Pr\\\\/S0h+AI90QffU3T9obGuwdD5PqkmJiMtbM+ajWI\\\\/60TX0COhoarAAE1dfXV80FgMmLi1oSKP7\\\\/B6ASAGyBV4YM7D\\\\/Bx8\\\\/bF7g5fgmgEwCCSiJtJQRgxEi9zZqVdYUu9pW0tLCIgOvxdR0dpxx5aWl7EzV7CYDV+tXnCzMzkzMvE4AFlTuhZaSf\\\\/OQny1L32RC+JcHikzJ06NAJoe+YNKRbsbG3xPlWZTxssNmdOP\\\\/J27ffudLJ60V7DAaT1lxRVvfwYe3Jlrq4uJiKjAwAcIWP+BkAhV\\\\/i7HA0uAG8BAIUf8qfzvwvgJcQf+XMK4GWi8OGTpgQ6uftzwC0LIM2WgcASwaXOBwlA7v6\\\\/YgAhFRt2pRGeu0\\\\/UyImbal77eHDo2kVAJAeKwE0fl6P63\\\\/5nSlTAKBCiR8AovbZEL9lf8I5AMD5booAE7OzY8X5fhGJi0\\\\/nTzTcMh+80iIBaF0APqvIu3EjqfRGcV3S4aSKYk8AaW4ADU4gOFlfn8sAXnoJBDpTCMDL87zU2kwATl+x1Nw+P2HChKHBBMDHFT8DwGjX11FSYu\\\\/f\\\\/aMf9XtOjwAacf2hmxRg7ywXDrr30kb7NVhDquo\\\\/z0y+nJs7ZUoYA5DxM4BFmcnJyV93PzjbvQhK3urqAYF7xflWVT5ssDaU4Ox7T9+6Ei4BaN0AUkvXJEExMTGHD9cdFgA2yfgZQAP1f0dJw0lrfS4BmIb4z5yZBgL\\\\/H8DibbehGROenQ0AQRhvZPwQAGDQ8wlqsFkmdP9ofr\\\\/n\\\\/OgK2ml1xxQECAAy\\\\/tdee++91wCA1mfWJy\\\\/KXUTr536T+O67764X2r9\\\\/\\\\/T+3JkPdDx50f7qItDXfff+zeAxY1lYV0VCmPV1Ts5fGAGUYDbHpo0qT6vKTignAtWvXiuf0StwGZZPQybMPAYC8\\\\/xF\\\\/bj0AUPwvvzytKCdl6dMAvJxRuXjxkCHnL86YMXs2A8B4m4yWQTrdIp0uByMajcATJrwzXwCIiIjAFSrbJwGI+FlH00YH8\\\\/rQy5enQPsYgBK\\\\/BLCI1c0Afonhn\\\\/XjH8MNLP9o1Y4Pfg795N9hYQ23bt1q4fb07z+A\\\\/ITR2J8AFJnqOP7iuj7Fc35TK+9\\\\/bkPaM+NGiSnsB6wRIwGA4n\\\\/5T5Pzc5aeeAqAP1VCM4niWRqVgr1p1sEYlskNJQC4BQZbLJi0MAgCgBUKqYo3VEVEhIWFTZqXtYmVxiIAtB4QeDUAvMuSFBgAJCkwAKHlLAKw4wMIFG5URVgdLdwedEq6BuCgj1qzpi4uiVScYa6I0fWKJQVC2aRDY0eNWrlyECwMMIDDc2vZ6UF0F7z8tB5w4kTvtZ+ygklGkk4lvZ6sne45SDg8aJIQ2z+4Mmg0qcfauXPnfvPNN9XV\\\\/1S0VSWyf1Ls4FZ5aIHu\\\\/blGKb2UOM0ckq4PmsZ2b8yYMb2l4FbhX8ePHwmhuSPXkhaQ5q0tXzBvntdUUq9eSyFu9njXxpA74Leg198yktRWVI4OkAkymw2Q3WO90+nnN3u2H0QkHI6JpHHj2GvTYdsupd68GfVZ4yTJqJeUaNKhQ+rzCUvOMXEr\\\\/\\\\/4vD3333XdLe+rRJx4iqumDnT2O5zW1HII1hPLy8pJGjz9GWgk9D61Al4fWkWay9VRbUa1GEVCYDRoonu0dr++n0ZQ0dMCNdDRYHVrtuImjWHQ80lvfl4WfhJetw1CFm6h+rkazd28iJHvyIe\\\\/IHt7ZOBY7o4GPH4smPqf7nRwz\\\\/sH6bmmi2HtvYiBUYPxEcZakt701PdsPAIhb3DBbYmIIAOK+F9HXJ6z7t799AwDI48+cOQRi66m2ogoAYVwIQEkQb8DrJza1azRWq9NpjUjXtg+aNXHU9EEQHW\\\\/YsGFD3toHMFZbgzUsDNPkPgAgpScG1vA4TgB8PZATAAoc6IasWPHhhwCQkyNCdwMIJCVqDabA8+cAAJFLYVD92dvpjvQe7ZcA7p0\\\\/350dEzNmy+iRAHBPrO9+AwB41Of4h2HoFdZYhsfL7ej7QmbSBdED\\\\/GkDXv+ju9Pv4i9mM+g09Rs1duKoQSQR\\\\/4whb7msbFhufHy8M2xup6AZ3sHzWOChaveIWQCtn00A7s\\\\/84MDuD4bd+fBDcYEukrVna5fwMQPAsqnQZOqqLtBzezysvHd6z\\\\/YLANndUELMGAmgXqzPfeON3+IE8PHbuL2YegYCAO+\\\\/fz\\\\/io2VMM+5HpR\\\\/BGXIPGCzix3oAaBo13aApK9Mahg8fNAo9ANsPGi7iB4BLZRUPH9advJGb6zx+3Jk7FwFtCNekNzQUabW3cAv0Ek9uUA0U+PGsY4NmzrxQVBS3e82wGQDA7bvI8SsAsgNP7y26HV4GALyeJzGaY5J18fZ4GT+3DwBK8\\\\/K2ZF\\\\/s7v46ZYwEsMJHrJ\\\\/gApBJ8QPAs9gh2BYBnT077OwUnvcBwB0\\\\/nCEAQPFBdADefv5dPEu3p2u18e39Bg2aPou2h9wNmP3wi7bGL9qsuVOcizoBgM\\\\/X0BBtamggK2wGABn+WSLw8awm9P4Du3ecys+aMWPGt6J9medF\\\\/EsBIBbxJxSFm4vM5moJAOGL+AHAO90jfglgy5bshO7uFAIQM2fkyhUr6sX6fW+MJQDYX1wvWI\\\\/+uOIc79mziJec4ESxDPGy6AF9RfzYHgBw02s7yswNhf1GDJ8+lvcfPgKrxfoAa0S9uP9HTV95LHdur8TzuF7W5OSqDdEGAFiaiIjk9U8hAMdw+1Ts3r37VPOMGR\\\\/K9l3k+CUA9P9b4c6y8LKC6upqAiDj3wpxD1Dix\\\\/m9Uku3KAD6xMx5DgC6xfrLYwnAEuw\\\\/jOJnAMHjpnvECwA8aK5YseK3EA2aogf0pQNIAIOaXI8S0\\\\/sBAPaHaLUEIOJHPmjUsWACACN7\\\\/qLVmoz2Zjabv3x8X+oBdP\\\\/DWeih94d9sHv3BzO+fOOND6l9C93xL00BgOy97dHo\\\\/ZHm6EcAwM8OHlZ+YLpFtF9eQAGA9+81pg8DQCzdU3D9Ef\\\\/YN3AC8OP4Z5D1DBg7XYmfAKitqYl7AA8AvDxxVLtGW1VVVhYRZjC0jhg\\\\/Tuzv3j6gCuEjfghGYd\\\\/cXrFk5BNqai4K633k938h\\\\/Zp15C8Tx68E7X7Dtm2b8QZEAH743j8gYQQwC8TGlp08Z7ZWC+k\\\\/4eFf6pc\\\\/\\\\/Sje3+TZ\\\\/pFeqXkQ7hoIhhoAnve8ogRgCQZBMQsgTgBgXykpAoDKmpoIuJP\\\\/wMvzwaOKHkisVfUnDYZZ2J\\\\/k3n4ST\\\\/94UiHt2\\\\/d+Lx7yttFAXnP+60W6+X9ggQFzGDdeOJT791fQNAgAv\\\\/qHFFMAAJou7AWQBCAkKXzknW71bD96APnWQ4c+hthRsv1Ty2WNA4InwYYpzhJSW1MT+lmkxx9awyfNhQVmvf9+c9M4kVt1by8tsmuLub3I\\\\/in6er7URGkh1SZ1znfk\\\\/xR9o2oP7F8Pax1vbO8RgJcwhYp8BvpMcD1t+0GffPJ7xUo+CA54Yc+DPXv2vGA0vkBavfqIW+xeH3kr8iJ9QxJegQNpu\\\\/TMzZupnzXOkQ7+OkumeCCOU+Si2Sr7kR6RkQZ\\\\/iA0y62PWVKlUiLy8fsz1MSd6s+YhLz1vu0t7ILS4T1Rqn2cU9fF6YQdpMZIAG6dNmzZ5bX+7PZKGsXi0CM9xwZ+0DmuVnejxsHMDJu3Zu24vkrT+QTtYq4\\\\/8nvWHPzyeCa2HUySRbzMKAO9CGhZ15Pku67uGlaS7frzoeFat26uY2CpzijiIrbKfLdH2buy7eKLkR8oAaXWhQNLH8+qEKirKy0tLS6O8bXVZQpvg8dPmbV\\\\/O+jH0IvRClLY06hkPAcBGqLa19ckBzC0HVg+0R9rQFpqFtWER1oBPhr3+eutPocevPzIaBwTseTORAu\\\\/rQ7sd2AgA4g69T1PlfmGVsX9fn8ESALk4ER5Gsb\\\\/Mny2tbzGkPQwASH1s2iTDBwC2yhYeVdgq+yXODAwpCCzAozT7Dml12fqR8VGcOMtk9A0pkUvsI7YvR+DQrl2vQLtWpdbFPAVAq8lgMrcygKEEoKQsJKTMYQgLDQn4ZN3r60T43ngSrH5g1rBcWaINAoCMX1plXq8GoBUAXNYX4RcfPqzVXa8tqk3bpATAVtnCVpytsp8tsCBifcJVil8BoFhfu7OE5RCyGn0HWxweQLYvf\\\\/HF2tp1T568IgD0Gf2MJilKBSCrPf5Cc3h76e4zuwmAv8ZqQ5cLMwwNA4DWn+IfwoeqX3\\\\/8kQvAQC2rGQCU+NkqywuiAqAVACa6rO\\\\/hYsR\\\\/uBi3wKZd7wGA1gPAcEvfhAQAmEEA4DwLEgo4\\\\/tmzwyYdYqurWF+9zWKxhCKlTjnV2WEBxkhHX5\\\\/G8jSZEZoKALWJWbuyYgWBVRgA6vqk9hgDNh54YtI2t2jbn5wBgAl2m1XTYAmxhFoNU5DG\\\\/uRnHuG\\\\/d\\\\/yjEa0X7kID+99tgu6OxTytxK8A0KoAaCGexz+rWHPpUtKaG4e1hwnAhhNZlLtMhwyG+HhDGVvl0PXZ2fv7w3oMe8vPijuf4of2AQCyutDmzWdI1zcv0Psr8SOFF2As0Th8Qr84CiEzcjSKni09b4l5C+al4r9uAcCBA1nthuYKc3spA4i0hWgNdFazgbK8n3iEjzct380S1rd\\\\/f+mkAECJH87O21\\\\/2v76eALQM4MiRX0+MKqXsFXSYAei8\\\\/d3WXLHaoQNTUga4AYSGiesPTSEASvwEwCrin4D4GYAv4m9MS5M5yalGX1uixccntCDwKqf5n5FSboGNBw4caG03m1tbz5zZs3v1bAAAKvtJDAuzAeD1c0r4DEBY4f4DKH4C8AclfgYQxFl0etRWAAj+RwjA6DUyfuoC3xt02F6JnwDQ8UNpeQAB+DTY6op\\\\/HxJLU+au3jj5JYRPwvR5ZoFN3v12oVxjkE+oXbG+4o71WH5dJa9VALD7wBPMArvP7AEAfaTVgm3NZkzcszHoBCvhM4BvhTcfMOCB8OZH\\\\/sDxp0hrCwA8PvKjNqkaAPaL80sAyvU3fF+sU1tptspDaRkA3gKAEIoforwaAPhZ3f2de4RWeUvAARqDKH65ZDKE7\\\\/nxriexm17ZtO0JxvhXX1n1Q5UAYCMQTCsvn7ybEuYL9JE2q9jfZJoSBgADEP5xt757MJM0xMcHUUOfzr9Pywlua+vtThhJAOvdPYDc\\\\/LjRayC+CxiDTm2l2SpbeJmPHywzyhLDXH1ICI96wEAcAlIr4ABKSThuXt4c75ByyJ2Zj9qDWbD2SSJmAdaqBSp5CdPoB5frx9LDdEVDG6C5cKnB\\\\/xz1kdB3rAcP2Bb7+X0q9GtOXirWU7HGEgBSwI\\\\/CoehosrIT2f7pFKmtNFvlYF4W\\\\/jvAI6kMoX2y1kBIZKBHu1PDwfNI7A1ZbP+UIgPMAn08hFnAIOROal3P6pnlzSQlK8pHf4F2s+AwjSRNvDsCadl76bQif9tbqDBdNvzPfxcy8+nCw1OULDDrOukEi7PXnngo+IDLY8UZZMmGOmsMn09yPTI8VwjhWEUkXIY4mYVu2\\\\/7qq9tJXuqsLoxJj+XMZqEWUmdnskabf8olWOI9Rl9Ik07vqeh1id\\\\/EpqZRUGKOhksqxveuZGm0Idx3g\\\\/\\\\/+BPrd734n793wXnuFEoUOXc+ClJcrC4wiI8rv0On4GNUbbh8TBRtwDOPVWerxv2P9SuiPukKcBwd0xRPusuLSH+\\\\/xUmd1r9dm5XsuZzZ35kBLxCt+ANBoihA5CY6YAODEmnS8KRpIr7cBgJp2uyDkahcmi+EAUE7SpvPQFRrw9yfcvk5nPHUyApDokQWPBQCOXN7DafPo+ABH1RN8fL0t6OrVq1X3eC7C8dVZ6vHu2P\\\\/4xz\\\\/\\\\/WQDAQ44rnmhXFlrYYxeAW+mJ6bcSEyUAEFCyqJdPfkX6HLp8+fJXBEBTyAR2uAD0tWjSfbh9BGAUxX\\\\/1zi8HVXcpAHZq03m9BNBptXY4ET8DUOKXANJk\\\\/AxAFETYbO\\\\/ayJ3aACAwcH3gep\\\\/Qru4PUZ8w\\\\/nW8X9gWOMSdZR7bRG81jkOU1XjeDUArFOey4i++WFW1vr4NAMTLaFjLvekuAJvylYKIXIcvFcQItzLB9o5G44CzylcA+Pe1+GjS+fojwGDO4hbcOfuXX35bnZ0deIgB7Nyp1QqrygB+1Wb9lbOBAUQTAOV1XuwhdRZXI7Q3UVplfSKS45aEc0MH9p\\\\/yTveKkQCw7WrIXneWmYDMrD3++Mnx47x8Iqt8GiTs4+bJ8y6V3Xj4sOLkjV27qjA9AYCBvGJsQkLgXraKBAAEOsCdZPfLdbjjRwQAUOJvxy7t\\\\/BK+NKuPhqVYTX6PEHJ101+qq8MWLcrUqdf\\\\/ne5Pa+OvMLPRPB3dBw+ychaDSkers7gaFiAliv31sSHr14euv0o8n322XoeAHXhwOyuydsMYwJDax0+ePD5OywCA8NM4fAIwdWfdtIqKvKyMXbuKDPWFRS8wAG3r3lvtF0RBAveANuqv7K2Dc+3K9Z\\\\/g7gGtlKRja9sjPjSQF6\\\\/eqc7+9ttztKz3Z6uarl22BcqL+jvdo1URvyqzGbSUpOTX6XlkW0mvpaqzuBLA6dOxOD4DKMA7koRzaMyUf3+xczUCvlVgic+m+CWAIUNqjz95vEkBwJdfAniVhj6+\\\\/xuRjGyTAO42XRjVxJMfACjxE4CuveRlC2SO7d13NJD59yJFSQD0QRj+tPHu7flhpqv6y+pv\\\\/9lF7wn0QexZ4g1bBIBZBCAnIsJaEm+QAJT4f\\\\/Naqrmndd2wCFMPhuHTp3OWQDk6vS1hfcL+6v6I\\\\/iU8vgPAkAs1+5vPIn62zt6+56AsdNChjx49OqcvwsEQPx2OjwcAIv5d+YW5hfkSgNZ814wNGADHP0HEo58Q8PXe2Fjx\\\\/JkCxd7T8uXn+CUA3P4AILcPFu8NuqrDziF+lND4hfCjigAQsywKozQN0Esc8eJ89LTHLk8+7ZmV+LnBnJX2KNAA8KvVQ\\\\/\\\\/9xWTYkDNnJq9VW2m5XF8vl2lSx\\\\/X3AMDhU35kee7yXS94mfh8St78RNZDOetAEwBAmaRjoS6t4a7M0TKFcWxNtfE+cvvgsWKCjs3U8jwFAGxd0w150DIAkHO0QSjaSPM3Pa6BI+RnVtojAPAErBRo6AeHtN1YDP8uRra1aiutXgYALTZ1H287pn+SxAAA0pFB0aQT7wuzKbOQwV93kfC\\\\/Qt13j\\\\/TI0k5kg2Yqox1YY0VBwlKdWXgx6VvLzKlRrPEjRU53Q7QQdpenE\\\\/bW7G7JBpZOpUmfLVi9arXQWkhtpdXLZP8WzFsQFx3Hh2vm\\\\/CjrBZaX9UbvmzenotZWWmpZ3AOJUgvCtkq\\\\/2u2Vy0lmbiOfZhxLqSWuyC\\\\/FpS5qbCyiW\\\\/6LUm\\\\/om2rv6mrvR9VGyCRkNErs6uOprS2bcpaZ91Bbd0CTmsTiPd\\\\/i8gtuzxGVPpoIebTY61qJ+aT9pJOytEnQ6NfiSBlxcbWsMTRG7LBtdFvJ8nxI9FAyKEhgkJRa4jqHpigjQxMZqamry\\\\/fV1Hk3eWRx198zmjTpmEZovSbe7tRGq4+ntraGnlY9nJfT47Wu5YAGVIKSZIEF7y8KOrg9R5C++r2iI6\\\\/W9myvF2p3\\\\/YNwyqQYcl\\\\/Fc14TkcNAk+r60AkPhBzg0wkA4GNi2fyDCMAg5VURKkfz4uwOzWJN0GBNuR0Qrnk3jTrrqlh68O1wvDlyNCBp6R+k0Tqq7ACgOp7K2koA6b7xSgFGeuTgvkElWBYAEDgidxVY8P5c0DGMrbLTgx908tVTPdo73uumw+4baW94WByTlp+fFuMCkJGhBqD1ACCeFP2pTg\\\\/WVzkgTpiXUV6GtCCeD4Li82N29vYGoDs1\\\\/Lrvy379ngcADaWtg0JwMAe8ufp46gIM+brdYnEKL4\\\\/lSF5fItqjFE6ms6\\\\/g\\\\/UVBB18Qb1xgeno4x7qqf\\\\/XUKdr81i2ZIfJaU1LR0YEsbUxMWmnFUQEgP5\\\\/sYFxceXlWn1XIGR6w0JzDWosGZ2SIBgeFwJvDeBBvtxWVz5Ior2Xle486i4KIO1fP3aEXkiv0QQ47pa9CQoTTnP304227d08ejwMsszRaylwAZIGDvwCw\\\\/RQ8ObRRaBUXcIiCDpwPAN6NvQoN5vgHngOA5XT7NDVJa+31WUXSjRsxa27EXEuLawGAo3HU\\\\/+OysnBjlpdmPeNnExkYV16+HO3NEKMQJjgrGizjl1a0MTLI4xL2vek9KrBg+IiuhBRUFhMAfrojiae74Kcf715m8j0+ngDgj\\\\/vBR9QOAyArUmj2njc5cJmkOLCKa5u5PTO4YMM7cR0REPELAMtxxA0bpDX3SsXYFwNdu5bWmZN0bc7RjNraOMSPHpBRCgCrKWcYKq\\\\/\\\\/njNrp4kGmyCQCQlGg5X40WDZA3z6u3vAnUEjRtw5d+5LAJi\\\\/Qm9xcOstFht9JxHp9\\\\/TjDeteKJyd7AFhuVPKhFX39vcXXd4hssjbuQO4IGxkAD6iPZy1Rg9Yj\\\\/g5\\\\/IGPAGD58kJ42Q0bwnE8AUDG39mZl5eToyMAiL62Fok2AkD34O7QM26jlIcG14oui6sYEjymrpxeyuUJlaZuqViWnz5Y0x8AQpt7J6V6Hxs+4k4N2chD386f\\\\/6EeRseB9lso89oBY6I+3lhVAQYDSHfud5qEkUEWGftj574ii2xWUqJyPTqfKOjg\\\\/WlQ5P7v4wJwSguhoJEV7hW1huOHKO1xDQD45aJWWyoAUAPOhBEAgwtAbZ2YhC2haDA\\\\/bbkfNvKmxmRobJF5mgEDNL\\\\/Q2EPKU72nD7rPPhq5rwf9CIDdageAUK2hod4GAKrj\\\\/U8BRiQ\\\\/ju8\\\\/R\\\\/7UJ4Ssbl9HutbpL63uUws2RH\\\\/k5bKe1vrKq8td1nsflDsXAES5OXQY9da639SS6uQswAC0ByyTlR6QAQkbEgIBQNbicggY8qCpdRpb3M6dNAguS4rTWC4ZjwVCXIABCitgdZ2RGNBDMAs4bSUAoDre\\\\/xRgsCFYvx5hkbkVVjfIv6\\\\/L6j61YIMLOs7ysuvttdSRV+vcnqEecycAiFpbFtUbiEpbzpiy6NKsDlhL\\\\/pS1ZQuq6TZwkjCYJOtuSVNJpZ8nIQeaf\\\\/NmPlKyz9R+b4T++cj46JF+9iM9JK2un5+0uurjkX2T5Qsso5Df\\\\/7O6smCj5\\\\/a93oI+5eUjKu0JVpLMJK\\\\/r18PDZRaWq4i3k0ykcHbLKmcqaoVlCvcQtGjEjyZ6emF1Fre3CpDa6vKZhbHn8wdLueytnqU8n7CTFSllugeMik0WaJd6CrUZDTfmwep\\\\/cY3S5M\\\\/hmqjP73V9Mj0uKjnA7ZQtFebiRWiVt8x\\\\/yrHW6GE1SYf8Hraa2psUa2m0QWRlQ0QWd8FiUrkrL5XK+ytm13iiUog3mzZtQbANsrpL7CfpySCz+G8BXEChYRVAxj1vSsmCDVUBxTfFTq3zpDO+Li5\\\\/Q9OFlrg6tdX2MovZCn6MtXM7PS8LAPQ+HQA48IcPeardqFesJtf6HvL2bby97tat9unCCQIAz\\\\/ORkWKeBwB3PgafKWxOFVYXCYvjwuqe4NAlnpcIgIhcFkQAAAfOfwwNIwAALR4IkKEpMJp6ZrWj1QUUgx2Yde32G\\\\/hIB+VVx6LUVlsCcF2Dyt4MQBzvFQgAKP62pvA2CUBaTZmF\\\\/RjLEV+dn7nuVvuo4fQRFQBYoHRH31DKAgdX5EMSb0ZGXIy0uiU+JcLqEoBprvgZgBK\\\\/BKDEHxYBAIMEAG16NQDoJYAdO7QCQAKnL043N5+mbpB4qNEZ77CXlFRk5FMJfFOd\\\\/OyOxJ\\\\/deZ1A99+8Weue5gjALphFLL+yezcB2AhZmy5Y2Wnh9feSCGE1ET8DAM2D3WeHDKFuMGi80R\\\\/hl+CjqvgSBsBlc5V0vMpCqigRF4viN7AVXV252B3+S8jaKtdTZoH5q7IIaUUjJnEBhYHWxysA3ty4482Nb2r5+KyMuvw64fQqnBknT2aU7aQe0PX8MqoXaKUsaCvivWvQmiQA7qHQ5t7bkSt5RctWYzcD2MEAwsNDJICvFi7sewf6knRnIltPn8vdxGNYvGkcAPj42OPt9hJfTqpyAws1GRnaImRBXQAQf4mBG7i2snwnaxlp51R1FjnEYRfqgBo69nHO0YD1ngAKNxbiP7S9BFAXV1EhnN7D8KLw5riiirq4lXUHK47VIf6mC63tTU3trU3T78IJilJSpQcAwK5XeLlQAXCg6oMbVYife8DCep8RSqkpACD+e0hL70UPGD5S70\\\\/pLXQ6pyhY4BzfYi20uNDgBoD4Bxi4gQyQZnVZPK3OMquXOecIdgQA0vMGuPwbD+yg9RIA4o8T20+tAFvxlV59Te6y0Vh5wWQytLYaTOgBAFCp3KNiEPzxrldUADD8VV06\\\\/wUWfw4AZDUVqzoSy2GXHwyZiTGgHwGhLHGoj7Mk0jmUAVS4D54BxcVcr90E5fUfkJTGb36ox4gSDwg9hkthP4RQCDtu3Ic6dYEDF1CYPAHweowBwgqPbVoJyXJXfFCxrCgjDv8Jr4urO51bk1GBLDOUQ+IssxesKKlSqveeH7+iBnAAqo\\\\/YTTogsq49rOfB7m23brUOp2UGQNH4DJ1gEVnledP47pKvfLdEqd\\\\/9occo8TMAJX4CoFXilwBg+lQA5HoFAIcvviiZWsHXH4q5nVDzk9HqLLNXUaFLJlORqahuz4uQOCDPAkblUYvkx1bTw3oGt3Xi4ivLsoDBnVWeygNc3mYSsoQA4PnyFwDIMCglD8EjXc3\\\\/kAQAPbPE4Wx9PW6BF6RDkW1ci2+K+JsngQE9AB2QOwEudGNdRoU6y+zl\\\\/ohMmjWyf6uiyfduWEVSnJ0wZLw4UvkMTaebCCuqLOtVFQxKGasQdwSYZdcZPWweSykFFuKwlZxoOBdQXIiGmvUkVxJ5g5TaSivnHs3SqeQ1UZUl7Q1p9Bp3kQWvFicXNvvQfGX7cR8fmqs6oPozOp1KAqgClSyw1AKSnqVA\\\\/PbTXj3E7RWnn\\\\/81jrcb4loHme7+n\\\\/Pz5krWuu3GM5+hVnmOfAICAFVWtzdVE9g05VApHvNTPawnW8fLiYmPeXvofmCNztv2lRxRuG\\\\/p1AUXOl6rrDd6WFGyyqsXQ4oXnKe3sRIT2f5YAsY2PV4nNJPUS2nv\\\\/a9wQJ3yewPiW2OcP3wDN8LQvIHP3zO+7\\\\/kXJ8IvrYGuJBUDgEhqyruaAJSXa0I0eaSjRwGA1otw2DrqOs8HBt6hzb+tSbi4RAdn17jE\\\\/UI7UwJw+Po6xLOFjmsroj\\\\/\\\\/fEMmr+eCCovl6lUfeqHu47d2scsG0WA5eSqMj1AovM\\\\/QiAB8JXZnnRvBul6u9k4\\\\/v9Ccmbzwn8ZIgROwwDPET6sxdeaEa5xOTfiSnHA+\\\\/\\\\/OeWetce0cDVAzl5BwGgNb29lb570L73fZ+AFCqsWg4fgCIYuspLidbVxzwNgggzZOQ0o2AyNpG2JWHKQZgJ6sdycvR3CGdDbYyE6kFABD\\\\/+uyEgoFcUBHQEAHVV1XxZyNhcwUAy\\\\/r1FP+UiIBZo0zmY+2etcQc\\\\/\\\\/3uzE5T54P1evSokvj4SB\\\\/w7I\\\\/jAUB4Z3N6ZF8f3\\\\/TmJRsYwMILraQLUOvwz8ocHR2ODlSo5V65sg8ANKx0B7IsJGGtLaraXXF+Nir0\\\\/r77fPb58wkXM1HAAACUpbZjvQJAfJY00EnLRt8gdPXPIyIuiwoRLqi4mlBQkFI9gQFQUWpDhNNZbwWAXADg+AMD9w8dOmVKaMAsg2FQ+3BYFs\\\\/2TL+\\\\/EIN4Z8qjgXqjf4kdpoP7kwCgMWkdMGNDI03hOD+11+xhrWWt8uHiwyfbGk+6AdjtjkhhPV3Fx2F0\\\\/tnyszixP9cCy8\\\\/UshP2y8\\\\/Q7Brg9sHeImvLX42JlLADy+E4HrxxZlhY8gSuEGGrjOrnagAg4wMA9RH4lCu+w5lLADpQ+mlxxm8LvFUytKTEcnCWofV5fOVzzAmVlDk7yAneP4\\\\/4M79GcSoBcJb4l8SHIH4+Hj8oNoeGLtv8kNojASjWGlnwS5eK16BMM6eidMlhFwBtpK\\\\/Bw3qGqqyn2J+SkASAPtM6fz7l62QG4O8RvwQQL95qOGnZDeCyLGaGVeYesL8ayxKANl6Lt125+\\\\/DV2CVTZZGzcrHZPDmvbPLm8O\\\\/RA4a39+uux+WQF2T6\\\\/ZZMxJ\\\\/yDbcHPcBGPYDjFwBM2lPL8jafyTCF4\\\\/zUXrOHlY7iStXDEDlUAPCNdzgdeHqz8z9Hwzx8SQoAR4\\\\/S6\\\\/yYo1FsPbUKADipewnZeMvxZcrS7q2LuNY3TMYPAQAUSfHbeDma\\\\/1xmtdIYYMYYQE5yYEFKyjdoLwMIC4sHAPzHSQAqKovi8L5w2uT8yrz8uPLiWStN7Su60COnkADg8fkWU2dmZkr\\\\/ZwWAoCCMAUEU\\\\/7M4np9BE57TrM3avLm8sHnhBkM0ffbX4S4mdoSNXiPiv3b7ypIlt2\\\\/rvNjaYnwXFQb99QRAO5QB4Fvio6PZeor4OAury7mYXfMtWeFvD\\\\/X6OpNqfbtkXpYLIkTBhX1w30gDA6D9Mfp2d\\\\/cTn6kZg7gQoLpaFlQsKH\\\\/J9Sj6p1\\\\/8Yktq76LFIDAtP39yXn5dXv4zs5DFqFB06Us8jYZn7v\\\\/GVRCBW4qrC4aKMQA9wJyzJFqbn2+IXrgkmgHkDqRV8nwE4DDU53DO7dt0C6gLCqZi+tdatHlyGhjN1lPL4vVbAwPvu2aVOyn7dd4h92ReVhREqAsuxk6XqyFplT0LMILXyklQUpiaVJlfWRkXt7g8P6M8I2Na1KyVpTt2vPjiRgjO\\\\/MAq3RKopsDd3lNFbuVDWTj\\\\/hmYTj3ctzQYCEIFRVzkfirUheRdcAwB1lpXsnyHAFOVyj2w9hdPk9UsPjVM+Oxv\\\\/9cdzx49VliF1wcVY1S84eBg9JavMLlyqeOrhw6mpl4qjooqfiSruM+sErLmHYP7++sijvduVYgfa7gX1+XV6Y48TzoF6WOFPDilfxZHUWWB1VlY+Fe12qTe0wCOIQKkE+SaAQcp6E1JvlZRSYaH+AyCPn1sTnxMqmq2SOsurXl5L6vUWnYFb4KXWJ3v39viFBXXWVFpT\\\\/EFY0wOiSjg\\\\/\\\\/03Wmd5ZdRcSL9SJdyN4MRK4cuX69bHvtjWyLn4claHNqFCssfN\\\\/ACSSlF+MGKC8+fSFjHPbWOJ4Bw\\\\/+1VsldXvVy2sXQ+ug2Fgy108DwIHXPr4gfmHhs4fQDegL0g2dPhI20\\\\/2ISwA4B52fv5EeQncAwGk0\\\\/HReHj\\\\/u5qUGrny+oCBWNPhg48GuKK3GcMkKcR2DddI8IfQYIffvA8hfjEDBBklG4A8AHDj0DnTwr656mAApdZZXvcxWe+bM27e3bQujn\\\\/J6CoDH\\\\/FFkQs1dBnCiklL4izERbebSUmEMTE3HzOIzOQaw42+dnX\\\\/bCBGAFjS\\\\/heNXADQ27u+6eLHrIABkGOouKVmdsgyhiooMoU\\\\/58\\\\/ga1vnzNV\\\\/j9beUqB94v02JnwDopFxPzOqCCvUyAZi8rQa\\\\/d5f9fwAkcg\\\\/APXteApgGFWq0hZM9ANx9fkWTJ4CizOQiAWDBYnR8cf1BYHNq4PMAEAgACfsPgkBXVMWlS+gBso6lapJGqKVFI6T+BQpTz6ywuSzeKVVG6tCxtrZsdQPgeLu65C9W8LLyCxEAgFlm2+2IiHsAMOWpAKgHXKAe8AQE3j5BxMrp\\\\/NO4tJQBtFOKpp2sJAPYsTwuOTnuRQbwfcWNG5eEMLdc0kkABxMu7t+f0nWzK75nlrdMxpe8SAGgxA8fYVJlhf+nFpkVvUSn6RQAOCtd39WVi3gJQKS4f0R9bxAATAaAewUFADDlqQD+W9y1hkVRRmGyy+6ygrYleMVCM4sQoRvQKiFSBlG56CZiYYigEIgFlcJWhIJ0YUuUCLMbT1mhS4ClaRJPEQRElhbhpRD1qSyhInvq6f6e832zMzta\\\\/arebm4zOzvnnW9n3j3fOe9H8f\\\\/gev6HH57vpPZyMAbK0pESpAfz\\\\/YKA5YuWvb9skdnMBGCq6PO2lpbMz6l19pWhUZdg8h1ljvLHSOCiZUxASxyw\\\\/eM9F7Cbn1LHNGWugYHyv3pJgIcDhSRAla5B\\\\/zQCZNvdnj2y7U73\\\\/lAiYFVJ3\\\\/33980jJXkqAsDA84e+aaorq5MEYCaLlBjiVwgw73z\\\\/\\\\/eadZgAEIAV3O6YB9qN4CASQ1t\\\\/KMkP82BEE4Mu\\\\/5+ieoyDA6pnVzd3G6Ni3r0P8aVqwNA94nJDcetfnWyRuB7Z80rqDvv8MPA+36y1M9W13escIEACVNW9eX9+8vyIghr0Fnq\\\\/r\\\\/IEdFnq\\\\/xP1fwbHjprFqZyYCvHDaYzRXGBkHJAoCArby5qtJa4KAGctAwIzqTR9\\\\/vP3j7Xu20whQ69gwAs7UgbPIfGyRRUYxs1LMCzy6tnWTGj8R8CkDnUfyDyc5WOiyxCtmQmTOGxcXd20cm7mdTIALI4DwvHBYGOopjceO9czaggDcA0TBA+4BIGCSsp1mr8YIAgKrqqs\\\\/BrbvOWr1lMa5egJ0WWQQAIhqXgAEqE9BQu+3OuilvL7W+FZKOAmHvYuBkwl4rV81WCB4CmNtgncag+XfKyr0bWyiq7kK2MDQdb2dPALUtzPWywznWolWoFcD\\\\/fv1Ul6pE1DKjVmkiloGPgMvPTh\\\\/qpGOWjsGoPeZUlF9+ypv\\\\/\\\\/pVTspyLe5S3n\\\\/paR5YynvfweDt+qzzEAn5CWhkdySGR2NKMD4+1oH\\\\/c5WAsv9lO9qSqJZ5k5LbNgukKuerrxUmKrSXzyTQ2moSuJEgiiouIKBfAPBTpWO0IzJS9rAsWNAWPLR0ZQw9VyIisH1UQcnXnJVdSYjg\\\\/U\\\\/Twcdvl5\\\\/fewzejv0ZSlZ2SDmhsLs7t5w+I2yIozwjwwGxjFcZkflh+iz1L7VBtW+jzc3pzM8CwoyGUM7hBcjz5YIKqTSBaWrWWbTxcVZ6IHhgYNMAZ6Vv7ADEk4J9jgUBE1TpiConQzls5WJji2IHStN+8vErCEzzpSqlEVtnVG0dylnZEioQmMf7y7jnzXMTEDjBF\\\\/aHAG\\\\/n\\\\/YHD54us8xDE7WjurLVXuPDDlAjIiUzPyTcY8ImRKSBAZH0PHJAFF4+\\\\/jfDwd2wl5c5jw8xB9cSAzVeeL0tleZ8gpYik6yRlQp0KMSkrXb3uq2EXvpv8LmWluWNFEIAqBDcBqnSMTiQCEH7R\\\\/D2lu1ItkJZdBWm+aWkj0qq2YjtnZbkKawbvf4TQ39\\\\/d3d\\\\/Pf\\\\/TZFVjg+xID22l\\\\/jv6aiyYOP4DECBNQX9HgKMx3VRAB0Q5k9nNiiYCUICaA4p84ejTCp\\\\/25zQ21zCCgvHxmJUZAoYEJkOcLLzQMDE5fsRcaLDQ+BA5to8IwImCA4qcn7cePX6cSAG8zI0nj8WJ6fJQqHeMdiZH5dPk3IXyjOf\\\\/rkC5fhF9QUFp69jkoNOSsLBdIzOD9ScGcf+gio\\\\/GiQ+dfjxcYMV2SAN6O\\\\/YGJzcaJQuoSARXfFDkiwztiYjPzw8opNZcSaTBGRpYnwhwT+59\\\\/WEijfux\\\\/heI4URk+8+aamZWzzTKNPUyebxKZwRURwskLbSqatCj+nTsPCQJ8\\\\/Dyn35kAY27nV7VaAiZdDAjT03gUfdLl79rVbcxw5M+mvjykMEePSyutikPpKkvXEtkxzwQA2wzANv6jT0RBYJcggLfT\\\\/ofroKK2NSOi4ZOHOEBAaE650VEUkwkC+LGNf5SkJRFwzWiaGm08QbW+xxxZe\\\\/dWOvdmhs901EzP1BAgpO9UR74U4sBZbSYm4KNtOz8iIAlLSlGVSgoB\\\\/vUDQWb+bSAIGMnnTlL0ivgcXP62Tbu6zZE54bDW+toPI6CrNC6utPQcGgEsXRE\\\\/CGDlxe1Tt8Ay8NAtz9KffWBmtpXCv\\\\/NO1RFip9G80+hfh+MTAfmFFbGO0AUdMZnhsbPLUzLSMQjQ05kY5J8YGUv7L2scfaB\\\\/XOMLtH+8MysWU9tAT0tfX7gkwGgdIaWvvlZZEPAhj4DPQIDOoYIJ2GdsQFkiDDLcBJyvFjzE5+Dmtys7qDwW1ZIgAFJza0HaCIRf+v3XisMD1+IKAoRIsaRmp2\\\\/nP\\\\/pEzPAkgM3TcAecOFwc35Gf73C5CuubY9rDQQCMkVPgCms04kVkfvhs3v\\\\/9\\\\/nHj+hE\\\\/E1CE+LmYt69vtyQAOWSY1UkCZPyybQ7KkupCP9yG+ImAG2vUyXYyiLyCCfBvaPDXEGA8Xy14iM9v67Tj4u++dPduJiCgYF7p2WdXVZ177tenfT9CODzw58Wx9OQMlq\\\\/9ppvsvufSn\\\\/EVmAECKEGnOkIMP7TN\\\\/9A1fHwiIL+jor4+ph7FuUxAeUo+EwBvcBDA+7\\\\/\\\\/Pp8PEyDiZ4AAPl8iQErfE4cPc8GSBNr4hDK\\\\/Wrb9ieOp8YGAffvEF078NmDpeI1a4DC1vjYxJ5YQDuArMCuwC4MItjaY7Kq6lmtz5VOApScr2DE3QcvjP4APPZ9fYpyyljdetMkWFnJ2lghIsVgc+UYjnoL+QeGz9ftP5cd\\\\/bCxYIJhk1tn6F7XC+qzzeP32K94ABAEXAyCApOONkwGRtT1rSLxaPQzAP4qwdKk34wvOEn\\\\/xKnDUmzBGB9477w4gj7frfX01hg8MvMbfYRZLmHAX4\\\\/35DfyOydjbo5pZJn1zvSXUUmEBVb4L6D+f\\\\/yMKQKYRvPKSBgeTUKp7gdT0c3XSNSlaZqzjo4upse0DAVFcDHytgmt3rwDqLNQXbekwAaLAwky1x3w8ofRVua\\\\/P4iImwwcGNQ198OBBLy2mMlQSnQGLF\\\\/vOnD5scyCjTPEpVnZhFjRtdkrbHX8U4JVUUVFfUeF4z2wjWHN9NtZ5SNFop8PBZXzF6dmjID0\\\\/ePjh4vLyYsXn4davd0mI\\\\/uKh8CWm2Wwz5uN2ki8xS1tRsMDHQy2ytnfzTn3tMLLQhocNAcETpOPEwaHeBz0IQLM5Q5ixzX4iIzVjZUZ2yr0ls8gQvEw6RNCdZm8+vmLjbXZjsGfbnTGdunBEgYa31\\\\/6KehdKS9dMkVlfH79JfdousCSnK7ANPviRlgBIz4TmDx7+xlUyq6T+vpkzUeM0EwSkKSil2l2y2AQBNTWoxiSLTZa2ggA+HipRAf65DxABOBN3HpMImGS42cClc+w4sXmoNfVlDwI4cDm7Ezt7UmpMQkRIRMLqEkYZHCJYOmeGH99xfDcISDWkTvHwPU7npplhskADBDhcaE5fY7EycimrmqvxCU5yBoIAZ0YqbEKH5W678VgFcsz7R4\\\\/u3MsIy7ZZFaQCtZMFAYsWGY3bXmACRgoCjGaWtg8h06Ma3N3+4Dlau\\\\/xRAd6CAJmCIQJsqanW0zUE5GjihxvdsOyYkEC\\\\/iLensB98SZl0iNiLG+bx3cczZ4832g1TZPxyBKRsYTM04XiBr0CM0+VyrrmYSwKmjB+6o2CS77qFC5WSl2hnW1tloiUE99yQoIuoDW3WrP19eAYMGwY16uuN2IDsXbtkSQwREGrYtuydDiLgHZNa22tmKawYQsRUiIIFs2cWOMgA3Ky+tuy2W63eY4d4jgCKX5qxPZFhD5oVaX9xeiPiBwGKQ0T4pszdxzcdnz0+WG2rpPoD5fMofiYgz4HLDygjYKhrfqDvsGTFwQEEVGbh8o84e5h950RuQ5vVtx8MjEP8RIA4YEJX6S7hQEG+xKGGmnfeWW5sJgLU2l4LZX0VApo3SkcIszZ+aeCw+D5gJq8Qcesv3t6bdyN9oBCwocKloKmpyTW4KmHx4mGLnVOyED9QdmxvZlvbk20gYNPu3cfDmQAZPxOwfosYfTTbRZ4kXhdQ\\\\/z6AEUfCYLz3QGDwsGS+\\\\/A8IAootCfh2+gUdIqlMI2B0H+KfQfFTZ6c6AjgLS77Eoc3L33lnUUcz+RKrtb0Wer86AmKE9jfrsrj06j5NQcMvYzdu5OsvQStKuGd3z8g0Bc7CzY\\\\/RyASobYAQckPCTdK3mJukqP6A70G4Aymf52W1EZRvsTWXtHM20hUSndEZVrQt4vKPFFJ58jdNfXPm9I07wZnJfaZt8maxU6D5PCKgbhkufkcz+RKTtJUE8PvlPeD55\\\\/kxcPfa0++RM\\\\/EA2d9ByRnuY8cV4RU2NSo1dcpULQHlhoxYEf4ZggAZ\\\\/jyE31g1NV+N\\\\/9iQ3aZp5Fs8nCDOn9sBRDl0SBSyxl5jgy\\\\/RZnWnQfunwdWcgPRG3NEgKviZkNs8XErJyW8coJo4jh+pWZNH29pVw88jX2I00eBGENRMvsQsRQUB\\\\/H4qxmasB2BuFp0jg+dmrefCxk4iAjhLTO5x08JgTD9pWpibAHiRWSIRvyDgSRDA8SN8ip8IcMdfXX0MBJBvscZHGN5iiJ8IyL5wTDYISLUB6n28FtpftrkxC0d98JCy+9e5peR57FEk8SkI0ElN8iVGaVxNjdFcCF9isV0QwNvXqklvgAjIkUOAAQImGW82KlVaIOACOKmOBwMqATnKUwA8yBEgKWACshQdn3kcbYDsW6w5v7UYeQSaqU6lEUBunLUCbxOGfr90A5qtjiqAYuqsu0yVkqjj9YBeatLmGmRlC4NCF7m3hwbR\\\\/zmPtq8FtPZm0bpaXsg\\\\/88sWNcuJ\\\\/81QGFCW01DA8k+iCsD+HrtwOhonqIh9pZgCYpghfIXF1RcNegLu1rVeb0+p2pDkmTcmWenO4QI2BXJIXRYVdUWS5h1508aqWXZAX2sszNDUz1uvgvXzKZf40MwX6R0puCXvVeC009T0uSZGL5aimlrgsbq2NdPARqFSAgp4++juYqdmsawwesRrpbPNs1Y4NcpiycbuLqcLv7OzKqfe8d6XG0UWF4Djg77WGFIaULPU6kQJpm0efXTtqZf4GFD8vkx6RwquRdYsEeI9aRSyppw2JYwHATiQphZ4rK5tDVnV6kt8gbQZcVuxHQEmInBgMyAIuIZqd6Ujg00bPhPgb8\\\\/KaiqrbGrLbNkNApAvp\\\\/dI5OprjSGllx9oKiiQWV8QgMB\\\\/+OabH14ngIBTLfGB0IXXGQjQOVLk0WSvcJTg\\\\/b1HjRmT3NWVfDWDCcDxNLXAcqkrV0y3UGKUVv4KS06k4a5IvsFGg82W4pTxny4IQPzI+E1sngil5yZABvhCtr2msrKsrL2sJbNpSWwYCHjpvQx1u77WGAQ0lXVtLaiSWV8i4BCmYcYJBtby8ckugn1ozf5iBHD8TIDekSKPJns1S4SMRU3pxStXagkAnZpaYNGuHjElLcIqCVhY2DCnetjWrajuRUbI2L1ypc3s3Mzxn75ZElDnP3L4yJ3NUHoKAcoVDsKZVFa2tcMvP65lScvUOx5JwdpRe1ezozwmS30CRslaY5WArtTcLrmEBxMw7hmgkVYgen2tCDg1JCRVU5w9wPEzAXpHCnah1SwRMgQP3ITkZDseusBz8V6cNVVrgQUBFYGrdwRWSHO0woVz6ue8m3z2OaVLUZxs6541q9uwsuH4McJxk5l+506sI9P+kcNJKofILyjPWI7CXB0IaI\\\\/tmUEE7G8JuyPSkIFs0XEpTVuJAG2tsSAgI7iKs54gAN\\\\/9ZwjjBAHpQnnWObOF9BZKEvFLAvSOFAoBSOLheIIAFDFnX6olQK4mp86vm8v37i2HYwET0DBnznx8P7efc24ptmMEVNhsIe4sKxFw\\\\/sSLzIdkgYM+CxtKBLS0NM3vw11uMBNfgUhaNkuugLYaI0CNX0rpAy1dUWVx4v0g4NFHrxUj4DUQcKcgIDUqCgSYFQIGZPyt75r0jhRUIHF\\\\/ibpECBEA45mNl3KPPAgQq8npCDBmwARItKlRre2cBvpl0Ps4B2zrtmVPkPFJApBTbTbX1TWPBAH6goWhWI+wMhMFUC0tRwaXbAYBuP4Z6nS5rtaYf0scaKqqKsX7FQLoHnBtx2uCAGVPbvNKZwKMRhl+77smvSPFipmo9OD4BQFGIDk7N5mPgQssaoU1tcB6H18QUN9O8QNzh3LACcPUggQmgB4AdTv9rxl+1clLbnh3pq3bvHl+S8sgsGTzbBCwyuJu6zHX6muNJ9MSH+\\\\/jAPx+IgC3vh8OH0b8TADf1QFaLg1marcyAQNMQG8rCNA7UqygUieO\\\\/1U+Ht+YduzINQv4i1phtRYYBEzx8PFFbW77EqXN7N2rva\\\\/tDtEvqWH+uyU3QMDqrErG5vDNRMBe7ZoarfpaY7HEh\\\\/r+9fT4B15nEAGA6LYGmACcungMAia9IwXXInMWex4fz6wWTwgChhJyGd6EC7QqDTB5ojVNV5BAVN+od3AANJP0c8NUeTo7r3U8jqsuqaGrNZZaW33\\\\/ep37WR5B02amb03TO1LQXis2cIGEPF8mxw0vo4TSO6lRngycm8f6c3mL895Tz2D7IGRuUvQR8i6Tvr46qXoGgAINLomYCgz19qw\\\\/GeMMv2l8uPNxxQhZ3\\\\/ZmtCkwQ1pbLM+6cQvDKODuHLuccBrjlFL6KkDbR6f3Fc5YzwVaAi7X3WshTRmyE9NUbFxsSHwPwJewweXaHw2dW78SSBPS9Ko6T6l6BrLHqATOEXg6zDvbZseyvAEy6zu2MiElISTFnuh0kt1g1lSeKFXPx6Jvw4MpitYW5Rb9+bO5GytfIX3VeISPsFqwIXyJ9b7C\\\\/kgZKVnrzrIyFwhwNyPj7rTMlFecQrGvATrLmpYhY5SV5YLUTGNpSgURNVqpCgJycvCDTVr0gQCbPcAOF6ULpZMUChsnTAAdYoa\\\\/CATgt4Z6PhabgWtm+bUgQLPuDlas0J0\\\\/CEBgmtXx1HiEj7BnBsq80+slt0cwrW35yB14g7L\\\\/fU1N5SBgUd225prmZvzT8QIIWJyBq4\\\\/w9zaVHXiBCWgX8Z+tFEQs12QYckHADcgv5CN+SUDqJVi2WcQPAi5IwHjxi9pRVNQCFE2FoUIGtxKuIkxPeiUxalSq36jixYziFZ9tOwQoo+DDZyUBLpdRIQAXViN9RTx3bdnyKKUh7lrrE8J1pAUFUqh54bHEEBO6L92xXsaP3ekNdxIBzc11zXUdy5mANcZVxmJx+V9A3osIcLnjv8SeS1ng5WrbSOhS\\\\/ZIYdlsCHtDSIv\\\\/C8UUJiVEbEzc6isKZgLAVM+1m+xrCQWBNdN4jAci8+zqJEJTu3qp+PTRSuK4C+dHl\\\\/BoE0Fp2Bw4I6QsCEM2WlIwMUPDoQyCACyZm4IRYamsJoCzFS3dgvh1QZpxLvkCWt3lnc0dH3aLlNcsQcF7kquJVuPxNB16QBLTL+M+eYIew4CzwIqVSDwREqPETAUNxBTTl9xfMjSzescNZviM8fMCR4ggHAZhtUOJ\\\\/GQQsDh6VGuI7cxURsMZNgHL8IL5gD3f+8ENPA7JMd93Jnz8aNSaHxep44oLiB3IK4gcBomAibdy4UsSvJ+AOEKAvOJisLqbGAa\\\\/A+HfSt5\\\\/iv4wIcHH8IwKy3W12y\\\\/3l+TEBFL+6GpzNMwucixHEX38QMLBsERGAG4wHAaHOmc7a6Rw\\\\/E6B9vyRgeWddTc+yh4gAWcDR3y+lr\\\\/ARvj09\\\\/faHeLuQ3jNQyS1Xm5u28WfCbwI\\\\/t+oLDkiaNjMKmwUBaxo6cfk5fiKggeIfRj\\\\/OcEtpvhxZ4EWaR23hkJynn0b80qP0uTAmQOMHEO1E\\\\/JVU4VS0bFlReNjcL38W+Jjwc+\\\\/4jW\\\\/nTg\\\\/FuuF8fuvmHpSOQwC7zrBP8H03d7bcdwNPtbEZm0b6Ch9h3Ai2KFNxbqXGaX0vvXRFAB7L0REBYt21ukV0xfPqcfkXyfiR9Y12pQ3zTbCiBubQRcOx\\\\/+XXLJqjdWgAAc\\\\/h+iN+JmC2TY2fgBGgVHjtxlK54WGn8AkOsEepr1es4tEB5AEHo0Wef0ts7O0iQM5Sq6vjgQB1KpK2mw3ysy2M0JPa5k7K8roNKd4hmOZ0lnVqV6ML2+Vn99\\\\/ZXDdyotj\\\\/suWeDg1UEIG7AB4CjNlmXe1wvJPL3ABRkPFPPsG3riIo3xEQIGcZRZhEgPoUoP312y93t\\\\/HJ1eZOMifTFRwAJi2ODr7g8frdd9+\\\\/6jLs7y5AMHmC5B+yzO4SB5Jz0gwil0ACkHPCEv\\\\/kE6zvslOFsgCXVyAHitU5dFJabscO2iy211kmT4zXFUioApyxoiF4UrCKKVfrs7TwRvFwJt7Rdvqxj4cc26Skvrm0gl0hNrAWlu+9SpGm+uONB7T11nkEFvj4B2jV7T958uPT5k4+7zvluumPZxZQzdSefEVncRHlKRXvhLXMI8WPKHeeFfWpU66+2I2bxuuztDeopjkPA2+dIWt9xSIwsWFsniYW1SA5PFYWSLg\\\\/T18wofcN5l+D5JPlqidtkGTq3OXx+ZM7MLkB++7QDp7BMZ3sU5zqB6td5TUIeH29RyelT9QkjfEuCPDw+gIBWEYZi2lLPL5dn6X9vkK7uvqun0St78bg2KL89vZYIgB5e9EoCCFABCRkB4waFSgelWVy9ThVCut9gykfkJ7TiQVPmnqK1tyfZJrfE9ilfj4I2LFxdce+jn3+b\\\\/ASG3x+2Zj\\\\/svtJn+JRtByesj8IwK+kyFSLgoU+fl1pJcDoRrqTNvanpKutuUBxvXVXdwgYUAjQL2xMxcvrqhcutNqruc3tmFzSIraoKbCqpWg2ETBTNEqyEPLB9Ugd5et2f6tkSyMH4AQc0eK5H1NREWHj43OOL316J9DUfpAIWNJXUqDWOk\\\\/uwFjZV7gv1PLGp5IAX7vdzzfAHjJB+BRnj4Kxsbrw8hkPbXvo0ewQBe9CKnaljR5dMoj4B68dfcTgqbUt9fVL2g3Z5yhfKzYsMDaT+dghiyQgrQWPgVBrbkvuu9W9+bLWt6ioottNADu9BUIOEwF2q93X94QEapI4feLOOhs5\\\\/u6KCmuMQkBDw\\\\/T0+9e0d7b3HLw\\\\/2tQQtHB\\\\/ybw0WTsMAlZvWr3vDf+gjn1MAElfu1+C1c8vdQJtlxdMXXj5jIefKXxw\\\\/c8+Er1QSl1bYex73eC4\\\\/bcNjpMEpNTUpIiChvr65x21BssxBXRArK6N+M+\\\\/iKRv647OzoUNDXMKl7TX7tmDEeBYwKvLhYe3NLWAAG7MdHG36BgmIISywr7utrloJ8evpt0pfuSpkaN2kfSFUnQ1dC5Ys6aop70FvxVMFqyEg4qVNFkLfB4TsG\\\\/fGxQ\\\\/pu9J+dl9rX7D7NZRtF1XOwwCHq149MEv8UoABPAIaBwcd+2rg9cyAXyNm2XBQkPnlztiUqBZBIbwCGCLjzp\\\\/MxPgKK+GCij0r9\\\\/elrO9N56qLlnptBw4MBg+m5e8cFH8IECt5j7BGH7iininev1PT9osa4PxiypGSGsQ0NlQ1g4CsEY6pDKPgMZ5aUoW+rw3Vg+sw7y1nL4XBASEWBP8Un1puz5r7XXWaw8+mNJtVbDQZ8LWNEUJv\\\\/pqY3+k+v0X94DumApHtLpiob5NjdvcPr7utsJaavOSBIQTAZktLWeFzz6dZmpcFH8ZF0EtjaCeYVmQgIWTk4o1M4+VWVPNuuODgPbOpibcAfct20cEzJ+zv0TMoigEVK\\\\/m+CUByDonJEwYAWfJS2i7LmsNAh5c\\\\/60GV\\\\/gEY4EkjVsc33SgvbDEHdTXqlvxFFgQPUSF3pzse9z+GVWEgp9AgIj\\\\/0ieBcNPp90xfsMDF\\\\/cJXEgEbIsoA8l0mxA3qzdN4Ieh3VOmNLG9WT1N7T0\\\\/PvmUvEwFL+maUqtIZBLy9eqMIXxKAeO2pVmvCKN6ul9pev6z\\\\/9lktAd471BwtcF6e6vIEHkBAyu54TfzxenMyOFMzygWGTOXHP0HU+t56j3ITdF0IoJbX8\\\\/N88MiWE0sEb\\\\/1C0LfiPJwNrsCypvY3yHHC1FMwSiOVQQAeg7J8AzD9g7TGCPiOcYWCabqCB9XxVqAt3mPR1l9MOkD+aZ2Jz9CW+tL205OAQV43mBPQemmql776haClFI6Pjxbo1e1vMs31qDn4J2ntpZeKVgzkB6y+7tetEr2M7b0vM2B6JrerWdbLTxzBB+qzynqCshT4BfAMvX7JjPjElKypUxMdiZI3xV3CIrPEdDlOkyDmXj1yhMsfFOxou\\\\/XYx0mQ3sBUQH98fbxeeql4jq1h\\\\/vwGm1153bpDwaZO16ae3pdp4QG4aSvb3W1uFzWW9KHAAQUNgFrQYFINHAmmLMMW+sv4ovimN5htFVjj62HCzcDp8UYkiOm2K+6Cs3k1OpRVKlnhvPe43oHTvlSQ8X7UykPyNWFpkpDexe4CjgqrrbvCUIG\\\\/u7u7K1z6eEWBREKC6sBgt7UvXDjfliBf66XpyzcXw4UX5dlyu2JudrgR1lq37R+k6WwOXRY0cIpN9SF+NWuLdCDBrDD8xqZYUHpbwfe8dEJkfEa6IyMyIzIofDM1SIAAIRttstY3773pq5TjkTna+4unf6M5\\\\/lLZZrfaXcBRERGD6CNKbLaIwLLGTindu7oUKcxS0Wq1qw4MCWBgznxriHgNy1as2vQmgMLNuI4hgoDp0y9Us8Bk7tXYuB\\\\/3wMHGfhCgncpae5pYKFlK3XlHs7YYHzM+Zn5sPY3LWeZCEFCyEi1jW7bwyh5vtX6ptAF+DFSblMXYbObuzs5uKwhYtQrF2qNJqpOP8WlEsOpzvEFI7417Kzcvwn0QBEBDlJQsdux9zzXuSFl3EMULFMxQpDCEiJ\\\\/Nb1jACOswxYEhwTZ\\\\/DjHAr\\\\/F+Q4qM\\\\/+mON0EA1ieFR+aFQkoyAbj8TXPQlHek8dAHTMBTMn5MZgqhk91gtIv9s7Y8Rlj\\\\/li8oP8dvndkaE2M1SpdReIzqsr6FICCCYMzo6Ww6UiEIOHzg8OETh6+l2uM8nqVIxwDiLHJSFknv4tq9mzfvq2letjnMaQx1BZY4sVNZo6sisZDPZ96M0aPj4s5mKQxlZLdhPCOppUhFMICCgCXWEHptaG7GIBDxPx3XEX36zewRugBnL9vi6PL34RnY19j45utrP3n4ecKbEpdCGAHGhiVGaoDfjnsALr\\\\/lQf8P+L6UXm+hiSCcvkShrna4cKkwWcFPIXNPj9koCDgwsbFxeP+1JJ3xGvEXrzlYnIEs2ZqkY85KVHdnEQF1ze+AgIxIgyHCFpy7uqy5OAMEsI0vjZcROH8mAPEGQCj5ZZ\\\\/rlooh1iW33bbEGoXXMRUx3Rkcf08cLWV98kLJB+jyX4fLX0fT16d5ZpVp\\\\/UASxsaL68XqcTwCHnzrg5eZQb\\\\/qG1J4+Ct4K10bv4YAY4WrtrY+NHSFGAEnTvQfuZZylnjN8R8EA5QjjHZL6X3LQMDs4sgUw7JAIqAx0uEPAvj8S5EWl1KYpKEd9Xw0Ia9KRTDwwAMLU6PO9jZ0d3P4lOmJewME6KTkVa6SPmigvsbDb74mCFDjJwIGXU3AEQX70Umi+qQGpba\\\\/fLNqsksE97KUdsO0IUa47GCuqbbWbAmlgFHwcWI4jk6lt71uvwdRshOfpfyU6Ozra9rMXWaNByqaWppccUGQ0uL8x20dgaSxJIDiDaH4tVIxxLrwgQfmpIZ466WpXkp+4VooLj8qWCQBavyvjtvwjOfrL\\\\/yy\\\\/ahVW3yDfAKqM\\\\/j+z4Crr6VQ5yvMBAQCZloMGgFQVrgEXYX9OBoRoD8fECB\\\\/SvUAggBzs6UszlVcaGYCeK0KavbD\\\\/kzAqaUixsB1ty1J9e5Vbsp7qvYgw3GStCQp3NdY8vzrDBCgPvUIG3y6BLYKeAepbFrS\\\\/f27XlZshm9gRF\\\\/h6SsMAuRTgN7DBOArII7feKqCjHihH+QwYAL487qRpmMC9FL4r6Virgmo7WVAYP7Ue0ppif+1\\\\/4sTH7izrm5jsA0C+v2nELhEpJrhr1teTilEUCCOcvRortxpxYqkJOXopyrI0LflWdxrTwicJIUf2GCaq5WGSTC4nzZtndvyIgzgo2G7B2SNw1VXjQw9R\\\\/N+\\\\/epzQZM1OWZgnhszGJfq8MckTbGtbdIfXv82TD0xAzs00jDJiaxncIIsY1s3Nyy\\\\/PMgRCTsouR0ODVF+qpPt2P66ukOWBPX9l9cp6CkoaEk7z2io+YaADlfCVaNHqEBKqErGHa4QkD3l92xeZZWqAX+fku31b8M0vy8QpbCKFGYCVq97e906tvYhAiLb2spRmy+2gwBEfoni4njJ2MGYi5ZftDNhgnw\\\\/CLhIunuPXJ6WVjMZN9FOrRSeN8LdIgkwAUVFOQtynAvuKSrCC4Ph1z9+tRm6ugw2\\\\/MFg8Pq3QVnVsq+q3VlSImAdCEhel2tMTU5uRYNCZnkbehPk9pBsuwLy6LzQ1BlxzfKROy3yfweDAMR\\\\/jSwrWT7ZuDLBMCBvgj\\\\/9tHU8CKDoq6q8CRczAU6MAAyBBQvwgi\\\\/879lRUfRvw39BgCuwqa9MWeh4jkkSkJycm1yLv0BAZmI59WZI6asvUKC8PFWLi6zGyCtAgDR3H3PObQ+keUfFzAqJql5XnZzMbnCt80Yg\\\\/LRzq6puSsPEEAgQGOjJFH8wEH4dExx8MS7\\\\/f0JA55KyOftlv8WGsj3JYi2L5GRj7eNvm0FAW2Ybxf+LlL46qUq+vX2B15xPFilw9Zl43uV1irm9IMAeMmuW3Sj5hRIUBFS99VZV2lg3AZkopJQMSJ\\\\/jm25KMPxHBPS0NO0vk+eHE5wWLK29UpPffhwjQC999W1uuIeU1cD1REwlnT8ZBMjhf+W5D4AAc8isAnM1H5L79ogA79KqHxdV\\\\/aQSgPjBQLgkgG8D+Ps\\\\/ImAJrv+c990LKU9bLU82udZci2puvfRtL9Sux19\\\\/namzERUFO\\\\/3FdGBklljiYqRKAHyWv8Is4k8\\\\/\\\\/cQNGCDAG6iqajmGphVJQHgPCBhQRkAqf\\\\/v\\\\/s3vAEjV+QQDHT0DG7vFWvdTEkFduGDxiBiOoXWLxGqVgQV3i4qZzHzCVggBzzziNFJ43huMvrfqpCk07IICR2TMwHwNAfQoA\\\\/9VToM+15HzNQspz8fgHkiUNraeQvu48MGDqp6fgYnfFQrS6xMWFY667rdTbaK45wBBGF5fNGKN1uU0GAYz5bh1wCS484T\\\\/TAUdNk7ULKSuFvK0SJ0lfHS677MzyFZrV1NQlLi6Aj9dYb3+T55IXM9CxogAcV\\\\/3vSvC\\\\/Bj1utPD6n\\\\/EnnaQbrf6BCX0AAAAASUVORK5CYII=)"},".flag.ad":{"background-position":"-16px 0"},".flag.ae":{"background-position":"-32px 0"},".flag.af":{"background-position":"-48px 0"},".flag.ag":{"background-position":"-64px 0"},".flag.ai":{"background-position":"-80px 0"},".flag.al":{"background-position":"-96px 0"},".flag.am":{"background-position":"-112px 0"},".flag.ao":{"background-position":"-128px 0"},".flag.ar":{"background-position":"-144px 0"},".flag.as":{"background-position":"-160px 0"},".flag.at":{"background-position":"-176px 0"},".flag.au":{"background-position":"-192px 0"},".flag.aw":{"background-position":"-208px 0"},".flag.az":{"background-position":"-224px 0"},".flag.ba":{"background-position":"-240px 0"},".flag.bb":{"background-position":"0 -11px"},".flag.bd":{"background-position":"-16px -11px"},".flag.be":{"background-position":"-32px -11px"},".flag.bf":{"background-position":"-48px -11px"},".flag.bg":{"background-position":"-64px -11px"},".flag.bh":{"background-position":"-80px -11px"},".flag.bi":{"background-position":"-96px -11px"},".flag.bj":{"background-position":"-112px -11px"},".flag.bm":{"background-position":"-128px -11px"},".flag.bn":{"background-position":"-144px -11px"},".flag.bo":{"background-position":"-160px -11px"},".flag.br":{"background-position":"-176px -11px"},".flag.bs":{"background-position":"-192px -11px"},".flag.bt":{"background-position":"-208px -11px"},".flag.bw":{"background-position":"-224px -11px"},".flag.by":{"background-position":"-240px -11px"},".flag.bz":{"background-position":"0 -22px"},".flag.ca":{"background-position":"-16px -22px"},".flag.cd":{"background-position":"-32px -22px"},".flag.cf":{"background-position":"-48px -22px"},".flag.cg":{"background-position":"-64px -22px"},".flag.ch":{"background-position":"-80px -22px"},".flag.ci":{"background-position":"-96px -22px"},".flag.ck":{"background-position":"-112px -22px"},".flag.cl":{"background-position":"-128px -22px"},".flag.cm":{"background-position":"-144px -22px"},".flag.cn":{"background-position":"-160px -22px"},".flag.co":{"background-position":"-176px -22px"},".flag.cr":{"background-position":"-192px -22px"},".flag.cu":{"background-position":"-208px -22px"},".flag.cv":{"background-position":"-224px -22px"},".flag.cw":{"background-position":"-240px -22px"},".flag.cy":{"background-position":"0 -33px"},".flag.cz":{"background-position":"-16px -33px"},".flag.de":{"background-position":"-32px -33px"},".flag.dj":{"background-position":"-48px -33px"},".flag.dk":{"background-position":"-64px -33px"},".flag.dm":{"background-position":"-80px -33px"},".flag.do":{"background-position":"-96px -33px"},".flag.dz":{"background-position":"-112px -33px"},".flag.ec":{"background-position":"-128px -33px"},".flag.ee":{"background-position":"-144px -33px"},".flag.eg":{"background-position":"-160px -33px"},".flag.er":{"background-position":"-176px -33px"},".flag.es":{"background-position":"-192px -33px"},".flag.et":{"background-position":"-208px -33px"},".flag.fi":{"background-position":"-224px -33px"},".flag.fj":{"background-position":"-240px -33px"},".flag.fk":{"background-position":"0 -44px"},".flag.fm":{"background-position":"-16px -44px"},".flag.fo":{"background-position":"-32px -44px"},".flag.fr":{"background-position":"-48px -44px"},".flag.ga":{"background-position":"-64px -44px"},".flag.gb":{"background-position":"-80px -44px"},".flag.gd":{"background-position":"-96px -44px"},".flag.ge":{"background-position":"-112px -44px"},".flag.gf":{"background-position":"-128px -44px"},".flag.gh":{"background-position":"-144px -44px"},".flag.gi":{"background-position":"-160px -44px"},".flag.gl":{"background-position":"-176px -44px"},".flag.gm":{"background-position":"-192px -44px"},".flag.gn":{"background-position":"-208px -44px"},".flag.gp":{"background-position":"-224px -44px"},".flag.gq":{"background-position":"-240px -44px"},".flag.gr":{"background-position":"0 -55px"},".flag.gt":{"background-position":"-16px -55px"},".flag.gu":{"background-position":"-32px -55px"},".flag.gw":{"background-position":"-48px -55px"},".flag.gy":{"background-position":"-64px -55px"},".flag.hk":{"background-position":"-80px -55px"},".flag.hn":{"background-position":"-96px -55px"},".flag.hr":{"background-position":"-112px -55px"},".flag.ht":{"background-position":"-128px -55px"},".flag.hu":{"background-position":"-144px -55px"},".flag.id":{"background-position":"-160px -55px"},".flag.ie":{"background-position":"-176px -55px"},".flag.il":{"background-position":"-192px -55px"},".flag.in":{"background-position":"-208px -55px"},".flag.io":{"background-position":"-224px -55px"},".flag.iq":{"background-position":"-240px -55px"},".flag.ir":{"background-position":"0 -66px"},".flag.is":{"background-position":"-16px -66px"},".flag.it":{"background-position":"-32px -66px"},".flag.je":{"background-position":"-144px -154px"},".flag.jm":{"background-position":"-48px -66px"},".flag.jo":{"background-position":"-64px -66px"},".flag.jp":{"background-position":"-80px -66px"},".flag.ke":{"background-position":"-96px -66px"},".flag.kg":{"background-position":"-112px -66px"},".flag.kh":{"background-position":"-128px -66px"},".flag.ki":{"background-position":"-144px -66px"},".flag.xk":{"background-position":"-128px -154px"},".flag.km":{"background-position":"-160px -66px"},".flag.kn":{"background-position":"-176px -66px"},".flag.kp":{"background-position":"-192px -66px"},".flag.kr":{"background-position":"-208px -66px"},".flag.kw":{"background-position":"-224px -66px"},".flag.ky":{"background-position":"-240px -66px"},".flag.kz":{"background-position":"0 -77px"},".flag.la":{"background-position":"-16px -77px"},".flag.lb":{"background-position":"-32px -77px"},".flag.lc":{"background-position":"-48px -77px"},".flag.li":{"background-position":"-64px -77px"},".flag.lk":{"background-position":"-80px -77px"},".flag.lr":{"background-position":"-96px -77px"},".flag.ls":{"background-position":"-112px -77px"},".flag.lt":{"background-position":"-128px -77px"},".flag.lu":{"background-position":"-144px -77px"},".flag.lv":{"background-position":"-160px -77px"},".flag.ly":{"background-position":"-176px -77px"},".flag.ma":{"background-position":"-192px -77px"},".flag.mc":{"background-position":"-208px -77px"},".flag.md":{"background-position":"-224px -77px"},".flag.me":{"background-position":"-112px -154px","height":"12px"},".flag.mg":{"background-position":"0 -88px"},".flag.mh":{"background-position":"-16px -88px"},".flag.mk":{"background-position":"-32px -88px"},".flag.ml":{"background-position":"-48px -88px"},".flag.mm":{"background-position":"-64px -88px"},".flag.mn":{"background-position":"-80px -88px"},".flag.mo":{"background-position":"-96px -88px"},".flag.mp":{"background-position":"-112px -88px"},".flag.mq":{"background-position":"-128px -88px"},".flag.mr":{"background-position":"-144px -88px"},".flag.ms":{"background-position":"-160px -88px"},".flag.mt":{"background-position":"-176px -88px"},".flag.mu":{"background-position":"-192px -88px"},".flag.mv":{"background-position":"-208px -88px"},".flag.mw":{"background-position":"-224px -88px"},".flag.mx":{"background-position":"-240px -88px"},".flag.my":{"background-position":"0 -99px"},".flag.mz":{"background-position":"-16px -99px"},".flag.na":{"background-position":"-32px -99px"},".flag.nc":{"background-position":"-48px -99px"},".flag.ne":{"background-position":"-64px -99px"},".flag.nf":{"background-position":"-80px -99px"},".flag.ng":{"background-position":"-96px -99px"},".flag.ni":{"background-position":"-112px -99px"},".flag.nl":{"background-position":"-128px -99px"},".flag.bq":{"background-position":"-128px -99px"},".flag.no":{"background-position":"-144px -99px"},".flag.np":{"background-position":"-160px -99px"},".flag.nr":{"background-position":"-176px -99px"},".flag.nu":{"background-position":"-192px -99px"},".flag.nz":{"background-position":"-208px -99px"},".flag.om":{"background-position":"-224px -99px"},".flag.pa":{"background-position":"-240px -99px"},".flag.pe":{"background-position":"0 -110px"},".flag.pf":{"background-position":"-16px -110px"},".flag.pg":{"background-position":"-32px -110px"},".flag.ph":{"background-position":"-48px -110px"},".flag.pk":{"background-position":"-64px -110px"},".flag.pl":{"background-position":"-80px -110px"},".flag.pm":{"background-position":"-96px -110px"},".flag.pr":{"background-position":"-112px -110px"},".flag.ps":{"background-position":"-128px -110px"},".flag.pt":{"background-position":"-144px -110px"},".flag.pw":{"background-position":"-160px -110px"},".flag.py":{"background-position":"-176px -110px"},".flag.qa":{"background-position":"-192px -110px"},".flag.re":{"background-position":"-208px -110px"},".flag.ro":{"background-position":"-224px -110px"},".flag.rs":{"background-position":"-240px -110px"},".flag.ru":{"background-position":"0 -121px"},".flag.rw":{"background-position":"-16px -121px"},".flag.sa":{"background-position":"-32px -121px"},".flag.sb":{"background-position":"-48px -121px"},".flag.sc":{"background-position":"-64px -121px"},".flag.sd":{"background-position":"-80px -121px"},".flag.se":{"background-position":"-96px -121px"},".flag.sg":{"background-position":"-112px -121px"},".flag.sh":{"background-position":"-128px -121px"},".flag.si":{"background-position":"-144px -121px"},".flag.sk":{"background-position":"-160px -121px"},".flag.sl":{"background-position":"-176px -121px"},".flag.sm":{"background-position":"-192px -121px"},".flag.sn":{"background-position":"-208px -121px"},".flag.so":{"background-position":"-224px -121px"},".flag.sr":{"background-position":"-240px -121px"},".flag.ss":{"background-position":"0 -132px"},".flag.st":{"background-position":"-16px -132px"},".flag.sv":{"background-position":"-32px -132px"},".flag.sx":{"background-position":"-48px -132px"},".flag.sy":{"background-position":"-64px -132px"},".flag.sz":{"background-position":"-80px -132px"},".flag.tc":{"background-position":"-96px -132px"},".flag.td":{"background-position":"-112px -132px"},".flag.tg":{"background-position":"-128px -132px"},".flag.th":{"background-position":"-144px -132px"},".flag.tj":{"background-position":"-160px -132px"},".flag.tk":{"background-position":"-176px -132px"},".flag.tl":{"background-position":"-192px -132px"},".flag.tm":{"background-position":"-208px -132px"},".flag.tn":{"background-position":"-224px -132px"},".flag.to":{"background-position":"-240px -132px"},".flag.tr":{"background-position":"0 -143px"},".flag.tt":{"background-position":"-16px -143px"},".flag.tv":{"background-position":"-32px -143px"},".flag.tw":{"background-position":"-48px -143px"},".flag.tz":{"background-position":"-64px -143px"},".flag.ua":{"background-position":"-80px -143px"},".flag.ug":{"background-position":"-96px -143px"},".flag.us":{"background-position":"-112px -143px"},".flag.uy":{"background-position":"-128px -143px"},".flag.uz":{"background-position":"-144px -143px"},".flag.va":{"background-position":"-160px -143px"},".flag.vc":{"background-position":"-176px -143px"},".flag.ve":{"background-position":"-192px -143px"},".flag.vg":{"background-position":"-208px -143px"},".flag.vi":{"background-position":"-224px -143px"},".flag.vn":{"background-position":"-240px -143px"},".flag.vu":{"background-position":"0 -154px"},".flag.wf":{"background-position":"-16px -154px"},".flag.ws":{"background-position":"-32px -154px"},".flag.ye":{"background-position":"-48px -154px"},".flag.za":{"background-position":"-64px -154px"},".flag.zm":{"background-position":"-80px -154px"},".flag.zw":{"background-position":"-96px -154px"}}'); /***/ }), /***/ "../../../node_modules/react-redux/dist/react-redux.mjs": /*!**************************************************************!*\ !*** ../../../node_modules/react-redux/dist/react-redux.mjs ***! \**************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Provider: () => (/* binding */ Provider_default), /* harmony export */ ReactReduxContext: () => (/* binding */ ReactReduxContext), /* harmony export */ batch: () => (/* binding */ batch), /* harmony export */ connect: () => (/* binding */ connect_default), /* harmony export */ createDispatchHook: () => (/* binding */ createDispatchHook), /* harmony export */ createSelectorHook: () => (/* binding */ createSelectorHook), /* harmony export */ createStoreHook: () => (/* binding */ createStoreHook), /* harmony export */ shallowEqual: () => (/* binding */ shallowEqual), /* harmony export */ useDispatch: () => (/* binding */ useDispatch), /* harmony export */ useSelector: () => (/* binding */ useSelector), /* harmony export */ useStore: () => (/* binding */ useStore) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var use_sync_external_store_with_selector_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! use-sync-external-store/with-selector.js */ "../../../node_modules/use-sync-external-store/with-selector.js"); // src/utils/react.ts // src/utils/react-is.ts var IS_REACT_19 = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.version.startsWith("19"); var REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for( IS_REACT_19 ? "react.transitional.element" : "react.element" ); var REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for("react.portal"); var REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for("react.fragment"); var REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for("react.strict_mode"); var REACT_PROFILER_TYPE = /* @__PURE__ */ Symbol.for("react.profiler"); var REACT_CONSUMER_TYPE = /* @__PURE__ */ Symbol.for("react.consumer"); var REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for("react.context"); var REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for("react.forward_ref"); var REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for("react.suspense"); var REACT_SUSPENSE_LIST_TYPE = /* @__PURE__ */ Symbol.for( "react.suspense_list" ); var REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for("react.memo"); var REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy"); var REACT_OFFSCREEN_TYPE = /* @__PURE__ */ Symbol.for("react.offscreen"); var REACT_CLIENT_REFERENCE = /* @__PURE__ */ Symbol.for( "react.client.reference" ); var ForwardRef = REACT_FORWARD_REF_TYPE; var Memo = REACT_MEMO_TYPE; function isValidElementType(type) { return typeof type === "string" || typeof type === "function" || type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_OFFSCREEN_TYPE || typeof type === "object" && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_CONSUMER_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_CLIENT_REFERENCE || type.getModuleId !== void 0) ? true : false; } function typeOf(object) { if (typeof object === "object" && object !== null) { const { $$typeof } = object; switch ($$typeof) { case REACT_ELEMENT_TYPE: switch (object = object.type, object) { case REACT_FRAGMENT_TYPE: case REACT_PROFILER_TYPE: case REACT_STRICT_MODE_TYPE: case REACT_SUSPENSE_TYPE: case REACT_SUSPENSE_LIST_TYPE: return object; default: switch (object = object && object.$$typeof, object) { case REACT_CONTEXT_TYPE: case REACT_FORWARD_REF_TYPE: case REACT_LAZY_TYPE: case REACT_MEMO_TYPE: return object; case REACT_CONSUMER_TYPE: return object; default: return $$typeof; } } case REACT_PORTAL_TYPE: return $$typeof; } } } function isContextConsumer(object) { return IS_REACT_19 ? typeOf(object) === REACT_CONSUMER_TYPE : typeOf(object) === REACT_CONTEXT_TYPE; } function isMemo(object) { return typeOf(object) === REACT_MEMO_TYPE; } // src/utils/warning.ts function warning(message) { if (typeof console !== "undefined" && typeof console.error === "function") { console.error(message); } try { throw new Error(message); } catch (e) { } } // src/connect/verifySubselectors.ts function verify(selector, methodName) { if (!selector) { throw new Error(`Unexpected value for ${methodName} in connect.`); } else if (methodName === "mapStateToProps" || methodName === "mapDispatchToProps") { if (!Object.prototype.hasOwnProperty.call(selector, "dependsOnOwnProps")) { warning( `The selector for ${methodName} of connect did not specify a value for dependsOnOwnProps.` ); } } } function verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps) { verify(mapStateToProps, "mapStateToProps"); verify(mapDispatchToProps, "mapDispatchToProps"); verify(mergeProps, "mergeProps"); } // src/connect/selectorFactory.ts function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, { areStatesEqual, areOwnPropsEqual, areStatePropsEqual }) { let hasRunAtLeastOnce = false; let state; let ownProps; let stateProps; let dispatchProps; let mergedProps; function handleFirstCall(firstState, firstOwnProps) { state = firstState; ownProps = firstOwnProps; stateProps = mapStateToProps(state, ownProps); dispatchProps = mapDispatchToProps(dispatch, ownProps); mergedProps = mergeProps(stateProps, dispatchProps, ownProps); hasRunAtLeastOnce = true; return mergedProps; } function handleNewPropsAndNewState() { stateProps = mapStateToProps(state, ownProps); if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps); mergedProps = mergeProps(stateProps, dispatchProps, ownProps); return mergedProps; } function handleNewProps() { if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps); if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps); mergedProps = mergeProps(stateProps, dispatchProps, ownProps); return mergedProps; } function handleNewState() { const nextStateProps = mapStateToProps(state, ownProps); const statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps); stateProps = nextStateProps; if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps); return mergedProps; } function handleSubsequentCalls(nextState, nextOwnProps) { const propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps); const stateChanged = !areStatesEqual( nextState, state, nextOwnProps, ownProps ); state = nextState; ownProps = nextOwnProps; if (propsChanged && stateChanged) return handleNewPropsAndNewState(); if (propsChanged) return handleNewProps(); if (stateChanged) return handleNewState(); return mergedProps; } return function pureFinalPropsSelector(nextState, nextOwnProps) { return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps); }; } function finalPropsSelectorFactory(dispatch, { initMapStateToProps, initMapDispatchToProps, initMergeProps, ...options }) { const mapStateToProps = initMapStateToProps(dispatch, options); const mapDispatchToProps = initMapDispatchToProps(dispatch, options); const mergeProps = initMergeProps(dispatch, options); if (true) { verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps); } return pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options); } // src/utils/bindActionCreators.ts function bindActionCreators(actionCreators, dispatch) { const boundActionCreators = {}; for (const key in actionCreators) { const actionCreator = actionCreators[key]; if (typeof actionCreator === "function") { boundActionCreators[key] = (...args) => dispatch(actionCreator(...args)); } } return boundActionCreators; } // src/utils/isPlainObject.ts function isPlainObject(obj) { if (typeof obj !== "object" || obj === null) return false; const proto = Object.getPrototypeOf(obj); if (proto === null) return true; let baseProto = proto; while (Object.getPrototypeOf(baseProto) !== null) { baseProto = Object.getPrototypeOf(baseProto); } return proto === baseProto; } // src/utils/verifyPlainObject.ts function verifyPlainObject(value, displayName, methodName) { if (!isPlainObject(value)) { warning( `${methodName}() in ${displayName} must return a plain object. Instead received ${value}.` ); } } // src/connect/wrapMapToProps.ts function wrapMapToPropsConstant(getConstant) { return function initConstantSelector(dispatch) { const constant = getConstant(dispatch); function constantSelector() { return constant; } constantSelector.dependsOnOwnProps = false; return constantSelector; }; } function getDependsOnOwnProps(mapToProps) { return mapToProps.dependsOnOwnProps ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1; } function wrapMapToPropsFunc(mapToProps, methodName) { return function initProxySelector(dispatch, { displayName }) { const proxy = function mapToPropsProxy(stateOrDispatch, ownProps) { return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch, void 0); }; proxy.dependsOnOwnProps = true; proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) { proxy.mapToProps = mapToProps; proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps); let props = proxy(stateOrDispatch, ownProps); if (typeof props === "function") { proxy.mapToProps = props; proxy.dependsOnOwnProps = getDependsOnOwnProps(props); props = proxy(stateOrDispatch, ownProps); } if (true) verifyPlainObject(props, displayName, methodName); return props; }; return proxy; }; } // src/connect/invalidArgFactory.ts function createInvalidArgFactory(arg, name) { return (dispatch, options) => { throw new Error( `Invalid value of type ${typeof arg} for ${name} argument when connecting component ${options.wrappedComponentName}.` ); }; } // src/connect/mapDispatchToProps.ts function mapDispatchToPropsFactory(mapDispatchToProps) { return mapDispatchToProps && typeof mapDispatchToProps === "object" ? wrapMapToPropsConstant( (dispatch) => ( // @ts-ignore bindActionCreators(mapDispatchToProps, dispatch) ) ) : !mapDispatchToProps ? wrapMapToPropsConstant((dispatch) => ({ dispatch })) : typeof mapDispatchToProps === "function" ? ( // @ts-ignore wrapMapToPropsFunc(mapDispatchToProps, "mapDispatchToProps") ) : createInvalidArgFactory(mapDispatchToProps, "mapDispatchToProps"); } // src/connect/mapStateToProps.ts function mapStateToPropsFactory(mapStateToProps) { return !mapStateToProps ? wrapMapToPropsConstant(() => ({})) : typeof mapStateToProps === "function" ? ( // @ts-ignore wrapMapToPropsFunc(mapStateToProps, "mapStateToProps") ) : createInvalidArgFactory(mapStateToProps, "mapStateToProps"); } // src/connect/mergeProps.ts function defaultMergeProps(stateProps, dispatchProps, ownProps) { return { ...ownProps, ...stateProps, ...dispatchProps }; } function wrapMergePropsFunc(mergeProps) { return function initMergePropsProxy(dispatch, { displayName, areMergedPropsEqual }) { let hasRunOnce = false; let mergedProps; return function mergePropsProxy(stateProps, dispatchProps, ownProps) { const nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps); if (hasRunOnce) { if (!areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps; } else { hasRunOnce = true; mergedProps = nextMergedProps; if (true) verifyPlainObject(mergedProps, displayName, "mergeProps"); } return mergedProps; }; }; } function mergePropsFactory(mergeProps) { return !mergeProps ? () => defaultMergeProps : typeof mergeProps === "function" ? wrapMergePropsFunc(mergeProps) : createInvalidArgFactory(mergeProps, "mergeProps"); } // src/utils/batch.ts function defaultNoopBatch(callback) { callback(); } // src/utils/Subscription.ts function createListenerCollection() { let first = null; let last = null; return { clear() { first = null; last = null; }, notify() { defaultNoopBatch(() => { let listener = first; while (listener) { listener.callback(); listener = listener.next; } }); }, get() { const listeners = []; let listener = first; while (listener) { listeners.push(listener); listener = listener.next; } return listeners; }, subscribe(callback) { let isSubscribed = true; const listener = last = { callback, next: null, prev: last }; if (listener.prev) { listener.prev.next = listener; } else { first = listener; } return function unsubscribe() { if (!isSubscribed || first === null) return; isSubscribed = false; if (listener.next) { listener.next.prev = listener.prev; } else { last = listener.prev; } if (listener.prev) { listener.prev.next = listener.next; } else { first = listener.next; } }; } }; } var nullListeners = { notify() { }, get: () => [] }; function createSubscription(store, parentSub) { let unsubscribe; let listeners = nullListeners; let subscriptionsAmount = 0; let selfSubscribed = false; function addNestedSub(listener) { trySubscribe(); const cleanupListener = listeners.subscribe(listener); let removed = false; return () => { if (!removed) { removed = true; cleanupListener(); tryUnsubscribe(); } }; } function notifyNestedSubs() { listeners.notify(); } function handleChangeWrapper() { if (subscription.onStateChange) { subscription.onStateChange(); } } function isSubscribed() { return selfSubscribed; } function trySubscribe() { subscriptionsAmount++; if (!unsubscribe) { unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper); listeners = createListenerCollection(); } } function tryUnsubscribe() { subscriptionsAmount--; if (unsubscribe && subscriptionsAmount === 0) { unsubscribe(); unsubscribe = void 0; listeners.clear(); listeners = nullListeners; } } function trySubscribeSelf() { if (!selfSubscribed) { selfSubscribed = true; trySubscribe(); } } function tryUnsubscribeSelf() { if (selfSubscribed) { selfSubscribed = false; tryUnsubscribe(); } } const subscription = { addNestedSub, notifyNestedSubs, handleChangeWrapper, isSubscribed, trySubscribe: trySubscribeSelf, tryUnsubscribe: tryUnsubscribeSelf, getListeners: () => listeners }; return subscription; } // src/utils/useIsomorphicLayoutEffect.ts var canUseDOM = () => !!(typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined"); var isDOM = /* @__PURE__ */ canUseDOM(); var isRunningInReactNative = () => typeof navigator !== "undefined" && navigator.product === "ReactNative"; var isReactNative = /* @__PURE__ */ isRunningInReactNative(); var getUseIsomorphicLayoutEffect = () => isDOM || isReactNative ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect; var useIsomorphicLayoutEffect = /* @__PURE__ */ getUseIsomorphicLayoutEffect(); // src/utils/shallowEqual.ts function is(x, y) { if (x === y) { return x !== 0 || y !== 0 || 1 / x === 1 / y; } else { return x !== x && y !== y; } } function shallowEqual(objA, objB) { if (is(objA, objB)) return true; if (typeof objA !== "object" || objA === null || typeof objB !== "object" || objB === null) { return false; } const keysA = Object.keys(objA); const keysB = Object.keys(objB); if (keysA.length !== keysB.length) return false; for (let i = 0; i < keysA.length; i++) { if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) { return false; } } return true; } // src/utils/hoistStatics.ts var REACT_STATICS = { childContextTypes: true, contextType: true, contextTypes: true, defaultProps: true, displayName: true, getDefaultProps: true, getDerivedStateFromError: true, getDerivedStateFromProps: true, mixins: true, propTypes: true, type: true }; var KNOWN_STATICS = { name: true, length: true, prototype: true, caller: true, callee: true, arguments: true, arity: true }; var FORWARD_REF_STATICS = { $$typeof: true, render: true, defaultProps: true, displayName: true, propTypes: true }; var MEMO_STATICS = { $$typeof: true, compare: true, defaultProps: true, displayName: true, propTypes: true, type: true }; var TYPE_STATICS = { [ForwardRef]: FORWARD_REF_STATICS, [Memo]: MEMO_STATICS }; function getStatics(component) { if (isMemo(component)) { return MEMO_STATICS; } return TYPE_STATICS[component["$$typeof"]] || REACT_STATICS; } var defineProperty = Object.defineProperty; var getOwnPropertyNames = Object.getOwnPropertyNames; var getOwnPropertySymbols = Object.getOwnPropertySymbols; var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; var getPrototypeOf = Object.getPrototypeOf; var objectPrototype = Object.prototype; function hoistNonReactStatics(targetComponent, sourceComponent) { if (typeof sourceComponent !== "string") { if (objectPrototype) { const inheritedComponent = getPrototypeOf(sourceComponent); if (inheritedComponent && inheritedComponent !== objectPrototype) { hoistNonReactStatics(targetComponent, inheritedComponent); } } let keys = getOwnPropertyNames(sourceComponent); if (getOwnPropertySymbols) { keys = keys.concat(getOwnPropertySymbols(sourceComponent)); } const targetStatics = getStatics(targetComponent); const sourceStatics = getStatics(sourceComponent); for (let i = 0; i < keys.length; ++i) { const key = keys[i]; if (!KNOWN_STATICS[key] && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) { const descriptor = getOwnPropertyDescriptor(sourceComponent, key); try { defineProperty(targetComponent, key, descriptor); } catch (e) { } } } } return targetComponent; } // src/components/Context.ts var ContextKey = /* @__PURE__ */ Symbol.for(`react-redux-context`); var gT = typeof globalThis !== "undefined" ? globalThis : ( /* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */ {} ); function getContext() { if (!react__WEBPACK_IMPORTED_MODULE_0__.createContext) return {}; const contextMap = gT[ContextKey] ??= /* @__PURE__ */ new Map(); let realContext = contextMap.get(react__WEBPACK_IMPORTED_MODULE_0__.createContext); if (!realContext) { realContext = react__WEBPACK_IMPORTED_MODULE_0__.createContext( null ); if (true) { realContext.displayName = "ReactRedux"; } contextMap.set(react__WEBPACK_IMPORTED_MODULE_0__.createContext, realContext); } return realContext; } var ReactReduxContext = /* @__PURE__ */ getContext(); // src/components/connect.tsx var NO_SUBSCRIPTION_ARRAY = [null, null]; var stringifyComponent = (Comp) => { try { return JSON.stringify(Comp); } catch (err) { return String(Comp); } }; function useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) { useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies); } function captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, childPropsFromStoreUpdate, notifyNestedSubs) { lastWrapperProps.current = wrapperProps; renderIsScheduled.current = false; if (childPropsFromStoreUpdate.current) { childPropsFromStoreUpdate.current = null; notifyNestedSubs(); } } function subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, additionalSubscribeListener) { if (!shouldHandleStateChanges) return () => { }; let didUnsubscribe = false; let lastThrownError = null; const checkForUpdates = () => { if (didUnsubscribe || !isMounted.current) { return; } const latestStoreState = store.getState(); let newChildProps, error; try { newChildProps = childPropsSelector( latestStoreState, lastWrapperProps.current ); } catch (e) { error = e; lastThrownError = e; } if (!error) { lastThrownError = null; } if (newChildProps === lastChildProps.current) { if (!renderIsScheduled.current) { notifyNestedSubs(); } } else { lastChildProps.current = newChildProps; childPropsFromStoreUpdate.current = newChildProps; renderIsScheduled.current = true; additionalSubscribeListener(); } }; subscription.onStateChange = checkForUpdates; subscription.trySubscribe(); checkForUpdates(); const unsubscribeWrapper = () => { didUnsubscribe = true; subscription.tryUnsubscribe(); subscription.onStateChange = null; if (lastThrownError) { throw lastThrownError; } }; return unsubscribeWrapper; } function strictEqual(a, b) { return a === b; } var hasWarnedAboutDeprecatedPureOption = false; function connect(mapStateToProps, mapDispatchToProps, mergeProps, { // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence. // @ts-ignore pure, areStatesEqual = strictEqual, areOwnPropsEqual = shallowEqual, areStatePropsEqual = shallowEqual, areMergedPropsEqual = shallowEqual, // use React's forwardRef to expose a ref of the wrapped component forwardRef = false, // the context consumer to use context = ReactReduxContext } = {}) { if (true) { if (pure !== void 0 && !hasWarnedAboutDeprecatedPureOption) { hasWarnedAboutDeprecatedPureOption = true; warning( 'The `pure` option has been removed. `connect` is now always a "pure/memoized" component' ); } } const Context = context; const initMapStateToProps = mapStateToPropsFactory(mapStateToProps); const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps); const initMergeProps = mergePropsFactory(mergeProps); const shouldHandleStateChanges = Boolean(mapStateToProps); const wrapWithConnect = (WrappedComponent) => { if (true) { const isValid = /* @__PURE__ */ isValidElementType(WrappedComponent); if (!isValid) throw new Error( `You must pass a component to the function returned by connect. Instead received ${stringifyComponent( WrappedComponent )}` ); } const wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || "Component"; const displayName = `Connect(${wrappedComponentName})`; const selectorFactoryOptions = { shouldHandleStateChanges, displayName, wrappedComponentName, WrappedComponent, // @ts-ignore initMapStateToProps, initMapDispatchToProps, initMergeProps, areStatesEqual, areStatePropsEqual, areOwnPropsEqual, areMergedPropsEqual }; function ConnectFunction(props) { const [propsContext, reactReduxForwardedRef, wrapperProps] = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => { const { reactReduxForwardedRef: reactReduxForwardedRef2, ...wrapperProps2 } = props; return [props.context, reactReduxForwardedRef2, wrapperProps2]; }, [props]); const ContextToUse = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => { let ResultContext = Context; if (propsContext?.Consumer) { if (true) { const isValid = /* @__PURE__ */ isContextConsumer( // @ts-ignore /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(propsContext.Consumer, null) ); if (!isValid) { throw new Error( "You must pass a valid React context consumer as `props.context`" ); } ResultContext = propsContext; } } return ResultContext; }, [propsContext, Context]); const contextValue = react__WEBPACK_IMPORTED_MODULE_0__.useContext(ContextToUse); const didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch); const didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store); if ( true && !didStoreComeFromProps && !didStoreComeFromContext) { throw new Error( `Could not find "store" in the context of "${displayName}". Either wrap the root component in a , or pass a custom React context provider to and the corresponding React context consumer to ${displayName} in connect options.` ); } const store = didStoreComeFromProps ? props.store : contextValue.store; const getServerState = didStoreComeFromContext ? contextValue.getServerState : store.getState; const childPropsSelector = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => { return finalPropsSelectorFactory(store.dispatch, selectorFactoryOptions); }, [store]); const [subscription, notifyNestedSubs] = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => { if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; const subscription2 = createSubscription( store, didStoreComeFromProps ? void 0 : contextValue.subscription ); const notifyNestedSubs2 = subscription2.notifyNestedSubs.bind(subscription2); return [subscription2, notifyNestedSubs2]; }, [store, didStoreComeFromProps, contextValue]); const overriddenContextValue = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => { if (didStoreComeFromProps) { return contextValue; } return { ...contextValue, subscription }; }, [didStoreComeFromProps, contextValue, subscription]); const lastChildProps = react__WEBPACK_IMPORTED_MODULE_0__.useRef(void 0); const lastWrapperProps = react__WEBPACK_IMPORTED_MODULE_0__.useRef(wrapperProps); const childPropsFromStoreUpdate = react__WEBPACK_IMPORTED_MODULE_0__.useRef(void 0); const renderIsScheduled = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false); const isMounted = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false); const latestSubscriptionCallbackError = react__WEBPACK_IMPORTED_MODULE_0__.useRef( void 0 ); useIsomorphicLayoutEffect(() => { isMounted.current = true; return () => { isMounted.current = false; }; }, []); const actualChildPropsSelector = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => { const selector = () => { if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) { return childPropsFromStoreUpdate.current; } return childPropsSelector(store.getState(), wrapperProps); }; return selector; }, [store, wrapperProps]); const subscribeForReact = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => { const subscribe = (reactListener) => { if (!subscription) { return () => { }; } return subscribeUpdates( shouldHandleStateChanges, store, subscription, // @ts-ignore childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, reactListener ); }; return subscribe; }, [subscription]); useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [ lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, childPropsFromStoreUpdate, notifyNestedSubs ]); let actualChildProps; try { actualChildProps = react__WEBPACK_IMPORTED_MODULE_0__.useSyncExternalStore( // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing subscribeForReact, // TODO This is incredibly hacky. We've already processed the store update and calculated new child props, // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`. actualChildPropsSelector, getServerState ? () => childPropsSelector(getServerState(), wrapperProps) : actualChildPropsSelector ); } catch (err) { if (latestSubscriptionCallbackError.current) { ; err.message += ` The error may be correlated with this previous error: ${latestSubscriptionCallbackError.current.stack} `; } throw err; } useIsomorphicLayoutEffect(() => { latestSubscriptionCallbackError.current = void 0; childPropsFromStoreUpdate.current = void 0; lastChildProps.current = actualChildProps; }); const renderedWrappedComponent = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => { return ( // @ts-ignore /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( WrappedComponent, { ...actualChildProps, ref: reactReduxForwardedRef } ) ); }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); const renderedChild = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => { if (shouldHandleStateChanges) { return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(ContextToUse.Provider, { value: overriddenContextValue }, renderedWrappedComponent); } return renderedWrappedComponent; }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]); return renderedChild; } const _Connect = react__WEBPACK_IMPORTED_MODULE_0__.memo(ConnectFunction); const Connect = _Connect; Connect.WrappedComponent = WrappedComponent; Connect.displayName = ConnectFunction.displayName = displayName; if (forwardRef) { const _forwarded = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef( function forwardConnectRef(props, ref) { return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(Connect, { ...props, reactReduxForwardedRef: ref }); } ); const forwarded = _forwarded; forwarded.displayName = displayName; forwarded.WrappedComponent = WrappedComponent; return /* @__PURE__ */ hoistNonReactStatics(forwarded, WrappedComponent); } return /* @__PURE__ */ hoistNonReactStatics(Connect, WrappedComponent); }; return wrapWithConnect; } var connect_default = connect; // src/components/Provider.tsx function Provider(providerProps) { const { children, context, serverState, store } = providerProps; const contextValue = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => { const subscription = createSubscription(store); const baseContextValue = { store, subscription, getServerState: serverState ? () => serverState : void 0 }; if (false) {} else { const { identityFunctionCheck = "once", stabilityCheck = "once" } = providerProps; return /* @__PURE__ */ Object.assign(baseContextValue, { stabilityCheck, identityFunctionCheck }); } }, [store, serverState]); const previousState = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => store.getState(), [store]); useIsomorphicLayoutEffect(() => { const { subscription } = contextValue; subscription.onStateChange = subscription.notifyNestedSubs; subscription.trySubscribe(); if (previousState !== store.getState()) { subscription.notifyNestedSubs(); } return () => { subscription.tryUnsubscribe(); subscription.onStateChange = void 0; }; }, [contextValue, previousState]); const Context = context || ReactReduxContext; return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(Context.Provider, { value: contextValue }, children); } var Provider_default = Provider; // src/hooks/useReduxContext.ts function createReduxContextHook(context = ReactReduxContext) { return function useReduxContext2() { const contextValue = react__WEBPACK_IMPORTED_MODULE_0__.useContext(context); if ( true && !contextValue) { throw new Error( "could not find react-redux context value; please ensure the component is wrapped in a " ); } return contextValue; }; } var useReduxContext = /* @__PURE__ */ createReduxContextHook(); // src/hooks/useStore.ts function createStoreHook(context = ReactReduxContext) { const useReduxContext2 = context === ReactReduxContext ? useReduxContext : ( // @ts-ignore createReduxContextHook(context) ); const useStore2 = () => { const { store } = useReduxContext2(); return store; }; Object.assign(useStore2, { withTypes: () => useStore2 }); return useStore2; } var useStore = /* @__PURE__ */ createStoreHook(); // src/hooks/useDispatch.ts function createDispatchHook(context = ReactReduxContext) { const useStore2 = context === ReactReduxContext ? useStore : createStoreHook(context); const useDispatch2 = () => { const store = useStore2(); return store.dispatch; }; Object.assign(useDispatch2, { withTypes: () => useDispatch2 }); return useDispatch2; } var useDispatch = /* @__PURE__ */ createDispatchHook(); // src/hooks/useSelector.ts var refEquality = (a, b) => a === b; function createSelectorHook(context = ReactReduxContext) { const useReduxContext2 = context === ReactReduxContext ? useReduxContext : createReduxContextHook(context); const useSelector2 = (selector, equalityFnOrOptions = {}) => { const { equalityFn = refEquality } = typeof equalityFnOrOptions === "function" ? { equalityFn: equalityFnOrOptions } : equalityFnOrOptions; if (true) { if (!selector) { throw new Error(`You must pass a selector to useSelector`); } if (typeof selector !== "function") { throw new Error(`You must pass a function as a selector to useSelector`); } if (typeof equalityFn !== "function") { throw new Error( `You must pass a function as an equality function to useSelector` ); } } const reduxContext = useReduxContext2(); const { store, subscription, getServerState } = reduxContext; const firstRun = react__WEBPACK_IMPORTED_MODULE_0__.useRef(true); const wrappedSelector = react__WEBPACK_IMPORTED_MODULE_0__.useCallback( { [selector.name](state) { const selected = selector(state); if (true) { const { devModeChecks = {} } = typeof equalityFnOrOptions === "function" ? {} : equalityFnOrOptions; const { identityFunctionCheck, stabilityCheck } = reduxContext; const { identityFunctionCheck: finalIdentityFunctionCheck, stabilityCheck: finalStabilityCheck } = { stabilityCheck, identityFunctionCheck, ...devModeChecks }; if (finalStabilityCheck === "always" || finalStabilityCheck === "once" && firstRun.current) { const toCompare = selector(state); if (!equalityFn(selected, toCompare)) { let stack = void 0; try { throw new Error(); } catch (e) { ; ({ stack } = e); } console.warn( "Selector " + (selector.name || "unknown") + " returned a different result when called with the same parameters. This can lead to unnecessary rerenders.\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization", { state, selected, selected2: toCompare, stack } ); } } if (finalIdentityFunctionCheck === "always" || finalIdentityFunctionCheck === "once" && firstRun.current) { if (selected === state) { let stack = void 0; try { throw new Error(); } catch (e) { ; ({ stack } = e); } console.warn( "Selector " + (selector.name || "unknown") + " returned the root state when called. This can lead to unnecessary rerenders.\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.", { stack } ); } } if (firstRun.current) firstRun.current = false; } return selected; } }[selector.name], [selector] ); const selectedState = (0,use_sync_external_store_with_selector_js__WEBPACK_IMPORTED_MODULE_1__.useSyncExternalStoreWithSelector)( subscription.addNestedSub, store.getState, getServerState || store.getState, wrappedSelector, equalityFn ); react__WEBPACK_IMPORTED_MODULE_0__.useDebugValue(selectedState); return selectedState; }; Object.assign(useSelector2, { withTypes: () => useSelector2 }); return useSelector2; } var useSelector = /* @__PURE__ */ createSelectorHook(); // src/exports.ts var batch = defaultNoopBatch; //# sourceMappingURL=react-redux.mjs.map /***/ }) }]); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianMvdmVuZG9ycy1ub2RlX21vZHVsZXNfcmVhY3QtZG9tX2NsaWVudF9qcy1ub2RlX21vZHVsZXNfcmVhY3QtaXNfaW5kZXhfanMtbm9kZV9tb2R1bGVzX3JlYWN0LXBoLTk4NzM4NS52b2x1bnRlZXJhcGkuOTVjZWY5OWYyYzQ1MjQzOWZmZDEuYnVuZGxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFhOztBQUViLFFBQVEsbUJBQU8sQ0FBQywyREFBVztBQUMzQixJQUFJLEtBQXFDLEVBQUUsRUFHMUMsQ0FBQztBQUNGO0FBQ0EsRUFBRSxrQkFBa0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUJBQW1CO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7QUN4QmE7O0FBRWI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sSUFBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSSxLQUFxQyxFQUFFLEVBSzFDLENBQUM7QUFDRixFQUFFLDBJQUEwRDtBQUM1RDs7Ozs7Ozs7Ozs7QUNyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVhOztBQUViLElBQUksSUFBcUM7QUFDekM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsNEJBQTRCO0FBQzVCO0FBQ0EscUNBQXFDOztBQUVyQyxnQ0FBZ0M7QUFDaEM7QUFDQTs7QUFFQSxnQ0FBZ0M7O0FBRWhDOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNEQUFzRDs7QUFFdEQ7QUFDQTtBQUNBO0FBQ0Esa0RBQWtEOztBQUVsRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RDs7QUFFdkQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsdUJBQXVCO0FBQ3ZCLHVCQUF1QjtBQUN2QixlQUFlO0FBQ2Ysa0JBQWtCO0FBQ2xCLGdCQUFnQjtBQUNoQixZQUFZO0FBQ1osWUFBWTtBQUNaLGNBQWM7QUFDZCxnQkFBZ0I7QUFDaEIsa0JBQWtCO0FBQ2xCLGdCQUFnQjtBQUNoQixvQkFBb0I7QUFDcEIsbUJBQW1CO0FBQ25CLHdCQUF3QjtBQUN4Qix5QkFBeUI7QUFDekIseUJBQXlCO0FBQ3pCLGlCQUFpQjtBQUNqQixvQkFBb0I7QUFDcEIsa0JBQWtCO0FBQ2xCLGNBQWM7QUFDZCxjQUFjO0FBQ2QsZ0JBQWdCO0FBQ2hCLGtCQUFrQjtBQUNsQixvQkFBb0I7QUFDcEIsa0JBQWtCO0FBQ2xCLHNCQUFzQjtBQUN0QiwwQkFBMEI7QUFDMUIsY0FBYztBQUNkLEdBQUc7QUFDSDs7Ozs7Ozs7Ozs7QUM1TmE7O0FBRWIsSUFBSSxLQUFxQyxFQUFFLEVBRTFDLENBQUM7QUFDRixFQUFFLHVJQUF5RDtBQUMzRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ05BO0FBQytEO0FBQ3ZCO0FBQ1U7QUFDQTtBQUNJO0FBQ3REO0FBQ08sK0NBQStDLHFEQUFTO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQLFdBQVcscURBQVM7QUFDcEI7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQSxvQkFBb0IsdURBQVc7QUFDL0I7QUFDQTtBQUNPO0FBQ1A7QUFDQSxZQUFZLHFEQUFTO0FBQ3JCO0FBQ08sMkRBQTJELHFEQUFTO0FBQzNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QyxZQUFZLEVBQUUsaUJBQWlCO0FBQzdFO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDTztBQUNQLG9CQUFvQiw2Q0FBTTtBQUMxQixrQkFBa0Isa0RBQVc7QUFDN0I7QUFDQSxLQUFLO0FBQ0wsa0JBQWtCLDhDQUFPO0FBQ3pCO0FBQ0EsS0FBSztBQUNMLGlCQUFpQiw4Q0FBTztBQUN4QjtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTCxzQkFBc0Isa0RBQVc7QUFDakM7QUFDQSxLQUFLO0FBQ0wsb0JBQW9CLGtEQUFXLElBQUksUUFBUTtBQUMzQztBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxvQkFBb0IsK0xBQStMO0FBQzFOO0FBQ0E7QUFDQSx5REFBeUQscURBQVM7QUFDbEUscURBQXFELHFEQUFTO0FBQzlELDhCQUE4QiwrQ0FBUTtBQUN0QywwQkFBMEIsOENBQU87QUFDakMscUVBQXFFLHFEQUFTO0FBQzlFLGVBQWUscURBQVM7QUFDeEI7QUFDQSxTQUFTO0FBQ1QsS0FBSztBQUNMLDBCQUEwQiw4Q0FBTztBQUNqQztBQUNBO0FBQ0E7QUFDQSxnREFBZ0Qsb0NBQVc7QUFDM0Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLHFCQUFxQiw4Q0FBTztBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLG9CQUFvQiw4Q0FBTztBQUMzQjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUMzSUE7QUFDTztBQUNQO0FBQ0E7QUFDQSxrQkFBa0IsV0FBVztBQUM3QixzQkFBc0IsSUFBSSxJQUFJLFFBQVE7QUFDdEMsU0FBUyxnQkFBZ0I7QUFDekIsS0FBSztBQUNMO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN4QkE7QUFDK0I7O0FBRS9CO0FBQ0Esa0NBQWtDLDBDQUFhO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksV0FBVztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEMsWUFBWTtBQUN4RCxJQUFJO0FBQ0o7QUFDQTtBQUNBLDRCQUE0QixZQUFZO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsTUFBTSxJQUFxQztBQUMzQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLFdBQVcsUUFBUSxhQUFhLCtDQUErQyxNQUFNO0FBQzlGO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnREFBZ0QsYUFBYTtBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsSUFBcUM7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLFlBQVksTUFBTSxNQUFNLHFDQUFxQyw2QkFBNkI7QUFDekg7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsNERBQTREO0FBQzVEO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBLGtEQUFrRCxrQ0FBa0M7QUFDcEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLFlBQVksSUFBcUM7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrRUFBa0Usa0RBQXFCLEdBQUcsNENBQWU7QUFDekc7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixrQkFBa0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsaUJBQWlCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxnREFBbUI7QUFDMUI7QUFDQSxtQ0FBbUMsZ0RBQW1CO0FBQ3REO0FBQ0Esa0JBQWtCLGdEQUFtQjtBQUNyQztBQUNBO0FBQ0EsUUFBUSxJQUFxQztBQUM3QztBQUNBO0FBQ0EsbUJBQW1CLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxJQUFJO0FBQ04sTUFBTSxJQUFxQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsSUFBcUM7QUFDN0M7QUFDQTtBQUNBO0FBQ0EsNkZBQTZGO0FBQzdGO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxxQkFBcUI7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUVBQW1FLDBDQUFhO0FBQ2hGLGdCQUFnQixvRUFBb0U7QUFDcEY7QUFDQSxPQUFPO0FBQ1AsMkJBQTJCLDBDQUFhO0FBQ3hDO0FBQ0E7QUFDQSxjQUFjLElBQXFDO0FBQ25EO0FBQ0E7QUFDQSw4QkFBOEIsZ0RBQW1CO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLDJCQUEyQiw2Q0FBZ0I7QUFDM0M7QUFDQTtBQUNBLFVBQVUsS0FBcUM7QUFDL0M7QUFDQSx1REFBdUQsWUFBWSwySkFBMkosYUFBYTtBQUMzTztBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQywwQ0FBYTtBQUM5QztBQUNBLE9BQU87QUFDUCwrQ0FBK0MsMENBQWE7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AscUNBQXFDLDBDQUFhO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLDZCQUE2Qix5Q0FBWTtBQUN6QywrQkFBK0IseUNBQVk7QUFDM0Msd0NBQXdDLHlDQUFZO0FBQ3BELGdDQUFnQyx5Q0FBWTtBQUM1Qyx3QkFBd0IseUNBQVk7QUFDcEMsOENBQThDLHlDQUFZO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLHVDQUF1QywwQ0FBYTtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxnQ0FBZ0MsMENBQWE7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCLHVEQUEwQjtBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCx1Q0FBdUMsMENBQWE7QUFDcEQ7QUFDQTtBQUNBLDBCQUEwQixnREFBbUI7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsNEJBQTRCLDBDQUFhO0FBQ3pDO0FBQ0EsaUNBQWlDLGdEQUFtQiwwQkFBMEIsK0JBQStCO0FBQzdHO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBLHFCQUFxQix1Q0FBVTtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5Qiw2Q0FBZ0I7QUFDekM7QUFDQSxpQ0FBaUMsZ0RBQW1CLFlBQVksdUNBQXVDO0FBQ3ZHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVSx3Q0FBd0M7QUFDbEQsdUJBQXVCLDBDQUFhO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsS0FBcUMsRUFBRSxFQUUxQyxDQUFDO0FBQ04sY0FBYywwREFBMEQ7QUFDeEU7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRztBQUNILHdCQUF3QiwwQ0FBYTtBQUNyQztBQUNBLFlBQVksZUFBZTtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSx5QkFBeUIsZ0RBQW1CLHFCQUFxQixxQkFBcUI7QUFDdEY7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsNkNBQWdCO0FBQ3pDLFFBQVEsS0FBcUM7QUFDN0M7QUFDQSxtREFBbUQ7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxRQUFRO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQzRGO0FBQzVGO0FBQ0E7QUFDQTtBQUNBLDBEQUEwRDtBQUMxRCxZQUFZLDJCQUEyQixnREFBZ0Qsa0NBQWtDO0FBQ3pILFFBQVEsSUFBcUM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHNDQUFzQztBQUNsRCxxQkFBcUIseUNBQVk7QUFDakMsNEJBQTRCLDhDQUFpQjtBQUM3QztBQUNBO0FBQ0E7QUFDQSxjQUFjLElBQXFDO0FBQ25ELG9CQUFvQixxQkFBcUIsaURBQWlEO0FBQzFGLG9CQUFvQix3Q0FBd0M7QUFDNUQ7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0EscUJBQXFCLFFBQVE7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBLHFCQUFxQixRQUFRO0FBQzdCO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0EsMEJBQTBCLDBHQUFnQztBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLGdEQUFtQjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQWFFO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AY29yZS92b2x1bnRlZXJfYXBwLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vY2xpZW50LmpzIiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9pbmRleC5qcyIsIndlYnBhY2s6Ly9AY29yZS92b2x1bnRlZXJfYXBwLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC1pcy9janMvcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanMiLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QtaXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QtcGhvbmUtaG9va3MvaW5kZXguanMiLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QtcGhvbmUtaG9va3Mvc3R5bGVzLmpzIiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0LXJlZHV4L2Rpc3QvcmVhY3QtcmVkdXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxudmFyIG0gPSByZXF1aXJlKCdyZWFjdC1kb20nKTtcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIGV4cG9ydHMuY3JlYXRlUm9vdCA9IG0uY3JlYXRlUm9vdDtcbiAgZXhwb3J0cy5oeWRyYXRlUm9vdCA9IG0uaHlkcmF0ZVJvb3Q7XG59IGVsc2Uge1xuICB2YXIgaSA9IG0uX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ7XG4gIGV4cG9ydHMuY3JlYXRlUm9vdCA9IGZ1bmN0aW9uKGMsIG8pIHtcbiAgICBpLnVzaW5nQ2xpZW50RW50cnlQb2ludCA9IHRydWU7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBtLmNyZWF0ZVJvb3QoYywgbyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGkudXNpbmdDbGllbnRFbnRyeVBvaW50ID0gZmFsc2U7XG4gICAgfVxuICB9O1xuICBleHBvcnRzLmh5ZHJhdGVSb290ID0gZnVuY3Rpb24oYywgaCwgbykge1xuICAgIGkudXNpbmdDbGllbnRFbnRyeVBvaW50ID0gdHJ1ZTtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIG0uaHlkcmF0ZVJvb3QoYywgaCwgbyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGkudXNpbmdDbGllbnRFbnRyeVBvaW50ID0gZmFsc2U7XG4gICAgfVxuICB9O1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5mdW5jdGlvbiBjaGVja0RDRSgpIHtcbiAgLyogZ2xvYmFsIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyAqL1xuICBpZiAoXG4gICAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyA9PT0gJ3VuZGVmaW5lZCcgfHxcbiAgICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFICE9PSAnZnVuY3Rpb24nXG4gICkge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIC8vIFRoaXMgYnJhbmNoIGlzIHVucmVhY2hhYmxlIGJlY2F1c2UgdGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZFxuICAgIC8vIGluIHByb2R1Y3Rpb24sIGJ1dCB0aGUgY29uZGl0aW9uIGlzIHRydWUgb25seSBpbiBkZXZlbG9wbWVudC5cbiAgICAvLyBUaGVyZWZvcmUgaWYgdGhlIGJyYW5jaCBpcyBzdGlsbCBoZXJlLCBkZWFkIGNvZGUgZWxpbWluYXRpb24gd2Fzbid0XG4gICAgLy8gcHJvcGVybHkgYXBwbGllZC5cbiAgICAvLyBEb24ndCBjaGFuZ2UgdGhlIG1lc3NhZ2UuIFJlYWN0IERldlRvb2xzIHJlbGllcyBvbiBpdC4gQWxzbyBtYWtlIHN1cmVcbiAgICAvLyB0aGlzIG1lc3NhZ2UgZG9lc24ndCBvY2N1ciBlbHNld2hlcmUgaW4gdGhpcyBmdW5jdGlvbiwgb3IgaXQgd2lsbCBjYXVzZVxuICAgIC8vIGEgZmFsc2UgcG9zaXRpdmUuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdeX14nKTtcbiAgfVxuICB0cnkge1xuICAgIC8vIFZlcmlmeSB0aGF0IHRoZSBjb2RlIGFib3ZlIGhhcyBiZWVuIGRlYWQgY29kZSBlbGltaW5hdGVkIChEQ0UnZCkuXG4gICAgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKGNoZWNrRENFKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgLy8gRGV2VG9vbHMgc2hvdWxkbid0IGNyYXNoIFJlYWN0LCBubyBtYXR0ZXIgd2hhdC5cbiAgICAvLyBXZSBzaG91bGQgc3RpbGwgcmVwb3J0IGluIGNhc2Ugd2UgYnJlYWsgdGhpcyBjb2RlLlxuICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgfVxufVxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICAvLyBEQ0UgY2hlY2sgc2hvdWxkIGhhcHBlbiBiZWZvcmUgUmVhY3RET00gYnVuZGxlIGV4ZWN1dGVzIHNvIHRoYXRcbiAgLy8gRGV2VG9vbHMgY2FuIHJlcG9ydCBiYWQgbWluaWZpY2F0aW9uIGR1cmluZyBpbmplY3Rpb24uXG4gIGNoZWNrRENFKCk7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtZG9tLnByb2R1Y3Rpb24ubWluLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWRvbS5kZXZlbG9wbWVudC5qcycpO1xufVxuIiwiLyoqXG4gKiBAbGljZW5zZSBSZWFjdFxuICogcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgKGZ1bmN0aW9uKCkge1xuJ3VzZSBzdHJpY3QnO1xuXG4vLyBBVFRFTlRJT05cbi8vIFdoZW4gYWRkaW5nIG5ldyBzeW1ib2xzIHRvIHRoaXMgZmlsZSxcbi8vIFBsZWFzZSBjb25zaWRlciBhbHNvIGFkZGluZyB0byAncmVhY3QtZGV2dG9vbHMtc2hhcmVkL3NyYy9iYWNrZW5kL1JlYWN0U3ltYm9scydcbi8vIFRoZSBTeW1ib2wgdXNlZCB0byB0YWcgdGhlIFJlYWN0RWxlbWVudC1saWtlIHR5cGVzLlxudmFyIFJFQUNUX0VMRU1FTlRfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmVsZW1lbnQnKTtcbnZhciBSRUFDVF9QT1JUQUxfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnBvcnRhbCcpO1xudmFyIFJFQUNUX0ZSQUdNRU5UX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5mcmFnbWVudCcpO1xudmFyIFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5zdHJpY3RfbW9kZScpO1xudmFyIFJFQUNUX1BST0ZJTEVSX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5wcm9maWxlcicpO1xudmFyIFJFQUNUX1BST1ZJREVSX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5wcm92aWRlcicpO1xudmFyIFJFQUNUX0NPTlRFWFRfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmNvbnRleHQnKTtcbnZhciBSRUFDVF9TRVJWRVJfQ09OVEVYVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Quc2VydmVyX2NvbnRleHQnKTtcbnZhciBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuZm9yd2FyZF9yZWYnKTtcbnZhciBSRUFDVF9TVVNQRU5TRV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Quc3VzcGVuc2UnKTtcbnZhciBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5zdXNwZW5zZV9saXN0Jyk7XG52YXIgUkVBQ1RfTUVNT19UWVBFID0gU3ltYm9sLmZvcigncmVhY3QubWVtbycpO1xudmFyIFJFQUNUX0xBWllfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmxhenknKTtcbnZhciBSRUFDVF9PRkZTQ1JFRU5fVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0Lm9mZnNjcmVlbicpO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG52YXIgZW5hYmxlU2NvcGVBUEkgPSBmYWxzZTsgLy8gRXhwZXJpbWVudGFsIENyZWF0ZSBFdmVudCBIYW5kbGUgQVBJLlxudmFyIGVuYWJsZUNhY2hlRWxlbWVudCA9IGZhbHNlO1xudmFyIGVuYWJsZVRyYW5zaXRpb25UcmFjaW5nID0gZmFsc2U7IC8vIE5vIGtub3duIGJ1Z3MsIGJ1dCBuZWVkcyBwZXJmb3JtYW5jZSB0ZXN0aW5nXG5cbnZhciBlbmFibGVMZWdhY3lIaWRkZW4gPSBmYWxzZTsgLy8gRW5hYmxlcyB1bnN0YWJsZV9hdm9pZFRoaXNGYWxsYmFjayBmZWF0dXJlIGluIEZpYmVyXG4vLyBzdHVmZi4gSW50ZW5kZWQgdG8gZW5hYmxlIFJlYWN0IGNvcmUgbWVtYmVycyB0byBtb3JlIGVhc2lseSBkZWJ1ZyBzY2hlZHVsaW5nXG4vLyBpc3N1ZXMgaW4gREVWIGJ1aWxkcy5cblxudmFyIGVuYWJsZURlYnVnVHJhY2luZyA9IGZhbHNlOyAvLyBUcmFjayB3aGljaCBGaWJlcihzKSBzY2hlZHVsZSByZW5kZXIgd29yay5cblxudmFyIFJFQUNUX01PRFVMRV9SRUZFUkVOQ0U7XG5cbntcbiAgUkVBQ1RfTU9EVUxFX1JFRkVSRU5DRSA9IFN5bWJvbC5mb3IoJ3JlYWN0Lm1vZHVsZS5yZWZlcmVuY2UnKTtcbn1cblxuZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpIHtcbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9IC8vIE5vdGU6IHR5cGVvZiBtaWdodCBiZSBvdGhlciB0aGFuICdzeW1ib2wnIG9yICdudW1iZXInIChlLmcuIGlmIGl0J3MgYSBwb2x5ZmlsbCkuXG5cblxuICBpZiAodHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9QUk9GSUxFUl9UWVBFIHx8IGVuYWJsZURlYnVnVHJhY2luZyAgfHwgdHlwZSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSB8fCBlbmFibGVMZWdhY3lIaWRkZW4gIHx8IHR5cGUgPT09IFJFQUNUX09GRlNDUkVFTl9UWVBFIHx8IGVuYWJsZVNjb3BlQVBJICB8fCBlbmFibGVDYWNoZUVsZW1lbnQgIHx8IGVuYWJsZVRyYW5zaXRpb25UcmFjaW5nICkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0JyAmJiB0eXBlICE9PSBudWxsKSB7XG4gICAgaWYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9NRU1PX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfUFJPVklERVJfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DT05URVhUX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSB8fCAvLyBUaGlzIG5lZWRzIHRvIGluY2x1ZGUgYWxsIHBvc3NpYmxlIG1vZHVsZSByZWZlcmVuY2Ugb2JqZWN0XG4gICAgLy8gdHlwZXMgc3VwcG9ydGVkIGJ5IGFueSBGbGlnaHQgY29uZmlndXJhdGlvbiBhbnl3aGVyZSBzaW5jZVxuICAgIC8vIHdlIGRvbid0IGtub3cgd2hpY2ggRmxpZ2h0IGJ1aWxkIHRoaXMgd2lsbCBlbmQgdXAgYmVpbmcgdXNlZFxuICAgIC8vIHdpdGguXG4gICAgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTU9EVUxFX1JFRkVSRU5DRSB8fCB0eXBlLmdldE1vZHVsZUlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gdHlwZU9mKG9iamVjdCkge1xuICBpZiAodHlwZW9mIG9iamVjdCA9PT0gJ29iamVjdCcgJiYgb2JqZWN0ICE9PSBudWxsKSB7XG4gICAgdmFyICQkdHlwZW9mID0gb2JqZWN0LiQkdHlwZW9mO1xuXG4gICAgc3dpdGNoICgkJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgIHZhciB0eXBlID0gb2JqZWN0LnR5cGU7XG5cbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIHR5cGU7XG5cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdmFyICQkdHlwZW9mVHlwZSA9IHR5cGUgJiYgdHlwZS4kJHR5cGVvZjtcblxuICAgICAgICAgICAgc3dpdGNoICgkJHR5cGVvZlR5cGUpIHtcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9TRVJWRVJfQ09OVEVYVF9UWVBFOlxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX0NPTlRFWFRfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfUFJPVklERVJfVFlQRTpcbiAgICAgICAgICAgICAgICByZXR1cm4gJCR0eXBlb2ZUeXBlO1xuXG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuICQkdHlwZW9mO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgcmV0dXJuICQkdHlwZW9mO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG52YXIgQ29udGV4dENvbnN1bWVyID0gUkVBQ1RfQ09OVEVYVF9UWVBFO1xudmFyIENvbnRleHRQcm92aWRlciA9IFJFQUNUX1BST1ZJREVSX1RZUEU7XG52YXIgRWxlbWVudCA9IFJFQUNUX0VMRU1FTlRfVFlQRTtcbnZhciBGb3J3YXJkUmVmID0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTtcbnZhciBGcmFnbWVudCA9IFJFQUNUX0ZSQUdNRU5UX1RZUEU7XG52YXIgTGF6eSA9IFJFQUNUX0xBWllfVFlQRTtcbnZhciBNZW1vID0gUkVBQ1RfTUVNT19UWVBFO1xudmFyIFBvcnRhbCA9IFJFQUNUX1BPUlRBTF9UWVBFO1xudmFyIFByb2ZpbGVyID0gUkVBQ1RfUFJPRklMRVJfVFlQRTtcbnZhciBTdHJpY3RNb2RlID0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRTtcbnZhciBTdXNwZW5zZSA9IFJFQUNUX1NVU1BFTlNFX1RZUEU7XG52YXIgU3VzcGVuc2VMaXN0ID0gUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFO1xudmFyIGhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlID0gZmFsc2U7XG52YXIgaGFzV2FybmVkQWJvdXREZXByZWNhdGVkSXNDb25jdXJyZW50TW9kZSA9IGZhbHNlOyAvLyBBc3luY01vZGUgc2hvdWxkIGJlIGRlcHJlY2F0ZWRcblxuZnVuY3Rpb24gaXNBc3luY01vZGUob2JqZWN0KSB7XG4gIHtcbiAgICBpZiAoIWhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlKSB7XG4gICAgICBoYXNXYXJuZWRBYm91dERlcHJlY2F0ZWRJc0FzeW5jTW9kZSA9IHRydWU7IC8vIFVzaW5nIGNvbnNvbGVbJ3dhcm4nXSB0byBldmFkZSBCYWJlbCBhbmQgRVNMaW50XG5cbiAgICAgIGNvbnNvbGVbJ3dhcm4nXSgnVGhlIFJlYWN0SXMuaXNBc3luY01vZGUoKSBhbGlhcyBoYXMgYmVlbiBkZXByZWNhdGVkLCAnICsgJ2FuZCB3aWxsIGJlIHJlbW92ZWQgaW4gUmVhY3QgMTgrLicpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGlzQ29uY3VycmVudE1vZGUob2JqZWN0KSB7XG4gIHtcbiAgICBpZiAoIWhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQ29uY3VycmVudE1vZGUpIHtcbiAgICAgIGhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQ29uY3VycmVudE1vZGUgPSB0cnVlOyAvLyBVc2luZyBjb25zb2xlWyd3YXJuJ10gdG8gZXZhZGUgQmFiZWwgYW5kIEVTTGludFxuXG4gICAgICBjb25zb2xlWyd3YXJuJ10oJ1RoZSBSZWFjdElzLmlzQ29uY3VycmVudE1vZGUoKSBhbGlhcyBoYXMgYmVlbiBkZXByZWNhdGVkLCAnICsgJ2FuZCB3aWxsIGJlIHJlbW92ZWQgaW4gUmVhY3QgMTgrLicpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGlzQ29udGV4dENvbnN1bWVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0NPTlRFWFRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzQ29udGV4dFByb3ZpZGVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1BST1ZJREVSX1RZUEU7XG59XG5mdW5jdGlvbiBpc0VsZW1lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyAmJiBvYmplY3QgIT09IG51bGwgJiYgb2JqZWN0LiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEU7XG59XG5mdW5jdGlvbiBpc0ZvcndhcmRSZWYob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzRnJhZ21lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzTGF6eShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9MQVpZX1RZUEU7XG59XG5mdW5jdGlvbiBpc01lbW8ob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfTUVNT19UWVBFO1xufVxuZnVuY3Rpb24gaXNQb3J0YWwob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfUE9SVEFMX1RZUEU7XG59XG5mdW5jdGlvbiBpc1Byb2ZpbGVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1BST0ZJTEVSX1RZUEU7XG59XG5mdW5jdGlvbiBpc1N0cmljdE1vZGUob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzU3VzcGVuc2Uob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzU3VzcGVuc2VMaXN0KG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRTtcbn1cblxuZXhwb3J0cy5Db250ZXh0Q29uc3VtZXIgPSBDb250ZXh0Q29uc3VtZXI7XG5leHBvcnRzLkNvbnRleHRQcm92aWRlciA9IENvbnRleHRQcm92aWRlcjtcbmV4cG9ydHMuRWxlbWVudCA9IEVsZW1lbnQ7XG5leHBvcnRzLkZvcndhcmRSZWYgPSBGb3J3YXJkUmVmO1xuZXhwb3J0cy5GcmFnbWVudCA9IEZyYWdtZW50O1xuZXhwb3J0cy5MYXp5ID0gTGF6eTtcbmV4cG9ydHMuTWVtbyA9IE1lbW87XG5leHBvcnRzLlBvcnRhbCA9IFBvcnRhbDtcbmV4cG9ydHMuUHJvZmlsZXIgPSBQcm9maWxlcjtcbmV4cG9ydHMuU3RyaWN0TW9kZSA9IFN0cmljdE1vZGU7XG5leHBvcnRzLlN1c3BlbnNlID0gU3VzcGVuc2U7XG5leHBvcnRzLlN1c3BlbnNlTGlzdCA9IFN1c3BlbnNlTGlzdDtcbmV4cG9ydHMuaXNBc3luY01vZGUgPSBpc0FzeW5jTW9kZTtcbmV4cG9ydHMuaXNDb25jdXJyZW50TW9kZSA9IGlzQ29uY3VycmVudE1vZGU7XG5leHBvcnRzLmlzQ29udGV4dENvbnN1bWVyID0gaXNDb250ZXh0Q29uc3VtZXI7XG5leHBvcnRzLmlzQ29udGV4dFByb3ZpZGVyID0gaXNDb250ZXh0UHJvdmlkZXI7XG5leHBvcnRzLmlzRWxlbWVudCA9IGlzRWxlbWVudDtcbmV4cG9ydHMuaXNGb3J3YXJkUmVmID0gaXNGb3J3YXJkUmVmO1xuZXhwb3J0cy5pc0ZyYWdtZW50ID0gaXNGcmFnbWVudDtcbmV4cG9ydHMuaXNMYXp5ID0gaXNMYXp5O1xuZXhwb3J0cy5pc01lbW8gPSBpc01lbW87XG5leHBvcnRzLmlzUG9ydGFsID0gaXNQb3J0YWw7XG5leHBvcnRzLmlzUHJvZmlsZXIgPSBpc1Byb2ZpbGVyO1xuZXhwb3J0cy5pc1N0cmljdE1vZGUgPSBpc1N0cmljdE1vZGU7XG5leHBvcnRzLmlzU3VzcGVuc2UgPSBpc1N1c3BlbnNlO1xuZXhwb3J0cy5pc1N1c3BlbnNlTGlzdCA9IGlzU3VzcGVuc2VMaXN0O1xuZXhwb3J0cy5pc1ZhbGlkRWxlbWVudFR5cGUgPSBpc1ZhbGlkRWxlbWVudFR5cGU7XG5leHBvcnRzLnR5cGVPZiA9IHR5cGVPZjtcbiAgfSkoKTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1pcy5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1pcy5kZXZlbG9wbWVudC5qcycpO1xufVxuIiwiXCJ1c2UgY2xpZW50XCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0ICogYXMgcGhvbmVMb2NhbGUgZnJvbSBcIi4vbG9jYWxlXCI7XG5pbXBvcnQgY291bnRyaWVzIGZyb20gXCIuL21ldGFkYXRhL2NvdW50cmllcy5qc29uXCI7XG5pbXBvcnQgdGltZXpvbmVzIGZyb20gXCIuL21ldGFkYXRhL3RpbWV6b25lcy5qc29uXCI7XG5pbXBvcnQgdmFsaWRhdGlvbnMgZnJvbSBcIi4vbWV0YWRhdGEvdmFsaWRhdGlvbnMuanNvblwiO1xuY29uc3Qgc2xvdHMgPSBuZXcgU2V0KFwiLlwiKTtcbmV4cG9ydCBjb25zdCBnZXRNZXRhZGF0YSA9IChyYXdWYWx1ZSwgY291bnRyaWVzTGlzdCA9IGNvdW50cmllcywgY291bnRyeSA9IG51bGwpID0+IHtcbiAgICBjb3VudHJ5ID0gY291bnRyeSA9PSBudWxsICYmIHJhd1ZhbHVlLnN0YXJ0c1dpdGgoXCI0NFwiKSA/IFwiZ2JcIiA6IGNvdW50cnk7XG4gICAgaWYgKGNvdW50cnkgIT0gbnVsbClcbiAgICAgICAgY291bnRyaWVzTGlzdCA9IGNvdW50cmllc0xpc3QuZmlsdGVyKChjKSA9PiBjWzBdID09PSBjb3VudHJ5KTtcbiAgICByZXR1cm4gWy4uLmNvdW50cmllc0xpc3RdLnNvcnQoKGEsIGIpID0+IGJbMl0ubGVuZ3RoIC0gYVsyXS5sZW5ndGgpLmZpbmQoKGMpID0+IHJhd1ZhbHVlLnN0YXJ0c1dpdGgoY1syXSkpO1xufTtcbmV4cG9ydCBjb25zdCBnZXRDb3VudHJ5ID0gKGNvdW50cnlDb2RlKSA9PiB7XG4gICAgcmV0dXJuIGNvdW50cmllcy5maW5kKChbaXNvXSkgPT4gaXNvID09PSBjb3VudHJ5Q29kZSk7XG59O1xuZXhwb3J0IGNvbnN0IGdldFJhd1ZhbHVlID0gKHZhbHVlKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIilcbiAgICAgICAgcmV0dXJuIHZhbHVlLnJlcGxhY2VBbGwoL1xcRC9nLCBcIlwiKTtcbiAgICByZXR1cm4gW3ZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB2b2lkIDAgPyB2b2lkIDAgOiB2YWx1ZS5jb3VudHJ5Q29kZSwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHZhbHVlLmFyZWFDb2RlLCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogdmFsdWUucGhvbmVOdW1iZXJdLmZpbHRlcihCb29sZWFuKS5qb2luKFwiXCIpO1xufTtcbmV4cG9ydCBjb25zdCBkaXNwbGF5Rm9ybWF0ID0gKHZhbHVlKSA9PiB7XG4gICAgLyoqIFJldHVybnMgdGhlIGZvcm1hdHRlZCB2YWx1ZSB0aGF0IGNhbiBiZSBkaXNwbGF5ZWQgYXMgYW4gYWN0dWFsIGlucHV0IHZhbHVlICovXG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoL1suXFxzXFxEXSskLywgXCJcIikucmVwbGFjZSgvKFxcKFxcZCspJC8sIFwiJDEpXCIpO1xufTtcbmV4cG9ydCBjb25zdCBjbGVhbklucHV0ID0gKGlucHV0LCBwYXR0ZXJuKSA9PiB7XG4gICAgaW5wdXQgPSBpbnB1dC5tYXRjaCgvXFxkL2cpIHx8IFtdO1xuICAgIHJldHVybiBBcnJheS5mcm9tKHBhdHRlcm4sIGMgPT4gaW5wdXRbMF0gPT09IGMgfHwgc2xvdHMuaGFzKGMpID8gaW5wdXQuc2hpZnQoKSB8fCBjIDogYyk7XG59O1xuZXhwb3J0IGNvbnN0IGdldEZvcm1hdHRlZE51bWJlciA9IChyYXdWYWx1ZSwgcGF0dGVybikgPT4ge1xuICAgIHZhciBfYTtcbiAgICAvKiogUmV0dXJucyB0aGUgcmVmb3JtYXR0ZWQgaW5wdXQgdmFsdWUgYmFzZWQgb24gdGhlIGdpdmVuIHBhdHRlcm4gKi9cbiAgICBwYXR0ZXJuID0gcGF0dGVybiB8fCAoKF9hID0gZ2V0TWV0YWRhdGEocmF3VmFsdWUpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2FbM10pIHx8IFwiXCI7XG4gICAgcmV0dXJuIGRpc3BsYXlGb3JtYXQoY2xlYW5JbnB1dChyYXdWYWx1ZSwgcGF0dGVybi5yZXBsYWNlQWxsKC9cXGQvZywgXCIuXCIpKS5qb2luKFwiXCIpKTtcbn07XG5leHBvcnQgY29uc3QgY2hlY2tWYWxpZGl0eSA9IChtZXRhZGF0YSwgc3RyaWN0ID0gZmFsc2UpID0+IHtcbiAgICAvKiogQ2hlY2tzIGlmIGJvdGggdGhlIGFyZWEgY29kZSBhbmQgcGhvbmUgbnVtYmVyIG1hdGNoIHRoZSB2YWxpZGF0aW9uIHBhdHRlcm4gKi9cbiAgICBjb25zdCBwYXR0ZXJuID0gdmFsaWRhdGlvbnNbbWV0YWRhdGEuaXNvQ29kZV1bTnVtYmVyKHN0cmljdCldO1xuICAgIHJldHVybiBuZXcgUmVnRXhwKHBhdHRlcm4pLnRlc3QoW21ldGFkYXRhLmFyZWFDb2RlLCBtZXRhZGF0YS5waG9uZU51bWJlcl0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oXCJcIikpO1xufTtcbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0SVNPMkNvZGUgPSAoKSA9PiB7XG4gICAgLyoqIFJldHVybnMgdGhlIGRlZmF1bHQgSVNPMiBjb2RlLCBiYXNlZCBvbiB0aGUgdXNlcidzIHRpbWV6b25lICovXG4gICAgcmV0dXJuICh0aW1lem9uZXNbSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lXSB8fCBcIlwiKSB8fCBcInVzXCI7XG59O1xuZXhwb3J0IGNvbnN0IHBhcnNlUGhvbmVOdW1iZXIgPSAoZm9ybWF0dGVkTnVtYmVyLCBjb3VudHJpZXNMaXN0ID0gY291bnRyaWVzLCBjb3VudHJ5ID0gbnVsbCkgPT4ge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCB2YWx1ZSA9IGdldFJhd1ZhbHVlKGZvcm1hdHRlZE51bWJlcik7XG4gICAgY29uc3QgaXNvQ29kZSA9ICgoX2EgPSBnZXRNZXRhZGF0YSh2YWx1ZSwgY291bnRyaWVzTGlzdCwgY291bnRyeSkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYVswXSkgfHwgZ2V0RGVmYXVsdElTTzJDb2RlKCk7XG4gICAgY29uc3QgY291bnRyeUNvZGVQYXR0ZXJuID0gL1xcK1xcZCsvO1xuICAgIGNvbnN0IGFyZWFDb2RlUGF0dGVybiA9IC9eXFwrXFxkK1xcc1xcKD8oXFxkKykvO1xuICAgIC8qKiBQYXJzZXMgdGhlIG1hdGNoaW5nIHBhcnRpYWxzIG9mIHRoZSBwaG9uZSBudW1iZXIgYnkgcHJlZGVmaW5lZCByZWdleCBwYXR0ZXJucyAqL1xuICAgIGNvbnN0IGNvdW50cnlDb2RlTWF0Y2ggPSBmb3JtYXR0ZWROdW1iZXIgPyAoZm9ybWF0dGVkTnVtYmVyLm1hdGNoKGNvdW50cnlDb2RlUGF0dGVybikgfHwgW10pIDogW107XG4gICAgY29uc3QgYXJlYUNvZGVNYXRjaCA9IGZvcm1hdHRlZE51bWJlciA/IChmb3JtYXR0ZWROdW1iZXIubWF0Y2goYXJlYUNvZGVQYXR0ZXJuKSB8fCBbXSkgOiBbXTtcbiAgICAvKiogQ29udmVydHMgdGhlIHBhcnNlZCB2YWx1ZXMgb2YgdGhlIGNvdW50cnkgYW5kIGFyZWEgY29kZXMgdG8gaW50ZWdlcnMgaWYgdmFsdWVzIHByZXNlbnQgKi9cbiAgICBjb25zdCBjb3VudHJ5Q29kZSA9IGNvdW50cnlDb2RlTWF0Y2gubGVuZ3RoID4gMCA/IHBhcnNlSW50KGNvdW50cnlDb2RlTWF0Y2hbMF0pIDogbnVsbDtcbiAgICBjb25zdCBhcmVhQ29kZSA9IGFyZWFDb2RlTWF0Y2gubGVuZ3RoID4gMSA/IGFyZWFDb2RlTWF0Y2hbMV0gOiBudWxsO1xuICAgIC8qKiBQYXJzZXMgdGhlIHBob25lIG51bWJlciBieSByZW1vdmluZyB0aGUgY291bnRyeSBhbmQgYXJlYSBjb2RlcyBmcm9tIHRoZSBmb3JtYXR0ZWQgdmFsdWUgKi9cbiAgICBjb25zdCBwaG9uZU51bWJlclBhdHRlcm4gPSBuZXcgUmVnRXhwKGBeJHtjb3VudHJ5Q29kZX0keyhhcmVhQ29kZSB8fCBcIlwiKX0oXFxcXGQrKWApO1xuICAgIGNvbnN0IHBob25lTnVtYmVyTWF0Y2ggPSB2YWx1ZSA/ICh2YWx1ZS5tYXRjaChwaG9uZU51bWJlclBhdHRlcm4pIHx8IFtdKSA6IFtdO1xuICAgIGNvbnN0IHBob25lTnVtYmVyID0gcGhvbmVOdW1iZXJNYXRjaC5sZW5ndGggPiAxID8gcGhvbmVOdW1iZXJNYXRjaFsxXSA6IG51bGw7XG4gICAgcmV0dXJuIHsgY291bnRyeUNvZGUsIGFyZWFDb2RlLCBwaG9uZU51bWJlciwgaXNvQ29kZSB9O1xufTtcbmV4cG9ydCBjb25zdCB1c2VNYXNrID0gKHBhdHRlcm4pID0+IHtcbiAgICBjb25zdCBiYWNrUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBjbGVhbiA9IHVzZUNhbGxiYWNrKChpbnB1dCkgPT4ge1xuICAgICAgICByZXR1cm4gY2xlYW5JbnB1dChpbnB1dCwgcGF0dGVybi5yZXBsYWNlQWxsKC9cXGQvZywgXCIuXCIpKTtcbiAgICB9LCBbcGF0dGVybl0pO1xuICAgIGNvbnN0IGZpcnN0ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIHJldHVybiBbLi4ucGF0dGVybl0uZmluZEluZGV4KGMgPT4gc2xvdHMuaGFzKGMpKTtcbiAgICB9LCBbcGF0dGVybl0pO1xuICAgIGNvbnN0IHByZXYgPSB1c2VNZW1vKChqID0gMCkgPT4ge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShwYXR0ZXJuLnJlcGxhY2VBbGwoL1xcZC9nLCBcIi5cIiksIChjLCBpKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gc2xvdHMuaGFzKGMpID8gaiA9IGkgKyAxIDogajtcbiAgICAgICAgfSk7XG4gICAgfSwgW3BhdHRlcm5dKTtcbiAgICBjb25zdCBvbktleURvd24gPSB1c2VDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgYmFja1JlZi5jdXJyZW50ID0gZXZlbnQua2V5ID09PSBcIkJhY2tzcGFjZVwiO1xuICAgIH0sIFtdKTtcbiAgICBjb25zdCBvbklucHV0ID0gdXNlQ2FsbGJhY2soKHsgdGFyZ2V0IH0pID0+IHtcbiAgICAgICAgY29uc3QgW2ksIGpdID0gW3RhcmdldC5zZWxlY3Rpb25TdGFydCwgdGFyZ2V0LnNlbGVjdGlvbkVuZF0ubWFwKChpKSA9PiB7XG4gICAgICAgICAgICBpID0gY2xlYW4odGFyZ2V0LnZhbHVlLnNsaWNlKDAsIGkpKS5maW5kSW5kZXgoYyA9PiBzbG90cy5oYXMoYykpO1xuICAgICAgICAgICAgcmV0dXJuIGkgPCAwID8gcHJldltwcmV2Lmxlbmd0aCAtIDFdIDogYmFja1JlZi5jdXJyZW50ID8gcHJldltpIC0gMV0gfHwgZmlyc3QgOiBpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGFyZ2V0LnZhbHVlID0gZ2V0Rm9ybWF0dGVkTnVtYmVyKHRhcmdldC52YWx1ZSwgcGF0dGVybik7XG4gICAgICAgIHRhcmdldC5zZXRTZWxlY3Rpb25SYW5nZShpLCBqKTtcbiAgICAgICAgYmFja1JlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgfSwgW2NsZWFuLCBmaXJzdCwgcGF0dGVybiwgcHJldl0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIG9uSW5wdXQsXG4gICAgICAgIG9uS2V5RG93bixcbiAgICB9O1xufTtcbmV4cG9ydCBjb25zdCB1c2VQaG9uZSA9ICh7IHF1ZXJ5ID0gXCJcIiwgbG9jYWxlID0gXCJcIiwgY291bnRyeSA9IFwiXCIsIGRpc3RpbmN0ID0gZmFsc2UsIGNvdW50cnlDb2RlID0gXCJcIiwgaW5pdGlhbFZhbHVlID0gXCJcIiwgb25seUNvdW50cmllcyA9IFtdLCBleGNsdWRlQ291bnRyaWVzID0gW10sIHByZWZlcnJlZENvdW50cmllcyA9IFtdLCBkaXNhYmxlUGFyZW50aGVzZXMgPSBmYWxzZSwgfSkgPT4ge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSBnZXRSYXdWYWx1ZShpbml0aWFsVmFsdWUpO1xuICAgIGNvbnN0IGRlZmF1bHRNZXRhZGF0YSA9IGdldE1ldGFkYXRhKGRlZmF1bHRWYWx1ZSkgfHwgY291bnRyaWVzLmZpbmQoKFtpc29dKSA9PiBpc28gPT09IGNvdW50cnkpO1xuICAgIGNvbnN0IGRlZmF1bHRWYWx1ZVN0YXRlID0gZGVmYXVsdFZhbHVlIHx8ICgoX2EgPSBjb3VudHJpZXMuZmluZCgoW2lzb10pID0+IGlzbyA9PT0gKGRlZmF1bHRNZXRhZGF0YSA9PT0gbnVsbCB8fCBkZWZhdWx0TWV0YWRhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlZmF1bHRNZXRhZGF0YVswXSkpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2FbMl0pO1xuICAgIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoZGVmYXVsdFZhbHVlU3RhdGUpO1xuICAgIGNvbnN0IGNvdW50cmllc09ubHkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgYWxsb3dMaXN0ID0gb25seUNvdW50cmllcy5sZW5ndGggPiAwID8gb25seUNvdW50cmllcyA6IGNvdW50cmllcy5tYXAoKFtpc29dKSA9PiBpc28pO1xuICAgICAgICByZXR1cm4gY291bnRyaWVzLmZpbHRlcigoW2lzbywgXzEsIGRpYWxdKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKGFsbG93TGlzdC5pbmNsdWRlcyhpc28pIHx8IGFsbG93TGlzdC5pbmNsdWRlcyhkaWFsKSkgJiYgIWV4Y2x1ZGVDb3VudHJpZXMuaW5jbHVkZXMoaXNvKSAmJiAhZXhjbHVkZUNvdW50cmllcy5pbmNsdWRlcyhkaWFsKTtcbiAgICAgICAgfSk7XG4gICAgfSwgW29ubHlDb3VudHJpZXMsIGV4Y2x1ZGVDb3VudHJpZXNdKTtcbiAgICBjb25zdCBjb3VudHJpZXNMaXN0ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkQ291bnRyaWVzID0gY291bnRyaWVzT25seS5maWx0ZXIoKFtfMSwgbmFtZSwgZGlhbCwgbWFza10pID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIGNvbnN0IHEgPSBxdWVyeS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgY29uc3QgY291bnRyaWVzID0gbG9jYWxlICYmICgoX2EgPSAocGhvbmVMb2NhbGVbbG9jYWxlXSkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jb3VudHJpZXMpO1xuICAgICAgICAgICAgY29uc3QgbG9jYWxpemVkID0gY291bnRyaWVzICYmIChjb3VudHJpZXNbbmFtZV0gfHwgXCJcIikudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIHJldHVybiBbbG9jYWxpemVkLCBuYW1lLnRvTG93ZXJDYXNlKCksIGRpYWwsIG1hc2tdLnNvbWUoY29tcG9uZW50ID0+IGNvbXBvbmVudC5pbmNsdWRlcyhxKSk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZWVuID0gbmV3IFNldCgpO1xuICAgICAgICBjb25zdCB3aGl0ZWxpc3RDb3VudHJpZXMgPSBbXG4gICAgICAgICAgICAuLi5maWx0ZXJlZENvdW50cmllcy5maWx0ZXIoKFtpc29dKSA9PiBwcmVmZXJyZWRDb3VudHJpZXMuaW5jbHVkZXMoaXNvKSksXG4gICAgICAgICAgICAuLi5maWx0ZXJlZENvdW50cmllcy5maWx0ZXIoKFtpc29dKSA9PiAhcHJlZmVycmVkQ291bnRyaWVzLmluY2x1ZGVzKGlzbykpLFxuICAgICAgICBdO1xuICAgICAgICBpZiAoIWRpc3RpbmN0KVxuICAgICAgICAgICAgcmV0dXJuIHdoaXRlbGlzdENvdW50cmllcztcbiAgICAgICAgcmV0dXJuIHdoaXRlbGlzdENvdW50cmllcy5maWx0ZXIoKFtpc29dKSA9PiAhc2Vlbi5oYXMoaXNvKSAmJiBzZWVuLmFkZChpc28pKTtcbiAgICB9LCBbY291bnRyaWVzT25seSwgcHJlZmVycmVkQ291bnRyaWVzLCBkaXN0aW5jdCwgbG9jYWxlLCBxdWVyeV0pO1xuICAgIGNvbnN0IG1ldGFkYXRhID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNhbGN1bGF0ZWRNZXRhZGF0YSA9IGdldE1ldGFkYXRhKGdldFJhd1ZhbHVlKHZhbHVlKSwgY291bnRyaWVzTGlzdCwgY291bnRyeUNvZGUpO1xuICAgICAgICBpZiAoY291bnRyaWVzTGlzdC5maW5kKChbaXNvXSkgPT4gaXNvID09PSAoY2FsY3VsYXRlZE1ldGFkYXRhID09PSBudWxsIHx8IGNhbGN1bGF0ZWRNZXRhZGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2FsY3VsYXRlZE1ldGFkYXRhWzBdKSB8fCBpc28gPT09IChkZWZhdWx0TWV0YWRhdGEgPT09IG51bGwgfHwgZGVmYXVsdE1ldGFkYXRhID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkZWZhdWx0TWV0YWRhdGFbMF0pKSkge1xuICAgICAgICAgICAgcmV0dXJuIGNhbGN1bGF0ZWRNZXRhZGF0YSB8fCBkZWZhdWx0TWV0YWRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvdW50cmllc0xpc3RbMF07XG4gICAgfSwgW2NvdW50cmllc0xpc3QsIGNvdW50cnlDb2RlLCBkZWZhdWx0TWV0YWRhdGEsIHZhbHVlXSk7XG4gICAgY29uc3QgcGF0dGVybiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBjb25zdCBtYXNrID0gKG1ldGFkYXRhID09PSBudWxsIHx8IG1ldGFkYXRhID09PSB2b2lkIDAgPyB2b2lkIDAgOiBtZXRhZGF0YVszXSkgfHwgKGRlZmF1bHRNZXRhZGF0YSA9PT0gbnVsbCB8fCBkZWZhdWx0TWV0YWRhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlZmF1bHRNZXRhZGF0YVszXSkgfHwgXCJcIjtcbiAgICAgICAgcmV0dXJuIGRpc2FibGVQYXJlbnRoZXNlcyA/IG1hc2sucmVwbGFjZSgvWygpXS9nLCBcIlwiKSA6IG1hc2s7XG4gICAgfSwgW2Rpc2FibGVQYXJlbnRoZXNlcywgZGVmYXVsdE1ldGFkYXRhLCBtZXRhZGF0YV0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIHZhbHVlLFxuICAgICAgICBwYXR0ZXJuLFxuICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgc2V0VmFsdWUsXG4gICAgICAgIGNvdW50cmllc0xpc3QsXG4gICAgfTtcbn07XG4iLCJcInVzZSBjbGllbnRcIjtcbmV4cG9ydCBjb25zdCBqc29uVG9Dc3MgPSAoc3R5bGVzaGVldCkgPT4ge1xuICAgIC8qKiBDb252ZXJ0IHRoZSBnaXZlbiBgc3R5bGVzaGVldGAgb2JqZWN0IHRvIHJhdyBDU1MgKi9cbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoc3R5bGVzaGVldCkubWFwKChbc2VsZWN0b3IsIHJ1bGVzXSkgPT4ge1xuICAgICAgICByZXR1cm4gYCR7c2VsZWN0b3J9IHtgICsgT2JqZWN0LmVudHJpZXMocnVsZXMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYCR7a2V5fTogJHt2YWx1ZX07IGA7XG4gICAgICAgIH0pLmpvaW4oXCJcIikgKyBcIn0gXCI7XG4gICAgfSkuam9pbihcIlwiKTtcbn07XG5leHBvcnQgY29uc3QgaW5qZWN0U3R5bGVzID0gKGNzc1RleHQpID0+IHtcbiAgICAvKiogSW5qZWN0IHRoZSBnaXZlbiBgY3NzVGV4dGAgaW4gdGhlIGRvY3VtZW50IGhlYWQgKi9cbiAgICB0cnkge1xuICAgICAgICBjb25zdCBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtcbiAgICAgICAgc3R5bGUuc2V0QXR0cmlidXRlKFwidHlwZVwiLCBcInRleHQvY3NzXCIpO1xuICAgICAgICBpZiAoc3R5bGUuc3R5bGVTaGVldCkge1xuICAgICAgICAgICAgc3R5bGUuc3R5bGVTaGVldC5jc3NUZXh0ID0gY3NzVGV4dDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHN0eWxlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzc1RleHQpKTtcbiAgICAgICAgfVxuICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycikge1xuICAgIH1cbn07XG4iLCIvLyBzcmMvdXRpbHMvcmVhY3QudHNcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuXG4vLyBzcmMvdXRpbHMvcmVhY3QtaXMudHNcbnZhciBJU19SRUFDVF8xOSA9IC8qIEBfX1BVUkVfXyAqLyBSZWFjdC52ZXJzaW9uLnN0YXJ0c1dpdGgoXCIxOVwiKTtcbnZhciBSRUFDVF9FTEVNRU5UX1RZUEUgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcihcbiAgSVNfUkVBQ1RfMTkgPyBcInJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50XCIgOiBcInJlYWN0LmVsZW1lbnRcIlxuKTtcbnZhciBSRUFDVF9QT1JUQUxfVFlQRSA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKFwicmVhY3QucG9ydGFsXCIpO1xudmFyIFJFQUNUX0ZSQUdNRU5UX1RZUEUgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcihcInJlYWN0LmZyYWdtZW50XCIpO1xudmFyIFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcihcInJlYWN0LnN0cmljdF9tb2RlXCIpO1xudmFyIFJFQUNUX1BST0ZJTEVSX1RZUEUgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcihcInJlYWN0LnByb2ZpbGVyXCIpO1xudmFyIFJFQUNUX0NPTlNVTUVSX1RZUEUgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcihcInJlYWN0LmNvbnN1bWVyXCIpO1xudmFyIFJFQUNUX0NPTlRFWFRfVFlQRSA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKFwicmVhY3QuY29udGV4dFwiKTtcbnZhciBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFID0gLyogQF9fUFVSRV9fICovIFN5bWJvbC5mb3IoXCJyZWFjdC5mb3J3YXJkX3JlZlwiKTtcbnZhciBSRUFDVF9TVVNQRU5TRV9UWVBFID0gLyogQF9fUFVSRV9fICovIFN5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZVwiKTtcbnZhciBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcihcbiAgXCJyZWFjdC5zdXNwZW5zZV9saXN0XCJcbik7XG52YXIgUkVBQ1RfTUVNT19UWVBFID0gLyogQF9fUFVSRV9fICovIFN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vXCIpO1xudmFyIFJFQUNUX0xBWllfVFlQRSA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKFwicmVhY3QubGF6eVwiKTtcbnZhciBSRUFDVF9PRkZTQ1JFRU5fVFlQRSA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKFwicmVhY3Qub2Zmc2NyZWVuXCIpO1xudmFyIFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcihcbiAgXCJyZWFjdC5jbGllbnQucmVmZXJlbmNlXCJcbik7XG52YXIgRm9yd2FyZFJlZiA9IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU7XG52YXIgTWVtbyA9IFJFQUNUX01FTU9fVFlQRTtcbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50VHlwZSh0eXBlKSB7XG4gIHJldHVybiB0eXBlb2YgdHlwZSA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlb2YgdHlwZSA9PT0gXCJmdW5jdGlvblwiIHx8IHR5cGUgPT09IFJFQUNUX0ZSQUdNRU5UX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfUFJPRklMRVJfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NVU1BFTlNFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX09GRlNDUkVFTl9UWVBFIHx8IHR5cGVvZiB0eXBlID09PSBcIm9iamVjdFwiICYmIHR5cGUgIT09IG51bGwgJiYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9NRU1PX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlNVTUVSX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DTElFTlRfUkVGRVJFTkNFIHx8IHR5cGUuZ2V0TW9kdWxlSWQgIT09IHZvaWQgMCkgPyB0cnVlIDogZmFsc2U7XG59XG5mdW5jdGlvbiB0eXBlT2Yob2JqZWN0KSB7XG4gIGlmICh0eXBlb2Ygb2JqZWN0ID09PSBcIm9iamVjdFwiICYmIG9iamVjdCAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHsgJCR0eXBlb2YgfSA9IG9iamVjdDtcbiAgICBzd2l0Y2ggKCQkdHlwZW9mKSB7XG4gICAgICBjYXNlIFJFQUNUX0VMRU1FTlRfVFlQRTpcbiAgICAgICAgc3dpdGNoIChvYmplY3QgPSBvYmplY3QudHlwZSwgb2JqZWN0KSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgc3dpdGNoIChvYmplY3QgPSBvYmplY3QgJiYgb2JqZWN0LiQkdHlwZW9mLCBvYmplY3QpIHtcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfQ09OU1VNRVJfVFlQRTpcbiAgICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAkJHR5cGVvZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgcmV0dXJuICQkdHlwZW9mO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gaXNDb250ZXh0Q29uc3VtZXIob2JqZWN0KSB7XG4gIHJldHVybiBJU19SRUFDVF8xOSA/IHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9DT05TVU1FUl9UWVBFIDogdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0NPTlRFWFRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzTWVtbyhvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9NRU1PX1RZUEU7XG59XG5cbi8vIHNyYy91dGlscy93YXJuaW5nLnRzXG5mdW5jdGlvbiB3YXJuaW5nKG1lc3NhZ2UpIHtcbiAgaWYgKHR5cGVvZiBjb25zb2xlICE9PSBcInVuZGVmaW5lZFwiICYmIHR5cGVvZiBjb25zb2xlLmVycm9yID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xuICB9XG4gIHRyeSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICB9IGNhdGNoIChlKSB7XG4gIH1cbn1cblxuLy8gc3JjL2Nvbm5lY3QvdmVyaWZ5U3Vic2VsZWN0b3JzLnRzXG5mdW5jdGlvbiB2ZXJpZnkoc2VsZWN0b3IsIG1ldGhvZE5hbWUpIHtcbiAgaWYgKCFzZWxlY3Rvcikge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCB2YWx1ZSBmb3IgJHttZXRob2ROYW1lfSBpbiBjb25uZWN0LmApO1xuICB9IGVsc2UgaWYgKG1ldGhvZE5hbWUgPT09IFwibWFwU3RhdGVUb1Byb3BzXCIgfHwgbWV0aG9kTmFtZSA9PT0gXCJtYXBEaXNwYXRjaFRvUHJvcHNcIikge1xuICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNlbGVjdG9yLCBcImRlcGVuZHNPbk93blByb3BzXCIpKSB7XG4gICAgICB3YXJuaW5nKFxuICAgICAgICBgVGhlIHNlbGVjdG9yIGZvciAke21ldGhvZE5hbWV9IG9mIGNvbm5lY3QgZGlkIG5vdCBzcGVjaWZ5IGEgdmFsdWUgZm9yIGRlcGVuZHNPbk93blByb3BzLmBcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiB2ZXJpZnlTdWJzZWxlY3RvcnMobWFwU3RhdGVUb1Byb3BzLCBtYXBEaXNwYXRjaFRvUHJvcHMsIG1lcmdlUHJvcHMpIHtcbiAgdmVyaWZ5KG1hcFN0YXRlVG9Qcm9wcywgXCJtYXBTdGF0ZVRvUHJvcHNcIik7XG4gIHZlcmlmeShtYXBEaXNwYXRjaFRvUHJvcHMsIFwibWFwRGlzcGF0Y2hUb1Byb3BzXCIpO1xuICB2ZXJpZnkobWVyZ2VQcm9wcywgXCJtZXJnZVByb3BzXCIpO1xufVxuXG4vLyBzcmMvY29ubmVjdC9zZWxlY3RvckZhY3RvcnkudHNcbmZ1bmN0aW9uIHB1cmVGaW5hbFByb3BzU2VsZWN0b3JGYWN0b3J5KG1hcFN0YXRlVG9Qcm9wcywgbWFwRGlzcGF0Y2hUb1Byb3BzLCBtZXJnZVByb3BzLCBkaXNwYXRjaCwge1xuICBhcmVTdGF0ZXNFcXVhbCxcbiAgYXJlT3duUHJvcHNFcXVhbCxcbiAgYXJlU3RhdGVQcm9wc0VxdWFsXG59KSB7XG4gIGxldCBoYXNSdW5BdExlYXN0T25jZSA9IGZhbHNlO1xuICBsZXQgc3RhdGU7XG4gIGxldCBvd25Qcm9wcztcbiAgbGV0IHN0YXRlUHJvcHM7XG4gIGxldCBkaXNwYXRjaFByb3BzO1xuICBsZXQgbWVyZ2VkUHJvcHM7XG4gIGZ1bmN0aW9uIGhhbmRsZUZpcnN0Q2FsbChmaXJzdFN0YXRlLCBmaXJzdE93blByb3BzKSB7XG4gICAgc3RhdGUgPSBmaXJzdFN0YXRlO1xuICAgIG93blByb3BzID0gZmlyc3RPd25Qcm9wcztcbiAgICBzdGF0ZVByb3BzID0gbWFwU3RhdGVUb1Byb3BzKHN0YXRlLCBvd25Qcm9wcyk7XG4gICAgZGlzcGF0Y2hQcm9wcyA9IG1hcERpc3BhdGNoVG9Qcm9wcyhkaXNwYXRjaCwgb3duUHJvcHMpO1xuICAgIG1lcmdlZFByb3BzID0gbWVyZ2VQcm9wcyhzdGF0ZVByb3BzLCBkaXNwYXRjaFByb3BzLCBvd25Qcm9wcyk7XG4gICAgaGFzUnVuQXRMZWFzdE9uY2UgPSB0cnVlO1xuICAgIHJldHVybiBtZXJnZWRQcm9wcztcbiAgfVxuICBmdW5jdGlvbiBoYW5kbGVOZXdQcm9wc0FuZE5ld1N0YXRlKCkge1xuICAgIHN0YXRlUHJvcHMgPSBtYXBTdGF0ZVRvUHJvcHMoc3RhdGUsIG93blByb3BzKTtcbiAgICBpZiAobWFwRGlzcGF0Y2hUb1Byb3BzLmRlcGVuZHNPbk93blByb3BzKVxuICAgICAgZGlzcGF0Y2hQcm9wcyA9IG1hcERpc3BhdGNoVG9Qcm9wcyhkaXNwYXRjaCwgb3duUHJvcHMpO1xuICAgIG1lcmdlZFByb3BzID0gbWVyZ2VQcm9wcyhzdGF0ZVByb3BzLCBkaXNwYXRjaFByb3BzLCBvd25Qcm9wcyk7XG4gICAgcmV0dXJuIG1lcmdlZFByb3BzO1xuICB9XG4gIGZ1bmN0aW9uIGhhbmRsZU5ld1Byb3BzKCkge1xuICAgIGlmIChtYXBTdGF0ZVRvUHJvcHMuZGVwZW5kc09uT3duUHJvcHMpXG4gICAgICBzdGF0ZVByb3BzID0gbWFwU3RhdGVUb1Byb3BzKHN0YXRlLCBvd25Qcm9wcyk7XG4gICAgaWYgKG1hcERpc3BhdGNoVG9Qcm9wcy5kZXBlbmRzT25Pd25Qcm9wcylcbiAgICAgIGRpc3BhdGNoUHJvcHMgPSBtYXBEaXNwYXRjaFRvUHJvcHMoZGlzcGF0Y2gsIG93blByb3BzKTtcbiAgICBtZXJnZWRQcm9wcyA9IG1lcmdlUHJvcHMoc3RhdGVQcm9wcywgZGlzcGF0Y2hQcm9wcywgb3duUHJvcHMpO1xuICAgIHJldHVybiBtZXJnZWRQcm9wcztcbiAgfVxuICBmdW5jdGlvbiBoYW5kbGVOZXdTdGF0ZSgpIHtcbiAgICBjb25zdCBuZXh0U3RhdGVQcm9wcyA9IG1hcFN0YXRlVG9Qcm9wcyhzdGF0ZSwgb3duUHJvcHMpO1xuICAgIGNvbnN0IHN0YXRlUHJvcHNDaGFuZ2VkID0gIWFyZVN0YXRlUHJvcHNFcXVhbChuZXh0U3RhdGVQcm9wcywgc3RhdGVQcm9wcyk7XG4gICAgc3RhdGVQcm9wcyA9IG5leHRTdGF0ZVByb3BzO1xuICAgIGlmIChzdGF0ZVByb3BzQ2hhbmdlZClcbiAgICAgIG1lcmdlZFByb3BzID0gbWVyZ2VQcm9wcyhzdGF0ZVByb3BzLCBkaXNwYXRjaFByb3BzLCBvd25Qcm9wcyk7XG4gICAgcmV0dXJuIG1lcmdlZFByb3BzO1xuICB9XG4gIGZ1bmN0aW9uIGhhbmRsZVN1YnNlcXVlbnRDYWxscyhuZXh0U3RhdGUsIG5leHRPd25Qcm9wcykge1xuICAgIGNvbnN0IHByb3BzQ2hhbmdlZCA9ICFhcmVPd25Qcm9wc0VxdWFsKG5leHRPd25Qcm9wcywgb3duUHJvcHMpO1xuICAgIGNvbnN0IHN0YXRlQ2hhbmdlZCA9ICFhcmVTdGF0ZXNFcXVhbChcbiAgICAgIG5leHRTdGF0ZSxcbiAgICAgIHN0YXRlLFxuICAgICAgbmV4dE93blByb3BzLFxuICAgICAgb3duUHJvcHNcbiAgICApO1xuICAgIHN0YXRlID0gbmV4dFN0YXRlO1xuICAgIG93blByb3BzID0gbmV4dE93blByb3BzO1xuICAgIGlmIChwcm9wc0NoYW5nZWQgJiYgc3RhdGVDaGFuZ2VkKSByZXR1cm4gaGFuZGxlTmV3UHJvcHNBbmROZXdTdGF0ZSgpO1xuICAgIGlmIChwcm9wc0NoYW5nZWQpIHJldHVybiBoYW5kbGVOZXdQcm9wcygpO1xuICAgIGlmIChzdGF0ZUNoYW5nZWQpIHJldHVybiBoYW5kbGVOZXdTdGF0ZSgpO1xuICAgIHJldHVybiBtZXJnZWRQcm9wcztcbiAgfVxuICByZXR1cm4gZnVuY3Rpb24gcHVyZUZpbmFsUHJvcHNTZWxlY3RvcihuZXh0U3RhdGUsIG5leHRPd25Qcm9wcykge1xuICAgIHJldHVybiBoYXNSdW5BdExlYXN0T25jZSA/IGhhbmRsZVN1YnNlcXVlbnRDYWxscyhuZXh0U3RhdGUsIG5leHRPd25Qcm9wcykgOiBoYW5kbGVGaXJzdENhbGwobmV4dFN0YXRlLCBuZXh0T3duUHJvcHMpO1xuICB9O1xufVxuZnVuY3Rpb24gZmluYWxQcm9wc1NlbGVjdG9yRmFjdG9yeShkaXNwYXRjaCwge1xuICBpbml0TWFwU3RhdGVUb1Byb3BzLFxuICBpbml0TWFwRGlzcGF0Y2hUb1Byb3BzLFxuICBpbml0TWVyZ2VQcm9wcyxcbiAgLi4ub3B0aW9uc1xufSkge1xuICBjb25zdCBtYXBTdGF0ZVRvUHJvcHMgPSBpbml0TWFwU3RhdGVUb1Byb3BzKGRpc3BhdGNoLCBvcHRpb25zKTtcbiAgY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gaW5pdE1hcERpc3BhdGNoVG9Qcm9wcyhkaXNwYXRjaCwgb3B0aW9ucyk7XG4gIGNvbnN0IG1lcmdlUHJvcHMgPSBpbml0TWVyZ2VQcm9wcyhkaXNwYXRjaCwgb3B0aW9ucyk7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICB2ZXJpZnlTdWJzZWxlY3RvcnMobWFwU3RhdGVUb1Byb3BzLCBtYXBEaXNwYXRjaFRvUHJvcHMsIG1lcmdlUHJvcHMpO1xuICB9XG4gIHJldHVybiBwdXJlRmluYWxQcm9wc1NlbGVjdG9yRmFjdG9yeShtYXBTdGF0ZVRvUHJvcHMsIG1hcERpc3BhdGNoVG9Qcm9wcywgbWVyZ2VQcm9wcywgZGlzcGF0Y2gsIG9wdGlvbnMpO1xufVxuXG4vLyBzcmMvdXRpbHMvYmluZEFjdGlvbkNyZWF0b3JzLnRzXG5mdW5jdGlvbiBiaW5kQWN0aW9uQ3JlYXRvcnMoYWN0aW9uQ3JlYXRvcnMsIGRpc3BhdGNoKSB7XG4gIGNvbnN0IGJvdW5kQWN0aW9uQ3JlYXRvcnMgPSB7fTtcbiAgZm9yIChjb25zdCBrZXkgaW4gYWN0aW9uQ3JlYXRvcnMpIHtcbiAgICBjb25zdCBhY3Rpb25DcmVhdG9yID0gYWN0aW9uQ3JlYXRvcnNba2V5XTtcbiAgICBpZiAodHlwZW9mIGFjdGlvbkNyZWF0b3IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgYm91bmRBY3Rpb25DcmVhdG9yc1trZXldID0gKC4uLmFyZ3MpID0+IGRpc3BhdGNoKGFjdGlvbkNyZWF0b3IoLi4uYXJncykpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gYm91bmRBY3Rpb25DcmVhdG9ycztcbn1cblxuLy8gc3JjL3V0aWxzL2lzUGxhaW5PYmplY3QudHNcbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3Qob2JqKSB7XG4gIGlmICh0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiIHx8IG9iaiA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuICBjb25zdCBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmopO1xuICBpZiAocHJvdG8gPT09IG51bGwpIHJldHVybiB0cnVlO1xuICBsZXQgYmFzZVByb3RvID0gcHJvdG87XG4gIHdoaWxlIChPYmplY3QuZ2V0UHJvdG90eXBlT2YoYmFzZVByb3RvKSAhPT0gbnVsbCkge1xuICAgIGJhc2VQcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihiYXNlUHJvdG8pO1xuICB9XG4gIHJldHVybiBwcm90byA9PT0gYmFzZVByb3RvO1xufVxuXG4vLyBzcmMvdXRpbHMvdmVyaWZ5UGxhaW5PYmplY3QudHNcbmZ1bmN0aW9uIHZlcmlmeVBsYWluT2JqZWN0KHZhbHVlLCBkaXNwbGF5TmFtZSwgbWV0aG9kTmFtZSkge1xuICBpZiAoIWlzUGxhaW5PYmplY3QodmFsdWUpKSB7XG4gICAgd2FybmluZyhcbiAgICAgIGAke21ldGhvZE5hbWV9KCkgaW4gJHtkaXNwbGF5TmFtZX0gbXVzdCByZXR1cm4gYSBwbGFpbiBvYmplY3QuIEluc3RlYWQgcmVjZWl2ZWQgJHt2YWx1ZX0uYFxuICAgICk7XG4gIH1cbn1cblxuLy8gc3JjL2Nvbm5lY3Qvd3JhcE1hcFRvUHJvcHMudHNcbmZ1bmN0aW9uIHdyYXBNYXBUb1Byb3BzQ29uc3RhbnQoZ2V0Q29uc3RhbnQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGluaXRDb25zdGFudFNlbGVjdG9yKGRpc3BhdGNoKSB7XG4gICAgY29uc3QgY29uc3RhbnQgPSBnZXRDb25zdGFudChkaXNwYXRjaCk7XG4gICAgZnVuY3Rpb24gY29uc3RhbnRTZWxlY3RvcigpIHtcbiAgICAgIHJldHVybiBjb25zdGFudDtcbiAgICB9XG4gICAgY29uc3RhbnRTZWxlY3Rvci5kZXBlbmRzT25Pd25Qcm9wcyA9IGZhbHNlO1xuICAgIHJldHVybiBjb25zdGFudFNlbGVjdG9yO1xuICB9O1xufVxuZnVuY3Rpb24gZ2V0RGVwZW5kc09uT3duUHJvcHMobWFwVG9Qcm9wcykge1xuICByZXR1cm4gbWFwVG9Qcm9wcy5kZXBlbmRzT25Pd25Qcm9wcyA/IEJvb2xlYW4obWFwVG9Qcm9wcy5kZXBlbmRzT25Pd25Qcm9wcykgOiBtYXBUb1Byb3BzLmxlbmd0aCAhPT0gMTtcbn1cbmZ1bmN0aW9uIHdyYXBNYXBUb1Byb3BzRnVuYyhtYXBUb1Byb3BzLCBtZXRob2ROYW1lKSB7XG4gIHJldHVybiBmdW5jdGlvbiBpbml0UHJveHlTZWxlY3RvcihkaXNwYXRjaCwgeyBkaXNwbGF5TmFtZSB9KSB7XG4gICAgY29uc3QgcHJveHkgPSBmdW5jdGlvbiBtYXBUb1Byb3BzUHJveHkoc3RhdGVPckRpc3BhdGNoLCBvd25Qcm9wcykge1xuICAgICAgcmV0dXJuIHByb3h5LmRlcGVuZHNPbk93blByb3BzID8gcHJveHkubWFwVG9Qcm9wcyhzdGF0ZU9yRGlzcGF0Y2gsIG93blByb3BzKSA6IHByb3h5Lm1hcFRvUHJvcHMoc3RhdGVPckRpc3BhdGNoLCB2b2lkIDApO1xuICAgIH07XG4gICAgcHJveHkuZGVwZW5kc09uT3duUHJvcHMgPSB0cnVlO1xuICAgIHByb3h5Lm1hcFRvUHJvcHMgPSBmdW5jdGlvbiBkZXRlY3RGYWN0b3J5QW5kVmVyaWZ5KHN0YXRlT3JEaXNwYXRjaCwgb3duUHJvcHMpIHtcbiAgICAgIHByb3h5Lm1hcFRvUHJvcHMgPSBtYXBUb1Byb3BzO1xuICAgICAgcHJveHkuZGVwZW5kc09uT3duUHJvcHMgPSBnZXREZXBlbmRzT25Pd25Qcm9wcyhtYXBUb1Byb3BzKTtcbiAgICAgIGxldCBwcm9wcyA9IHByb3h5KHN0YXRlT3JEaXNwYXRjaCwgb3duUHJvcHMpO1xuICAgICAgaWYgKHR5cGVvZiBwcm9wcyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHByb3h5Lm1hcFRvUHJvcHMgPSBwcm9wcztcbiAgICAgICAgcHJveHkuZGVwZW5kc09uT3duUHJvcHMgPSBnZXREZXBlbmRzT25Pd25Qcm9wcyhwcm9wcyk7XG4gICAgICAgIHByb3BzID0gcHJveHkoc3RhdGVPckRpc3BhdGNoLCBvd25Qcm9wcyk7XG4gICAgICB9XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKVxuICAgICAgICB2ZXJpZnlQbGFpbk9iamVjdChwcm9wcywgZGlzcGxheU5hbWUsIG1ldGhvZE5hbWUpO1xuICAgICAgcmV0dXJuIHByb3BzO1xuICAgIH07XG4gICAgcmV0dXJuIHByb3h5O1xuICB9O1xufVxuXG4vLyBzcmMvY29ubmVjdC9pbnZhbGlkQXJnRmFjdG9yeS50c1xuZnVuY3Rpb24gY3JlYXRlSW52YWxpZEFyZ0ZhY3RvcnkoYXJnLCBuYW1lKSB7XG4gIHJldHVybiAoZGlzcGF0Y2gsIG9wdGlvbnMpID0+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgSW52YWxpZCB2YWx1ZSBvZiB0eXBlICR7dHlwZW9mIGFyZ30gZm9yICR7bmFtZX0gYXJndW1lbnQgd2hlbiBjb25uZWN0aW5nIGNvbXBvbmVudCAke29wdGlvbnMud3JhcHBlZENvbXBvbmVudE5hbWV9LmBcbiAgICApO1xuICB9O1xufVxuXG4vLyBzcmMvY29ubmVjdC9tYXBEaXNwYXRjaFRvUHJvcHMudHNcbmZ1bmN0aW9uIG1hcERpc3BhdGNoVG9Qcm9wc0ZhY3RvcnkobWFwRGlzcGF0Y2hUb1Byb3BzKSB7XG4gIHJldHVybiBtYXBEaXNwYXRjaFRvUHJvcHMgJiYgdHlwZW9mIG1hcERpc3BhdGNoVG9Qcm9wcyA9PT0gXCJvYmplY3RcIiA/IHdyYXBNYXBUb1Byb3BzQ29uc3RhbnQoXG4gICAgKGRpc3BhdGNoKSA9PiAoXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBiaW5kQWN0aW9uQ3JlYXRvcnMobWFwRGlzcGF0Y2hUb1Byb3BzLCBkaXNwYXRjaClcbiAgICApXG4gICkgOiAhbWFwRGlzcGF0Y2hUb1Byb3BzID8gd3JhcE1hcFRvUHJvcHNDb25zdGFudCgoZGlzcGF0Y2gpID0+ICh7XG4gICAgZGlzcGF0Y2hcbiAgfSkpIDogdHlwZW9mIG1hcERpc3BhdGNoVG9Qcm9wcyA9PT0gXCJmdW5jdGlvblwiID8gKFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICB3cmFwTWFwVG9Qcm9wc0Z1bmMobWFwRGlzcGF0Y2hUb1Byb3BzLCBcIm1hcERpc3BhdGNoVG9Qcm9wc1wiKVxuICApIDogY3JlYXRlSW52YWxpZEFyZ0ZhY3RvcnkobWFwRGlzcGF0Y2hUb1Byb3BzLCBcIm1hcERpc3BhdGNoVG9Qcm9wc1wiKTtcbn1cblxuLy8gc3JjL2Nvbm5lY3QvbWFwU3RhdGVUb1Byb3BzLnRzXG5mdW5jdGlvbiBtYXBTdGF0ZVRvUHJvcHNGYWN0b3J5KG1hcFN0YXRlVG9Qcm9wcykge1xuICByZXR1cm4gIW1hcFN0YXRlVG9Qcm9wcyA/IHdyYXBNYXBUb1Byb3BzQ29uc3RhbnQoKCkgPT4gKHt9KSkgOiB0eXBlb2YgbWFwU3RhdGVUb1Byb3BzID09PSBcImZ1bmN0aW9uXCIgPyAoXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHdyYXBNYXBUb1Byb3BzRnVuYyhtYXBTdGF0ZVRvUHJvcHMsIFwibWFwU3RhdGVUb1Byb3BzXCIpXG4gICkgOiBjcmVhdGVJbnZhbGlkQXJnRmFjdG9yeShtYXBTdGF0ZVRvUHJvcHMsIFwibWFwU3RhdGVUb1Byb3BzXCIpO1xufVxuXG4vLyBzcmMvY29ubmVjdC9tZXJnZVByb3BzLnRzXG5mdW5jdGlvbiBkZWZhdWx0TWVyZ2VQcm9wcyhzdGF0ZVByb3BzLCBkaXNwYXRjaFByb3BzLCBvd25Qcm9wcykge1xuICByZXR1cm4geyAuLi5vd25Qcm9wcywgLi4uc3RhdGVQcm9wcywgLi4uZGlzcGF0Y2hQcm9wcyB9O1xufVxuZnVuY3Rpb24gd3JhcE1lcmdlUHJvcHNGdW5jKG1lcmdlUHJvcHMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGluaXRNZXJnZVByb3BzUHJveHkoZGlzcGF0Y2gsIHsgZGlzcGxheU5hbWUsIGFyZU1lcmdlZFByb3BzRXF1YWwgfSkge1xuICAgIGxldCBoYXNSdW5PbmNlID0gZmFsc2U7XG4gICAgbGV0IG1lcmdlZFByb3BzO1xuICAgIHJldHVybiBmdW5jdGlvbiBtZXJnZVByb3BzUHJveHkoc3RhdGVQcm9wcywgZGlzcGF0Y2hQcm9wcywgb3duUHJvcHMpIHtcbiAgICAgIGNvbnN0IG5leHRNZXJnZWRQcm9wcyA9IG1lcmdlUHJvcHMoc3RhdGVQcm9wcywgZGlzcGF0Y2hQcm9wcywgb3duUHJvcHMpO1xuICAgICAgaWYgKGhhc1J1bk9uY2UpIHtcbiAgICAgICAgaWYgKCFhcmVNZXJnZWRQcm9wc0VxdWFsKG5leHRNZXJnZWRQcm9wcywgbWVyZ2VkUHJvcHMpKVxuICAgICAgICAgIG1lcmdlZFByb3BzID0gbmV4dE1lcmdlZFByb3BzO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaGFzUnVuT25jZSA9IHRydWU7XG4gICAgICAgIG1lcmdlZFByb3BzID0gbmV4dE1lcmdlZFByb3BzO1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKVxuICAgICAgICAgIHZlcmlmeVBsYWluT2JqZWN0KG1lcmdlZFByb3BzLCBkaXNwbGF5TmFtZSwgXCJtZXJnZVByb3BzXCIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1lcmdlZFByb3BzO1xuICAgIH07XG4gIH07XG59XG5mdW5jdGlvbiBtZXJnZVByb3BzRmFjdG9yeShtZXJnZVByb3BzKSB7XG4gIHJldHVybiAhbWVyZ2VQcm9wcyA/ICgpID0+IGRlZmF1bHRNZXJnZVByb3BzIDogdHlwZW9mIG1lcmdlUHJvcHMgPT09IFwiZnVuY3Rpb25cIiA/IHdyYXBNZXJnZVByb3BzRnVuYyhtZXJnZVByb3BzKSA6IGNyZWF0ZUludmFsaWRBcmdGYWN0b3J5KG1lcmdlUHJvcHMsIFwibWVyZ2VQcm9wc1wiKTtcbn1cblxuLy8gc3JjL3V0aWxzL2JhdGNoLnRzXG5mdW5jdGlvbiBkZWZhdWx0Tm9vcEJhdGNoKGNhbGxiYWNrKSB7XG4gIGNhbGxiYWNrKCk7XG59XG5cbi8vIHNyYy91dGlscy9TdWJzY3JpcHRpb24udHNcbmZ1bmN0aW9uIGNyZWF0ZUxpc3RlbmVyQ29sbGVjdGlvbigpIHtcbiAgbGV0IGZpcnN0ID0gbnVsbDtcbiAgbGV0IGxhc3QgPSBudWxsO1xuICByZXR1cm4ge1xuICAgIGNsZWFyKCkge1xuICAgICAgZmlyc3QgPSBudWxsO1xuICAgICAgbGFzdCA9IG51bGw7XG4gICAgfSxcbiAgICBub3RpZnkoKSB7XG4gICAgICBkZWZhdWx0Tm9vcEJhdGNoKCgpID0+IHtcbiAgICAgICAgbGV0IGxpc3RlbmVyID0gZmlyc3Q7XG4gICAgICAgIHdoaWxlIChsaXN0ZW5lcikge1xuICAgICAgICAgIGxpc3RlbmVyLmNhbGxiYWNrKCk7XG4gICAgICAgICAgbGlzdGVuZXIgPSBsaXN0ZW5lci5uZXh0O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LFxuICAgIGdldCgpIHtcbiAgICAgIGNvbnN0IGxpc3RlbmVycyA9IFtdO1xuICAgICAgbGV0IGxpc3RlbmVyID0gZmlyc3Q7XG4gICAgICB3aGlsZSAobGlzdGVuZXIpIHtcbiAgICAgICAgbGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpO1xuICAgICAgICBsaXN0ZW5lciA9IGxpc3RlbmVyLm5leHQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gbGlzdGVuZXJzO1xuICAgIH0sXG4gICAgc3Vic2NyaWJlKGNhbGxiYWNrKSB7XG4gICAgICBsZXQgaXNTdWJzY3JpYmVkID0gdHJ1ZTtcbiAgICAgIGNvbnN0IGxpc3RlbmVyID0gbGFzdCA9IHtcbiAgICAgICAgY2FsbGJhY2ssXG4gICAgICAgIG5leHQ6IG51bGwsXG4gICAgICAgIHByZXY6IGxhc3RcbiAgICAgIH07XG4gICAgICBpZiAobGlzdGVuZXIucHJldikge1xuICAgICAgICBsaXN0ZW5lci5wcmV2Lm5leHQgPSBsaXN0ZW5lcjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZpcnN0ID0gbGlzdGVuZXI7XG4gICAgICB9XG4gICAgICByZXR1cm4gZnVuY3Rpb24gdW5zdWJzY3JpYmUoKSB7XG4gICAgICAgIGlmICghaXNTdWJzY3JpYmVkIHx8IGZpcnN0ID09PSBudWxsKSByZXR1cm47XG4gICAgICAgIGlzU3Vic2NyaWJlZCA9IGZhbHNlO1xuICAgICAgICBpZiAobGlzdGVuZXIubmV4dCkge1xuICAgICAgICAgIGxpc3RlbmVyLm5leHQucHJldiA9IGxpc3RlbmVyLnByZXY7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGFzdCA9IGxpc3RlbmVyLnByZXY7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpc3RlbmVyLnByZXYpIHtcbiAgICAgICAgICBsaXN0ZW5lci5wcmV2Lm5leHQgPSBsaXN0ZW5lci5uZXh0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZpcnN0ID0gbGlzdGVuZXIubmV4dDtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gIH07XG59XG52YXIgbnVsbExpc3RlbmVycyA9IHtcbiAgbm90aWZ5KCkge1xuICB9LFxuICBnZXQ6ICgpID0+IFtdXG59O1xuZnVuY3Rpb24gY3JlYXRlU3Vic2NyaXB0aW9uKHN0b3JlLCBwYXJlbnRTdWIpIHtcbiAgbGV0IHVuc3Vic2NyaWJlO1xuICBsZXQgbGlzdGVuZXJzID0gbnVsbExpc3RlbmVycztcbiAgbGV0IHN1YnNjcmlwdGlvbnNBbW91bnQgPSAwO1xuICBsZXQgc2VsZlN1YnNjcmliZWQgPSBmYWxzZTtcbiAgZnVuY3Rpb24gYWRkTmVzdGVkU3ViKGxpc3RlbmVyKSB7XG4gICAgdHJ5U3Vic2NyaWJlKCk7XG4gICAgY29uc3QgY2xlYW51cExpc3RlbmVyID0gbGlzdGVuZXJzLnN1YnNjcmliZShsaXN0ZW5lcik7XG4gICAgbGV0IHJlbW92ZWQgPSBmYWxzZTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKCFyZW1vdmVkKSB7XG4gICAgICAgIHJlbW92ZWQgPSB0cnVlO1xuICAgICAgICBjbGVhbnVwTGlzdGVuZXIoKTtcbiAgICAgICAgdHJ5VW5zdWJzY3JpYmUoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG4gIGZ1bmN0aW9uIG5vdGlmeU5lc3RlZFN1YnMoKSB7XG4gICAgbGlzdGVuZXJzLm5vdGlmeSgpO1xuICB9XG4gIGZ1bmN0aW9uIGhhbmRsZUNoYW5nZVdyYXBwZXIoKSB7XG4gICAgaWYgKHN1YnNjcmlwdGlvbi5vblN0YXRlQ2hhbmdlKSB7XG4gICAgICBzdWJzY3JpcHRpb24ub25TdGF0ZUNoYW5nZSgpO1xuICAgIH1cbiAgfVxuICBmdW5jdGlvbiBpc1N1YnNjcmliZWQoKSB7XG4gICAgcmV0dXJuIHNlbGZTdWJzY3JpYmVkO1xuICB9XG4gIGZ1bmN0aW9uIHRyeVN1YnNjcmliZSgpIHtcbiAgICBzdWJzY3JpcHRpb25zQW1vdW50Kys7XG4gICAgaWYgKCF1bnN1YnNjcmliZSkge1xuICAgICAgdW5zdWJzY3JpYmUgPSBwYXJlbnRTdWIgPyBwYXJlbnRTdWIuYWRkTmVzdGVkU3ViKGhhbmRsZUNoYW5nZVdyYXBwZXIpIDogc3RvcmUuc3Vic2NyaWJlKGhhbmRsZUNoYW5nZVdyYXBwZXIpO1xuICAgICAgbGlzdGVuZXJzID0gY3JlYXRlTGlzdGVuZXJDb2xsZWN0aW9uKCk7XG4gICAgfVxuICB9XG4gIGZ1bmN0aW9uIHRyeVVuc3Vic2NyaWJlKCkge1xuICAgIHN1YnNjcmlwdGlvbnNBbW91bnQtLTtcbiAgICBpZiAodW5zdWJzY3JpYmUgJiYgc3Vic2NyaXB0aW9uc0Ftb3VudCA9PT0gMCkge1xuICAgICAgdW5zdWJzY3JpYmUoKTtcbiAgICAgIHVuc3Vic2NyaWJlID0gdm9pZCAwO1xuICAgICAgbGlzdGVuZXJzLmNsZWFyKCk7XG4gICAgICBsaXN0ZW5lcnMgPSBudWxsTGlzdGVuZXJzO1xuICAgIH1cbiAgfVxuICBmdW5jdGlvbiB0cnlTdWJzY3JpYmVTZWxmKCkge1xuICAgIGlmICghc2VsZlN1YnNjcmliZWQpIHtcbiAgICAgIHNlbGZTdWJzY3JpYmVkID0gdHJ1ZTtcbiAgICAgIHRyeVN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuICBmdW5jdGlvbiB0cnlVbnN1YnNjcmliZVNlbGYoKSB7XG4gICAgaWYgKHNlbGZTdWJzY3JpYmVkKSB7XG4gICAgICBzZWxmU3Vic2NyaWJlZCA9IGZhbHNlO1xuICAgICAgdHJ5VW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cbiAgY29uc3Qgc3Vic2NyaXB0aW9uID0ge1xuICAgIGFkZE5lc3RlZFN1YixcbiAgICBub3RpZnlOZXN0ZWRTdWJzLFxuICAgIGhhbmRsZUNoYW5nZVdyYXBwZXIsXG4gICAgaXNTdWJzY3JpYmVkLFxuICAgIHRyeVN1YnNjcmliZTogdHJ5U3Vic2NyaWJlU2VsZixcbiAgICB0cnlVbnN1YnNjcmliZTogdHJ5VW5zdWJzY3JpYmVTZWxmLFxuICAgIGdldExpc3RlbmVyczogKCkgPT4gbGlzdGVuZXJzXG4gIH07XG4gIHJldHVybiBzdWJzY3JpcHRpb247XG59XG5cbi8vIHNyYy91dGlscy91c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0LnRzXG52YXIgY2FuVXNlRE9NID0gKCkgPT4gISEodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiB0eXBlb2Ygd2luZG93LmRvY3VtZW50ICE9PSBcInVuZGVmaW5lZFwiICYmIHR5cGVvZiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCAhPT0gXCJ1bmRlZmluZWRcIik7XG52YXIgaXNET00gPSAvKiBAX19QVVJFX18gKi8gY2FuVXNlRE9NKCk7XG52YXIgaXNSdW5uaW5nSW5SZWFjdE5hdGl2ZSA9ICgpID0+IHR5cGVvZiBuYXZpZ2F0b3IgIT09IFwidW5kZWZpbmVkXCIgJiYgbmF2aWdhdG9yLnByb2R1Y3QgPT09IFwiUmVhY3ROYXRpdmVcIjtcbnZhciBpc1JlYWN0TmF0aXZlID0gLyogQF9fUFVSRV9fICovIGlzUnVubmluZ0luUmVhY3ROYXRpdmUoKTtcbnZhciBnZXRVc2VJc29tb3JwaGljTGF5b3V0RWZmZWN0ID0gKCkgPT4gaXNET00gfHwgaXNSZWFjdE5hdGl2ZSA/IFJlYWN0LnVzZUxheW91dEVmZmVjdCA6IFJlYWN0LnVzZUVmZmVjdDtcbnZhciB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0ID0gLyogQF9fUFVSRV9fICovIGdldFVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoKTtcblxuLy8gc3JjL3V0aWxzL3NoYWxsb3dFcXVhbC50c1xuZnVuY3Rpb24gaXMoeCwgeSkge1xuICBpZiAoeCA9PT0geSkge1xuICAgIHJldHVybiB4ICE9PSAwIHx8IHkgIT09IDAgfHwgMSAvIHggPT09IDEgLyB5O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB4ICE9PSB4ICYmIHkgIT09IHk7XG4gIH1cbn1cbmZ1bmN0aW9uIHNoYWxsb3dFcXVhbChvYmpBLCBvYmpCKSB7XG4gIGlmIChpcyhvYmpBLCBvYmpCKSkgcmV0dXJuIHRydWU7XG4gIGlmICh0eXBlb2Ygb2JqQSAhPT0gXCJvYmplY3RcIiB8fCBvYmpBID09PSBudWxsIHx8IHR5cGVvZiBvYmpCICE9PSBcIm9iamVjdFwiIHx8IG9iakIgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3Qga2V5c0EgPSBPYmplY3Qua2V5cyhvYmpBKTtcbiAgY29uc3Qga2V5c0IgPSBPYmplY3Qua2V5cyhvYmpCKTtcbiAgaWYgKGtleXNBLmxlbmd0aCAhPT0ga2V5c0IubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwga2V5c0EubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmpCLCBrZXlzQVtpXSkgfHwgIWlzKG9iakFba2V5c0FbaV1dLCBvYmpCW2tleXNBW2ldXSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5cbi8vIHNyYy91dGlscy9ob2lzdFN0YXRpY3MudHNcbnZhciBSRUFDVF9TVEFUSUNTID0ge1xuICBjaGlsZENvbnRleHRUeXBlczogdHJ1ZSxcbiAgY29udGV4dFR5cGU6IHRydWUsXG4gIGNvbnRleHRUeXBlczogdHJ1ZSxcbiAgZGVmYXVsdFByb3BzOiB0cnVlLFxuICBkaXNwbGF5TmFtZTogdHJ1ZSxcbiAgZ2V0RGVmYXVsdFByb3BzOiB0cnVlLFxuICBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I6IHRydWUsXG4gIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wczogdHJ1ZSxcbiAgbWl4aW5zOiB0cnVlLFxuICBwcm9wVHlwZXM6IHRydWUsXG4gIHR5cGU6IHRydWVcbn07XG52YXIgS05PV05fU1RBVElDUyA9IHtcbiAgbmFtZTogdHJ1ZSxcbiAgbGVuZ3RoOiB0cnVlLFxuICBwcm90b3R5cGU6IHRydWUsXG4gIGNhbGxlcjogdHJ1ZSxcbiAgY2FsbGVlOiB0cnVlLFxuICBhcmd1bWVudHM6IHRydWUsXG4gIGFyaXR5OiB0cnVlXG59O1xudmFyIEZPUldBUkRfUkVGX1NUQVRJQ1MgPSB7XG4gICQkdHlwZW9mOiB0cnVlLFxuICByZW5kZXI6IHRydWUsXG4gIGRlZmF1bHRQcm9wczogdHJ1ZSxcbiAgZGlzcGxheU5hbWU6IHRydWUsXG4gIHByb3BUeXBlczogdHJ1ZVxufTtcbnZhciBNRU1PX1NUQVRJQ1MgPSB7XG4gICQkdHlwZW9mOiB0cnVlLFxuICBjb21wYXJlOiB0cnVlLFxuICBkZWZhdWx0UHJvcHM6IHRydWUsXG4gIGRpc3BsYXlOYW1lOiB0cnVlLFxuICBwcm9wVHlwZXM6IHRydWUsXG4gIHR5cGU6IHRydWVcbn07XG52YXIgVFlQRV9TVEFUSUNTID0ge1xuICBbRm9yd2FyZFJlZl06IEZPUldBUkRfUkVGX1NUQVRJQ1MsXG4gIFtNZW1vXTogTUVNT19TVEFUSUNTXG59O1xuZnVuY3Rpb24gZ2V0U3RhdGljcyhjb21wb25lbnQpIHtcbiAgaWYgKGlzTWVtbyhjb21wb25lbnQpKSB7XG4gICAgcmV0dXJuIE1FTU9fU1RBVElDUztcbiAgfVxuICByZXR1cm4gVFlQRV9TVEFUSUNTW2NvbXBvbmVudFtcIiQkdHlwZW9mXCJdXSB8fCBSRUFDVF9TVEFUSUNTO1xufVxudmFyIGRlZmluZVByb3BlcnR5ID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIGdldE93blByb3BlcnR5TmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcztcbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG52YXIgZ2V0UHJvdG90eXBlT2YgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Y7XG52YXIgb2JqZWN0UHJvdG90eXBlID0gT2JqZWN0LnByb3RvdHlwZTtcbmZ1bmN0aW9uIGhvaXN0Tm9uUmVhY3RTdGF0aWNzKHRhcmdldENvbXBvbmVudCwgc291cmNlQ29tcG9uZW50KSB7XG4gIGlmICh0eXBlb2Ygc291cmNlQ29tcG9uZW50ICE9PSBcInN0cmluZ1wiKSB7XG4gICAgaWYgKG9iamVjdFByb3RvdHlwZSkge1xuICAgICAgY29uc3QgaW5oZXJpdGVkQ29tcG9uZW50ID0gZ2V0UHJvdG90eXBlT2Yoc291cmNlQ29tcG9uZW50KTtcbiAgICAgIGlmIChpbmhlcml0ZWRDb21wb25lbnQgJiYgaW5oZXJpdGVkQ29tcG9uZW50ICE9PSBvYmplY3RQcm90b3R5cGUpIHtcbiAgICAgICAgaG9pc3ROb25SZWFjdFN0YXRpY3ModGFyZ2V0Q29tcG9uZW50LCBpbmhlcml0ZWRDb21wb25lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgICBsZXQga2V5cyA9IGdldE93blByb3BlcnR5TmFtZXMoc291cmNlQ29tcG9uZW50KTtcbiAgICBpZiAoZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gICAgICBrZXlzID0ga2V5cy5jb25jYXQoZ2V0T3duUHJvcGVydHlTeW1ib2xzKHNvdXJjZUNvbXBvbmVudCkpO1xuICAgIH1cbiAgICBjb25zdCB0YXJnZXRTdGF0aWNzID0gZ2V0U3RhdGljcyh0YXJnZXRDb21wb25lbnQpO1xuICAgIGNvbnN0IHNvdXJjZVN0YXRpY3MgPSBnZXRTdGF0aWNzKHNvdXJjZUNvbXBvbmVudCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgKytpKSB7XG4gICAgICBjb25zdCBrZXkgPSBrZXlzW2ldO1xuICAgICAgaWYgKCFLTk9XTl9TVEFUSUNTW2tleV0gJiYgIShzb3VyY2VTdGF0aWNzICYmIHNvdXJjZVN0YXRpY3Nba2V5XSkgJiYgISh0YXJnZXRTdGF0aWNzICYmIHRhcmdldFN0YXRpY3Nba2V5XSkpIHtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRvciA9IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2VDb21wb25lbnQsIGtleSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZGVmaW5lUHJvcGVydHkodGFyZ2V0Q29tcG9uZW50LCBrZXksIGRlc2NyaXB0b3IpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRhcmdldENvbXBvbmVudDtcbn1cblxuLy8gc3JjL2NvbXBvbmVudHMvQ29udGV4dC50c1xudmFyIENvbnRleHRLZXkgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcihgcmVhY3QtcmVkdXgtY29udGV4dGApO1xudmFyIGdUID0gdHlwZW9mIGdsb2JhbFRoaXMgIT09IFwidW5kZWZpbmVkXCIgPyBnbG9iYWxUaGlzIDogKFxuICAvKiBmYWxsIGJhY2sgdG8gYSBwZXItbW9kdWxlIHNjb3BlIChwcmUtOC4xIGJlaGF2aW91cikgaWYgYGdsb2JhbFRoaXNgIGlzIG5vdCBhdmFpbGFibGUgKi9cbiAge31cbik7XG5mdW5jdGlvbiBnZXRDb250ZXh0KCkge1xuICBpZiAoIVJlYWN0LmNyZWF0ZUNvbnRleHQpIHJldHVybiB7fTtcbiAgY29uc3QgY29udGV4dE1hcCA9IGdUW0NvbnRleHRLZXldID8/PSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICBsZXQgcmVhbENvbnRleHQgPSBjb250ZXh0TWFwLmdldChSZWFjdC5jcmVhdGVDb250ZXh0KTtcbiAgaWYgKCFyZWFsQ29udGV4dCkge1xuICAgIHJlYWxDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dChcbiAgICAgIG51bGxcbiAgICApO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgIHJlYWxDb250ZXh0LmRpc3BsYXlOYW1lID0gXCJSZWFjdFJlZHV4XCI7XG4gICAgfVxuICAgIGNvbnRleHRNYXAuc2V0KFJlYWN0LmNyZWF0ZUNvbnRleHQsIHJlYWxDb250ZXh0KTtcbiAgfVxuICByZXR1cm4gcmVhbENvbnRleHQ7XG59XG52YXIgUmVhY3RSZWR1eENvbnRleHQgPSAvKiBAX19QVVJFX18gKi8gZ2V0Q29udGV4dCgpO1xuXG4vLyBzcmMvY29tcG9uZW50cy9jb25uZWN0LnRzeFxudmFyIE5PX1NVQlNDUklQVElPTl9BUlJBWSA9IFtudWxsLCBudWxsXTtcbnZhciBzdHJpbmdpZnlDb21wb25lbnQgPSAoQ29tcCkgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShDb21wKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuIFN0cmluZyhDb21wKTtcbiAgfVxufTtcbmZ1bmN0aW9uIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3RXaXRoQXJncyhlZmZlY3RGdW5jLCBlZmZlY3RBcmdzLCBkZXBlbmRlbmNpZXMpIHtcbiAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCgoKSA9PiBlZmZlY3RGdW5jKC4uLmVmZmVjdEFyZ3MpLCBkZXBlbmRlbmNpZXMpO1xufVxuZnVuY3Rpb24gY2FwdHVyZVdyYXBwZXJQcm9wcyhsYXN0V3JhcHBlclByb3BzLCBsYXN0Q2hpbGRQcm9wcywgcmVuZGVySXNTY2hlZHVsZWQsIHdyYXBwZXJQcm9wcywgY2hpbGRQcm9wc0Zyb21TdG9yZVVwZGF0ZSwgbm90aWZ5TmVzdGVkU3Vicykge1xuICBsYXN0V3JhcHBlclByb3BzLmN1cnJlbnQgPSB3cmFwcGVyUHJvcHM7XG4gIHJlbmRlcklzU2NoZWR1bGVkLmN1cnJlbnQgPSBmYWxzZTtcbiAgaWYgKGNoaWxkUHJvcHNGcm9tU3RvcmVVcGRhdGUuY3VycmVudCkge1xuICAgIGNoaWxkUHJvcHNGcm9tU3RvcmVVcGRhdGUuY3VycmVudCA9IG51bGw7XG4gICAgbm90aWZ5TmVzdGVkU3VicygpO1xuICB9XG59XG5mdW5jdGlvbiBzdWJzY3JpYmVVcGRhdGVzKHNob3VsZEhhbmRsZVN0YXRlQ2hhbmdlcywgc3RvcmUsIHN1YnNjcmlwdGlvbiwgY2hpbGRQcm9wc1NlbGVjdG9yLCBsYXN0V3JhcHBlclByb3BzLCBsYXN0Q2hpbGRQcm9wcywgcmVuZGVySXNTY2hlZHVsZWQsIGlzTW91bnRlZCwgY2hpbGRQcm9wc0Zyb21TdG9yZVVwZGF0ZSwgbm90aWZ5TmVzdGVkU3VicywgYWRkaXRpb25hbFN1YnNjcmliZUxpc3RlbmVyKSB7XG4gIGlmICghc2hvdWxkSGFuZGxlU3RhdGVDaGFuZ2VzKSByZXR1cm4gKCkgPT4ge1xuICB9O1xuICBsZXQgZGlkVW5zdWJzY3JpYmUgPSBmYWxzZTtcbiAgbGV0IGxhc3RUaHJvd25FcnJvciA9IG51bGw7XG4gIGNvbnN0IGNoZWNrRm9yVXBkYXRlcyA9ICgpID0+IHtcbiAgICBpZiAoZGlkVW5zdWJzY3JpYmUgfHwgIWlzTW91bnRlZC5jdXJyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGxhdGVzdFN0b3JlU3RhdGUgPSBzdG9yZS5nZXRTdGF0ZSgpO1xuICAgIGxldCBuZXdDaGlsZFByb3BzLCBlcnJvcjtcbiAgICB0cnkge1xuICAgICAgbmV3Q2hpbGRQcm9wcyA9IGNoaWxkUHJvcHNTZWxlY3RvcihcbiAgICAgICAgbGF0ZXN0U3RvcmVTdGF0ZSxcbiAgICAgICAgbGFzdFdyYXBwZXJQcm9wcy5jdXJyZW50XG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGVycm9yID0gZTtcbiAgICAgIGxhc3RUaHJvd25FcnJvciA9IGU7XG4gICAgfVxuICAgIGlmICghZXJyb3IpIHtcbiAgICAgIGxhc3RUaHJvd25FcnJvciA9IG51bGw7XG4gICAgfVxuICAgIGlmIChuZXdDaGlsZFByb3BzID09PSBsYXN0Q2hpbGRQcm9wcy5jdXJyZW50KSB7XG4gICAgICBpZiAoIXJlbmRlcklzU2NoZWR1bGVkLmN1cnJlbnQpIHtcbiAgICAgICAgbm90aWZ5TmVzdGVkU3VicygpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBsYXN0Q2hpbGRQcm9wcy5jdXJyZW50ID0gbmV3Q2hpbGRQcm9wcztcbiAgICAgIGNoaWxkUHJvcHNGcm9tU3RvcmVVcGRhdGUuY3VycmVudCA9IG5ld0NoaWxkUHJvcHM7XG4gICAgICByZW5kZXJJc1NjaGVkdWxlZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgIGFkZGl0aW9uYWxTdWJzY3JpYmVMaXN0ZW5lcigpO1xuICAgIH1cbiAgfTtcbiAgc3Vic2NyaXB0aW9uLm9uU3RhdGVDaGFuZ2UgPSBjaGVja0ZvclVwZGF0ZXM7XG4gIHN1YnNjcmlwdGlvbi50cnlTdWJzY3JpYmUoKTtcbiAgY2hlY2tGb3JVcGRhdGVzKCk7XG4gIGNvbnN0IHVuc3Vic2NyaWJlV3JhcHBlciA9ICgpID0+IHtcbiAgICBkaWRVbnN1YnNjcmliZSA9IHRydWU7XG4gICAgc3Vic2NyaXB0aW9uLnRyeVVuc3Vic2NyaWJlKCk7XG4gICAgc3Vic2NyaXB0aW9uLm9uU3RhdGVDaGFuZ2UgPSBudWxsO1xuICAgIGlmIChsYXN0VGhyb3duRXJyb3IpIHtcbiAgICAgIHRocm93IGxhc3RUaHJvd25FcnJvcjtcbiAgICB9XG4gIH07XG4gIHJldHVybiB1bnN1YnNjcmliZVdyYXBwZXI7XG59XG5mdW5jdGlvbiBzdHJpY3RFcXVhbChhLCBiKSB7XG4gIHJldHVybiBhID09PSBiO1xufVxudmFyIGhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZFB1cmVPcHRpb24gPSBmYWxzZTtcbmZ1bmN0aW9uIGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzLCBtYXBEaXNwYXRjaFRvUHJvcHMsIG1lcmdlUHJvcHMsIHtcbiAgLy8gVGhlIGBwdXJlYCBvcHRpb24gaGFzIGJlZW4gcmVtb3ZlZCwgc28gVFMgZG9lc24ndCBsaWtlIHVzIGRlc3RydWN0dXJpbmcgdGhpcyB0byBjaGVjayBpdHMgZXhpc3RlbmNlLlxuICAvLyBAdHMtaWdub3JlXG4gIHB1cmUsXG4gIGFyZVN0YXRlc0VxdWFsID0gc3RyaWN0RXF1YWwsXG4gIGFyZU93blByb3BzRXF1YWwgPSBzaGFsbG93RXF1YWwsXG4gIGFyZVN0YXRlUHJvcHNFcXVhbCA9IHNoYWxsb3dFcXVhbCxcbiAgYXJlTWVyZ2VkUHJvcHNFcXVhbCA9IHNoYWxsb3dFcXVhbCxcbiAgLy8gdXNlIFJlYWN0J3MgZm9yd2FyZFJlZiB0byBleHBvc2UgYSByZWYgb2YgdGhlIHdyYXBwZWQgY29tcG9uZW50XG4gIGZvcndhcmRSZWYgPSBmYWxzZSxcbiAgLy8gdGhlIGNvbnRleHQgY29uc3VtZXIgdG8gdXNlXG4gIGNvbnRleHQgPSBSZWFjdFJlZHV4Q29udGV4dFxufSA9IHt9KSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICBpZiAocHVyZSAhPT0gdm9pZCAwICYmICFoYXNXYXJuZWRBYm91dERlcHJlY2F0ZWRQdXJlT3B0aW9uKSB7XG4gICAgICBoYXNXYXJuZWRBYm91dERlcHJlY2F0ZWRQdXJlT3B0aW9uID0gdHJ1ZTtcbiAgICAgIHdhcm5pbmcoXG4gICAgICAgICdUaGUgYHB1cmVgIG9wdGlvbiBoYXMgYmVlbiByZW1vdmVkLiBgY29ubmVjdGAgaXMgbm93IGFsd2F5cyBhIFwicHVyZS9tZW1vaXplZFwiIGNvbXBvbmVudCdcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIGNvbnN0IENvbnRleHQgPSBjb250ZXh0O1xuICBjb25zdCBpbml0TWFwU3RhdGVUb1Byb3BzID0gbWFwU3RhdGVUb1Byb3BzRmFjdG9yeShtYXBTdGF0ZVRvUHJvcHMpO1xuICBjb25zdCBpbml0TWFwRGlzcGF0Y2hUb1Byb3BzID0gbWFwRGlzcGF0Y2hUb1Byb3BzRmFjdG9yeShtYXBEaXNwYXRjaFRvUHJvcHMpO1xuICBjb25zdCBpbml0TWVyZ2VQcm9wcyA9IG1lcmdlUHJvcHNGYWN0b3J5KG1lcmdlUHJvcHMpO1xuICBjb25zdCBzaG91bGRIYW5kbGVTdGF0ZUNoYW5nZXMgPSBCb29sZWFuKG1hcFN0YXRlVG9Qcm9wcyk7XG4gIGNvbnN0IHdyYXBXaXRoQ29ubmVjdCA9IChXcmFwcGVkQ29tcG9uZW50KSA9PiB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgY29uc3QgaXNWYWxpZCA9IC8qIEBfX1BVUkVfXyAqLyBpc1ZhbGlkRWxlbWVudFR5cGUoV3JhcHBlZENvbXBvbmVudCk7XG4gICAgICBpZiAoIWlzVmFsaWQpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgWW91IG11c3QgcGFzcyBhIGNvbXBvbmVudCB0byB0aGUgZnVuY3Rpb24gcmV0dXJuZWQgYnkgY29ubmVjdC4gSW5zdGVhZCByZWNlaXZlZCAke3N0cmluZ2lmeUNvbXBvbmVudChcbiAgICAgICAgICAgIFdyYXBwZWRDb21wb25lbnRcbiAgICAgICAgICApfWBcbiAgICAgICAgKTtcbiAgICB9XG4gICAgY29uc3Qgd3JhcHBlZENvbXBvbmVudE5hbWUgPSBXcmFwcGVkQ29tcG9uZW50LmRpc3BsYXlOYW1lIHx8IFdyYXBwZWRDb21wb25lbnQubmFtZSB8fCBcIkNvbXBvbmVudFwiO1xuICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gYENvbm5lY3QoJHt3cmFwcGVkQ29tcG9uZW50TmFtZX0pYDtcbiAgICBjb25zdCBzZWxlY3RvckZhY3RvcnlPcHRpb25zID0ge1xuICAgICAgc2hvdWxkSGFuZGxlU3RhdGVDaGFuZ2VzLFxuICAgICAgZGlzcGxheU5hbWUsXG4gICAgICB3cmFwcGVkQ29tcG9uZW50TmFtZSxcbiAgICAgIFdyYXBwZWRDb21wb25lbnQsXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBpbml0TWFwU3RhdGVUb1Byb3BzLFxuICAgICAgaW5pdE1hcERpc3BhdGNoVG9Qcm9wcyxcbiAgICAgIGluaXRNZXJnZVByb3BzLFxuICAgICAgYXJlU3RhdGVzRXF1YWwsXG4gICAgICBhcmVTdGF0ZVByb3BzRXF1YWwsXG4gICAgICBhcmVPd25Qcm9wc0VxdWFsLFxuICAgICAgYXJlTWVyZ2VkUHJvcHNFcXVhbFxuICAgIH07XG4gICAgZnVuY3Rpb24gQ29ubmVjdEZ1bmN0aW9uKHByb3BzKSB7XG4gICAgICBjb25zdCBbcHJvcHNDb250ZXh0LCByZWFjdFJlZHV4Rm9yd2FyZGVkUmVmLCB3cmFwcGVyUHJvcHNdID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgcmVhY3RSZWR1eEZvcndhcmRlZFJlZjogcmVhY3RSZWR1eEZvcndhcmRlZFJlZjIsIC4uLndyYXBwZXJQcm9wczIgfSA9IHByb3BzO1xuICAgICAgICByZXR1cm4gW3Byb3BzLmNvbnRleHQsIHJlYWN0UmVkdXhGb3J3YXJkZWRSZWYyLCB3cmFwcGVyUHJvcHMyXTtcbiAgICAgIH0sIFtwcm9wc10pO1xuICAgICAgY29uc3QgQ29udGV4dFRvVXNlID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGxldCBSZXN1bHRDb250ZXh0ID0gQ29udGV4dDtcbiAgICAgICAgaWYgKHByb3BzQ29udGV4dD8uQ29uc3VtZXIpIHtcbiAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgICAgICBjb25zdCBpc1ZhbGlkID0gLyogQF9fUFVSRV9fICovIGlzQ29udGV4dENvbnN1bWVyKFxuICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgIC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KHByb3BzQ29udGV4dC5Db25zdW1lciwgbnVsbClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoIWlzVmFsaWQpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgIFwiWW91IG11c3QgcGFzcyBhIHZhbGlkIFJlYWN0IGNvbnRleHQgY29uc3VtZXIgYXMgYHByb3BzLmNvbnRleHRgXCJcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFJlc3VsdENvbnRleHQgPSBwcm9wc0NvbnRleHQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBSZXN1bHRDb250ZXh0O1xuICAgICAgfSwgW3Byb3BzQ29udGV4dCwgQ29udGV4dF0pO1xuICAgICAgY29uc3QgY29udGV4dFZhbHVlID0gUmVhY3QudXNlQ29udGV4dChDb250ZXh0VG9Vc2UpO1xuICAgICAgY29uc3QgZGlkU3RvcmVDb21lRnJvbVByb3BzID0gQm9vbGVhbihwcm9wcy5zdG9yZSkgJiYgQm9vbGVhbihwcm9wcy5zdG9yZS5nZXRTdGF0ZSkgJiYgQm9vbGVhbihwcm9wcy5zdG9yZS5kaXNwYXRjaCk7XG4gICAgICBjb25zdCBkaWRTdG9yZUNvbWVGcm9tQ29udGV4dCA9IEJvb2xlYW4oY29udGV4dFZhbHVlKSAmJiBCb29sZWFuKGNvbnRleHRWYWx1ZS5zdG9yZSk7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiICYmICFkaWRTdG9yZUNvbWVGcm9tUHJvcHMgJiYgIWRpZFN0b3JlQ29tZUZyb21Db250ZXh0KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQ291bGQgbm90IGZpbmQgXCJzdG9yZVwiIGluIHRoZSBjb250ZXh0IG9mIFwiJHtkaXNwbGF5TmFtZX1cIi4gRWl0aGVyIHdyYXAgdGhlIHJvb3QgY29tcG9uZW50IGluIGEgPFByb3ZpZGVyPiwgb3IgcGFzcyBhIGN1c3RvbSBSZWFjdCBjb250ZXh0IHByb3ZpZGVyIHRvIDxQcm92aWRlcj4gYW5kIHRoZSBjb3JyZXNwb25kaW5nIFJlYWN0IGNvbnRleHQgY29uc3VtZXIgdG8gJHtkaXNwbGF5TmFtZX0gaW4gY29ubmVjdCBvcHRpb25zLmBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHN0b3JlID0gZGlkU3RvcmVDb21lRnJvbVByb3BzID8gcHJvcHMuc3RvcmUgOiBjb250ZXh0VmFsdWUuc3RvcmU7XG4gICAgICBjb25zdCBnZXRTZXJ2ZXJTdGF0ZSA9IGRpZFN0b3JlQ29tZUZyb21Db250ZXh0ID8gY29udGV4dFZhbHVlLmdldFNlcnZlclN0YXRlIDogc3RvcmUuZ2V0U3RhdGU7XG4gICAgICBjb25zdCBjaGlsZFByb3BzU2VsZWN0b3IgPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIGZpbmFsUHJvcHNTZWxlY3RvckZhY3Rvcnkoc3RvcmUuZGlzcGF0Y2gsIHNlbGVjdG9yRmFjdG9yeU9wdGlvbnMpO1xuICAgICAgfSwgW3N0b3JlXSk7XG4gICAgICBjb25zdCBbc3Vic2NyaXB0aW9uLCBub3RpZnlOZXN0ZWRTdWJzXSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoIXNob3VsZEhhbmRsZVN0YXRlQ2hhbmdlcykgcmV0dXJuIE5PX1NVQlNDUklQVElPTl9BUlJBWTtcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uMiA9IGNyZWF0ZVN1YnNjcmlwdGlvbihcbiAgICAgICAgICBzdG9yZSxcbiAgICAgICAgICBkaWRTdG9yZUNvbWVGcm9tUHJvcHMgPyB2b2lkIDAgOiBjb250ZXh0VmFsdWUuc3Vic2NyaXB0aW9uXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG5vdGlmeU5lc3RlZFN1YnMyID0gc3Vic2NyaXB0aW9uMi5ub3RpZnlOZXN0ZWRTdWJzLmJpbmQoc3Vic2NyaXB0aW9uMik7XG4gICAgICAgIHJldHVybiBbc3Vic2NyaXB0aW9uMiwgbm90aWZ5TmVzdGVkU3ViczJdO1xuICAgICAgfSwgW3N0b3JlLCBkaWRTdG9yZUNvbWVGcm9tUHJvcHMsIGNvbnRleHRWYWx1ZV0pO1xuICAgICAgY29uc3Qgb3ZlcnJpZGRlbkNvbnRleHRWYWx1ZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoZGlkU3RvcmVDb21lRnJvbVByb3BzKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbnRleHRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmNvbnRleHRWYWx1ZSxcbiAgICAgICAgICBzdWJzY3JpcHRpb25cbiAgICAgICAgfTtcbiAgICAgIH0sIFtkaWRTdG9yZUNvbWVGcm9tUHJvcHMsIGNvbnRleHRWYWx1ZSwgc3Vic2NyaXB0aW9uXSk7XG4gICAgICBjb25zdCBsYXN0Q2hpbGRQcm9wcyA9IFJlYWN0LnVzZVJlZih2b2lkIDApO1xuICAgICAgY29uc3QgbGFzdFdyYXBwZXJQcm9wcyA9IFJlYWN0LnVzZVJlZih3cmFwcGVyUHJvcHMpO1xuICAgICAgY29uc3QgY2hpbGRQcm9wc0Zyb21TdG9yZVVwZGF0ZSA9IFJlYWN0LnVzZVJlZih2b2lkIDApO1xuICAgICAgY29uc3QgcmVuZGVySXNTY2hlZHVsZWQgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICAgICAgY29uc3QgaXNNb3VudGVkID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgICAgIGNvbnN0IGxhdGVzdFN1YnNjcmlwdGlvbkNhbGxiYWNrRXJyb3IgPSBSZWFjdC51c2VSZWYoXG4gICAgICAgIHZvaWQgMFxuICAgICAgKTtcbiAgICAgIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpc01vdW50ZWQuY3VycmVudCA9IHRydWU7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgaXNNb3VudGVkLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgfTtcbiAgICAgIH0sIFtdKTtcbiAgICAgIGNvbnN0IGFjdHVhbENoaWxkUHJvcHNTZWxlY3RvciA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RvciA9ICgpID0+IHtcbiAgICAgICAgICBpZiAoY2hpbGRQcm9wc0Zyb21TdG9yZVVwZGF0ZS5jdXJyZW50ICYmIHdyYXBwZXJQcm9wcyA9PT0gbGFzdFdyYXBwZXJQcm9wcy5jdXJyZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gY2hpbGRQcm9wc0Zyb21TdG9yZVVwZGF0ZS5jdXJyZW50O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gY2hpbGRQcm9wc1NlbGVjdG9yKHN0b3JlLmdldFN0YXRlKCksIHdyYXBwZXJQcm9wcyk7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBzZWxlY3RvcjtcbiAgICAgIH0sIFtzdG9yZSwgd3JhcHBlclByb3BzXSk7XG4gICAgICBjb25zdCBzdWJzY3JpYmVGb3JSZWFjdCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBjb25zdCBzdWJzY3JpYmUgPSAocmVhY3RMaXN0ZW5lcikgPT4ge1xuICAgICAgICAgIGlmICghc3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHN1YnNjcmliZVVwZGF0ZXMoXG4gICAgICAgICAgICBzaG91bGRIYW5kbGVTdGF0ZUNoYW5nZXMsXG4gICAgICAgICAgICBzdG9yZSxcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbixcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIGNoaWxkUHJvcHNTZWxlY3RvcixcbiAgICAgICAgICAgIGxhc3RXcmFwcGVyUHJvcHMsXG4gICAgICAgICAgICBsYXN0Q2hpbGRQcm9wcyxcbiAgICAgICAgICAgIHJlbmRlcklzU2NoZWR1bGVkLFxuICAgICAgICAgICAgaXNNb3VudGVkLFxuICAgICAgICAgICAgY2hpbGRQcm9wc0Zyb21TdG9yZVVwZGF0ZSxcbiAgICAgICAgICAgIG5vdGlmeU5lc3RlZFN1YnMsXG4gICAgICAgICAgICByZWFjdExpc3RlbmVyXG4gICAgICAgICAgKTtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHN1YnNjcmliZTtcbiAgICAgIH0sIFtzdWJzY3JpcHRpb25dKTtcbiAgICAgIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3RXaXRoQXJncyhjYXB0dXJlV3JhcHBlclByb3BzLCBbXG4gICAgICAgIGxhc3RXcmFwcGVyUHJvcHMsXG4gICAgICAgIGxhc3RDaGlsZFByb3BzLFxuICAgICAgICByZW5kZXJJc1NjaGVkdWxlZCxcbiAgICAgICAgd3JhcHBlclByb3BzLFxuICAgICAgICBjaGlsZFByb3BzRnJvbVN0b3JlVXBkYXRlLFxuICAgICAgICBub3RpZnlOZXN0ZWRTdWJzXG4gICAgICBdKTtcbiAgICAgIGxldCBhY3R1YWxDaGlsZFByb3BzO1xuICAgICAgdHJ5IHtcbiAgICAgICAgYWN0dWFsQ2hpbGRQcm9wcyA9IFJlYWN0LnVzZVN5bmNFeHRlcm5hbFN0b3JlKFxuICAgICAgICAgIC8vIFRPRE8gV2UncmUgcGFzc2luZyB0aHJvdWdoIGEgYmlnIHdyYXBwZXIgdGhhdCBkb2VzIGEgYnVuY2ggb2YgZXh0cmEgc2lkZSBlZmZlY3RzIGJlc2lkZXMgc3Vic2NyaWJpbmdcbiAgICAgICAgICBzdWJzY3JpYmVGb3JSZWFjdCxcbiAgICAgICAgICAvLyBUT0RPIFRoaXMgaXMgaW5jcmVkaWJseSBoYWNreS4gV2UndmUgYWxyZWFkeSBwcm9jZXNzZWQgdGhlIHN0b3JlIHVwZGF0ZSBhbmQgY2FsY3VsYXRlZCBuZXcgY2hpbGQgcHJvcHMsXG4gICAgICAgICAgLy8gVE9ETyBhbmQgd2UncmUganVzdCBwYXNzaW5nIHRoYXQgdGhyb3VnaCBzbyBpdCB0cmlnZ2VycyBhIHJlLXJlbmRlciBmb3IgdXMgcmF0aGVyIHRoYW4gcmVseWluZyBvbiBgdVNFU2AuXG4gICAgICAgICAgYWN0dWFsQ2hpbGRQcm9wc1NlbGVjdG9yLFxuICAgICAgICAgIGdldFNlcnZlclN0YXRlID8gKCkgPT4gY2hpbGRQcm9wc1NlbGVjdG9yKGdldFNlcnZlclN0YXRlKCksIHdyYXBwZXJQcm9wcykgOiBhY3R1YWxDaGlsZFByb3BzU2VsZWN0b3JcbiAgICAgICAgKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAobGF0ZXN0U3Vic2NyaXB0aW9uQ2FsbGJhY2tFcnJvci5jdXJyZW50KSB7XG4gICAgICAgICAgO1xuICAgICAgICAgIGVyci5tZXNzYWdlICs9IGBcblRoZSBlcnJvciBtYXkgYmUgY29ycmVsYXRlZCB3aXRoIHRoaXMgcHJldmlvdXMgZXJyb3I6XG4ke2xhdGVzdFN1YnNjcmlwdGlvbkNhbGxiYWNrRXJyb3IuY3VycmVudC5zdGFja31cblxuYDtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgICAgbGF0ZXN0U3Vic2NyaXB0aW9uQ2FsbGJhY2tFcnJvci5jdXJyZW50ID0gdm9pZCAwO1xuICAgICAgICBjaGlsZFByb3BzRnJvbVN0b3JlVXBkYXRlLmN1cnJlbnQgPSB2b2lkIDA7XG4gICAgICAgIGxhc3RDaGlsZFByb3BzLmN1cnJlbnQgPSBhY3R1YWxDaGlsZFByb3BzO1xuICAgICAgfSk7XG4gICAgICBjb25zdCByZW5kZXJlZFdyYXBwZWRDb21wb25lbnQgPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgLyogQF9fUFVSRV9fICovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICBXcmFwcGVkQ29tcG9uZW50LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAuLi5hY3R1YWxDaGlsZFByb3BzLFxuICAgICAgICAgICAgICByZWY6IHJlYWN0UmVkdXhGb3J3YXJkZWRSZWZcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9LCBbcmVhY3RSZWR1eEZvcndhcmRlZFJlZiwgV3JhcHBlZENvbXBvbmVudCwgYWN0dWFsQ2hpbGRQcm9wc10pO1xuICAgICAgY29uc3QgcmVuZGVyZWRDaGlsZCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoc2hvdWxkSGFuZGxlU3RhdGVDaGFuZ2VzKSB7XG4gICAgICAgICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KENvbnRleHRUb1VzZS5Qcm92aWRlciwgeyB2YWx1ZTogb3ZlcnJpZGRlbkNvbnRleHRWYWx1ZSB9LCByZW5kZXJlZFdyYXBwZWRDb21wb25lbnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZW5kZXJlZFdyYXBwZWRDb21wb25lbnQ7XG4gICAgICB9LCBbQ29udGV4dFRvVXNlLCByZW5kZXJlZFdyYXBwZWRDb21wb25lbnQsIG92ZXJyaWRkZW5Db250ZXh0VmFsdWVdKTtcbiAgICAgIHJldHVybiByZW5kZXJlZENoaWxkO1xuICAgIH1cbiAgICBjb25zdCBfQ29ubmVjdCA9IFJlYWN0Lm1lbW8oQ29ubmVjdEZ1bmN0aW9uKTtcbiAgICBjb25zdCBDb25uZWN0ID0gX0Nvbm5lY3Q7XG4gICAgQ29ubmVjdC5XcmFwcGVkQ29tcG9uZW50ID0gV3JhcHBlZENvbXBvbmVudDtcbiAgICBDb25uZWN0LmRpc3BsYXlOYW1lID0gQ29ubmVjdEZ1bmN0aW9uLmRpc3BsYXlOYW1lID0gZGlzcGxheU5hbWU7XG4gICAgaWYgKGZvcndhcmRSZWYpIHtcbiAgICAgIGNvbnN0IF9mb3J3YXJkZWQgPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAgICAgICBmdW5jdGlvbiBmb3J3YXJkQ29ubmVjdFJlZihwcm9wcywgcmVmKSB7XG4gICAgICAgICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KENvbm5lY3QsIHsgLi4ucHJvcHMsIHJlYWN0UmVkdXhGb3J3YXJkZWRSZWY6IHJlZiB9KTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIGNvbnN0IGZvcndhcmRlZCA9IF9mb3J3YXJkZWQ7XG4gICAgICBmb3J3YXJkZWQuZGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZTtcbiAgICAgIGZvcndhcmRlZC5XcmFwcGVkQ29tcG9uZW50ID0gV3JhcHBlZENvbXBvbmVudDtcbiAgICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8gaG9pc3ROb25SZWFjdFN0YXRpY3MoZm9yd2FyZGVkLCBXcmFwcGVkQ29tcG9uZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBob2lzdE5vblJlYWN0U3RhdGljcyhDb25uZWN0LCBXcmFwcGVkQ29tcG9uZW50KTtcbiAgfTtcbiAgcmV0dXJuIHdyYXBXaXRoQ29ubmVjdDtcbn1cbnZhciBjb25uZWN0X2RlZmF1bHQgPSBjb25uZWN0O1xuXG4vLyBzcmMvY29tcG9uZW50cy9Qcm92aWRlci50c3hcbmZ1bmN0aW9uIFByb3ZpZGVyKHByb3ZpZGVyUHJvcHMpIHtcbiAgY29uc3QgeyBjaGlsZHJlbiwgY29udGV4dCwgc2VydmVyU3RhdGUsIHN0b3JlIH0gPSBwcm92aWRlclByb3BzO1xuICBjb25zdCBjb250ZXh0VmFsdWUgPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSBjcmVhdGVTdWJzY3JpcHRpb24oc3RvcmUpO1xuICAgIGNvbnN0IGJhc2VDb250ZXh0VmFsdWUgPSB7XG4gICAgICBzdG9yZSxcbiAgICAgIHN1YnNjcmlwdGlvbixcbiAgICAgIGdldFNlcnZlclN0YXRlOiBzZXJ2ZXJTdGF0ZSA/ICgpID0+IHNlcnZlclN0YXRlIDogdm9pZCAwXG4gICAgfTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICByZXR1cm4gYmFzZUNvbnRleHRWYWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgeyBpZGVudGl0eUZ1bmN0aW9uQ2hlY2sgPSBcIm9uY2VcIiwgc3RhYmlsaXR5Q2hlY2sgPSBcIm9uY2VcIiB9ID0gcHJvdmlkZXJQcm9wcztcbiAgICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmFzc2lnbihiYXNlQ29udGV4dFZhbHVlLCB7XG4gICAgICAgIHN0YWJpbGl0eUNoZWNrLFxuICAgICAgICBpZGVudGl0eUZ1bmN0aW9uQ2hlY2tcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW3N0b3JlLCBzZXJ2ZXJTdGF0ZV0pO1xuICBjb25zdCBwcmV2aW91c1N0YXRlID0gUmVhY3QudXNlTWVtbygoKSA9PiBzdG9yZS5nZXRTdGF0ZSgpLCBbc3RvcmVdKTtcbiAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgeyBzdWJzY3JpcHRpb24gfSA9IGNvbnRleHRWYWx1ZTtcbiAgICBzdWJzY3JpcHRpb24ub25TdGF0ZUNoYW5nZSA9IHN1YnNjcmlwdGlvbi5ub3RpZnlOZXN0ZWRTdWJzO1xuICAgIHN1YnNjcmlwdGlvbi50cnlTdWJzY3JpYmUoKTtcbiAgICBpZiAocHJldmlvdXNTdGF0ZSAhPT0gc3RvcmUuZ2V0U3RhdGUoKSkge1xuICAgICAgc3Vic2NyaXB0aW9uLm5vdGlmeU5lc3RlZFN1YnMoKTtcbiAgICB9XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHN1YnNjcmlwdGlvbi50cnlVbnN1YnNjcmliZSgpO1xuICAgICAgc3Vic2NyaXB0aW9uLm9uU3RhdGVDaGFuZ2UgPSB2b2lkIDA7XG4gICAgfTtcbiAgfSwgW2NvbnRleHRWYWx1ZSwgcHJldmlvdXNTdGF0ZV0pO1xuICBjb25zdCBDb250ZXh0ID0gY29udGV4dCB8fCBSZWFjdFJlZHV4Q29udGV4dDtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KENvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGNvbnRleHRWYWx1ZSB9LCBjaGlsZHJlbik7XG59XG52YXIgUHJvdmlkZXJfZGVmYXVsdCA9IFByb3ZpZGVyO1xuXG4vLyBzcmMvaG9va3MvdXNlUmVkdXhDb250ZXh0LnRzXG5mdW5jdGlvbiBjcmVhdGVSZWR1eENvbnRleHRIb29rKGNvbnRleHQgPSBSZWFjdFJlZHV4Q29udGV4dCkge1xuICByZXR1cm4gZnVuY3Rpb24gdXNlUmVkdXhDb250ZXh0MigpIHtcbiAgICBjb25zdCBjb250ZXh0VmFsdWUgPSBSZWFjdC51c2VDb250ZXh0KGNvbnRleHQpO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgJiYgIWNvbnRleHRWYWx1ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcImNvdWxkIG5vdCBmaW5kIHJlYWN0LXJlZHV4IGNvbnRleHQgdmFsdWU7IHBsZWFzZSBlbnN1cmUgdGhlIGNvbXBvbmVudCBpcyB3cmFwcGVkIGluIGEgPFByb3ZpZGVyPlwiXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gY29udGV4dFZhbHVlO1xuICB9O1xufVxudmFyIHVzZVJlZHV4Q29udGV4dCA9IC8qIEBfX1BVUkVfXyAqLyBjcmVhdGVSZWR1eENvbnRleHRIb29rKCk7XG5cbi8vIHNyYy9ob29rcy91c2VTdG9yZS50c1xuZnVuY3Rpb24gY3JlYXRlU3RvcmVIb29rKGNvbnRleHQgPSBSZWFjdFJlZHV4Q29udGV4dCkge1xuICBjb25zdCB1c2VSZWR1eENvbnRleHQyID0gY29udGV4dCA9PT0gUmVhY3RSZWR1eENvbnRleHQgPyB1c2VSZWR1eENvbnRleHQgOiAoXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNyZWF0ZVJlZHV4Q29udGV4dEhvb2soY29udGV4dClcbiAgKTtcbiAgY29uc3QgdXNlU3RvcmUyID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgc3RvcmUgfSA9IHVzZVJlZHV4Q29udGV4dDIoKTtcbiAgICByZXR1cm4gc3RvcmU7XG4gIH07XG4gIE9iamVjdC5hc3NpZ24odXNlU3RvcmUyLCB7XG4gICAgd2l0aFR5cGVzOiAoKSA9PiB1c2VTdG9yZTJcbiAgfSk7XG4gIHJldHVybiB1c2VTdG9yZTI7XG59XG52YXIgdXNlU3RvcmUgPSAvKiBAX19QVVJFX18gKi8gY3JlYXRlU3RvcmVIb29rKCk7XG5cbi8vIHNyYy9ob29rcy91c2VEaXNwYXRjaC50c1xuZnVuY3Rpb24gY3JlYXRlRGlzcGF0Y2hIb29rKGNvbnRleHQgPSBSZWFjdFJlZHV4Q29udGV4dCkge1xuICBjb25zdCB1c2VTdG9yZTIgPSBjb250ZXh0ID09PSBSZWFjdFJlZHV4Q29udGV4dCA/IHVzZVN0b3JlIDogY3JlYXRlU3RvcmVIb29rKGNvbnRleHQpO1xuICBjb25zdCB1c2VEaXNwYXRjaDIgPSAoKSA9PiB7XG4gICAgY29uc3Qgc3RvcmUgPSB1c2VTdG9yZTIoKTtcbiAgICByZXR1cm4gc3RvcmUuZGlzcGF0Y2g7XG4gIH07XG4gIE9iamVjdC5hc3NpZ24odXNlRGlzcGF0Y2gyLCB7XG4gICAgd2l0aFR5cGVzOiAoKSA9PiB1c2VEaXNwYXRjaDJcbiAgfSk7XG4gIHJldHVybiB1c2VEaXNwYXRjaDI7XG59XG52YXIgdXNlRGlzcGF0Y2ggPSAvKiBAX19QVVJFX18gKi8gY3JlYXRlRGlzcGF0Y2hIb29rKCk7XG5cbi8vIHNyYy9ob29rcy91c2VTZWxlY3Rvci50c1xuaW1wb3J0IHsgdXNlU3luY0V4dGVybmFsU3RvcmVXaXRoU2VsZWN0b3IgfSBmcm9tIFwidXNlLXN5bmMtZXh0ZXJuYWwtc3RvcmUvd2l0aC1zZWxlY3Rvci5qc1wiO1xudmFyIHJlZkVxdWFsaXR5ID0gKGEsIGIpID0+IGEgPT09IGI7XG5mdW5jdGlvbiBjcmVhdGVTZWxlY3Rvckhvb2soY29udGV4dCA9IFJlYWN0UmVkdXhDb250ZXh0KSB7XG4gIGNvbnN0IHVzZVJlZHV4Q29udGV4dDIgPSBjb250ZXh0ID09PSBSZWFjdFJlZHV4Q29udGV4dCA/IHVzZVJlZHV4Q29udGV4dCA6IGNyZWF0ZVJlZHV4Q29udGV4dEhvb2soY29udGV4dCk7XG4gIGNvbnN0IHVzZVNlbGVjdG9yMiA9IChzZWxlY3RvciwgZXF1YWxpdHlGbk9yT3B0aW9ucyA9IHt9KSA9PiB7XG4gICAgY29uc3QgeyBlcXVhbGl0eUZuID0gcmVmRXF1YWxpdHkgfSA9IHR5cGVvZiBlcXVhbGl0eUZuT3JPcHRpb25zID09PSBcImZ1bmN0aW9uXCIgPyB7IGVxdWFsaXR5Rm46IGVxdWFsaXR5Rm5Pck9wdGlvbnMgfSA6IGVxdWFsaXR5Rm5Pck9wdGlvbnM7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgaWYgKCFzZWxlY3Rvcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFlvdSBtdXN0IHBhc3MgYSBzZWxlY3RvciB0byB1c2VTZWxlY3RvcmApO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBzZWxlY3RvciAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgWW91IG11c3QgcGFzcyBhIGZ1bmN0aW9uIGFzIGEgc2VsZWN0b3IgdG8gdXNlU2VsZWN0b3JgKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgZXF1YWxpdHlGbiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgWW91IG11c3QgcGFzcyBhIGZ1bmN0aW9uIGFzIGFuIGVxdWFsaXR5IGZ1bmN0aW9uIHRvIHVzZVNlbGVjdG9yYFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCByZWR1eENvbnRleHQgPSB1c2VSZWR1eENvbnRleHQyKCk7XG4gICAgY29uc3QgeyBzdG9yZSwgc3Vic2NyaXB0aW9uLCBnZXRTZXJ2ZXJTdGF0ZSB9ID0gcmVkdXhDb250ZXh0O1xuICAgIGNvbnN0IGZpcnN0UnVuID0gUmVhY3QudXNlUmVmKHRydWUpO1xuICAgIGNvbnN0IHdyYXBwZWRTZWxlY3RvciA9IFJlYWN0LnVzZUNhbGxiYWNrKFxuICAgICAge1xuICAgICAgICBbc2VsZWN0b3IubmFtZV0oc3RhdGUpIHtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHNlbGVjdG9yKHN0YXRlKTtcbiAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgICAgICBjb25zdCB7IGRldk1vZGVDaGVja3MgPSB7fSB9ID0gdHlwZW9mIGVxdWFsaXR5Rm5Pck9wdGlvbnMgPT09IFwiZnVuY3Rpb25cIiA/IHt9IDogZXF1YWxpdHlGbk9yT3B0aW9ucztcbiAgICAgICAgICAgIGNvbnN0IHsgaWRlbnRpdHlGdW5jdGlvbkNoZWNrLCBzdGFiaWxpdHlDaGVjayB9ID0gcmVkdXhDb250ZXh0O1xuICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICBpZGVudGl0eUZ1bmN0aW9uQ2hlY2s6IGZpbmFsSWRlbnRpdHlGdW5jdGlvbkNoZWNrLFxuICAgICAgICAgICAgICBzdGFiaWxpdHlDaGVjazogZmluYWxTdGFiaWxpdHlDaGVja1xuICAgICAgICAgICAgfSA9IHtcbiAgICAgICAgICAgICAgc3RhYmlsaXR5Q2hlY2ssXG4gICAgICAgICAgICAgIGlkZW50aXR5RnVuY3Rpb25DaGVjayxcbiAgICAgICAgICAgICAgLi4uZGV2TW9kZUNoZWNrc1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChmaW5hbFN0YWJpbGl0eUNoZWNrID09PSBcImFsd2F5c1wiIHx8IGZpbmFsU3RhYmlsaXR5Q2hlY2sgPT09IFwib25jZVwiICYmIGZpcnN0UnVuLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgY29uc3QgdG9Db21wYXJlID0gc2VsZWN0b3Ioc3RhdGUpO1xuICAgICAgICAgICAgICBpZiAoIWVxdWFsaXR5Rm4oc2VsZWN0ZWQsIHRvQ29tcGFyZSkpIHtcbiAgICAgICAgICAgICAgICBsZXQgc3RhY2sgPSB2b2lkIDA7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgIDtcbiAgICAgICAgICAgICAgICAgICh7IHN0YWNrIH0gPSBlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgICAgXCJTZWxlY3RvciBcIiArIChzZWxlY3Rvci5uYW1lIHx8IFwidW5rbm93blwiKSArIFwiIHJldHVybmVkIGEgZGlmZmVyZW50IHJlc3VsdCB3aGVuIGNhbGxlZCB3aXRoIHRoZSBzYW1lIHBhcmFtZXRlcnMuIFRoaXMgY2FuIGxlYWQgdG8gdW5uZWNlc3NhcnkgcmVyZW5kZXJzLlxcblNlbGVjdG9ycyB0aGF0IHJldHVybiBhIG5ldyByZWZlcmVuY2UgKHN1Y2ggYXMgYW4gb2JqZWN0IG9yIGFuIGFycmF5KSBzaG91bGQgYmUgbWVtb2l6ZWQ6IGh0dHBzOi8vcmVkdXguanMub3JnL3VzYWdlL2Rlcml2aW5nLWRhdGEtc2VsZWN0b3JzI29wdGltaXppbmctc2VsZWN0b3JzLXdpdGgtbWVtb2l6YXRpb25cIixcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZDI6IHRvQ29tcGFyZSxcbiAgICAgICAgICAgICAgICAgICAgc3RhY2tcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZmluYWxJZGVudGl0eUZ1bmN0aW9uQ2hlY2sgPT09IFwiYWx3YXlzXCIgfHwgZmluYWxJZGVudGl0eUZ1bmN0aW9uQ2hlY2sgPT09IFwib25jZVwiICYmIGZpcnN0UnVuLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkID09PSBzdGF0ZSkge1xuICAgICAgICAgICAgICAgIGxldCBzdGFjayA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgO1xuICAgICAgICAgICAgICAgICAgKHsgc3RhY2sgfSA9IGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgICBcIlNlbGVjdG9yIFwiICsgKHNlbGVjdG9yLm5hbWUgfHwgXCJ1bmtub3duXCIpICsgXCIgcmV0dXJuZWQgdGhlIHJvb3Qgc3RhdGUgd2hlbiBjYWxsZWQuIFRoaXMgY2FuIGxlYWQgdG8gdW5uZWNlc3NhcnkgcmVyZW5kZXJzLlxcblNlbGVjdG9ycyB0aGF0IHJldHVybiB0aGUgZW50aXJlIHN0YXRlIGFyZSBhbG1vc3QgY2VydGFpbmx5IGEgbWlzdGFrZSwgYXMgdGhleSB3aWxsIGNhdXNlIGEgcmVyZW5kZXIgd2hlbmV2ZXIgKmFueXRoaW5nKiBpbiBzdGF0ZSBjaGFuZ2VzLlwiLFxuICAgICAgICAgICAgICAgICAgeyBzdGFjayB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGZpcnN0UnVuLmN1cnJlbnQpIGZpcnN0UnVuLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHNlbGVjdGVkO1xuICAgICAgICB9XG4gICAgICB9W3NlbGVjdG9yLm5hbWVdLFxuICAgICAgW3NlbGVjdG9yXVxuICAgICk7XG4gICAgY29uc3Qgc2VsZWN0ZWRTdGF0ZSA9IHVzZVN5bmNFeHRlcm5hbFN0b3JlV2l0aFNlbGVjdG9yKFxuICAgICAgc3Vic2NyaXB0aW9uLmFkZE5lc3RlZFN1YixcbiAgICAgIHN0b3JlLmdldFN0YXRlLFxuICAgICAgZ2V0U2VydmVyU3RhdGUgfHwgc3RvcmUuZ2V0U3RhdGUsXG4gICAgICB3cmFwcGVkU2VsZWN0b3IsXG4gICAgICBlcXVhbGl0eUZuXG4gICAgKTtcbiAgICBSZWFjdC51c2VEZWJ1Z1ZhbHVlKHNlbGVjdGVkU3RhdGUpO1xuICAgIHJldHVybiBzZWxlY3RlZFN0YXRlO1xuICB9O1xuICBPYmplY3QuYXNzaWduKHVzZVNlbGVjdG9yMiwge1xuICAgIHdpdGhUeXBlczogKCkgPT4gdXNlU2VsZWN0b3IyXG4gIH0pO1xuICByZXR1cm4gdXNlU2VsZWN0b3IyO1xufVxudmFyIHVzZVNlbGVjdG9yID0gLyogQF9fUFVSRV9fICovIGNyZWF0ZVNlbGVjdG9ySG9vaygpO1xuXG4vLyBzcmMvZXhwb3J0cy50c1xudmFyIGJhdGNoID0gZGVmYXVsdE5vb3BCYXRjaDtcbmV4cG9ydCB7XG4gIFByb3ZpZGVyX2RlZmF1bHQgYXMgUHJvdmlkZXIsXG4gIFJlYWN0UmVkdXhDb250ZXh0LFxuICBiYXRjaCxcbiAgY29ubmVjdF9kZWZhdWx0IGFzIGNvbm5lY3QsXG4gIGNyZWF0ZURpc3BhdGNoSG9vayxcbiAgY3JlYXRlU2VsZWN0b3JIb29rLFxuICBjcmVhdGVTdG9yZUhvb2ssXG4gIHNoYWxsb3dFcXVhbCxcbiAgdXNlRGlzcGF0Y2gsXG4gIHVzZVNlbGVjdG9yLFxuICB1c2VTdG9yZVxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlYWN0LXJlZHV4Lm1qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=