{"version":3,"sources":["webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_setup.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/vue-the-mask@0.11.1/node_modules/vue-the-mask/dist/vue-the-mask.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/vue-phone-mask-input@1.1.11/node_modules/vue-phone-mask-input/src/country_telephone_data.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/visitor-info@0.3.1/node_modules/visitor-info/dist/bundle.esm.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/restArguments.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/isObject.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/isNull.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/isUndefined.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/isBoolean.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/isElement.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_tagTester.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/isString.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/isNumber.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/isDate.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/isRegExp.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/isError.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/isSymbol.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/isArrayBuffer.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/isFunction.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_hasObjectTag.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_stringTagBug.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/isDataView.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/isArray.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_has.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/isArguments.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/isFinite.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/isNaN.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/constant.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_createSizePropertyCheck.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_shallowProperty.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_getByteLength.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_isBufferLike.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/isTypedArray.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_getLength.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_collectNonEnumProps.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/keys.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/isEmpty.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/isMatch.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/underscore.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_toBufferView.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/isEqual.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/allKeys.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_methodFingerprint.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/isMap.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/isWeakMap.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/isSet.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/isWeakSet.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/values.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/pairs.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/invert.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/functions.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_createAssigner.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/extend.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/extendOwn.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/defaults.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_baseCreate.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/create.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/clone.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/tap.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/toPath.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_toPath.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_deepGet.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/get.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/has.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/identity.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/matcher.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/property.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_optimizeCb.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_baseIteratee.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/iteratee.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_cb.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/mapObject.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/noop.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/propertyOf.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/times.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/random.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/now.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_createEscaper.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_escapeMap.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/escape.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/unescape.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_unescapeMap.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/templateSettings.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/template.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/result.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/uniqueId.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/chain.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_executeBound.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/partial.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/bind.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_isArrayLike.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_flatten.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/bindAll.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/memoize.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/delay.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/defer.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/throttle.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/debounce.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/wrap.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/negate.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/compose.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/after.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/before.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/once.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/findKey.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_createPredicateIndexFinder.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/findIndex.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/findLastIndex.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/sortedIndex.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_createIndexFinder.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/indexOf.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/lastIndexOf.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/find.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/findWhere.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/each.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/map.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_createReduce.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/reduce.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/reduceRight.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/filter.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/reject.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/every.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/some.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/contains.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/invoke.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/pluck.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/where.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/max.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/min.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/toArray.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/sample.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/shuffle.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/sortBy.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_group.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/groupBy.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/indexBy.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/countBy.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/partition.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/size.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_keyInObj.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/pick.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/omit.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/initial.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/first.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/rest.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/last.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/compact.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/flatten.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/difference.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/without.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/uniq.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/union.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/intersection.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/unzip.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/zip.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/object.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/range.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/chunk.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/_chainResult.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/mixin.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/underscore-array-methods.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/underscore@1.13.6/node_modules/underscore/modules/index-default.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/country-data@0.0.31/node_modules/country-data/data/regions.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/country-data@0.0.31/node_modules/country-data/index.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/country-data@0.0.31/node_modules/country-data/data/continents.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/country-data@0.0.31/node_modules/country-data/lookup.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/currency-symbol-map@2.2.0/node_modules/currency-symbol-map/currency-symbol-map.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/currency-symbol-map@2.2.0/node_modules/currency-symbol-map/map.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/ua-parser-js@0.7.38/node_modules/ua-parser-js/src/ua-parser.js","webpack:///(webpack)/buildin/amd-options.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/metadata.min.json.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/helpers/isObject.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/normalizeArguments.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/constants.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/ParseError.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/tools/semver-compare.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/metadata.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/helpers/extension/createExtensionPattern.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/helpers/isViablePhoneNumber.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/helpers/extension/extractExtension.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/helpers/parseDigits.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/helpers/mergeArrays.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/helpers/checkNumberLength.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/isPossible.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/helpers/matchesEntirely.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/helpers/getNumberType.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/helpers/getPossibleCountriesForNumber.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/helpers/formatNationalNumberUsingFormat.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/helpers/getIddPrefix.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/format.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/helpers/RFC3966.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/PhoneNumber.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/isValid.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/helpers/stripIddPrefix.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/helpers/extractNationalNumber.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/helpers/getCountryByNationalNumber.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/helpers/getCountryByCallingCode.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/helpers/extractPhoneContext.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/parse.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/parsePhoneNumberWithError_.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/parsePhoneNumber_.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/es6/parsePhoneNumber.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/min/exports/parsePhoneNumber.js","webpack:////builds/messaggio/frontend/node_modules/.pnpm/libphonenumber-js@1.11.4/node_modules/libphonenumber-js/min/exports/withMetadataArgument.js"],"names":["VERSION","root","self","global","Function","ArrayProto","Array","prototype","ObjProto","Object","SymbolProto","Symbol","push","slice","toString","hasOwnProperty","supportsArrayBuffer","ArrayBuffer","supportsDataView","DataView","nativeIsArray","isArray","nativeKeys","keys","nativeCreate","create","nativeIsView","isView","_isNaN","isNaN","_isFinite","isFinite","hasEnumBug","propertyIsEnumerable","nonEnumerableProps","MAX_ARRAY_INDEX","Math","pow","module","exports","e","t","r","n","a","i","l","call","m","c","d","o","defineProperty","configurable","enumerable","get","__esModule","default","p","s","pattern","X","S","A","transform","toLocaleUpperCase","toLocaleLowerCase","escape","document","createEvent","initEvent","value","mask","tokens","tagName","u","getElementsByTagName","length","Error","oninput","isTrusted","selectionEnd","charAt","activeElement","setSelectionRange","setTimeout","dispatchEvent","arguments","component","name","directive","window","Vue","use","props","String","Number","type","required","masked","Boolean","directives","data","lastValue","display","this","watch","refresh","computed","config","methods","onInput","target","$emit","sort","test","f","options","render","staticRenderFns","_scopeId","forEach","esModule","$createElement","_self","_c","rawName","expression","attrs","domProps","on","input","addCountryCodeToMask","code","codeLength","temporyMask","replace","CanadaAreaCodes","allCountries","findFirstCountryByCode","filteredCode","match","join","filteredCountries","filter","contryArr","toUpperCase","findFirstCountryByAlpha2","alpha2","country","getMaskToLibPhoneNumber","libPhoneNumberObj","contry","countryCode","isCanada","number","filteredNumber","areaCode","substring","includes","timezone","results","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","apply","_defineProperty","obj","key","writable","getTimezone","tz","zone","guess","getCountryCode","countries","getCountry","all","find","item","navigator","userAgent","getResult","source","getOwnPropertyDescriptors","defineProperties","_objectSpread2","restArguments","func","startIndex","max","rest","index","args","isObject","isNull","isUndefined","isBoolean","isElement","nodeType","tagTester","tag","isFunction","nodelist","childNodes","Int8Array","hasStringTagBug","isIE11","Map","isDataView","getInt8","isArrayBuffer","buffer","has","isArguments","isSymbol","parseFloat","isNumber","constant","createSizePropertyCheck","getSizeProperty","collection","sizeProperty","shallowProperty","typedArrayPattern","collectNonEnumProps","hash","contains","emulatedSet","nonEnumIdx","constructor","proto","prop","isEmpty","isString","isMatch","_keys","_","_wrapped","toBufferView","bufferSource","Uint8Array","byteOffset","valueOf","toJSON","tagDataView","eq","b","aStack","bStack","deepEq","className","areArrays","aCtor","bCtor","pop","isEqual","allKeys","ie11fingerprint","weakMapMethods","forEachName","commonInit","mapTail","mapMethods","concat","setMethods","values","pairs","invert","result","functions","names","createAssigner","keysFunc","defaults","baseCreate","Ctor","extendOwn","clone","extend","tap","interceptor","toPath","path","deepGet","defaultValue","identity","property","optimizeCb","context","argCount","accumulator","baseIteratee","Infinity","cb","iteratee","mapObject","currentKey","noop","propertyOf","times","accum","random","min","floor","Date","getTime","createEscaper","map","escaper","testRegexp","RegExp","replaceRegexp","string","templateSettings","evaluate","interpolate","noMatch","escapes","escapeRegExp","escapeChar","bareIdentifier","text","settings","oldSettings","matcher","offset","argument","variable","template","fallback","idCounter","uniqueId","prefix","id","chain","instance","_chain","executeBound","sourceFunc","boundFunc","callingContext","partial","boundArgs","placeholder","bound","position","TypeError","callArgs","flatten","depth","strict","output","idx","j","len","bind","hasher","memoize","cache","address","wait","delay","throttle","timeout","previous","later","leading","now","throttled","_now","remaining","clearTimeout","trailing","cancel","debounce","immediate","passed","debounced","_args","wrap","wrapper","negate","predicate","compose","start","after","before","memo","findKey","createPredicateIndexFinder","dir","array","low","high","mid","createIndexFinder","predicateFind","sortedIndex","findIndex","findLastIndex","findWhere","each","createReduce","initial","reducer","list","reject","every","some","fromIndex","guard","indexOf","contextPath","method","pluck","where","lastComputed","v","reStrSymbol","toArray","sample","last","rand","temp","shuffle","sortBy","criteria","left","right","group","behavior","partition","pass","size","keyInObj","pick","first","compact","otherArrays","difference","uniq","isSorted","seen","arrays","intersection","argsLength","unzip","range","stop","step","ceil","chunk","count","chainResult","mixin","regions","continents","countriesAll","currenciesAll","languagesAll","lookup","getSymbol","exportedAlpha2","status","exportedAlpha3","alpha3","currencies","currency","symbol","languages","language","bibliographic","callingCountries","callingCodesAll","reduce","codes","countryCallingCodes","parse","str","parseInt","splitA","split","splitB","undefined","callingCodes","asia","centralAsia","southernAsia","southeastAsia","eastAsia","westernAsia","africa","centralAfrica","northAfrica","southernAfrica","eastAfrica","westAfrica","northAmerica","centralAmerica","northernAmerica","caribbean","southAmerica","antartica","europe","northernEurope","southernEurope","easternEurope","westernEurope","oceania","australia","melanesia","micronesia","polynesia","search","query","q","currencyCode","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","MAJOR","MODEL","NAME","TYPE","VENDOR","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","EMBEDDED","AMAZON","APPLE","ASUS","BLACKBERRY","BROWSER","CHROME","FIREFOX","GOOGLE","HUAWEI","LG","MICROSOFT","MOTOROLA","OPERA","SAMSUNG","SHARP","SONY","XIAOMI","ZEBRA","FACEBOOK","CHROMIUM_OS","MAC_OS","enumerize","arr","enums","str1","str2","lowerize","toLowerCase","trim","rgxMapper","ua","k","matches","regex","exec","strMapper","windowsVersionMap","regexes","browser","cpu","device","engine","EDGE","os","UAParser","extensions","_navigator","_ua","_uach","userAgentData","_rgxmap","mergedRegexes","_isSelfNav","getBrowser","version","_browser","brave","isBrave","getCPU","_cpu","getDevice","_device","mobile","standalone","maxTouchPoints","getEngine","_engine","getOS","_os","platform","getUA","setUA","CPU","DEVICE","ENGINE","OS","$","jQuery","Zepto","parser","set","__webpack_amd_options__","objectConstructor","_slicedToArray","_arrayWithHoles","_i","iterator","_s","_e","_arr","_n","_d","next","done","err","_iterableToArrayLimit","minLen","_arrayLikeToArray","from","_unsupportedIterableToArray","_nonIterableRest","arr2","normalizeArguments","metadata","_Array$prototype$slic2","arg_1","arg_2","arg_3","arg_4","_objectSpread","defaultCountry","MIN_LENGTH_FOR_NSN","MAX_LENGTH_FOR_NSN","MAX_LENGTH_COUNTRY_CODE","VALID_DIGITS","VALID_PUNCTUATION","_typeof","_defineProperties","descriptor","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","Reflect","construct","_assertThisInitialized","_possibleConstructorReturn","ReferenceError","_wrapNativeSuper","Class","_cache","fn","Wrapper","_construct","_setPrototypeOf","Parent","sham","Proxy","setPrototypeOf","__proto__","getPrototypeOf","ParseError","_Error","subClass","superClass","_inherits","Constructor","protoProps","staticProps","_super","_this","_classCallCheck","pa","pb","na","nb","DEFAULT_EXT_PREFIX","CALLING_CODE_REG_EXP","Metadata","typeOf","validateMetadata","setVersion","v1","v2","v3","nonGeographic","nonGeographical","getCountryMetadata","callingCode","getCountryCodesForCallingCode","countryCodes","selectNumberingPlan","hasCountry","numberingPlan","NumberingPlan","hasCallingCode","getNumberingPlanMetadata","getCountryCodeForCallingCode","IDDPrefix","defaultIDDPrefix","nationalNumberPattern","possibleLengths","formats","nationalPrefixForParsing","nationalPrefixTransformRule","leadingDigits","hasTypes","_type","ext","country_phone_code_to_countries","country_calling_codes","globalMetadataObject","_getFormats","getDefaultCountryMetadataForRegion","Format","_getNationalPrefixFormattingRule","_nationalPrefixForParsing","nationalPrefix","_getNationalPrefixIsOptionalWhenFormatting","types","_type2","Type","format","_format","nationalPrefixFormattingRule","nationalPrefixIsOptionalWhenFormattingInNationalFormat","usesNationalPrefix","FIRST_GROUP_ONLY_PREFIX_PATTERN","getCountryCallingCode","countryCallingCode","v4","maxLength","createExtensionPattern","purpose","possibleSeparatorsBetweenNumberAndExtLabel","possibleCharsAfterExtLabel","optionalExtnSuffix","possibleSeparatorsNumberExtLabelNoComma","MIN_LENGTH_PHONE_NUMBER_PATTERN","VALID_PHONE_NUMBER","VALID_PHONE_NUMBER_START_REG_EXP","VALID_PHONE_NUMBER_WITH_EXTENSION","VALID_PHONE_NUMBER_PATTERN","isViablePhoneNumber","EXTN_PATTERN","DIGITS","parseDigit","character","allowArrayLike","it","parseIncompletePhoneNumber","_step","_iterator","parsePhoneNumberCharacter","prevParsedCharacters","emitEvent","checkNumberLength","nationalNumber","checkNumberLengthForType","type_info","possible_lengths","mobile_type","merged","element","mergeArrays","actual_length","minimum_length","isPossibleNumber","matchesEntirely","regular_expression","NON_FIXED_LINE_PHONE_TYPES","getNumberType","phone","isNumberTypeEqualTo","getPossibleCountriesForNumber","possibleCountries","_metadata","couldNationalNumberBelongToCountry","FIRST_GROUP_PATTERN","formatNationalNumberUsingFormat","_ref","useInternationalFormat","withNationalPrefix","formattedNumber","carrierCode","internationalFormat","applyInternationalSeparatorStyle","SINGLE_IDD_PREFIX_REG_EXP","DEFAULT_OPTIONS","formatExtension","extension","formatNumber","addExtension","formatNationalNumber","formatRFC3966","fromCountry","fromCountryCallingCode","iddPrefix","countryMetadata","getIddPrefix","formatIDD","formatAs","availableFormats","nationalNnumber","leadingDigitsPatterns","lastLeadingDigitsPattern","chooseFormatForNumber","PhoneNumber","countryOrCountryCallingCode","_getCountryAndCountry","metadataJson","isCountryCode","getCountryAndCountryCallingCode","getMetadata","isNonGeographicCallingCode","phoneNumber","CAPTURING_DIGIT_PATTERN","extractNationalNumber","_extractNationalNumbe","prefixPattern","prefixMatch","capturedGroupsCount","hasCapturedGroups","prefixBeforeNationalNumber","possiblePositionOfTheFirstCapturedGroup","extractNationalNumberFromPossiblyIncompleteNumber","nationalNumberBefore","nationalNumberAfter","shouldHaveExtractedNationalPrefix","isPossibleIncompleteNationalNumber","extractCountryCallingCode","isNumberWithIddPrefix","numberWithoutIDD","IDDPrefixPattern","matchedGroups","stripIddPrefix","_extractCountryCallin","possibleShorterNumber","possibleShorterNationalNumber","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","shorterNumber","countryCallingCodeSource","_countryCallingCode","getCountryByCallingCode","nationalPhoneNumber","matchingCountries","getCountryByNationalNumber","PLUS_SIGN","RFC3966_PHONE_DIGIT_","RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_","RFC3966_DOMAINNAME_PATTERN_","RFC3966_PREFIX_","RFC3966_PHONE_CONTEXT_","RFC3966_ISDN_SUBADDRESS_","extractFormattedPhoneNumberFromPossibleRfc3966NumberUri","numberToParse","phoneNumberString","extractFormattedPhoneNumber","phoneContext","numberToExtractFrom","indexOfPhoneContext","phoneContextStart","phoneContextEnd","extractPhoneContext","isPhoneContextValid","indexOfNationalNumber","indexOfRfc3966Prefix","indexOfIsdn","MAX_INPUT_STRING_LENGTH","PHONE_NUMBER_START_PATTERN","AFTER_PHONE_NUMBER_END_PATTERN","_parseInput","extract","throwOnError","startsAt","_extractFormattedPhoneNumber","isViablePhoneNumberStart","error","withExtensionStripped","numberWithoutExtension","extractExtension","parseInput","formattedPhoneNumber","_parsePhoneNumber","defaultCallingCode","exactCountry","parsePhoneNumber","hasSelectedNumberingPlan","__countryCallingCodeSource","valid","extended","possible","isSupportedCountry","parsePhoneNumberWithError","_normalizeArguments","_arguments","withMetadataArgument"],"mappings":"4FAAA,orBACO,IAAIA,EAAU,SAKVC,EAAuB,iBAARC,MAAoBA,KAAKA,OAASA,MAAQA,MACxC,iBAAVC,GAAsBA,EAAOA,SAAWA,GAAUA,GAC1DC,SAAS,cAATA,IACA,CAAC,EAGAC,EAAaC,MAAMC,UAAWC,EAAWC,OAAOF,UAChDG,EAAgC,oBAAXC,OAAyBA,OAAOJ,UAAY,KAGjEK,EAAOP,EAAWO,KACzBC,EAAQR,EAAWQ,MACnBC,EAAWN,EAASM,SACpBC,EAAiBP,EAASO,eAGnBC,EAA6C,oBAAhBC,YACpCC,EAAuC,oBAAbC,SAInBC,EAAgBd,MAAMe,QAC7BC,EAAab,OAAOc,KACpBC,EAAef,OAAOgB,OACtBC,EAAeV,GAAuBC,YAAYU,OAG3CC,EAASC,MAChBC,EAAYC,SAGLC,GAAc,CAAClB,SAAU,MAAMmB,qBAAqB,YACpDC,EAAqB,CAAC,UAAW,gBAAiB,WAC3D,uBAAwB,iBAAkB,kBAGjCC,EAAkBC,KAAKC,IAAI,EAAG,IAAM,C,0CC1CkBC,EAAOC,QAAyJ,SAASC,GAAG,SAASC,EAAEC,GAAG,GAAGC,EAAED,GAAG,OAAOC,EAAED,GAAGH,QAAQ,IAAIK,EAAED,EAAED,GAAG,CAACG,EAAEH,EAAEI,GAAE,EAAGP,QAAQ,CAAC,GAAG,OAAOC,EAAEE,GAAGK,KAAKH,EAAEL,QAAQK,EAAEA,EAAEL,QAAQE,GAAGG,EAAEE,GAAE,EAAGF,EAAEL,OAAO,CAAC,IAAII,EAAE,CAAC,EAAE,OAAOF,EAAEO,EAAER,EAAEC,EAAEQ,EAAEN,EAAEF,EAAEI,EAAE,SAASL,GAAG,OAAOA,CAAC,EAAEC,EAAES,EAAE,SAASV,EAAEG,EAAED,GAAGD,EAAEU,EAAEX,EAAEG,IAAIlC,OAAO2C,eAAeZ,EAAEG,EAAE,CAACU,cAAa,EAAGC,YAAW,EAAGC,IAAIb,GAAG,EAAED,EAAEE,EAAE,SAASH,GAAG,IAAIG,EAAEH,GAAGA,EAAEgB,WAAW,WAAW,OAAOhB,EAAEiB,OAAO,EAAE,WAAW,OAAOjB,CAAC,EAAE,OAAOC,EAAES,EAAEP,EAAE,IAAIA,GAAGA,CAAC,EAAEF,EAAEU,EAAE,SAASX,EAAEC,GAAG,OAAOhC,OAAOF,UAAUQ,eAAegC,KAAKP,EAAEC,EAAE,EAAEA,EAAEiB,EAAE,IAAIjB,EAAEA,EAAEkB,EAAE,GAAG,CAA5e,CAA8e,CAAC,SAASnB,EAAEC,GAAGD,EAAED,QAAQ,CAAC,IAAI,CAACqB,QAAQ,MAAMC,EAAE,CAACD,QAAQ,eAAeE,EAAE,CAACF,QAAQ,YAAYG,EAAE,CAACH,QAAQ,WAAWI,UAAU,SAASxB,GAAG,OAAOA,EAAEyB,mBAAmB,GAAGrB,EAAE,CAACgB,QAAQ,WAAWI,UAAU,SAASxB,GAAG,OAAOA,EAAE0B,mBAAmB,GAAG,IAAI,CAACC,QAAO,GAAI,EAAE,SAAS3B,EAAEC,EAAEE,GAAG,aAAa,SAASD,EAAEF,GAAG,IAAIC,EAAE2B,SAASC,YAAY,SAAS,OAAO5B,EAAE6B,UAAU9B,GAAE,GAAG,GAAIC,CAAC,CAAC,IAAIG,EAAED,EAAE,GAAGQ,EAAER,EAAE,GAAGE,EAAEF,EAAEA,EAAEQ,GAAGV,EAAEG,EAAE,SAASJ,EAAEC,GAAG,IAAIU,EAAEV,EAAE8B,MAAM,IAAIjE,MAAMe,QAAQ8B,IAAI,iBAAiBA,KAAKA,EAAE,CAACqB,KAAKrB,EAAEsB,OAAO5B,EAAED,IAAI,UAAUJ,EAAEkC,QAAQT,oBAAoB,CAAC,IAAIU,EAAEnC,EAAEoC,qBAAqB,SAAS,GAAG,IAAID,EAAEE,OAAO,MAAM,IAAIC,MAAM,4CAA4CH,EAAEE,QAAQrC,EAAEmC,EAAE,EAAE,CAACnC,EAAEuC,QAAQ,SAAStC,GAAG,GAAGA,EAAEuC,UAAU,CAAC,IAAInC,EAAEL,EAAEyC,aAAaN,EAAEnC,EAAE+B,MAAM1B,EAAE,GAAG,IAAIL,EAAE+B,MAAM5B,EAAEE,EAAED,EAAEA,EAAND,CAASH,EAAE+B,MAAMpB,EAAEqB,MAAK,EAAGrB,EAAEsB,QAAQ5B,EAAEL,EAAE+B,MAAMM,QAAQrC,EAAE+B,MAAMW,OAAOrC,EAAE,KAAK8B,GAAG9B,IAAIL,IAAI4B,SAASe,gBAAgB3C,EAAE4C,kBAAkBvC,EAAEA,GAAGwC,YAAW,WAAW7C,EAAE4C,kBAAkBvC,EAAEA,EAAE,GAAE,IAAIL,EAAE8C,cAAc5C,EAAE,SAAS,CAAC,EAAE,IAAIiB,EAAEhB,EAAEE,EAAED,EAAEA,EAAND,CAASH,EAAE+B,MAAMpB,EAAEqB,MAAK,EAAGrB,EAAEsB,QAAQd,IAAInB,EAAE+B,QAAQ/B,EAAE+B,MAAMZ,EAAEnB,EAAE8C,cAAc5C,EAAE,UAAU,CAAC,EAAE,SAASF,EAAEC,EAAEE,GAAG,aAAa,IAAID,EAAEC,EAAE,GAAGC,EAAED,EAAE,GAAGF,EAAEG,EAAE,SAASJ,EAAEC,GAAG,IAAIU,IAAIoC,UAAUV,OAAO,QAAG,IAASU,UAAU,KAAKA,UAAU,GAAG1C,EAAE0C,UAAU,GAAG,OAAOjF,MAAMe,QAAQoB,GAAGE,EAAEE,EAAED,EAAEA,EAAND,CAASD,EAAEE,EAAEH,EAAEI,EAAfF,CAAkBH,EAAEC,EAAEU,EAAEN,GAAGF,EAAEE,EAAEH,EAAEE,EAAND,CAASH,EAAEC,EAAEU,EAAEN,EAAE,CAAC,EAAE,SAASL,EAAEC,EAAEE,GAAG,aAAa,SAASD,EAAEF,GAAGA,EAAEgD,UAAU7B,EAAEf,EAAE6C,KAAK9B,EAAEf,GAAGJ,EAAEkD,UAAU,OAAO7C,EAAED,EAAE,CAACnC,OAAO2C,eAAeX,EAAE,aAAa,CAAC8B,OAAM,IAAK,IAAI3B,EAAED,EAAE,GAAGQ,EAAER,EAAEA,EAAEC,GAAGC,EAAEF,EAAE,GAAGgC,EAAEhC,EAAE,GAAGgB,EAAEhB,EAAEA,EAAEgC,GAAGhC,EAAEO,EAAET,EAAE,WAAU,WAAW,OAAOkB,EAAEf,CAAC,IAAGD,EAAEO,EAAET,EAAE,QAAO,WAAW,OAAOI,EAAED,CAAC,IAAGD,EAAEO,EAAET,EAAE,UAAS,WAAW,OAAOU,EAAEP,CAAC,IAAGD,EAAEO,EAAET,EAAE,WAAU,WAAW,OAAOQ,CAAC,IAAG,IAAIA,EAAE,SAASR,EAAEgB,QAAQf,EAAE,oBAAoBiD,QAAQA,OAAOC,KAAKD,OAAOC,IAAIC,IAAInD,EAAE,EAAE,SAASF,EAAEC,EAAEE,GAAG,aAAalC,OAAO2C,eAAeX,EAAE,aAAa,CAAC8B,OAAM,IAAK,IAAI7B,EAAEC,EAAE,GAAGC,EAAED,EAAE,GAAGQ,EAAER,EAAEA,EAAEC,GAAGC,EAAEF,EAAE,GAAGF,EAAEgB,QAAQ,CAACgC,KAAK,UAAUK,MAAM,CAACvB,MAAM,CAACwB,OAAOC,QAAQxB,KAAK,CAACyB,KAAK,CAACF,OAAOzF,OAAO4F,UAAS,GAAIC,OAAO,CAACF,KAAKG,QAAQ3C,SAAQ,GAAIgB,OAAO,CAACwB,KAAKxF,OAAOgD,QAAQ,WAAW,OAAON,EAAEP,CAAC,IAAIyD,WAAW,CAAC7B,KAAK9B,EAAEE,GAAG0D,KAAK,WAAW,MAAM,CAACC,UAAU,KAAKC,QAAQC,KAAKlC,MAAM,EAAEmC,MAAM,CAACnC,MAAM,SAAS/B,GAAGA,IAAIiE,KAAKF,YAAYE,KAAKD,QAAQhE,EAAE,EAAE2D,OAAO,WAAWM,KAAKE,QAAQF,KAAKD,QAAQ,GAAGI,SAAS,CAACC,OAAO,WAAW,MAAM,CAACrC,KAAKiC,KAAKjC,KAAKC,OAAOgC,KAAKhC,OAAO0B,OAAOM,KAAKN,OAAO,GAAGW,QAAQ,CAACC,QAAQ,SAASvE,GAAGA,EAAEwC,WAAWyB,KAAKE,QAAQnE,EAAEwE,OAAOzC,MAAM,EAAEoC,QAAQ,SAASnE,GAAGiE,KAAKD,QAAQhE,GAAMA,EAAEG,EAAEE,EAAEA,EAAED,EAAND,CAASH,EAAEiE,KAAKjC,KAAKiC,KAAKN,OAAOM,KAAKhC,WAAYgC,KAAKF,YAAYE,KAAKF,UAAU/D,EAAEiE,KAAKQ,MAAM,QAAQzE,GAAG,GAAG,EAAE,SAASA,EAAEC,EAAEE,GAAG,aAAa,SAASD,EAAEF,EAAEC,EAAEE,GAAG,OAAOF,EAAEA,EAAEyE,MAAK,SAAS1E,EAAEC,GAAG,OAAOD,EAAEqC,OAAOpC,EAAEoC,MAAM,IAAG,SAASnC,EAAEE,GAAG,IAAI,IAAIO,IAAIoC,UAAUV,OAAO,QAAG,IAASU,UAAU,KAAKA,UAAU,GAAG1C,EAAE,EAAEA,EAAEJ,EAAEoC,QAAQ,CAAC,IAAIF,EAAElC,EAAEI,GAAGA,IAAI,IAAIc,EAAElB,EAAEI,GAAG,KAAKc,GAAGnB,EAAEE,EAAEiB,GAAE,EAAGhB,GAAGkC,OAAOF,EAAEE,QAAQ,OAAOrC,EAAEE,EAAEiC,EAAExB,EAAER,EAAE,CAAC,MAAM,EAAE,CAAC,CAACF,EAAEG,EAAEF,CAAC,EAAE,SAASF,EAAEC,EAAEE,GAAG,aAAa,SAASD,EAAEF,EAAEC,GAAG,IAAIE,IAAI4C,UAAUV,OAAO,QAAG,IAASU,UAAU,KAAKA,UAAU,GAAG7C,EAAE6C,UAAU,GAAG/C,EAAEA,GAAG,GAAGC,EAAEA,GAAG,GAAG,IAAI,IAAIG,EAAE,EAAEO,EAAE,EAAEN,EAAE,GAAGD,EAAEH,EAAEoC,QAAQ1B,EAAEX,EAAEqC,QAAQ,CAAC,IAAWlB,EAAEjB,EAATiC,EAAElC,EAAEG,IAAUK,EAAET,EAAEW,GAAGQ,IAAIA,EAAEQ,QAAQR,EAAEC,QAAQuD,KAAKlE,KAAKJ,GAAGc,EAAEK,UAAUL,EAAEK,UAAUf,GAAGA,EAAEL,KAAKO,MAAMQ,GAAGA,EAAEQ,SAAaQ,EAAElC,IAANG,IAAYD,IAAIE,GAAG8B,GAAG1B,IAAI0B,GAAGxB,IAAIP,IAAI,CAAC,IAAI,IAAIwE,EAAE,GAAGxE,EAAEH,EAAEoC,QAAQlC,GAAG,CAAC,IAAIgC,EAAO,GAAGjC,EAAViC,EAAElC,EAAEG,IAAW,CAACwE,EAAE,GAAG,KAAK,CAACA,GAAGzC,EAAE/B,GAAG,CAAC,OAAOC,EAAEuE,CAAC,CAAC3E,EAAEG,EAAEF,CAAC,EAAE,SAASF,EAAEC,EAAEE,GAAG,IAAID,EAAEC,EAAE,EAAFA,CAAKA,EAAE,GAAGA,EAAE,GAAG,KAAK,MAAMH,EAAED,QAAQG,EAAEH,OAAO,EAAE,SAASC,EAAEC,GAAGD,EAAED,QAAQ,SAASC,EAAEC,EAAEE,EAAED,GAAG,IAAIE,EAAEO,EAAEX,EAAEA,GAAG,CAAC,EAAEK,SAASL,EAAEiB,QAAQ,WAAWZ,GAAG,aAAaA,IAAID,EAAEJ,EAAEW,EAAEX,EAAEiB,SAAS,IAAIkB,EAAE,mBAAmBxB,EAAEA,EAAEkE,QAAQlE,EAAE,GAAGV,IAAIkC,EAAE2C,OAAO7E,EAAE6E,OAAO3C,EAAE4C,gBAAgB9E,EAAE8E,iBAAiB5E,IAAIgC,EAAE6C,SAAS7E,GAAGD,EAAE,CAAC,IAAIiB,EAAEgB,EAAEiC,WAAWjC,EAAEiC,SAAS,CAAC,GAAGnG,OAAOc,KAAKmB,GAAG+E,SAAQ,SAASjF,GAAG,IAAIC,EAAEC,EAAEF,GAAGmB,EAAEnB,GAAG,WAAW,OAAOC,CAAC,CAAC,GAAE,CAAC,MAAM,CAACiF,SAAS9E,EAAEL,QAAQY,EAAEkE,QAAQ1C,EAAE,CAAC,EAAE,SAASnC,EAAEC,GAAGD,EAAED,QAAQ,CAAC+E,OAAO,WAAW,IAAI9E,EAAEiE,KAAKhE,EAAED,EAAEmF,eAAe,OAAOnF,EAAEoF,MAAMC,IAAIpF,GAAG,QAAQ,CAAC4D,WAAW,CAAC,CAACZ,KAAK,OAAOqC,QAAQ,SAASvD,MAAM/B,EAAEqE,OAAOkB,WAAW,WAAWC,MAAM,CAAC/B,KAAK,QAAQgC,SAAS,CAAC1D,MAAM/B,EAAEgE,SAAS0B,GAAG,CAACC,MAAM3F,EAAEuE,UAAU,EAAEQ,gBAAgB,GAAG,EAAE,SAAS/E,EAAEC,EAAEE,GAAGH,EAAED,QAAQI,EAAE,EAAE,G,oCCA3nJ,gLAAMyF,EAAuB,CAAC5D,KAAM6D,QAClC,MAAMC,EAAaD,KAAKxD,OACxB,IAAI0D,EAAc/D,KAElB,IAAK,IAAI3B,EAAI,EAAGA,EAAIyF,EAAYzF,IAC9B0F,EAAcA,EAAYC,QAAQ,IAAKH,KAAKxF,IAE9C,OAAO0F,CAAW,EAGdE,EAAkB,CACtB,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAIWC,EAAe,CAC1B,CAAC,6BAA8B,KAAM,KAAM,mBAC3C,CAAC,gBAAiB,KAAM,MAAO,IAC/B,CAAC,qBAAsB,KAAM,MAAO,oBACpC,CAAC,uBAAwB,KAAM,MAAO,oBACtC,CAAC,iBAAkB,KAAM,OAAQ,mBACjC,CAAC,UAAW,KAAM,MAAO,gBACzB,CAAC,SAAU,KAAM,MAAO,oBACxB,CAAC,WAAY,KAAM,OAAQ,mBAC3B,CAAC,aAAc,KAAM,MAAO,IAC5B,CAAC,sBAAuB,KAAM,OAAQ,mBACtC,CAAC,YAAa,KAAM,KAAM,oBAC1B,CAAC,qBAAsB,KAAM,MAAO,mBACpC,CAAC,QAAS,KAAM,MAAO,iBACvB,CAAC,YAAa,KAAM,KAAM,mBAC1B,CAAC,uBAAwB,KAAM,KAAM,oBACrC,CAAC,0BAA2B,KAAM,MAAO,qBACzC,CAAC,UAAW,KAAM,OAAQ,mBAC1B,CAAC,uBAAwB,KAAM,MAAO,kBACtC,CAAC,wBAAyB,KAAM,MAAO,mBACvC,CAAC,WAAY,KAAM,OAAQ,mBAC3B,CAAC,qBAAsB,KAAM,MAAO,qBACpC,CAAC,mBAAoB,KAAM,KAAM,oBACjC,CAAC,SAAU,KAAM,MAAO,iBACxB,CAAC,gBAAiB,KAAM,MAAO,mBAC/B,CAAC,UAAW,KAAM,OAAQ,mBAC1B,CAAC,iBAAkB,KAAM,MAAO,kBAChC,CAAC,UAAW,KAAM,MAAO,mBACzB,CAAC,+CAAgD,KAAM,MAAO,gBAC9D,CAAC,WAAY,KAAM,MAAO,mBAC1B,CAAC,gBAAiB,KAAM,KAAM,IAC9B,CAAC,kBAAmB,KAAM,KAAM,oBAChC,CAAC,iCAAkC,KAAM,MAAO,iBAChD,CAAC,yBAA0B,KAAM,OAAQ,mBACzC,CAAC,SAAU,KAAM,MAAO,iBACxB,CAAC,sBAAuB,KAAM,MAAO,oBACrC,CAAC,eAAgB,KAAM,MAAO,mBAC9B,CAAC,qBAAsB,KAAM,MAAO,mBACpC,CAAC,qBAAsB,KAAM,MAAO,mBACpC,CAAC,sBAAuB,KAAM,MAAO,kBACrC,CAAC,SAAU,KAAM,IAAK,oBAAqB,EAAGD,GAC9C,CAAC,0BAA2B,KAAM,MAAO,kBACzC,CAAC,wBAAyB,KAAM,MAAO,gBAAiB,GACxD,CAAC,iBAAkB,KAAM,OAAQ,mBACjC,CACE,uDACA,KACA,MACA,mBAEF,CAAC,eAAgB,KAAM,MAAO,oBAC9B,CAAC,QAAS,KAAM,KAAM,mBACtB,CAAC,aAAc,KAAM,KAAM,mBAC3B,CAAC,mBAAoB,KAAM,KAAM,IACjC,CAAC,0BAA2B,KAAM,KAAM,IACxC,CAAC,WAAY,KAAM,KAAM,oBACzB,CAAC,yBAA0B,KAAM,MAAO,iBACxC,CACE,iDACA,KACA,MACA,oBAEF,CAAC,uCAAwC,KAAM,MAAO,oBACtD,CAAC,eAAgB,KAAM,MAAO,eAC9B,CAAC,aAAc,KAAM,MAAO,kBAC5B,CAAC,gBAAiB,KAAM,MAAO,mBAC/B,CAAC,qBAAsB,KAAM,MAAO,mBACpC,CAAC,OAAQ,KAAM,KAAM,kBACrB,CAAC,UAAW,KAAM,MAAO,gBAAiB,GAC1C,CAAC,kBAAmB,KAAM,MAAO,mBACjC,CAAC,mCAAoC,KAAM,MAAO,oBAClD,CAAC,oBAAqB,KAAM,KAAM,mBAClC,CAAC,WAAY,KAAM,MAAO,oBAC1B,CAAC,WAAY,KAAM,OAAQ,mBAC3B,CACE,4CACA,KACA,IACA,kBACA,EACA,CAAC,MAAO,MAAO,QAEjB,CAAC,UAAW,KAAM,MAAO,mBACzB,CAAC,iBAAkB,KAAM,KAAM,oBAC/B,CAAC,cAAe,KAAM,MAAO,kBAC7B,CAAC,wCAAyC,KAAM,MAAO,oBACvD,CAAC,UAAW,KAAM,MAAO,kBACzB,CAAC,kBAAmB,KAAM,MAAO,iBACjC,CAAC,WAAY,KAAM,MAAO,oBAC1B,CAAC,oCAAqC,KAAM,MAAO,cACnD,CAAC,0BAA2B,KAAM,MAAO,gBACzC,CAAC,OAAQ,KAAM,MAAO,iBACtB,CAAC,kBAAmB,KAAM,MAAO,qBACjC,CAAC,SAAU,KAAM,KAAM,qBACvB,CAAC,mCAAoC,KAAM,MAAO,mBAClD,CAAC,yCAA0C,KAAM,MAAO,iBACxD,CAAC,sCAAuC,KAAM,MAAO,IACrD,CAAC,QAAS,KAAM,MAAO,mBACvB,CAAC,SAAU,KAAM,MAAO,kBACxB,CAAC,uBAAwB,KAAM,MAAO,oBACtC,CAAC,wBAAyB,KAAM,KAAM,mBACtC,CAAC,gBAAiB,KAAM,MAAO,oBAC/B,CAAC,YAAa,KAAM,MAAO,kBAC3B,CAAC,kBAAmB,KAAM,KAAM,oBAChC,CAAC,+BAAgC,KAAM,MAAO,iBAC9C,CAAC,UAAW,KAAM,OAAQ,mBAC1B,CAAC,aAAc,KAAM,MAAO,GAAI,GAChC,CAAC,OAAQ,KAAM,OAAQ,mBACvB,CAAC,YAAa,KAAM,MAAO,kBAC3B,CAAC,WAAY,KAAM,KAAM,IACzB,CAAC,kBAAmB,KAAM,MAAO,mBACjC,CAAC,+BAAgC,KAAM,MAAO,iBAC9C,CAAC,SAAU,KAAM,MAAO,iBACxB,CAAC,QAAS,KAAM,MAAO,kBACvB,CAAC,oCAAqC,KAAM,MAAO,IACnD,CAAC,WAAY,KAAM,MAAO,kBAC1B,CAAC,iBAAkB,KAAM,MAAO,kBAChC,CAAC,yBAA0B,KAAM,KAAM,mBACvC,CAAC,mBAAoB,KAAM,MAAO,iBAClC,CAAC,eAAgB,KAAM,KAAM,mBAC7B,CAAC,YAAa,KAAM,KAAM,iBAC1B,CAAC,kBAAmB,KAAM,KAAM,oBAChC,CAAC,mBAAoB,KAAM,MAAO,qBAClC,CAAC,UAAW,KAAM,MAAO,mBACzB,CAAC,cAAe,KAAM,KAAM,IAC5B,CAAC,oBAAqB,KAAM,MAAO,mBACnC,CAAC,iBAAkB,KAAM,KAAM,iBAAkB,GACjD,CAAC,UAAW,KAAM,OAAQ,mBAC1B,CAAC,aAAc,KAAM,KAAM,mBAC3B,CAAC,SAAU,KAAM,KAAM,IACvB,CAAC,qBAAsB,KAAM,MAAO,oBACpC,CAAC,yBAA0B,KAAM,IAAK,mBAAoB,GAC1D,CAAC,QAAS,KAAM,MAAO,mBACvB,CAAC,WAAY,KAAM,MAAO,eAC1B,CAAC,SAAU,KAAM,MAAO,IACxB,CAAC,qBAAsB,KAAM,MAAO,kBACpC,CAAC,0BAA2B,KAAM,MAAO,oBACzC,CAAC,aAAc,KAAM,MAAO,mBAC5B,CAAC,mBAAoB,KAAM,MAAO,mBAClC,CAAC,qBAAsB,KAAM,MAAO,kBACpC,CAAC,UAAW,KAAM,MAAO,mBACzB,CAAC,UAAW,KAAM,MAAO,mBACzB,CAAC,mBAAoB,KAAM,MAAO,mBAClC,CAAC,gBAAiB,KAAM,MAAO,qBAC/B,CAAC,sBAAuB,KAAM,MAAO,mBACrC,CAAC,aAAc,KAAM,MAAO,oBAC5B,CAAC,aAAc,KAAM,MAAO,kBAC5B,CAAC,iCAAkC,KAAM,MAAO,mBAChD,CAAC,4BAA6B,KAAM,MAAO,oBAC3C,CAAC,SAAU,KAAM,MAAO,oBACxB,CAAC,WAAY,KAAM,KAAM,oBACzB,CAAC,WAAY,KAAM,MAAO,iBAC1B,CAAC,OAAQ,KAAM,MAAO,mBACtB,CAAC,QAAS,KAAM,MAAO,kBACvB,CAAC,mBAAoB,KAAM,MAAO,iBAClC,CAAC,aAAc,KAAM,MAAO,qBAC5B,CAAC,4BAA6B,KAAM,MAAO,mBAC3C,CAAC,oBAAqB,KAAM,MAAO,iBACnC,CAAC,UAAW,KAAM,MAAO,IACzB,CAAC,kBAAmB,KAAM,KAAM,kBAChC,CAAC,aAAc,KAAM,MAAO,iBAC5B,CAAC,8BAA+B,KAAM,MAAO,kBAC7C,CAAC,SAAU,KAAM,MAAO,mBACxB,CAAC,oBAAqB,KAAM,MAAO,mBACnC,CAAC,yBAA0B,KAAM,MAAO,mBACxC,CAAC,aAAc,KAAM,OAAQ,mBAC7B,CAAC,sBAAuB,KAAM,MAAO,oBACrC,CAAC,0BAA2B,KAAM,MAAO,mBACzC,CAAC,2BAA4B,KAAM,KAAM,eACzC,CAAC,oBAAqB,KAAM,MAAO,oBACnC,CAAC,QAAS,KAAM,MAAO,iBACvB,CAAC,gBAAiB,KAAM,MAAO,mBAC/B,CAAC,0BAA2B,KAAM,KAAM,mBACxC,CAAC,qCAAsC,KAAM,MAAO,gBACpD,CAAC,cAAe,KAAM,KAAM,oBAC5B,CAAC,YAAa,KAAM,MAAO,kBAC3B,CAAC,gBAAiB,KAAM,MAAO,mBAC/B,CAAC,UAAW,KAAM,MAAO,kBACzB,CAAC,OAAQ,KAAM,MAAO,aACtB,CAAC,iBAAkB,KAAM,MAAO,gBAChC,CAAC,+BAAgC,KAAM,MAAO,gBAC9C,CAAC,2BAA4B,KAAM,OAAQ,mBAC3C,CAAC,iBAAkB,KAAM,KAAM,kBAC/B,CAAC,kBAAmB,KAAM,MAAO,mBACjC,CAAC,wBAAyB,KAAM,KAAM,mBACtC,CAAC,QAAS,KAAM,MAAO,iBACvB,CAAC,wBAAyB,KAAM,MAAO,oBACvC,CAAC,kBAAmB,KAAM,MAAO,iBACjC,CAAC,mBAAoB,KAAM,MAAO,mBAClC,CAAC,WAAY,KAAM,MAAO,oBAC1B,CAAC,cAAe,KAAM,KAAM,mBAC5B,CAAC,cAAe,KAAM,KAAM,gBAC5B,CAAC,mBAAoB,KAAM,KAAM,IACjC,CAAC,kBAAmB,KAAM,KAAM,mBAChC,CAAC,WAAY,KAAM,MAAO,oBAC1B,CAAC,cAAe,KAAM,IAAK,oBAAqB,EAAG,CAAC,MAAO,QAC3D,CAAC,iBAAkB,KAAM,MAAO,kBAChC,CAAC,uBAAwB,KAAM,MAAO,mBACtC,CAAC,oBAAqB,KAAM,KAAM,mBAClC,CAAC,kBAAmB,KAAM,IAAK,mBAAoB,GACnD,CAAC,SAAU,KAAM,MAAO,oBACxB,CAAC,sCAAuC,KAAM,MAAO,GAAI,GACzD,CAAC,eAAgB,KAAM,OACvB,CAAC,wBAAyB,KAAM,OAAQ,mBACxC,CAAC,cAAe,KAAM,OAAQ,mBAC9B,CAAC,iDAAkD,KAAM,MAAO,GAAI,GACpE,CAAC,uDAAwD,KAAM,OAC/D,CAAC,mCAAoC,KAAM,OAAQ,mBACnD,CAAC,QAAS,KAAM,MAAO,gBACvB,CAAC,aAAc,KAAM,MAAO,oBAC5B,CAAC,8CAA+C,KAAM,MAAO,iBAC7D,CACE,6CACA,KACA,MACA,mBAEF,CAAC,oBAAqB,KAAM,MAAO,oBACnC,CAAC,kBAAmB,KAAM,MAAO,oBACjC,CAAC,aAAc,KAAM,MAAO,kBAC5B,CAAC,eAAgB,KAAM,MAAO,kBAC9B,CAAC,YAAa,KAAM,KAAM,iBAC1B,CAAC,eAAgB,KAAM,OAAQ,mBAC/B,CAAC,uBAAwB,KAAM,MAAO,oBACtC,CAAC,uBAAwB,KAAM,MAAO,mBACtC,CAAC,kBAAmB,KAAM,MAAO,cACjC,CAAC,uBAAwB,KAAM,MAAO,kBACtC,CAAC,eAAgB,KAAM,KAAM,mBAC7B,CAAC,+CAAgD,KAAM,MAAO,IAC9D,CAAC,qBAAsB,KAAM,KAAM,mBACnC,CAAC,gCAAiC,KAAM,MAAO,oBAC/C,CAAC,iBAAkB,KAAM,KAAM,mBAC/B,CAAC,0BAA2B,KAAM,KAAM,mBACxC,CAAC,qBAAsB,KAAM,MAAO,oBACpC,CAAC,WAAY,KAAM,MAAO,gBAC1B,CAAC,yBAA0B,KAAM,KAAM,IACvC,CAAC,YAAa,KAAM,MAAO,mBAC3B,CAAC,mBAAoB,KAAM,KAAM,oBACjC,CAAC,wBAAyB,KAAM,KAAM,oBACtC,CAAC,mBAAoB,KAAM,MAAO,oBAClC,CAAC,cAAe,KAAM,MAAO,kBAC7B,CAAC,aAAc,KAAM,MAAO,oBAC5B,CAAC,WAAY,KAAM,MAAO,oBAC1B,CAAC,iBAAkB,KAAM,KAAM,kBAC/B,CAAC,cAAe,KAAM,MAAO,iBAC7B,CAAC,OAAQ,KAAM,MAAO,mBACtB,CAAC,UAAW,KAAM,MAAO,aACzB,CAAC,QAAS,KAAM,MAAO,cACvB,CAAC,sBAAuB,KAAM,OAAQ,mBACtC,CAAC,oBAAqB,KAAM,MAAO,mBACnC,CAAC,mBAAoB,KAAM,KAAM,qBACjC,CAAC,eAAgB,KAAM,MAAO,mBAC9B,CAAC,2BAA4B,KAAM,OAAQ,mBAC3C,CAAC,SAAU,KAAM,MAAO,cACxB,CAAC,sBAAuB,KAAM,OAAQ,mBACtC,CAAC,SAAU,KAAM,MAAO,oBACxB,CAAC,oBAAqB,KAAM,MAAO,qBACnC,CACE,qDACA,KACA,MACA,mBAEF,CAAC,iBAAkB,KAAM,KAAM,mBAC/B,CAAC,gBAAiB,KAAM,IAAK,oBAAqB,GAClD,CAAC,uCAAwC,KAAM,IAAK,IACpD,CAAC,UAAW,KAAM,MAAO,oBACzB,CAAC,2BAA4B,KAAM,MAAO,oBAC1C,CAAC,UAAW,KAAM,MAAO,cACzB,CAAC,oCAAqC,KAAM,KAAM,mBAAoB,GACtE,CAAC,YAAa,KAAM,KAAM,oBAC1B,CAAC,qBAAsB,KAAM,KAAM,mBACnC,CAAC,oBAAqB,KAAM,MAAO,gBACnC,CAAC,iBAAkB,KAAM,MAAO,gBAChC,CAAC,mBAAoB,KAAM,MAAO,kBAClC,CAAC,SAAU,KAAM,MAAO,oBACxB,CAAC,WAAY,KAAM,MAAO,kBAGfE,EAAyBN,OACpC,IAAIO,EAAeP,KAAKQ,MAAM,OAAOC,KAAK,IAC1C,MAAMC,EAAoBL,EAAaM,QACrCC,GAAaA,EAAU,KAAOL,GAAgBK,EAAU,KAK1D,OAFcF,EAAkB,GAAKA,EAAkB,GAAG,GAAK,IAEhDG,aAAa,EAIjBC,EAA2BC,IACtC,IAAKA,EAAQ,OAAO,KAEpB,MAAML,EAAoBL,EAAaM,QACrCC,GAAaA,EAAU,KAAOG,IAKhC,OAFcL,EAAkB,GAAK,CAAEM,QAASN,EAAkB,GAAG,GAAIV,KAAMU,EAAkB,GAAG,IAAO,IAE7F,EAGHO,EAA0BC,IACrC,MAAMC,EAASD,EAAoBA,EAAkBF,QAAU,GAE/D,IAAKG,EAAQ,OAAO,KAEpB,MAAMT,EAAoBL,EAAaM,QACrCC,GAAaA,EAAU,GAAGC,gBAAkBM,EAAON,gBAGrD,IAAKH,EAAkB,GAAI,OAAO,KAElC,IAAIvE,KAAOuE,EAAkB,GAAG,GAC5BA,EAAkB,GAAG,GAAGP,QAAQ,MAAO,KACvC,KAEJ,MAAO,CACLhE,KAAM4D,EAAqB5D,KAAMuE,EAAkB,GAAG,IACtDU,YAAa,IAAIV,EAAkB,GAAG,KACvC,EAGUW,EAAWC,IACtB,IAAIC,EAAiBD,EAAOd,MAAM,OAAOC,KAAK,IAC9C,GAAIc,EAAe/E,OAAS,EAAG,OAAO,EACtC,MAAMgF,EAAWD,EAAeE,UAAU,EAAG,GAE7C,OAAOrB,EAAgBsB,SAASF,EAAS,C,oCCjY3C,IA0DIG,EAAUP,EAAaJ,EAASY,EA1DpC,0DAKA,SAASC,EAAQC,OAAQC,GACvB,IAAI7I,EAAOd,OAAOc,KAAK4I,QAEvB,GAAI1J,OAAO4J,sBAAuB,CAChC,IAAIC,EAAU7J,OAAO4J,sBAAsBF,QAEvCC,IACFE,EAAUA,EAAQtB,QAAO,SAAUuB,GACjC,OAAO9J,OAAO+J,yBAAyBL,OAAQI,GAAKjH,UACtD,KAGF/B,EAAKX,KAAK6J,MAAMlJ,EAAM+I,EACxB,CAEA,OAAO/I,CACT,CAsBA,SAASmJ,EAAgBC,EAAKC,EAAKrG,GAYjC,OAXIqG,KAAOD,EACTlK,OAAO2C,eAAeuH,EAAKC,EAAK,CAC9BrG,MAAOA,EACPjB,YAAY,EACZD,cAAc,EACdwH,UAAU,IAGZF,EAAIC,GAAOrG,EAGNoG,CACT,CAIA,IAAIG,EAAc,WAChB,OAAOd,GAAY,IAASe,GAAGC,KAAK,IAASD,GAAGE,QAClD,EAEIC,EAAiB,WACnB,OAAOzB,GAAe,IAAMO,EAASvE,OAAS,IAAMuE,EAASvE,MAAM0F,UAAU,EAC/E,EAEIC,EAAa,WACf,OAAO/B,GAAW,mBAAiBgC,IAAIC,MAAK,SAAUC,GACpD,OAAOA,EAAKnC,SAAW8B,GACzB,GACF,EAMAlB,EAAWc,IACXrB,EAAcyB,IACd7B,EAAU+B,IACVnB,EANSA,GAAW,IAAI,IAASuB,UAAUC,WAAWC,YAevC,IAPG,WAChB,OA7DF,SAAwB1E,GACtB,IAAK,IAAInE,EAAI,EAAGA,EAAI0C,UAAUV,OAAQhC,IAAK,CACzC,IAAI8I,OAAyB,MAAhBpG,UAAU1C,GAAa0C,UAAU1C,GAAK,CAAC,EAEhDA,EAAI,EACNqH,EAAQzJ,OAAOkL,SAAS,GAAMlE,SAAQ,SAAUmD,GAC9CF,EAAgB1D,EAAQ4D,EAAKe,OAAOf,GACtC,IACSnK,OAAOmL,0BAChBnL,OAAOoL,iBAAiB7E,EAAQvG,OAAOmL,0BAA0BD,SAEjEzB,EAAQzJ,OAAOkL,SAASlE,SAAQ,SAAUmD,GACxCnK,OAAO2C,eAAe4D,EAAQ4D,EAAKnK,OAAO+J,yBAAyBmB,OAAQf,GAC7E,GAEJ,CAEA,OAAO5D,CACT,CA2CS8E,CAAe,CACpB9B,SAAUc,IACVzB,QAAS+B,KACRnB,EACL,C,yoXCnFe,SAAS8B,EAAcC,EAAMC,GAE1C,OADAA,EAA2B,MAAdA,EAAqBD,EAAKnH,OAAS,GAAKoH,EAC9C,WAIL,IAHA,IAAIpH,EAASzC,KAAK8J,IAAI3G,UAAUV,OAASoH,EAAY,GACjDE,EAAO7L,MAAMuE,GACbuH,EAAQ,EACLA,EAAQvH,EAAQuH,IACrBD,EAAKC,GAAS7G,UAAU6G,EAAQH,GAElC,OAAQA,GACN,KAAK,EAAG,OAAOD,EAAKjJ,KAAK0D,KAAM0F,GAC/B,KAAK,EAAG,OAAOH,EAAKjJ,KAAK0D,KAAMlB,UAAU,GAAI4G,GAC7C,KAAK,EAAG,OAAOH,EAAKjJ,KAAK0D,KAAMlB,UAAU,GAAIA,UAAU,GAAI4G,GAE7D,IAAIE,EAAO/L,MAAM2L,EAAa,GAC9B,IAAKG,EAAQ,EAAGA,EAAQH,EAAYG,IAClCC,EAAKD,GAAS7G,UAAU6G,GAG1B,OADAC,EAAKJ,GAAcE,EACZH,EAAKvB,MAAMhE,KAAM4F,EAC1B,CACF,CCzBe,SAASC,EAAS3B,GAC/B,IAAI1E,SAAc0E,EAClB,MAAgB,aAAT1E,GAAiC,WAATA,KAAuB0E,CACxD,CCHe,SAAS4B,EAAO5B,GAC7B,OAAe,OAARA,CACT,CCFe,SAAS6B,EAAY7B,GAClC,YAAe,IAARA,CACT,CCAe,SAAS8B,EAAU9B,GAChC,OAAe,IAARA,IAAwB,IAARA,GAAwC,qBAAvB,IAAS5H,KAAK4H,EACxD,CCJe,SAAS+B,EAAU/B,GAChC,SAAUA,GAAwB,IAAjBA,EAAIgC,SACvB,CCAe,SAASC,EAAUnH,GAChC,IAAIoH,EAAM,WAAapH,EAAO,IAC9B,OAAO,SAASkF,GACd,OAAO,IAAS5H,KAAK4H,KAASkC,CAChC,CACF,CCNe,MAAAD,EAAU,UCAV,EAAAA,EAAU,UCAV,EAAAA,EAAU,QCAV,EAAAA,EAAU,UCAV,EAAAA,EAAU,SCAV,EAAAA,EAAU,UCAV,EAAAA,EAAU,eCCrBE,EAAaF,EAAU,YAIvBG,EAAW,IAAK3I,UAAY,IAAKA,SAAS4I,WACM,iBAAbC,WAA4C,mBAAZF,IACrED,EAAa,SAASnC,GACpB,MAAqB,mBAAPA,IAAqB,CACrC,GAGa,QCZA,EAAAiC,EAAU,UCIdM,EACL,KAAoB,EAAa,IAAI/L,SAAS,IAAIF,YAAY,KAEhEkM,EAAyB,oBAARC,KAAuB,EAAa,IAAIA,KCJzDC,EAAaT,EAAU,YAQX,MAAAM,EAJhB,SAAwBvC,GACtB,OAAc,MAAPA,GAAe,EAAWA,EAAI2C,UAAYC,EAAc5C,EAAI6C,OACrE,EAEmDH,ECRpC,OAAiBT,EAAU,SCF3B,SAASa,EAAI9C,EAAKC,GAC/B,OAAc,MAAPD,GAAe,IAAe5H,KAAK4H,EAAKC,EACjD,CCFA,IAAI8C,EAAcd,EAAU,cAI3B,WACMc,EAAYnI,aACfmI,EAAc,SAAS/C,GACrB,OAAO8C,EAAI9C,EAAK,SAClB,EAEJ,CANA,GAQe,QCXA,SAAS,EAASA,GAC/B,OAAQgD,EAAShD,IAAQ,YAAUA,KAAS9I,MAAM+L,WAAWjD,GAC/D,CCFe,SAAS,EAAMA,GAC5B,OAAOkD,EAASlD,IAAQ,YAAOA,EACjC,CCLe,SAASmD,EAASvJ,GAC/B,OAAO,WACL,OAAOA,CACT,CACF,CCFe,SAASwJ,EAAwBC,GAC9C,OAAO,SAASC,GACd,IAAIC,EAAeF,EAAgBC,GACnC,MAA8B,iBAAhBC,GAA4BA,GAAgB,GAAKA,GAAgB,GACjF,CACF,CCPe,SAASC,EAAgBvD,GACtC,OAAO,SAASD,GACd,OAAc,MAAPA,OAAc,EAASA,EAAIC,EACpC,CACF,CCFe,MAAAuD,EAAgB,cCEhB,EAAAJ,EAAwB,GCCnCK,EAAoB,8EAQT,UAPf,SAAsBzD,GAGpB,OAAO,IAAgB,YAAaA,KAAS,EAAWA,GAC1C,EAAaA,IAAQyD,EAAkBjH,KAAK,IAASpE,KAAK4H,GAC1E,EAEoDmD,GAAS,GCX9C,EAAAK,EAAgB,UCoBhB,SAASE,EAAoB1D,EAAKpJ,GAC/CA,EAhBF,SAAqBA,GAEnB,IADA,IAAI+M,EAAO,CAAC,EACHxL,EAAIvB,EAAKsD,OAAQhC,EAAI,EAAGA,EAAIC,IAAKD,EAAGyL,EAAK/M,EAAKsB,KAAM,EAC7D,MAAO,CACL0L,SAAU,SAAS3D,GAAO,OAAqB,IAAd0D,EAAK1D,EAAe,EACrDhK,KAAM,SAASgK,GAEb,OADA0D,EAAK1D,IAAO,EACLrJ,EAAKX,KAAKgK,EACnB,EAEJ,CAMS4D,CAAYjN,GACnB,IAAIkN,EAAa,IAAmB5J,OAChC6J,EAAc/D,EAAI+D,YAClBC,EAAS,EAAWD,IAAgBA,EAAYnO,WAAc,IAG9DqO,EAAO,cAGX,IAFInB,EAAI9C,EAAKiE,KAAUrN,EAAKgN,SAASK,IAAOrN,EAAKX,KAAKgO,GAE/CH,MACLG,EAAO,IAAmBH,MACd9D,GAAOA,EAAIiE,KAAUD,EAAMC,KAAUrN,EAAKgN,SAASK,IAC7DrN,EAAKX,KAAKgO,EAGhB,CChCe,SAAS,EAAKjE,GAC3B,IAAK2B,EAAS3B,GAAM,MAAO,GAC3B,GAAI,IAAY,OAAO,YAAWA,GAClC,IAAIpJ,EAAO,GACX,IAAK,IAAIqJ,KAAOD,EAAS8C,EAAI9C,EAAKC,IAAMrJ,EAAKX,KAAKgK,GAGlD,OADI,KAAYyD,EAAoB1D,EAAKpJ,GAClCA,CACT,CCPe,SAASsN,EAAQlE,GAC9B,GAAW,MAAPA,EAAa,OAAO,EAGxB,IAAI9F,EAAS,EAAU8F,GACvB,MAAqB,iBAAV9F,IACTxD,EAAQsJ,IAAQmE,EAASnE,IAAQ,EAAYA,IAC1B,IAAX9F,EACsB,IAAzB,EAAU,EAAK8F,GACxB,CCde,SAASoE,EAAQ5E,OAAQnC,GACtC,IAAIgH,EAAQ,EAAKhH,GAAQnD,EAASmK,EAAMnK,OACxC,GAAc,MAAVsF,OAAgB,OAAQtF,EAE5B,IADA,IAAI8F,EAAMlK,OAAO0J,QACRtH,EAAI,EAAGA,EAAIgC,EAAQhC,IAAK,CAC/B,IAAI+H,EAAMoE,EAAMnM,GAChB,GAAImF,EAAM4C,KAASD,EAAIC,MAAUA,KAAOD,GAAM,OAAO,CACvD,CACA,OAAO,CACT,CCPe,SAASsE,EAAEtE,GACxB,OAAIA,aAAesE,EAAUtE,EACvBlE,gBAAgBwI,OACtBxI,KAAKyI,SAAWvE,GADiB,IAAIsE,EAAEtE,EAEzC,CCLe,SAASwE,GAAaC,GACnC,OAAO,IAAIC,WACTD,EAAa5B,QAAU4B,EACvBA,EAAaE,YAAc,EAC3B,EAAcF,GAElB,CDCAH,EAAEjP,QAAU,IAGZiP,EAAE1O,UAAUgE,MAAQ,WAClB,OAAOkC,KAAKyI,QACd,EAIAD,EAAE1O,UAAUgP,QAAUN,EAAE1O,UAAUiP,OAASP,EAAE1O,UAAUgE,MAEvD0K,EAAE1O,UAAUO,SAAW,WACrB,OAAOiF,OAAOU,KAAKyI,SACrB,EEZA,IAAIO,GAAc,oBAGlB,SAASC,GAAG9M,EAAG+M,EAAGC,EAAQC,GAGxB,GAAIjN,IAAM+M,EAAG,OAAa,IAAN/M,GAAW,EAAIA,GAAM,EAAI+M,EAE7C,GAAS,MAAL/M,GAAkB,MAAL+M,EAAW,OAAO,EAEnC,GAAI/M,GAAMA,EAAG,OAAO+M,GAAMA,EAE1B,IAAI1J,SAAcrD,EAClB,OAAa,aAATqD,GAAgC,WAATA,GAAiC,iBAAL0J,IAChDG,GAAOlN,EAAG+M,EAAGC,EAAQC,EAC9B,CAGA,SAASC,GAAOlN,EAAG+M,EAAGC,EAAQC,GAExBjN,aAAaqM,IAAGrM,EAAIA,EAAEsM,UACtBS,aAAaV,IAAGU,EAAIA,EAAET,UAE1B,IAAIa,EAAY,IAAShN,KAAKH,GAC9B,GAAImN,IAAc,IAAShN,KAAK4M,GAAI,OAAO,EAE3C,GAAIzC,GAAgC,mBAAb6C,GAAkC,EAAWnN,GAAI,CACtE,IAAK,EAAW+M,GAAI,OAAO,EAC3BI,EAAYN,EACd,CACA,OAAQM,GAEN,IAAK,kBAEL,IAAK,kBAGH,MAAO,GAAKnN,GAAM,GAAK+M,EACzB,IAAK,kBAGH,OAAK/M,IAAOA,GAAW+M,IAAOA,EAEhB,IAAN/M,EAAU,GAAKA,GAAM,EAAI+M,GAAK/M,IAAO+M,EAC/C,IAAK,gBACL,IAAK,mBAIH,OAAQ/M,IAAO+M,EACjB,IAAK,kBACH,OAAO,IAAYJ,QAAQxM,KAAKH,KAAO,IAAY2M,QAAQxM,KAAK4M,GAClE,IAAK,uBACL,KAAKF,GAEH,OAAOK,GAAOX,GAAavM,GAAIuM,GAAaQ,GAAIC,EAAQC,GAG5D,IAAIG,EAA0B,mBAAdD,EAChB,IAAKC,GAAa,EAAapN,GAAI,CAE/B,GADiB,EAAcA,KACZ,EAAc+M,GAAI,OAAO,EAC5C,GAAI/M,EAAE4K,SAAWmC,EAAEnC,QAAU5K,EAAE0M,aAAeK,EAAEL,WAAY,OAAO,EACnEU,GAAY,CAChB,CACA,IAAKA,EAAW,CACd,GAAgB,iBAALpN,GAA6B,iBAAL+M,EAAe,OAAO,EAIzD,IAAIM,EAAQrN,EAAE8L,YAAawB,EAAQP,EAAEjB,YACrC,GAAIuB,IAAUC,KAAW,EAAWD,IAAUA,aAAiBA,GACtC,EAAWC,IAAUA,aAAiBA,IACvC,gBAAiBtN,GAAK,gBAAiB+M,EAC7D,OAAO,CAEX,CAOAE,EAASA,GAAU,GAEnB,IADA,IAAIhL,GAFJ+K,EAASA,GAAU,IAEC/K,OACbA,KAGL,GAAI+K,EAAO/K,KAAYjC,EAAG,OAAOiN,EAAOhL,KAAY8K,EAQtD,GAJAC,EAAOhP,KAAKgC,GACZiN,EAAOjP,KAAK+O,GAGRK,EAAW,CAGb,IADAnL,EAASjC,EAAEiC,UACI8K,EAAE9K,OAAQ,OAAO,EAEhC,KAAOA,KACL,IAAK6K,GAAG9M,EAAEiC,GAAS8K,EAAE9K,GAAS+K,EAAQC,GAAS,OAAO,CAE1D,KAAO,CAEL,IAAqBjF,EAAjBoE,EAAQ,EAAKpM,GAGjB,GAFAiC,EAASmK,EAAMnK,OAEX,EAAK8K,GAAG9K,SAAWA,EAAQ,OAAO,EACtC,KAAOA,KAGL,IAAM4I,EAAIkC,EADV/E,EAAMoE,EAAMnK,MACS6K,GAAG9M,EAAEgI,GAAM+E,EAAE/E,GAAMgF,EAAQC,GAAU,OAAO,CAErE,CAIA,OAFAD,EAAOO,MACPN,EAAOM,OACA,CACT,CAGe,SAASC,GAAQxN,EAAG+M,GACjC,OAAOD,GAAG9M,EAAG+M,EACf,CCpIe,SAASU,GAAQ1F,GAC9B,IAAK2B,EAAS3B,GAAM,MAAO,GAC3B,IAAIpJ,EAAO,GACX,IAAK,IAAIqJ,KAAOD,EAAKpJ,EAAKX,KAAKgK,GAG/B,OADI,KAAYyD,EAAoB1D,EAAKpJ,GAClCA,CACT,CCJO,SAAS+O,GAAgBxJ,GAC9B,IAAIjC,EAAS,EAAUiC,GACvB,OAAO,SAAS6D,GACd,GAAW,MAAPA,EAAa,OAAO,EAExB,IAAIpJ,EAAO8O,GAAQ1F,GACnB,GAAI,EAAUpJ,GAAO,OAAO,EAC5B,IAAK,IAAIsB,EAAI,EAAGA,EAAIgC,EAAQhC,IAC1B,IAAK,EAAW8H,EAAI7D,EAAQjE,KAAM,OAAO,EAK3C,OAAOiE,IAAYyJ,KAAmB,EAAW5F,EAAI6F,IACvD,CACF,CAIA,IAAIA,GAAc,UAEdC,GAAa,CAAC,QAAS,UACvBC,GAAU,CAAC,MAFD,MAEiB,OAIpBC,GAAaF,GAAWG,OAAOJ,GAAaE,IACnDH,GAAiBE,GAAWG,OAAOF,IACnCG,GAAa,CAAC,OAAOD,OAAOH,GAAYD,GAR9B,OCxBC,GAAArD,EAASmD,GAAgBK,IAAc/D,EAAU,OCAjD,GAAAO,EAASmD,GAAgBC,IAAkB3D,EAAU,WCArD,GAAAO,EAASmD,GAAgBO,IAAcjE,EAAU,OCFjD,GAAAA,EAAU,WCCV,SAAS,GAAOjC,GAI7B,IAHA,IAAIqE,EAAQ,EAAKrE,GACb9F,EAASmK,EAAMnK,OACfiM,EAASxQ,MAAMuE,GACVhC,EAAI,EAAGA,EAAIgC,EAAQhC,IAC1BiO,EAAOjO,GAAK8H,EAAIqE,EAAMnM,IAExB,OAAOiO,CACT,CCPe,SAAS,GAAMnG,GAI5B,IAHA,IAAIqE,EAAQ,EAAKrE,GACb9F,EAASmK,EAAMnK,OACfkM,EAAQzQ,MAAMuE,GACThC,EAAI,EAAGA,EAAIgC,EAAQhC,IAC1BkO,EAAMlO,GAAK,CAACmM,EAAMnM,GAAI8H,EAAIqE,EAAMnM,KAElC,OAAOkO,CACT,CCTe,SAASC,GAAOrG,GAG7B,IAFA,IAAIsG,EAAS,CAAC,EACVjC,EAAQ,EAAKrE,GACR9H,EAAI,EAAGgC,EAASmK,EAAMnK,OAAQhC,EAAIgC,EAAQhC,IACjDoO,EAAOtG,EAAIqE,EAAMnM,KAAOmM,EAAMnM,GAEhC,OAAOoO,CACT,CCPe,SAASC,GAAUvG,GAChC,IAAIwG,EAAQ,GACZ,IAAK,IAAIvG,KAAOD,EACV,EAAWA,EAAIC,KAAOuG,EAAMvQ,KAAKgK,GAEvC,OAAOuG,EAAMjK,MACf,CCRe,SAASkK,GAAeC,EAAUC,GAC/C,OAAO,SAAS3G,GACd,IAAI9F,EAASU,UAAUV,OAEvB,GADIyM,IAAU3G,EAAMlK,OAAOkK,IACvB9F,EAAS,GAAY,MAAP8F,EAAa,OAAOA,EACtC,IAAK,IAAIyB,EAAQ,EAAGA,EAAQvH,EAAQuH,IAIlC,IAHA,IAAIT,OAASpG,UAAU6G,GACnB7K,EAAO8P,EAAS1F,QAChB7I,EAAIvB,EAAKsD,OACJhC,EAAI,EAAGA,EAAIC,EAAGD,IAAK,CAC1B,IAAI+H,EAAMrJ,EAAKsB,GACVyO,QAAyB,IAAb3G,EAAIC,KAAiBD,EAAIC,GAAOe,OAAOf,GAC1D,CAEF,OAAOD,CACT,CACF,CCbe,OAAAyG,GAAef,ICEf,GAAAe,GAAe,GCFf,GAAAA,GAAef,IAAS,GCKxB,SAASkB,GAAWhR,GACjC,IAAK+L,EAAS/L,GAAY,MAAO,CAAC,EAClC,GAAI,IAAc,OAAO,YAAaA,GACtC,IAAIiR,EAPG,WAAW,EAQlBA,EAAKjR,UAAYA,EACjB,IAAI0Q,EAAS,IAAIO,EAEjB,OADAA,EAAKjR,UAAY,KACV0Q,CACT,CCXe,SAASxP,GAAOlB,EAAWuF,GACxC,IAAImL,EAASM,GAAWhR,GAExB,OADIuF,GAAO2L,GAAUR,EAAQnL,GACtBmL,CACT,CCLe,SAASS,GAAM/G,GAC5B,OAAK2B,EAAS3B,GACPtJ,EAAQsJ,GAAOA,EAAI9J,QAAU8Q,GAAO,CAAC,EAAGhH,GADpBA,CAE7B,CCLe,SAASiH,GAAIjH,EAAKkH,GAE/B,OADAA,EAAYlH,GACLA,CACT,CCDe,SAASmH,GAAOC,MAC7B,OAAO1Q,EAAQ0Q,MAAQA,KAAO,CAACA,KACjC,CCFe,SAAS,GAAOA,MAC7B,OAAO9C,EAAE6C,OAAOC,KAClB,CCNe,SAASC,GAAQrH,EAAKoH,MAEnC,IADA,IAAIlN,EAASkN,KAAKlN,OACThC,EAAI,EAAGA,EAAIgC,EAAQhC,IAAK,CAC/B,GAAW,MAAP8H,EAAa,OACjBA,EAAMA,EAAIoH,KAAKlP,GACjB,CACA,OAAOgC,EAAS8F,OAAM,CACxB,CCAe,SAASpH,GAAI4G,OAAQ4H,KAAME,GACxC,IAAI1N,EAAQyN,GAAQ7H,OAAQ,GAAO4H,OACnC,OAAOvF,EAAYjI,GAAS0N,EAAe1N,CAC7C,CCLe,SAAS,GAAIoG,EAAKoH,MAG/B,IADA,IAAIlN,GADJkN,KAAO,GAAOA,OACIlN,OACThC,EAAI,EAAGA,EAAIgC,EAAQhC,IAAK,CAC/B,IAAI+H,EAAMmH,KAAKlP,GACf,IAAK,EAAK8H,EAAKC,GAAM,OAAO,EAC5BD,EAAMA,EAAIC,EACZ,CACA,QAAS/F,CACX,CCde,SAASqN,GAAS3N,GAC/B,OAAOA,CACT,CCEe,SAAS,GAAQyD,GAE9B,OADAA,EAAQyJ,GAAU,CAAC,EAAGzJ,GACf,SAAS2C,GACd,OAAOoE,EAAQpE,EAAK3C,EACtB,CACF,CCLe,SAASmK,GAASJ,MAE/B,OADAA,KAAO,GAAOA,MACP,SAASpH,GACd,OAAOqH,GAAQrH,EAAKoH,KACtB,CACF,CCPe,SAASK,GAAWpG,EAAMqG,EAASC,GAChD,QAAgB,IAAZD,EAAoB,OAAOrG,EAC/B,OAAoB,MAAZsG,EAAmB,EAAIA,GAC7B,KAAK,EAAG,OAAO,SAAS/N,GACtB,OAAOyH,EAAKjJ,KAAKsP,EAAS9N,EAC5B,EAEA,KAAK,EAAG,OAAO,SAASA,EAAO6H,EAAO6B,GACpC,OAAOjC,EAAKjJ,KAAKsP,EAAS9N,EAAO6H,EAAO6B,EAC1C,EACA,KAAK,EAAG,OAAO,SAASsE,EAAahO,EAAO6H,EAAO6B,GACjD,OAAOjC,EAAKjJ,KAAKsP,EAASE,EAAahO,EAAO6H,EAAO6B,EACvD,EAEF,OAAO,WACL,OAAOjC,EAAKvB,MAAM4H,EAAS9M,UAC7B,CACF,CCTe,SAASiN,GAAajO,EAAO8N,EAASC,GACnD,OAAa,MAAT/N,EAAsB2N,GACtB,EAAW3N,GAAe6N,GAAW7N,EAAO8N,EAASC,GACrDhG,EAAS/H,KAAWlD,EAAQkD,GAAe,GAAQA,GAChD4N,GAAS5N,EAClB,CCVe,SAAS,GAASA,EAAO8N,GACtC,OAAOG,GAAajO,EAAO8N,EAASI,IACtC,CCFe,SAASC,GAAGnO,EAAO8N,EAASC,GACzC,OAAIrD,EAAE0D,WAAa,GAAiB1D,EAAE0D,SAASpO,EAAO8N,GAC/CG,GAAajO,EAAO8N,EAASC,EACtC,CCJe,SAASM,GAAUjI,EAAKgI,EAAUN,GAC/CM,EAAWD,GAAGC,EAAUN,GAIxB,IAHA,IAAIrD,EAAQ,EAAKrE,GACb9F,EAASmK,EAAMnK,OACfoF,EAAU,CAAC,EACNmC,EAAQ,EAAGA,EAAQvH,EAAQuH,IAAS,CAC3C,IAAIyG,EAAa7D,EAAM5C,GACvBnC,EAAQ4I,GAAcF,EAAShI,EAAIkI,GAAaA,EAAYlI,EAC9D,CACA,OAAOV,CACT,CCde,SAAS6I,KAAO,CCGhB,SAASC,GAAWpI,GACjC,OAAW,MAAPA,EAAoBmI,GACjB,SAASf,MACd,OAAOxO,GAAIoH,EAAKoH,KAClB,CACF,CCNe,SAASiB,GAAMrQ,EAAGgQ,EAAUN,GACzC,IAAIY,EAAQ3S,MAAM8B,KAAK8J,IAAI,EAAGvJ,IAC9BgQ,EAAWP,GAAWO,EAAUN,EAAS,GACzC,IAAK,IAAIxP,EAAI,EAAGA,EAAIF,EAAGE,IAAKoQ,EAAMpQ,GAAK8P,EAAS9P,GAChD,OAAOoQ,CACT,CCPe,SAASC,GAAOC,EAAKjH,GAKlC,OAJW,MAAPA,IACFA,EAAMiH,EACNA,EAAM,GAEDA,EAAM/Q,KAAKgR,MAAMhR,KAAK8Q,UAAYhH,EAAMiH,EAAM,GACvD,ChBCAlE,EAAE6C,OAASA,GUCX7C,EAAE0D,SAAW,GORE,OAAAU,KAAA,gBACb,OAAO,IAAIA,MAAOC,SACpB,ECCe,SAASC,GAAcC,KACpC,IAAIC,EAAU,SAAS5K,GACrB,OAAO2K,IAAI3K,EACb,EAEI8C,OAAS,MAAQ,EAAK6H,KAAK1K,KAAK,KAAO,IACvC4K,EAAaC,OAAOhI,QACpBiI,EAAgBD,OAAOhI,OAAQ,KACnC,OAAO,SAASkI,GAEd,OADAA,EAAmB,MAAVA,EAAiB,GAAK,GAAKA,EAC7BH,EAAWvM,KAAK0M,GAAUA,EAAOrL,QAAQoL,EAAeH,GAAWI,CAC5E,CACF,CCfe,QACb,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,SACL,IAAK,UCHQ,GAAAN,GAAc,ICAd,GAAAA,GCAAvC,GAAO,KCAP,GAAA/B,EAAE6E,iBAAmB,CAClCC,SAAU,kBACVC,YAAa,mBACb7P,OAAQ,oBCAN8P,GAAU,OAIVC,GAAU,CACZ,IAAK,IACL,KAAM,KACN,KAAM,IACN,KAAM,IACN,SAAU,QACV,SAAU,SAGRC,GAAe,4BAEnB,SAASC,GAAWvL,GAClB,MAAO,KAAOqL,GAAQrL,EACxB,CAOA,IAAIwL,GAAiB,mBAMN,SAAS,GAASC,KAAMC,EAAUC,IAC1CD,GAAYC,IAAaD,EAAWC,GACzCD,EAAWjD,GAAS,CAAC,EAAGiD,EAAUtF,EAAE6E,kBAGpC,IAAIW,EAAUd,OAAO,EAClBY,EAASpQ,QAAU8P,IAAStI,QAC5B4I,EAASP,aAAeC,IAAStI,QACjC4I,EAASR,UAAYE,IAAStI,QAC/B7C,KAAK,KAAO,KAAM,KAGhBsD,EAAQ,EACRT,OAAS,SACb2I,KAAK9L,QAAQiM,GAAS,SAAS5L,EAAO1E,EAAQ6P,EAAaD,EAAUW,GAanE,OAZA/I,QAAU2I,KAAKzT,MAAMuL,EAAOsI,GAAQlM,QAAQ2L,GAAcC,IAC1DhI,EAAQsI,EAAS7L,EAAMhE,OAEnBV,EACFwH,QAAU,cAAgBxH,EAAS,iCAC1B6P,EACTrI,QAAU,cAAgBqI,EAAc,uBAC/BD,IACTpI,QAAU,OAASoI,EAAW,YAIzBlL,CACT,IACA8C,QAAU,OAEV,IAgBIrE,EAhBAqN,EAAWJ,EAASK,SACxB,GAAID,GAEF,IAAKN,GAAelN,KAAKwN,GAAW,MAAM,IAAI7P,MAC5C,sCAAwC6P,QAI1ChJ,OAAS,mBAAqBA,OAAS,MACvCgJ,EAAW,MAGbhJ,OAAS,4FAEPA,OAAS,gBAGX,IACErE,EAAS,IAAIlH,SAASuU,EAAU,IAAKhJ,OACvC,CAAE,MAAOnJ,GAEP,MADAA,EAAEmJ,OAASA,OACLnJ,CACR,CAEA,IAAIqS,SAAW,SAASvO,MACtB,OAAOgB,EAAOvE,KAAK0D,KAAMH,KAAM2I,EACjC,EAKA,OAFA4F,SAASlJ,OAAS,YAAcgJ,EAAW,OAAShJ,OAAS,IAEtDkJ,QACT,CC9Fe,SAAS,GAAOlK,EAAKoH,KAAM+C,GAExC,IAAIjQ,GADJkN,KAAO,GAAOA,OACIlN,OAClB,IAAKA,EACH,OAAO,EAAWiQ,GAAYA,EAAS/R,KAAK4H,GAAOmK,EAErD,IAAK,IAAIjS,EAAI,EAAGA,EAAIgC,EAAQhC,IAAK,CAC/B,IAAI+L,EAAc,MAAPjE,OAAc,EAASA,EAAIoH,KAAKlP,SAC9B,IAAT+L,IACFA,EAAOkG,EACPjS,EAAIgC,GAEN8F,EAAM,EAAWiE,GAAQA,EAAK7L,KAAK4H,GAAOiE,CAC5C,CACA,OAAOjE,CACT,CCnBA,IAAIoK,GAAY,EACD,SAASC,GAASC,GAC/B,IAAIC,IAAOH,GAAY,GACvB,OAAOE,EAASA,EAASC,EAAKA,CAChC,CCHe,SAASC,GAAMxK,GAC5B,IAAIyK,EAAWnG,EAAEtE,GAEjB,OADAyK,EAASC,QAAS,EACXD,CACT,CCDe,SAASE,GAAaC,EAAYC,EAAWnD,EAASoD,EAAgBpJ,GACnF,KAAMoJ,aAA0BD,GAAY,OAAOD,EAAW9K,MAAM4H,EAAShG,GAC7E,IAAInM,EAAOqR,GAAWgE,EAAWhV,WAC7B0Q,EAASsE,EAAW9K,MAAMvK,EAAMmM,GACpC,OAAIC,EAAS2E,GAAgBA,EACtB/Q,CACT,CCJA,IAAIwV,GAAU3J,GAAc,SAASC,EAAM2J,GACzC,IAAIC,EAAcF,GAAQE,YACtBC,EAAQ,WAGV,IAFA,IAAIC,EAAW,EAAGjR,EAAS8Q,EAAU9Q,OACjCwH,EAAO/L,MAAMuE,GACRhC,EAAI,EAAGA,EAAIgC,EAAQhC,IAC1BwJ,EAAKxJ,GAAK8S,EAAU9S,KAAO+S,EAAcrQ,UAAUuQ,KAAcH,EAAU9S,GAE7E,KAAOiT,EAAWvQ,UAAUV,QAAQwH,EAAKzL,KAAK2E,UAAUuQ,MACxD,OAAOR,GAAatJ,EAAM6J,EAAOpP,KAAMA,KAAM4F,EAC/C,EACA,OAAOwJ,CACT,IAEAH,GAAQE,YAAc3G,EACP,UCjBA,GAAAlD,GAAc,SAASC,EAAMqG,EAAShG,GACnD,IAAK,EAAWL,GAAO,MAAM,IAAI+J,UAAU,qCAC3C,IAAIF,EAAQ9J,GAAc,SAASiK,GACjC,OAAOV,GAAatJ,EAAM6J,EAAOxD,EAAS5L,KAAM4F,EAAKuE,OAAOoF,GAC9D,IACA,OAAOH,CACT,ICLe,GAAA9H,EAAwB,GCDxB,SAASkI,GAAQ9N,MAAO+N,EAAOC,EAAQC,QAEpD,GADAA,OAASA,QAAU,GACdF,GAAmB,IAAVA,GAEP,GAAIA,GAAS,EAClB,OAAOE,OAAOxF,OAAOzI,YAFrB+N,EAAQzD,IAKV,IADA,IAAI4D,EAAMD,OAAOvR,OACRhC,EAAI,EAAGgC,EAAS,EAAUsD,OAAQtF,EAAIgC,EAAQhC,IAAK,CAC1D,IAAI0B,EAAQ4D,MAAMtF,GAClB,GAAI,GAAY0B,KAAWlD,EAAQkD,IAAU,EAAYA,IAEvD,GAAI2R,EAAQ,EACVD,GAAQ1R,EAAO2R,EAAQ,EAAGC,EAAQC,QAClCC,EAAMD,OAAOvR,YAGb,IADA,IAAIyR,EAAI,EAAGC,EAAMhS,EAAMM,OAChByR,EAAIC,GAAKH,OAAOC,KAAS9R,EAAM+R,UAE9BH,IACVC,OAAOC,KAAS9R,EAEpB,CACA,OAAO6R,MACT,CCvBe,OAAArK,GAAc,SAASpB,EAAKpJ,GAEzC,IAAI6K,GADJ7K,EAAO0U,GAAQ1U,GAAM,GAAO,IACXsD,OACjB,GAAIuH,EAAQ,EAAG,MAAM,IAAItH,MAAM,yCAC/B,KAAOsH,KAAS,CACd,IAAIxB,EAAMrJ,EAAK6K,GACfzB,EAAIC,GAAO4L,GAAK7L,EAAIC,GAAMD,EAC5B,CACA,OAAOA,CACT,ICbe,SAAS,GAAQqB,EAAMyK,GACpC,IAAIC,EAAU,SAAS9L,GACrB,IAAI+L,EAAQD,EAAQC,MAChBC,QAAU,IAAMH,EAASA,EAAOhM,MAAMhE,KAAMlB,WAAaqF,GAE7D,OADK6C,EAAIkJ,EAAOC,WAAUD,EAAMC,SAAW5K,EAAKvB,MAAMhE,KAAMlB,YACrDoR,EAAMC,QACf,EAEA,OADAF,EAAQC,MAAQ,CAAC,EACVD,CACT,CCRe,OAAA3K,GAAc,SAASC,EAAM6K,EAAMxK,GAChD,OAAOhH,YAAW,WAChB,OAAO2G,EAAKvB,MAAM,KAAM4B,EAC1B,GAAGwK,EACL,ICFe,MAAQC,GAAO7H,EAAG,GCClB,SAAS8H,GAAS/K,EAAM6K,EAAMxP,GAC3C,IAAI2P,EAAS3E,EAAShG,EAAM4E,EACxBgG,EAAW,EACV5P,IAASA,EAAU,CAAC,GAEzB,IAAI6P,EAAQ,WACVD,GAA+B,IAApB5P,EAAQ8P,QAAoB,EAAIC,KAC3CJ,EAAU,KACV/F,EAASjF,EAAKvB,MAAM4H,EAAShG,GACxB2K,IAAS3E,EAAUhG,EAAO,KACjC,EAEIgL,EAAY,WACd,IAAIC,EAAOF,KACNH,IAAgC,IAApB5P,EAAQ8P,UAAmBF,EAAWK,GACvD,IAAIC,EAAYV,GAAQS,EAAOL,GAc/B,OAbA5E,EAAU5L,KACV4F,EAAO9G,UACHgS,GAAa,GAAKA,EAAYV,GAC5BG,IACFQ,aAAaR,GACbA,EAAU,MAEZC,EAAWK,EACXrG,EAASjF,EAAKvB,MAAM4H,EAAShG,GACxB2K,IAAS3E,EAAUhG,EAAO,OACrB2K,IAAgC,IAArB3P,EAAQoQ,WAC7BT,EAAU3R,WAAW6R,EAAOK,IAEvBtG,CACT,EAQA,OANAoG,EAAUK,OAAS,WACjBF,aAAaR,GACbC,EAAW,EACXD,EAAU3E,EAAUhG,EAAO,IAC7B,EAEOgL,CACT,CCvCe,SAASM,GAAS3L,EAAM6K,EAAMe,GAC3C,IAAIZ,EAASC,EAAU5K,EAAM4E,EAAQoB,EAEjC6E,EAAQ,WACV,IAAIW,EAAST,KAAQH,EACjBJ,EAAOgB,EACTb,EAAU3R,WAAW6R,EAAOL,EAAOgB,IAEnCb,EAAU,KACLY,IAAW3G,EAASjF,EAAKvB,MAAM4H,EAAShG,IAExC2K,IAAS3K,EAAOgG,EAAU,MAEnC,EAEIyF,EAAY/L,GAAc,SAASgM,GAQrC,OAPA1F,EAAU5L,KACV4F,EAAO0L,EACPd,EAAWG,KACNJ,IACHA,EAAU3R,WAAW6R,EAAOL,GACxBe,IAAW3G,EAASjF,EAAKvB,MAAM4H,EAAShG,KAEvC4E,CACT,IAOA,OALA6G,EAAUJ,OAAS,WACjBF,aAAaR,GACbA,EAAU3K,EAAOgG,EAAU,IAC7B,EAEOyF,CACT,CClCe,SAASE,GAAKhM,EAAMiM,GACjC,OAAO,GAAQA,EAASjM,EAC1B,CCNe,SAASkM,GAAOC,GAC7B,OAAO,WACL,OAAQA,EAAU1N,MAAMhE,KAAMlB,UAChC,CACF,CCHe,SAAS6S,KACtB,IAAI/L,EAAO9G,UACP8S,EAAQhM,EAAKxH,OAAS,EAC1B,OAAO,WAGL,IAFA,IAAIhC,EAAIwV,EACJpH,EAAS5E,EAAKgM,GAAO5N,MAAMhE,KAAMlB,WAC9B1C,KAAKoO,EAAS5E,EAAKxJ,GAAGE,KAAK0D,KAAMwK,GACxC,OAAOA,CACT,CACF,CCVe,SAASqH,GAAMtF,EAAOhH,GACnC,OAAO,WACL,KAAMgH,EAAQ,EACZ,OAAOhH,EAAKvB,MAAMhE,KAAMlB,UAE5B,CACF,CCLe,SAASgT,GAAOvF,EAAOhH,GACpC,IAAIwM,EACJ,OAAO,WAKL,QAJMxF,EAAQ,IACZwF,EAAOxM,EAAKvB,MAAMhE,KAAMlB,YAEtByN,GAAS,IAAGhH,EAAO,MAChBwM,CACT,CACF,CCNe,UAAQD,GAAQ,GCDhB,SAASE,GAAQ9N,EAAKwN,EAAW9F,GAC9C8F,EAAYzF,GAAGyF,EAAW9F,GAE1B,IADA,IAAuBzH,EAAnBoE,EAAQ,EAAKrE,GACR9H,EAAI,EAAGgC,EAASmK,EAAMnK,OAAQhC,EAAIgC,EAAQhC,IAEjD,GAAIsV,EAAUxN,EADdC,EAAMoE,EAAMnM,IACY+H,EAAKD,GAAM,OAAOC,CAE9C,CCPe,SAAS8N,GAA2BC,GACjD,OAAO,SAASC,EAAOT,EAAW9F,GAChC8F,EAAYzF,GAAGyF,EAAW9F,GAG1B,IAFA,IAAIxN,EAAS,EAAU+T,GACnBxM,EAAQuM,EAAM,EAAI,EAAI9T,EAAS,EAC5BuH,GAAS,GAAKA,EAAQvH,EAAQuH,GAASuM,EAC5C,GAAIR,EAAUS,EAAMxM,GAAQA,EAAOwM,GAAQ,OAAOxM,EAEpD,OAAQ,CACV,CACF,CCXe,OAAAsM,GAA2B,GCA3B,GAAAA,IAA4B,GCE5B,SAAS,GAAYE,EAAOjO,EAAKgI,EAAUN,GAIxD,IAFA,IAAI9N,GADJoO,EAAWD,GAAGC,EAAUN,EAAS,IACZ1H,GACjBkO,EAAM,EAAGC,EAAO,EAAUF,GACvBC,EAAMC,GAAM,CACjB,IAAIC,EAAM3W,KAAKgR,OAAOyF,EAAMC,GAAQ,GAChCnG,EAASiG,EAAMG,IAAQxU,EAAOsU,EAAME,EAAM,EAAQD,EAAOC,CAC/D,CACA,OAAOF,CACT,CCTe,SAASG,GAAkBL,EAAKM,EAAeC,GAC5D,OAAO,SAASN,EAAOrN,EAAM8K,GAC3B,IAAIxT,EAAI,EAAGgC,EAAS,EAAU+T,GAC9B,GAAkB,iBAAPvC,EACLsC,EAAM,EACR9V,EAAIwT,GAAO,EAAIA,EAAMjU,KAAK8J,IAAImK,EAAMxR,EAAQhC,GAE5CgC,EAASwR,GAAO,EAAIjU,KAAK+Q,IAAIkD,EAAM,EAAGxR,GAAUwR,EAAMxR,EAAS,OAE5D,GAAIqU,GAAe7C,GAAOxR,EAE/B,OAAO+T,EADPvC,EAAM6C,EAAYN,EAAOrN,MACHA,EAAO8K,GAAO,EAEtC,GAAI9K,GAASA,EAEX,OADA8K,EAAM4C,EAAc,IAAMlW,KAAK6V,EAAO/V,EAAGgC,GAAS,KACpC,EAAIwR,EAAMxT,GAAK,EAE/B,IAAKwT,EAAMsC,EAAM,EAAI9V,EAAIgC,EAAS,EAAGwR,GAAO,GAAKA,EAAMxR,EAAQwR,GAAOsC,EACpE,GAAIC,EAAMvC,KAAS9K,EAAM,OAAO8K,EAElC,OAAQ,CACV,CACF,CCnBe,OAAA2C,GAAkB,EAAGG,GAAW,ICHhC,GAAAH,IAAmB,EAAGI,ICAtB,SAAS9N,GAAKX,EAAKwN,EAAW9F,GAC3C,IACIzH,GADY,GAAYD,GAAOwO,GAAYV,IAC3B9N,EAAKwN,EAAW9F,GACpC,QAAY,IAARzH,IAA2B,IAATA,EAAY,OAAOD,EAAIC,EAC/C,CCJe,SAASyO,GAAU1O,EAAK3C,GACrC,OAAOsD,GAAKX,EAAK,GAAQ3C,GAC3B,CCCe,SAASsR,GAAK3O,EAAKgI,EAAUN,GAE1C,IAAIxP,EAAGgC,EACP,GAFA8N,EAAWP,GAAWO,EAAUN,GAE5B,GAAY1H,GACd,IAAK9H,EAAI,EAAGgC,EAAS8F,EAAI9F,OAAQhC,EAAIgC,EAAQhC,IAC3C8P,EAAShI,EAAI9H,GAAIA,EAAG8H,OAEjB,CACL,IAAIqE,EAAQ,EAAKrE,GACjB,IAAK9H,EAAI,EAAGgC,EAASmK,EAAMnK,OAAQhC,EAAIgC,EAAQhC,IAC7C8P,EAAShI,EAAIqE,EAAMnM,IAAKmM,EAAMnM,GAAI8H,EAEtC,CACA,OAAOA,CACT,CCjBe,SAAS,GAAIA,EAAKgI,EAAUN,GACzCM,EAAWD,GAAGC,EAAUN,GAIxB,IAHA,IAAIrD,GAAS,GAAYrE,IAAQ,EAAKA,GAClC9F,GAAUmK,GAASrE,GAAK9F,OACxBoF,EAAU3J,MAAMuE,GACXuH,EAAQ,EAAGA,EAAQvH,EAAQuH,IAAS,CAC3C,IAAIyG,EAAa7D,EAAQA,EAAM5C,GAASA,EACxCnC,EAAQmC,GAASuG,EAAShI,EAAIkI,GAAaA,EAAYlI,EACzD,CACA,OAAOV,CACT,CCVe,SAASsP,GAAaZ,GAkBnC,OAAO,SAAShO,EAAKgI,EAAU6F,EAAMnG,GACnC,IAAImH,EAAUjU,UAAUV,QAAU,EAClC,OAjBY,SAAS8F,EAAKgI,EAAU6F,EAAMgB,GAC1C,IAAIxK,GAAS,GAAYrE,IAAQ,EAAKA,GAClC9F,GAAUmK,GAASrE,GAAK9F,OACxBuH,EAAQuM,EAAM,EAAI,EAAI9T,EAAS,EAKnC,IAJK2U,IACHhB,EAAO7N,EAAIqE,EAAQA,EAAM5C,GAASA,GAClCA,GAASuM,GAEJvM,GAAS,GAAKA,EAAQvH,EAAQuH,GAASuM,EAAK,CACjD,IAAI9F,EAAa7D,EAAQA,EAAM5C,GAASA,EACxCoM,EAAO7F,EAAS6F,EAAM7N,EAAIkI,GAAaA,EAAYlI,EACrD,CACA,OAAO6N,CACT,CAISiB,CAAQ9O,EAAKyH,GAAWO,EAAUN,EAAS,GAAImG,EAAMgB,EAC9D,CACF,CCvBe,OAAAD,GAAa,GCDb,GAAAA,IAAc,GCCd,SAASvQ,OAAO2B,EAAKwN,EAAW9F,GAC7C,IAAIpI,EAAU,GAKd,OAJAkO,EAAYzF,GAAGyF,EAAW9F,GAC1BiH,GAAK3O,GAAK,SAASpG,EAAO6H,EAAOsN,GAC3BvB,EAAU5T,EAAO6H,EAAOsN,IAAOzP,EAAQrJ,KAAK2D,EAClD,IACO0F,CACT,CCNe,SAAS0P,GAAOhP,EAAKwN,EAAW9F,GAC7C,OAAOrJ,OAAO2B,EAAKuN,GAAOxF,GAAGyF,IAAa9F,EAC5C,CCFe,SAASuH,GAAMjP,EAAKwN,EAAW9F,GAC5C8F,EAAYzF,GAAGyF,EAAW9F,GAG1B,IAFA,IAAIrD,GAAS,GAAYrE,IAAQ,EAAKA,GAClC9F,GAAUmK,GAASrE,GAAK9F,OACnBuH,EAAQ,EAAGA,EAAQvH,EAAQuH,IAAS,CAC3C,IAAIyG,EAAa7D,EAAQA,EAAM5C,GAASA,EACxC,IAAK+L,EAAUxN,EAAIkI,GAAaA,EAAYlI,GAAM,OAAO,CAC3D,CACA,OAAO,CACT,CCTe,SAASkP,GAAKlP,EAAKwN,EAAW9F,GAC3C8F,EAAYzF,GAAGyF,EAAW9F,GAG1B,IAFA,IAAIrD,GAAS,GAAYrE,IAAQ,EAAKA,GAClC9F,GAAUmK,GAASrE,GAAK9F,OACnBuH,EAAQ,EAAGA,EAAQvH,EAAQuH,IAAS,CAC3C,IAAIyG,EAAa7D,EAAQA,EAAM5C,GAASA,EACxC,GAAI+L,EAAUxN,EAAIkI,GAAaA,EAAYlI,GAAM,OAAO,CAC1D,CACA,OAAO,CACT,CCTe,SAAS4D,GAAS5D,EAAKY,EAAMuO,EAAWC,GAGrD,OAFK,GAAYpP,KAAMA,EAAM,GAAOA,KACZ,iBAAbmP,GAAyBC,KAAOD,EAAY,GAChDE,GAAQrP,EAAKY,EAAMuO,IAAc,CAC1C,CCFe,OAAA/N,GAAc,SAASpB,EAAKoH,KAAM1F,GAC/C,IAAI4N,EAAajO,EAQjB,OAPI,EAAW+F,MACb/F,EAAO+F,MAEPA,KAAO,GAAOA,MACdkI,EAAclI,KAAKlR,MAAM,GAAI,GAC7BkR,KAAOA,KAAKA,KAAKlN,OAAS,IAErB,GAAI8F,GAAK,SAAS0H,GACvB,IAAI6H,EAASlO,EACb,IAAKkO,EAAQ,CAIX,GAHID,GAAeA,EAAYpV,SAC7BwN,EAAUL,GAAQK,EAAS4H,IAEd,MAAX5H,EAAiB,OACrB6H,EAAS7H,EAAQN,KACnB,CACA,OAAiB,MAAVmI,EAAiBA,EAASA,EAAOzP,MAAM4H,EAAShG,EACzD,GACF,ICvBe,SAAS8N,GAAMxP,EAAKC,GACjC,OAAO,GAAID,EAAKwH,GAASvH,GAC3B,CCDe,SAASwP,GAAMzP,EAAK3C,GACjC,OAAOgB,OAAO2B,EAAK,GAAQ3C,GAC7B,CCDe,SAASkE,GAAIvB,EAAKgI,EAAUN,GACzC,IACI9N,EAAOqC,EADPqK,GAAUwB,IAAU4H,GAAgB5H,IAExC,GAAgB,MAAZE,GAAwC,iBAAZA,GAAyC,iBAAVhI,EAAI,IAAyB,MAAPA,EAEnF,IAAK,IAAI9H,EAAI,EAAGgC,GADhB8F,EAAM,GAAYA,GAAOA,EAAM,GAAOA,IACT9F,OAAQhC,EAAIgC,EAAQhC,IAElC,OADb0B,EAAQoG,EAAI9H,KACS0B,EAAQ0M,IAC3BA,EAAS1M,QAIboO,EAAWD,GAAGC,EAAUN,GACxBiH,GAAK3O,GAAK,SAAS2P,EAAGlO,EAAOsN,KAC3B9S,EAAW+L,EAAS2H,EAAGlO,EAAOsN,IACfW,GAAiBzT,KAAc6L,KAAYxB,KAAYwB,OACpExB,EAASqJ,EACTD,EAAezT,EAEnB,IAEF,OAAOqK,CACT,CCtBe,SAASkC,GAAIxI,EAAKgI,EAAUN,GACzC,IACI9N,EAAOqC,EADPqK,EAASwB,IAAU4H,EAAe5H,IAEtC,GAAgB,MAAZE,GAAwC,iBAAZA,GAAyC,iBAAVhI,EAAI,IAAyB,MAAPA,EAEnF,IAAK,IAAI9H,EAAI,EAAGgC,GADhB8F,EAAM,GAAYA,GAAOA,EAAM,GAAOA,IACT9F,OAAQhC,EAAIgC,EAAQhC,IAElC,OADb0B,EAAQoG,EAAI9H,KACS0B,EAAQ0M,IAC3BA,EAAS1M,QAIboO,EAAWD,GAAGC,EAAUN,GACxBiH,GAAK3O,GAAK,SAAS2P,EAAGlO,EAAOsN,KAC3B9S,EAAW+L,EAAS2H,EAAGlO,EAAOsN,IACfW,GAAiBzT,IAAa6L,KAAYxB,IAAWwB,OAClExB,EAASqJ,EACTD,EAAezT,EAEnB,IAEF,OAAOqK,CACT,CCnBA,IAAIsJ,GAAc,mEACH,SAASC,GAAQ7P,GAC9B,OAAKA,EACDtJ,EAAQsJ,GAAa,IAAM5H,KAAK4H,GAChCmE,EAASnE,GAEJA,EAAI9B,MAAM0R,IAEf,GAAY5P,GAAa,GAAIA,EAAKuH,IAC/B,GAAOvH,GAPG,EAQnB,CCTe,SAAS,GAAOA,EAAKhI,EAAGoX,GACrC,GAAS,MAALpX,GAAaoX,EAEf,OADK,GAAYpP,KAAMA,EAAM,GAAOA,IAC7BA,EAAIuI,GAAOvI,EAAI9F,OAAS,IAEjC,IAAI4V,EAASD,GAAQ7P,GACjB9F,EAAS,EAAU4V,GACvB9X,EAAIP,KAAK8J,IAAI9J,KAAK+Q,IAAIxQ,EAAGkC,GAAS,GAElC,IADA,IAAI6V,EAAO7V,EAAS,EACXuH,EAAQ,EAAGA,EAAQzJ,EAAGyJ,IAAS,CACtC,IAAIuO,EAAOzH,GAAO9G,EAAOsO,GACrBE,EAAOH,EAAOrO,GAClBqO,EAAOrO,GAASqO,EAAOE,GACvBF,EAAOE,GAAQC,CACjB,CACA,OAAOH,EAAO5Z,MAAM,EAAG8B,EACzB,CCvBe,SAASkY,GAAQlQ,GAC9B,OAAO,GAAOA,EAAK8H,IACrB,CCAe,SAASqI,GAAOnQ,EAAKgI,EAAUN,GAC5C,IAAIjG,EAAQ,EAEZ,OADAuG,EAAWD,GAAGC,EAAUN,GACjB8H,GAAM,GAAIxP,GAAK,SAASpG,EAAOqG,EAAK8O,GACzC,MAAO,CACLnV,MAAOA,EACP6H,MAAOA,IACP2O,SAAUpI,EAASpO,EAAOqG,EAAK8O,GAEnC,IAAGxS,MAAK,SAAS8T,EAAMC,GACrB,IAAIrY,EAAIoY,EAAKD,SACTpL,EAAIsL,EAAMF,SACd,GAAInY,IAAM+M,EAAG,CACX,GAAI/M,EAAI+M,QAAW,IAAN/M,EAAc,OAAO,EAClC,GAAIA,EAAI+M,QAAW,IAANA,EAAc,OAAQ,CACrC,CACA,OAAOqL,EAAK5O,MAAQ6O,EAAM7O,KAC5B,IAAI,QACN,CCnBe,SAAS8O,GAAMC,EAAUC,GACtC,OAAO,SAASzQ,EAAKgI,EAAUN,GAC7B,IAAIpB,EAASmK,EAAY,CAAC,GAAI,IAAM,CAAC,EAMrC,OALAzI,EAAWD,GAAGC,EAAUN,GACxBiH,GAAK3O,GAAK,SAASpG,EAAO6H,GACxB,IAAIxB,EAAM+H,EAASpO,EAAO6H,EAAOzB,GACjCwQ,EAASlK,EAAQ1M,EAAOqG,EAC1B,IACOqG,CACT,CACF,CCTe,OAAAiK,IAAM,SAASjK,EAAQ1M,EAAOqG,GACvC6C,EAAIwD,EAAQrG,GAAMqG,EAAOrG,GAAKhK,KAAK2D,GAAa0M,EAAOrG,GAAO,CAACrG,EACrE,ICHe,GAAA2W,IAAM,SAASjK,EAAQ1M,EAAOqG,GAC3CqG,EAAOrG,GAAOrG,CAChB,ICAe,GAAA2W,IAAM,SAASjK,EAAQ1M,EAAOqG,GACvC6C,EAAIwD,EAAQrG,GAAMqG,EAAOrG,KAAaqG,EAAOrG,GAAO,CAC1D,ICJe,GAAAsQ,IAAM,SAASjK,EAAQ1M,EAAO8W,GAC3CpK,EAAOoK,EAAO,EAAI,GAAGza,KAAK2D,EAC5B,IAAG,GCFY,SAAS+W,GAAK3Q,GAC3B,OAAW,MAAPA,EAAoB,EACjB,GAAYA,GAAOA,EAAI9F,OAAS,EAAK8F,GAAK9F,MACnD,CCLe,SAAS0W,GAAShX,EAAOqG,EAAKD,GAC3C,OAAOC,KAAOD,CAChB,CCIe,OAAAoB,GAAc,SAASpB,EAAKpJ,GACzC,IAAI0P,EAAS,CAAC,EAAG0B,EAAWpR,EAAK,GACjC,GAAW,MAAPoJ,EAAa,OAAOsG,EACpB,EAAW0B,IACTpR,EAAKsD,OAAS,IAAG8N,EAAWP,GAAWO,EAAUpR,EAAK,KAC1DA,EAAO8O,GAAQ1F,KAEfgI,EAAW4I,GACXha,EAAO0U,GAAQ1U,GAAM,GAAO,GAC5BoJ,EAAMlK,OAAOkK,IAEf,IAAK,IAAI9H,EAAI,EAAGgC,EAAStD,EAAKsD,OAAQhC,EAAIgC,EAAQhC,IAAK,CACrD,IAAI+H,EAAMrJ,EAAKsB,GACX0B,EAAQoG,EAAIC,GACZ+H,EAASpO,EAAOqG,EAAKD,KAAMsG,EAAOrG,GAAOrG,EAC/C,CACA,OAAO0M,CACT,IChBe,GAAAlF,GAAc,SAASpB,EAAKpJ,GACzC,IAAwB8Q,EAApBM,EAAWpR,EAAK,GAUpB,OATI,EAAWoR,IACbA,EAAWuF,GAAOvF,GACdpR,EAAKsD,OAAS,IAAGwN,EAAU9Q,EAAK,MAEpCA,EAAO,GAAI0U,GAAQ1U,GAAM,GAAO,GAAQwE,QACxC4M,EAAW,SAASpO,EAAOqG,GACzB,OAAQ2D,GAAShN,EAAMqJ,EACzB,GAEK4Q,GAAK7Q,EAAKgI,EAAUN,EAC7B,IChBe,SAAS,GAAQuG,EAAOjW,EAAGoX,GACxC,OAAO,IAAMhX,KAAK6V,EAAO,EAAGxW,KAAK8J,IAAI,EAAG0M,EAAM/T,QAAe,MAALlC,GAAaoX,EAAQ,EAAIpX,IACnF,CCHe,SAAS8Y,GAAM7C,EAAOjW,EAAGoX,GACtC,OAAa,MAATnB,GAAiBA,EAAM/T,OAAS,EAAe,MAALlC,GAAaoX,OAAQ,EAAS,GACnE,MAALpX,GAAaoX,EAAcnB,EAAM,GAC9B,GAAQA,EAAOA,EAAM/T,OAASlC,EACvC,CCHe,SAAS,GAAKiW,EAAOjW,EAAGoX,GACrC,OAAO,IAAMhX,KAAK6V,EAAY,MAALjW,GAAaoX,EAAQ,EAAIpX,EACpD,CCHe,SAAS,GAAKiW,EAAOjW,EAAGoX,GACrC,OAAa,MAATnB,GAAiBA,EAAM/T,OAAS,EAAe,MAALlC,GAAaoX,OAAQ,EAAS,GACnE,MAALpX,GAAaoX,EAAcnB,EAAMA,EAAM/T,OAAS,GAC7C,GAAK+T,EAAOxW,KAAK8J,IAAI,EAAG0M,EAAM/T,OAASlC,GAChD,CCLe,SAAS+Y,GAAQ9C,GAC9B,OAAO5P,OAAO4P,EAAOxS,QACvB,CCDe,SAAS,GAAQwS,EAAO1C,GACrC,OAAO,GAAS0C,EAAO1C,GAAO,EAChC,CCCe,OAAAnK,GAAc,SAAS6M,EAAOzM,GAE3C,OADAA,EAAO8J,GAAQ9J,GAAM,GAAM,GACpBnD,OAAO4P,GAAO,SAASrU,GAC5B,OAAQgK,GAASpC,EAAM5H,EACzB,GACF,ICRe,GAAAwH,GAAc,SAAS6M,EAAO+C,GAC3C,OAAOC,GAAWhD,EAAO+C,EAC3B,ICIe,SAASE,GAAKjD,EAAOkD,EAAUnJ,EAAUN,GACjD5F,EAAUqP,KACbzJ,EAAUM,EACVA,EAAWmJ,EACXA,GAAW,GAEG,MAAZnJ,IAAkBA,EAAWD,GAAGC,EAAUN,IAG9C,IAFA,IAAIpB,EAAS,GACT8K,EAAO,GACFlZ,EAAI,EAAGgC,EAAS,EAAU+T,GAAQ/V,EAAIgC,EAAQhC,IAAK,CAC1D,IAAI0B,EAAQqU,EAAM/V,GACd+D,EAAW+L,EAAWA,EAASpO,EAAO1B,EAAG+V,GAASrU,EAClDuX,IAAanJ,GACV9P,GAAKkZ,IAASnV,GAAUqK,EAAOrQ,KAAK2D,GACzCwX,EAAOnV,GACE+L,EACJpE,GAASwN,EAAMnV,KAClBmV,EAAKnb,KAAKgG,GACVqK,EAAOrQ,KAAK2D,IAEJgK,GAAS0C,EAAQ1M,IAC3B0M,EAAOrQ,KAAK2D,EAEhB,CACA,OAAO0M,CACT,CC7Be,OAAAlF,GAAc,SAASiQ,GACpC,OAAOH,GAAK5F,GAAQ+F,GAAQ,GAAM,GACpC,ICHe,SAASC,GAAarD,GAGnC,IAFA,IAAI3H,EAAS,GACTiL,EAAa3W,UAAUV,OAClBhC,EAAI,EAAGgC,EAAS,EAAU+T,GAAQ/V,EAAIgC,EAAQhC,IAAK,CAC1D,IAAI0I,EAAOqN,EAAM/V,GACjB,IAAI0L,GAAS0C,EAAQ1F,GAArB,CACA,IAAI+K,EACJ,IAAKA,EAAI,EAAGA,EAAI4F,GACT3N,GAAShJ,UAAU+Q,GAAI/K,GADF+K,KAGxBA,IAAM4F,GAAYjL,EAAOrQ,KAAK2K,EALE,CAMtC,CACA,OAAO0F,CACT,CCZe,SAASkL,GAAMvD,GAI5B,IAHA,IAAI/T,EAAU+T,GAAS1M,GAAI0M,EAAO,GAAW/T,QAAW,EACpDoM,EAAS3Q,MAAMuE,GAEVuH,EAAQ,EAAGA,EAAQvH,EAAQuH,IAClC6E,EAAO7E,GAAS+N,GAAMvB,EAAOxM,GAE/B,OAAO6E,CACT,CCTe,OAAAlF,EAAcoQ,ICAd,SAAS,GAAOzC,EAAM5I,GAEnC,IADA,IAAIG,EAAS,CAAC,EACLpO,EAAI,EAAGgC,EAAS,EAAU6U,GAAO7W,EAAIgC,EAAQhC,IAChDiO,EACFG,EAAOyI,EAAK7W,IAAMiO,EAAOjO,GAEzBoO,EAAOyI,EAAK7W,GAAG,IAAM6W,EAAK7W,GAAG,GAGjC,OAAOoO,CACT,CCZe,SAASmL,GAAM/D,EAAOgE,EAAMC,GAC7B,MAARD,IACFA,EAAOhE,GAAS,EAChBA,EAAQ,GAELiE,IACHA,EAAOD,EAAOhE,GAAS,EAAI,GAM7B,IAHA,IAAIxT,EAASzC,KAAK8J,IAAI9J,KAAKma,MAAMF,EAAOhE,GAASiE,GAAO,GACpDF,EAAQ9b,MAAMuE,GAETwR,EAAM,EAAGA,EAAMxR,EAAQwR,IAAOgC,GAASiE,EAC9CF,EAAM/F,GAAOgC,EAGf,OAAO+D,CACT,CChBe,SAASI,GAAM5D,EAAO6D,GACnC,GAAa,MAATA,GAAiBA,EAAQ,EAAG,MAAO,GAGvC,IAFA,IAAIxL,EAAS,GACTpO,EAAI,EAAGgC,EAAS+T,EAAM/T,OACnBhC,EAAIgC,GACToM,EAAOrQ,KAAK,IAAMmC,KAAK6V,EAAO/V,EAAGA,GAAK4Z,IAExC,OAAOxL,CACT,CCTe,SAASyL,GAAYtH,EAAUzK,GAC5C,OAAOyK,EAASC,OAASpG,EAAEtE,GAAKwK,QAAUxK,CAC5C,CCEe,SAASgS,GAAMhS,GAS5B,OARA2O,GAAKpI,GAAUvG,IAAM,SAASlF,GAC5B,IAAIuG,EAAOiD,EAAExJ,GAAQkF,EAAIlF,GACzBwJ,EAAE1O,UAAUkF,GAAQ,WAClB,IAAI4G,EAAO,CAAC5F,KAAKyI,UAEjB,OADA,IAAKzE,MAAM4B,EAAM9G,WACVmX,GAAYjW,KAAMuF,EAAKvB,MAAMwE,EAAG5C,GACzC,CACF,IACO4C,CACT,CCXAqK,GAAK,CAAC,MAAO,OAAQ,UAAW,QAAS,OAAQ,SAAU,YAAY,SAAS7T,GAC9E,IAAIyU,EAAS,IAAWzU,GACxBwJ,EAAE1O,UAAUkF,GAAQ,WAClB,IAAIkF,EAAMlE,KAAKyI,SAOf,OANW,MAAPvE,IACFuP,EAAOzP,MAAME,EAAKpF,WACJ,UAATE,GAA6B,WAATA,GAAqC,IAAfkF,EAAI9F,eAC1C8F,EAAI,IAGR+R,GAAYjW,KAAMkE,EAC3B,CACF,IAGA2O,GAAK,CAAC,SAAU,OAAQ,UAAU,SAAS7T,GACzC,IAAIyU,EAAS,IAAWzU,GACxBwJ,EAAE1O,UAAUkF,GAAQ,WAClB,IAAIkF,EAAMlE,KAAKyI,SAEf,OADW,MAAPvE,IAAaA,EAAMuP,EAAOzP,MAAME,EAAKpF,YAClCmX,GAAYjW,KAAMkE,EAC3B,CACF,IAEe,SCRX,GAAIgS,GAAM,GAEd,GAAE1N,EAAI,GAES,S,oCCxBf,IAAI2N,EAAU,CAEdA,YAAsB,CACpBnX,KAAM,eACN0F,UAAW,CAET,KACA,KACA,KACA,KACA,OAIJyR,aAAuB,CACrBnX,KAAM,gBACN0F,UAAW,CAET,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,OAIJyR,cAAwB,CACtBnX,KAAM,iBACN0F,UAAW,CAET,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,OAIJyR,SAAmB,CACjBnX,KAAM,YACN0F,UAAW,CAET,KACA,KACA,KACA,KACA,KACA,KACA,KACA,OAIJyR,YAAsB,CACpBnX,KAAM,eACN0F,UAAW,CAET,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,OAIJyR,cAAwB,CACtBnX,KAAM,kBACN0F,UAAW,CAET,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,OAIJyR,YAAsB,CACpBnX,KAAM,eACN0F,UAAW,CAET,KACA,KACA,KACA,KACA,KACA,KACA,OAIJyR,eAAyB,CACvBnX,KAAM,kBACN0F,UAAW,CAET,KACA,KACA,KACA,KACA,OAIJyR,WAAqB,CACnBnX,KAAM,cACN0F,UAAW,CAET,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,OAIJyR,WAAqB,CACnBnX,KAAM,cACN0F,UAAW,CAET,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,OAIJyR,eAAyB,CACvBnX,KAAM,kBACN0F,UAAW,CAET,KACA,KACA,KACA,KACA,KACA,KACA,OAIJyR,gBAA0B,CACxBnX,KAAM,mBACN0F,UAAW,CAET,KACA,KACA,KACA,KACA,KACA,OAIJyR,UAAoB,CAClBnX,KAAM,YACN0F,UAAW,CAET,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,OAIJyR,aAAuB,CACrBnX,KAAM,gBACN0F,UAAW,CAET,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,OAIJyR,UAAoB,CAClBnX,KAAM,YACN0F,UAAW,CAET,KACA,KACA,KACA,KACA,OAIJyR,eAAyB,CACvBnX,KAAM,kBACN0F,UAAW,CAET,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,OAIJyR,eAAyB,CACvBnX,KAAM,kBACN0F,UAAW,CAET,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,OAIJyR,cAAwB,CACtBnX,KAAM,iBACN0F,UAAW,CAET,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,OAIJyR,cAAwB,CACtBnX,KAAM,iBACN0F,UAAW,CAET,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,OAIJyR,UAAoB,CAClBnX,KAAM,YACN0F,UAAW,CAET,KACA,KACA,OAIJyR,UAAoB,CAClBnX,KA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CG,CAAChkB,EAAS,CAACghB,EAAM,WAAY,CAChC,+BACG,CAAChhB,EAAS,CAACghB,EAAM,SAAU,CAG9B,4BACA,mDACA,2CACG,CAACA,EAAMhhB,GAAU,CACpB,yBACG,CAACA,EAAS,CAACghB,EAAMsB,EAAM,UAAW,CACrC,4BACG,CAACtiB,EAAS,CAACghB,EAAMsB,EAAM,QAAS,CACnC,qBACG,CAACtiB,EAAS,CAACghB,EAAMsB,IAAS,CAG7B,0DACG,CAACtiB,EAAS,CAACghB,EAAM,UAAW,CAC/B,uBACA,8DAEA,uDACA,2BAGA,+LAEA,kCACA,uBACG,CAACA,EAAMhhB,GAAU,CACpB,qBACG,CAACA,EAAS,CAACghB,EAAM,eAAgB,CACpC,qDACG,CAAChhB,EAAS,CAACghB,EAAM,KAAKc,IAAW,CACpC,+BACA,+BACA,8BACG,CAAC9hB,EAAS,CAACghB,EAAM,WAAY,CAChC,yBACG,CAAChhB,EAAS,CAACghB,EAAM,cAAe,CACnC,+CACG,CAAChhB,EAAS,CAACghB,EAAM,OAAQ,CAC5B,oCACG,CAAChhB,EAAS,CAACghB,EAAM,WAAY,CAChC,yBACG,CAAChhB,EAAS,CAACghB,EAAM,gBAAgBc,IAAW,CAC/C,2BACG,CAAC,CAACd,EAAM,OAAQ,aAAac,GAAU9hB,GAAU,CACpD,uBACG,CAACA,EAAS,CAACghB,EAAMgB,EAAQ,WAAY,CACxC,qBACG,CAAChiB,EAAS,CAACghB,EAAMsB,EAAM,WAAY,CACtC,0BACG,CAACtiB,EAAS,CAACghB,EAAM,YAAa,CACjC,sBACG,CAAChhB,EAAS,CAACghB,EAAM,YAAa,CACjC,qBACG,CAAChhB,EAAS,CAACghB,EAAMsB,EAAM,WAAY,CACtC,2BACG,CAACtiB,EAAS,CAACghB,EAAM,QAAQc,IAAW,CACvC,sBACG,CAAC9hB,EAAS,CAACghB,EAAMgB,IAAW,CAC/B,iCACG,CAAC,CAAChB,EAAM,OAASc,IAAW,CAC/B,oDACG,CAAC,CAACd,EAAM,OAAQ,MAAQc,GAAU9hB,GAAU,CAC/C,8BACG,CAACA,EAAS,CAACgh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AM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IA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","file":"e2d03a1.js","sourcesContent":["// Current version.\nexport var VERSION = '1.13.6';\n\n// Establish the root object, `window` (`self`) in the browser, `global`\n// on the server, or `this` in some virtual machines. We use `self`\n// instead of `window` for `WebWorker` support.\nexport var root = (typeof self == 'object' && self.self === self && self) ||\n          (typeof global == 'object' && global.global === global && global) ||\n          Function('return this')() ||\n          {};\n\n// Save bytes in the minified (but not gzipped) version:\nexport var ArrayProto = Array.prototype, ObjProto = Object.prototype;\nexport var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;\n\n// Create quick reference variables for speed access to core prototypes.\nexport var push = ArrayProto.push,\n    slice = ArrayProto.slice,\n    toString = ObjProto.toString,\n    hasOwnProperty = ObjProto.hasOwnProperty;\n\n// Modern feature detection.\nexport var supportsArrayBuffer = typeof ArrayBuffer !== 'undefined',\n    supportsDataView = typeof DataView !== 'undefined';\n\n// All **ECMAScript 5+** native function implementations that we hope to use\n// are declared here.\nexport var nativeIsArray = Array.isArray,\n    nativeKeys = Object.keys,\n    nativeCreate = Object.create,\n    nativeIsView = supportsArrayBuffer && ArrayBuffer.isView;\n\n// Create references to these builtin functions because we override them.\nexport var _isNaN = isNaN,\n    _isFinite = isFinite;\n\n// Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\nexport var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\nexport var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n  'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n// The largest integer that can be represented exactly.\nexport var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n","(function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.VueTheMask=t():e.VueTheMask=t()})(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var a=n[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,\"a\",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p=\".\",t(t.s=10)}([function(e,t){e.exports={\"#\":{pattern:/\\d/},X:{pattern:/[0-9a-zA-Z]/},S:{pattern:/[a-zA-Z]/},A:{pattern:/[a-zA-Z]/,transform:function(e){return e.toLocaleUpperCase()}},a:{pattern:/[a-zA-Z]/,transform:function(e){return e.toLocaleLowerCase()}},\"!\":{escape:!0}}},function(e,t,n){\"use strict\";function r(e){var t=document.createEvent(\"Event\");return t.initEvent(e,!0,!0),t}var a=n(2),o=n(0),i=n.n(o);t.a=function(e,t){var o=t.value;if((Array.isArray(o)||\"string\"==typeof o)&&(o={mask:o,tokens:i.a}),\"INPUT\"!==e.tagName.toLocaleUpperCase()){var u=e.getElementsByTagName(\"input\");if(1!==u.length)throw new Error(\"v-mask directive requires 1 input, found \"+u.length);e=u[0]}e.oninput=function(t){if(t.isTrusted){var i=e.selectionEnd,u=e.value[i-1];for(e.value=n.i(a.a)(e.value,o.mask,!0,o.tokens);i<e.value.length&&e.value.charAt(i-1)!==u;)i++;e===document.activeElement&&(e.setSelectionRange(i,i),setTimeout(function(){e.setSelectionRange(i,i)},0)),e.dispatchEvent(r(\"input\"))}};var s=n.i(a.a)(e.value,o.mask,!0,o.tokens);s!==e.value&&(e.value=s,e.dispatchEvent(r(\"input\")))}},function(e,t,n){\"use strict\";var r=n(6),a=n(5);t.a=function(e,t){var o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=arguments[3];return Array.isArray(t)?n.i(a.a)(r.a,t,i)(e,t,o,i):n.i(r.a)(e,t,o,i)}},function(e,t,n){\"use strict\";function r(e){e.component(s.a.name,s.a),e.directive(\"mask\",i.a)}Object.defineProperty(t,\"__esModule\",{value:!0});var a=n(0),o=n.n(a),i=n(1),u=n(7),s=n.n(u);n.d(t,\"TheMask\",function(){return s.a}),n.d(t,\"mask\",function(){return i.a}),n.d(t,\"tokens\",function(){return o.a}),n.d(t,\"version\",function(){return c});var c=\"0.11.1\";t.default=r,\"undefined\"!=typeof window&&window.Vue&&window.Vue.use(r)},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=n(1),a=n(0),o=n.n(a),i=n(2);t.default={name:\"TheMask\",props:{value:[String,Number],mask:{type:[String,Array],required:!0},masked:{type:Boolean,default:!1},tokens:{type:Object,default:function(){return o.a}}},directives:{mask:r.a},data:function(){return{lastValue:null,display:this.value}},watch:{value:function(e){e!==this.lastValue&&(this.display=e)},masked:function(){this.refresh(this.display)}},computed:{config:function(){return{mask:this.mask,tokens:this.tokens,masked:this.masked}}},methods:{onInput:function(e){e.isTrusted||this.refresh(e.target.value)},refresh:function(e){this.display=e;var e=n.i(i.a)(e,this.mask,this.masked,this.tokens);e!==this.lastValue&&(this.lastValue=e,this.$emit(\"input\",e))}}}},function(e,t,n){\"use strict\";function r(e,t,n){return t=t.sort(function(e,t){return e.length-t.length}),function(r,a){for(var o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=0;i<t.length;){var u=t[i];i++;var s=t[i];if(!(s&&e(r,s,!0,n).length>u.length))return e(r,u,o,n)}return\"\"}}t.a=r},function(e,t,n){\"use strict\";function r(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=arguments[3];e=e||\"\",t=t||\"\";for(var a=0,o=0,i=\"\";a<t.length&&o<e.length;){var u=t[a],s=r[u],c=e[o];s&&!s.escape?(s.pattern.test(c)&&(i+=s.transform?s.transform(c):c,a++),o++):(s&&s.escape&&(a++,u=t[a]),n&&(i+=u),c===u&&o++,a++)}for(var f=\"\";a<t.length&&n;){var u=t[a];if(r[u]){f=\"\";break}f+=u,a++}return i+f}t.a=r},function(e,t,n){var r=n(8)(n(4),n(9),null,null);e.exports=r.exports},function(e,t){e.exports=function(e,t,n,r){var a,o=e=e||{},i=typeof e.default;\"object\"!==i&&\"function\"!==i||(a=e,o=e.default);var u=\"function\"==typeof o?o.options:o;if(t&&(u.render=t.render,u.staticRenderFns=t.staticRenderFns),n&&(u._scopeId=n),r){var s=u.computed||(u.computed={});Object.keys(r).forEach(function(e){var t=r[e];s[e]=function(){return t}})}return{esModule:a,exports:o,options:u}}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)(\"input\",{directives:[{name:\"mask\",rawName:\"v-mask\",value:e.config,expression:\"config\"}],attrs:{type:\"text\"},domProps:{value:e.display},on:{input:e.onInput}})},staticRenderFns:[]}},function(e,t,n){e.exports=n(3)}])});","const addCountryCodeToMask = (mask, code) => {\n  const codeLength = code.length;\n  let temporyMask = mask;\n\n  for (let i = 0; i < codeLength; i++)\n    temporyMask = temporyMask.replace(/#/, code[i]);\n\n  return temporyMask;\n};\n\nconst CanadaAreaCodes = [\n  \"204\",\n  \"236\",\n  \"249\",\n  \"250\",\n  \"289\",\n  \"306\",\n  \"343\",\n  \"365\",\n  \"387\",\n  \"403\",\n  \"416\",\n  \"418\",\n  \"431\",\n  \"437\",\n  \"438\",\n  \"450\",\n  \"506\",\n  \"514\",\n  \"519\",\n  \"548\",\n  \"579\",\n  \"581\",\n  \"587\",\n  \"604\",\n  \"613\",\n  \"639\",\n  \"647\",\n  \"672\",\n  \"705\",\n  \"709\",\n  \"742\",\n  \"778\",\n  \"780\",\n  \"782\",\n  \"807\",\n  \"819\",\n  \"825\",\n  \"867\",\n  \"873\",\n  \"902\",\n  \"905\"\n];\n\n\nexport const allCountries = [\n  [\"Afghanistan (‫افغانستان‬‎)\", \"af\", \"93\", \"+..-..-...-....\"],\n  [\"Åland Islands\", \"ax\", \"358\", \"\"],\n  [\"Albania (Shqipëri)\", \"al\", \"355\", \"+...(...)...-...\"],\n  [\"Algeria (‫الجزائر‬‎)\", \"dz\", \"213\", \"+...-..-...-....\"],\n  [\"American Samoa\", \"as\", \"1684\", \"+.(...)...-....\"],\n  [\"Andorra\", \"ad\", \"376\", \"+...-...-...\"],\n  [\"Angola\", \"ao\", \"244\", \"+...(...)...-...\"],\n  [\"Anguilla\", \"ai\", \"1264\", \"+.(...)...-....\"],\n  [\"Antarctica\", \"aq\", \"672\", \"\"],\n  [\"Antigua and Barbuda\", \"ag\", \"1268\", \"+.(...)...-....\"],\n  [\"Argentina\", \"ar\", \"54\", \"+..(...)...-....\"],\n  [\"Armenia (Հայաստան)\", \"am\", \"374\", \"+...-..-...-...\"],\n  [\"Aruba\", \"aw\", \"297\", \"+...-...-....\"],\n  [\"Australia\", \"au\", \"61\", \"+.. ... ... ...\"],\n  [\"Austria (Österreich)\", \"at\", \"43\", \"+..(...)...-....\"],\n  [\"Azerbaijan (Azərbaycan)\", \"az\", \"994\", \"+...-..-...-..-..\"],\n  [\"Bahamas\", \"bs\", \"1242\", \"+.(...)...-....\"],\n  [\"Bahrain (‫البحرين‬‎)\", \"bh\", \"973\", \"+...-....-....\"],\n  [\"Bangladesh (বাংলাদেশ)\", \"bd\", \"880\", \"+...-..-...-...\"],\n  [\"Barbados\", \"bb\", \"1246\", \"+.(...)...-....\"],\n  [\"Belarus (Беларусь)\", \"by\", \"375\", \"+...(..)...-..-..\"],\n  [\"Belgium (België)\", \"be\", \"32\", \"+.. ... .. .. ..\"],\n  [\"Belize\", \"bz\", \"501\", \"+...-...-....\"],\n  [\"Benin (Bénin)\", \"bj\", \"229\", \"+...-..-..-....\"],\n  [\"Bermuda\", \"bm\", \"1441\", \"+.(...)...-....\"],\n  [\"Bhutan (འབྲུག)\", \"bt\", \"975\", \"+...-.-...-...\"],\n  [\"Bolivia\", \"bo\", \"591\", \"+...-.-...-....\"],\n  [\"Bosnia and Herzegovina (Босна и Херцеговина)\", \"ba\", \"387\", \"+...-..-....\"],\n  [\"Botswana\", \"bw\", \"267\", \"+...-..-...-...\"],\n  [\"Bouvet Island\", \"bv\", \"47\", \"\"],\n  [\"Brazil (Brasil)\", \"br\", \"55\", \"+..-..-....-....\"],\n  [\"British Indian Ocean Territory\", \"io\", \"246\", \"+...-...-....\"],\n  [\"British Virgin Islands\", \"vg\", \"1284\", \"+.(...)...-....\"],\n  [\"Brunei\", \"bn\", \"673\", \"+...-...-....\"],\n  [\"Bulgaria (България)\", \"bg\", \"359\", \"+...(...)...-...\"],\n  [\"Burkina Faso\", \"bf\", \"226\", \"+...-..-..-....\"],\n  [\"Burundi (Uburundi)\", \"bi\", \"257\", \"+...-..-..-....\"],\n  [\"Cambodia (កម្ពុជា)\", \"kh\", \"855\", \"+...-..-...-...\"],\n  [\"Cameroon (Cameroun)\", \"cm\", \"237\", \"+...-....-....\"],\n  [\"Canada\", \"ca\", \"1\", \"+. (...) ...-....\", 1, CanadaAreaCodes],\n  [\"Cape Verde (Kabu Verdi)\", \"cv\", \"238\", \"+...(...)..-..\"],\n  [\"Caribbean Netherlands\", \"bq\", \"599\", \"+...-...-....\", 1],\n  [\"Cayman Islands\", \"ky\", \"1345\", \"+.(...)...-....\"],\n  [\n    \"Central African Republic (République centrafricaine)\",\n    \"cf\",\n    \"236\",\n    \"+...-..-..-....\"\n  ],\n  [\"Chad (Tchad)\", \"td\", \"235\", \"+...-..-..-..-..\"],\n  [\"Chile\", \"cl\", \"56\", \"+..-.-....-....\"],\n  [\"China (中国)\", \"cn\", \"86\", \"+.. ..-........\"],\n  [\"Christmas Island\", \"cx\", \"61\", \"\"],\n  [\"Cocos (Keeling) Islands\", \"cc\", \"61\", \"\"],\n  [\"Colombia\", \"co\", \"57\", \"+..(...)...-....\"],\n  [\"Comoros (‫جزر القمر‬‎)\", \"km\", \"269\", \"+...-..-.....\"],\n  [\n    \"Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)\",\n    \"cd\",\n    \"243\",\n    \"+...(...)...-...\"\n  ],\n  [\"Congo (Republic) (Congo-Brazzaville)\", \"cg\", \"242\", \"+...-..-...-....\"],\n  [\"Cook Islands\", \"ck\", \"682\", \"+...-..-...\"],\n  [\"Costa Rica\", \"cr\", \"506\", \"+... ....-....\"],\n  [\"Côte d’Ivoire\", \"ci\", \"225\", \"+...-..-...-...\"],\n  [\"Croatia (Hrvatska)\", \"hr\", \"385\", \"+...-..-...-...\"],\n  [\"Cuba\", \"cu\", \"53\", \"+..-.-...-....\"],\n  [\"Curaçao\", \"cw\", \"599\", \"+...-...-....\", 0],\n  [\"Cyprus (Κύπρος)\", \"cy\", \"357\", \"+...-..-...-...\"],\n  [\"Czech Republic (Česká republika)\", \"cz\", \"420\", \"+...(...)...-...\"],\n  [\"Denmark (Danmark)\", \"dk\", \"45\", \"+.. .. .. .. ..\"],\n  [\"Djibouti\", \"dj\", \"253\", \"+...-..-..-..-..\"],\n  [\"Dominica\", \"dm\", \"1767\", \"+.(...)...-....\"],\n  [\n    \"Dominican Republic (República Dominicana)\",\n    \"do\",\n    \"1\",\n    \"+.(...)...-....\",\n    2,\n    [\"809\", \"829\", \"849\"]\n  ],\n  [\"Ecuador\", \"ec\", \"593\", \"+...-.-...-....\"],\n  [\"Egypt (‫مصر‬‎)\", \"eg\", \"20\", \"+..(...)...-....\"],\n  [\"El Salvador\", \"sv\", \"503\", \"+... ....-....\"],\n  [\"Equatorial Guinea (Guinea Ecuatorial)\", \"gq\", \"240\", \"+...-..-...-....\"],\n  [\"Eritrea\", \"er\", \"291\", \"+...-.-...-...\"],\n  [\"Estonia (Eesti)\", \"ee\", \"372\", \"+...-...-....\"],\n  [\"Ethiopia\", \"et\", \"251\", \"+...-..-...-....\"],\n  [\"Falkland Islands (Islas Malvinas)\", \"fk\", \"500\", \"+...-.....\"],\n  [\"Faroe Islands (Føroyar)\", \"fo\", \"298\", \"+...-...-...\"],\n  [\"Fiji\", \"fj\", \"679\", \"+...-..-.....\"],\n  [\"Finland (Suomi)\", \"fi\", \"358\", \"+... .. .... ....\"],\n  [\"France\", \"fr\", \"33\", \"+.. . .. .. .. ..\"],\n  [\"French Guiana (Guyane française)\", \"gf\", \"594\", \"+...-.....-....\"],\n  [\"French Polynesia (Polynésie française)\", \"pf\", \"689\", \"+...-..-..-..\"],\n  [\"French Southern and Antarctic Lands\", \"tf\", \"262\", \"\"],\n  [\"Gabon\", \"ga\", \"241\", \"+...-.-..-..-..\"],\n  [\"Gambia\", \"gm\", \"220\", \"+...(...)..-..\"],\n  [\"Georgia (საქართველო)\", \"ge\", \"995\", \"+...(...)...-...\"],\n  [\"Germany (Deutschland)\", \"de\", \"49\", \"+.. ... .......\"],\n  [\"Ghana (Gaana)\", \"gh\", \"233\", \"+...(...)...-...\"],\n  [\"Gibraltar\", \"gi\", \"350\", \"+...-...-.....\"],\n  [\"Greece (Ελλάδα)\", \"gr\", \"30\", \"+..(...)...-....\"],\n  [\"Greenland (Kalaallit Nunaat)\", \"gl\", \"299\", \"+...-..-..-..\"],\n  [\"Grenada\", \"gd\", \"1473\", \"+.(...)...-....\"],\n  [\"Guadeloupe\", \"gp\", \"590\", \"\", 0],\n  [\"Guam\", \"gu\", \"1671\", \"+.(...)...-....\"],\n  [\"Guatemala\", \"gt\", \"502\", \"+... ....-....\"],\n  [\"Guernsey\", \"gg\", \"44\", \"\"],\n  [\"Guinea (Guinée)\", \"gn\", \"224\", \"+...-..-...-...\"],\n  [\"Guinea-Bissau (Guiné Bissau)\", \"gw\", \"245\", \"+...-.-......\"],\n  [\"Guyana\", \"gy\", \"592\", \"+...-...-....\"],\n  [\"Haiti\", \"ht\", \"509\", \"+... ....-....\"],\n  [\"Heard Island and McDonald Islands\", \"hm\", \"672\", \"\"],\n  [\"Honduras\", \"hn\", \"504\", \"+...-....-....\"],\n  [\"Hong Kong (香港)\", \"hk\", \"852\", \"+... .... ....\"],\n  [\"Hungary (Magyarország)\", \"hu\", \"36\", \"+..(...)...-...\"],\n  [\"Iceland (Ísland)\", \"is\", \"354\", \"+... ... ....\"],\n  [\"India (भारत)\", \"in\", \"91\", \"+.. .....-.....\"],\n  [\"Indonesia\", \"id\", \"62\", \"+..-..-...-..\"],\n  [\"Iran (‫ایران‬‎)\", \"ir\", \"98\", \"+..(...)...-....\"],\n  [\"Iraq (‫العراق‬‎)\", \"iq\", \"964\", \"+...(...)...-....\"],\n  [\"Ireland\", \"ie\", \"353\", \"+... .. .......\"],\n  [\"Isle of Man\", \"im\", \"44\", \"\"],\n  [\"Israel (‫ישראל‬‎)\", \"il\", \"972\", \"+...-.-...-....\"],\n  [\"Italy (Italia)\", \"it\", \"39\", \"+.. ... ......\", 0],\n  [\"Jamaica\", \"jm\", \"1876\", \"+.(...)...-....\"],\n  [\"Japan (日本)\", \"jp\", \"81\", \"+.. ... .. ....\"],\n  [\"Jersey\", \"je\", \"44\", \"\"],\n  [\"Jordan (‫الأردن‬‎)\", \"jo\", \"962\", \"+...-.-....-....\"],\n  [\"Kazakhstan (Казахстан)\", \"kz\", \"7\", \"+. ... ...-..-..\", 1],\n  [\"Kenya\", \"ke\", \"254\", \"+...-...-......\"],\n  [\"Kiribati\", \"ki\", \"686\", \"+...-..-...\"],\n  [\"Kosovo\", \"xk\", \"383\", \"\"],\n  [\"Kuwait (‫الكويت‬‎)\", \"kw\", \"965\", \"+...-....-....\"],\n  [\"Kyrgyzstan (Кыргызстан)\", \"kg\", \"996\", \"+...(...)...-...\"],\n  [\"Laos (ລາວ)\", \"la\", \"856\", \"+...-..-...-...\"],\n  [\"Latvia (Latvija)\", \"lv\", \"371\", \"+...-..-...-...\"],\n  [\"Lebanon (‫لبنان‬‎)\", \"lb\", \"961\", \"+...-.-...-...\"],\n  [\"Lesotho\", \"ls\", \"266\", \"+...-.-...-....\"],\n  [\"Liberia\", \"lr\", \"231\", \"+...-..-...-...\"],\n  [\"Libya (‫ليبيا‬‎)\", \"ly\", \"218\", \"+...-..-...-...\"],\n  [\"Liechtenstein\", \"li\", \"423\", \"+...(...)...-....\"],\n  [\"Lithuania (Lietuva)\", \"lt\", \"370\", \"+...(...)..-...\"],\n  [\"Luxembourg\", \"lu\", \"352\", \"+...(...)...-...\"],\n  [\"Macau (澳門)\", \"mo\", \"853\", \"+...-....-....\"],\n  [\"Macedonia (FYROM) (Македонија)\", \"mk\", \"389\", \"+...-..-...-...\"],\n  [\"Madagascar (Madagasikara)\", \"mg\", \"261\", \"+...-..-..-.....\"],\n  [\"Malawi\", \"mw\", \"265\", \"+...-.-....-....\"],\n  [\"Malaysia\", \"my\", \"60\", \"+.. ..-....-....\"],\n  [\"Maldives\", \"mv\", \"960\", \"+...-...-....\"],\n  [\"Mali\", \"ml\", \"223\", \"+...-..-..-....\"],\n  [\"Malta\", \"mt\", \"356\", \"+...-....-....\"],\n  [\"Marshall Islands\", \"mh\", \"692\", \"+...-...-....\"],\n  [\"Martinique\", \"mq\", \"596\", \"+...(...)..-..-..\"],\n  [\"Mauritania (‫موريتانيا‬‎)\", \"mr\", \"222\", \"+...-..-..-....\"],\n  [\"Mauritius (Moris)\", \"mu\", \"230\", \"+...-...-....\"],\n  [\"Mayotte\", \"yt\", \"262\", \"\"],\n  [\"Mexico (México)\", \"mx\", \"52\", \"+..-..-..-....\"],\n  [\"Micronesia\", \"fm\", \"691\", \"+...-...-....\"],\n  [\"Moldova (Republica Moldova)\", \"md\", \"373\", \"+...-....-....\"],\n  [\"Monaco\", \"mc\", \"377\", \"+...-..-...-...\"],\n  [\"Mongolia (Монгол)\", \"mn\", \"976\", \"+...-..-..-....\"],\n  [\"Montenegro (Crna Gora)\", \"me\", \"382\", \"+...-..-...-...\"],\n  [\"Montserrat\", \"ms\", \"1664\", \"+.(...)...-....\"],\n  [\"Morocco (‫المغرب‬‎)\", \"ma\", \"212\", \"+...-..-....-...\"],\n  [\"Mozambique (Moçambique)\", \"mz\", \"258\", \"+...-..-...-...\"],\n  [\"Myanmar (Burma) (မြန်မာ)\", \"mm\", \"95\", \"+..-...-...\"],\n  [\"Namibia (Namibië)\", \"na\", \"264\", \"+...-..-...-....\"],\n  [\"Nauru\", \"nr\", \"674\", \"+...-...-....\"],\n  [\"Nepal (नेपाल)\", \"np\", \"977\", \"+...-..-...-...\"],\n  [\"Netherlands (Nederland)\", \"nl\", \"31\", \"+.. .. ........\"],\n  [\"New Caledonia (Nouvelle-Calédonie)\", \"nc\", \"687\", \"+...-..-....\"],\n  [\"New Zealand\", \"nz\", \"64\", \"+.. ...-...-....\"],\n  [\"Nicaragua\", \"ni\", \"505\", \"+...-....-....\"],\n  [\"Niger (Nijar)\", \"ne\", \"227\", \"+...-..-..-....\"],\n  [\"Nigeria\", \"ng\", \"234\", \"+...-..-...-..\"],\n  [\"Niue\", \"nu\", \"683\", \"+...-....\"],\n  [\"Norfolk Island\", \"nf\", \"672\", \"+...-...-...\"],\n  [\"North Korea (조선 민주주의 인민 공화국)\", \"kp\", \"850\", \"+...-...-...\"],\n  [\"Northern Mariana Islands\", \"mp\", \"1670\", \"+.(...)...-....\"],\n  [\"Norway (Norge)\", \"no\", \"47\", \"+.. ... .. ...\"],\n  [\"Oman (‫عُمان‬‎)\", \"om\", \"968\", \"+...-..-...-...\"],\n  [\"Pakistan (‫پاکستان‬‎)\", \"pk\", \"92\", \"+.. ...-.......\"],\n  [\"Palau\", \"pw\", \"680\", \"+...-...-....\"],\n  [\"Palestine (‫فلسطين‬‎)\", \"ps\", \"970\", \"+...-..-...-....\"],\n  [\"Panama (Panamá)\", \"pa\", \"507\", \"+...-...-....\"],\n  [\"Papua New Guinea\", \"pg\", \"675\", \"+...(...)..-...\"],\n  [\"Paraguay\", \"py\", \"595\", \"+...(...)...-...\"],\n  [\"Peru (Perú)\", \"pe\", \"51\", \"+..(...)...-...\"],\n  [\"Philippines\", \"ph\", \"63\", \"+.. ... ....\"],\n  [\"Pitcairn Islands\", \"pn\", \"64\", \"\"],\n  [\"Poland (Polska)\", \"pl\", \"48\", \"+.. ...-...-...\"],\n  [\"Portugal\", \"pt\", \"351\", \"+...-..-...-....\"],\n  [\"Puerto Rico\", \"pr\", \"1\", \"+. (...) ...-....\", 3, [\"787\", \"939\"]],\n  [\"Qatar (‫قطر‬‎)\", \"qa\", \"974\", \"+...-....-....\"],\n  [\"Réunion (La Réunion)\", \"re\", \"262\", \"+...-.....-....\"],\n  [\"Romania (România)\", \"ro\", \"40\", \"+..-..-...-....\"],\n  [\"Russia (Россия)\", \"ru\", \"7\", \"+. ... ...-..-..\", 0],\n  [\"Rwanda\", \"rw\", \"250\", \"+...(...)...-...\"],\n  [\"Saint Barthélemy (Saint-Barthélemy)\", \"bl\", \"590\", \"\", 1],\n  [\"Saint Helena\", \"sh\", \"290\"],\n  [\"Saint Kitts and Nevis\", \"kn\", \"1869\", \"+.(...)...-....\"],\n  [\"Saint Lucia\", \"lc\", \"1758\", \"+.(...)...-....\"],\n  [\"Saint Martin (Saint-Martin (partie française))\", \"mf\", \"590\", \"\", 2],\n  [\"Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)\", \"pm\", \"508\"],\n  [\"Saint Vincent and the Grenadines\", \"vc\", \"1784\", \"+.(...)...-....\"],\n  [\"Samoa\", \"ws\", \"685\", \"+...-..-....\"],\n  [\"San Marino\", \"sm\", \"378\", \"+...-....-......\"],\n  [\"São Tomé and Príncipe (São Tomé e Príncipe)\", \"st\", \"239\", \"+...-..-.....\"],\n  [\n    \"Saudi Arabia (‫المملكة العربية السعودية‬‎)\",\n    \"sa\",\n    \"966\",\n    \"+...-.-...-....\"\n  ],\n  [\"Senegal (Sénégal)\", \"sn\", \"221\", \"+...-..-...-....\"],\n  [\"Serbia (Србија)\", \"rs\", \"381\", \"+...-..-...-....\"],\n  [\"Seychelles\", \"sc\", \"248\", \"+...-.-...-...\"],\n  [\"Sierra Leone\", \"sl\", \"232\", \"+...-..-......\"],\n  [\"Singapore\", \"sg\", \"65\", \"+.. ....-....\"],\n  [\"Sint Maarten\", \"sx\", \"1721\", \"+.(...)...-....\"],\n  [\"Slovakia (Slovensko)\", \"sk\", \"421\", \"+...(...)...-...\"],\n  [\"Slovenia (Slovenija)\", \"si\", \"386\", \"+...-..-...-...\"],\n  [\"Solomon Islands\", \"sb\", \"677\", \"+...-.....\"],\n  [\"Somalia (Soomaaliya)\", \"so\", \"252\", \"+...-.-...-...\"],\n  [\"South Africa\", \"za\", \"27\", \"+..-..-...-....\"],\n  [\"South Georgia and the South Sandwich Islands\", \"gs\", \"500\", \"\"],\n  [\"South Korea (대한민국)\", \"kr\", \"82\", \"+..-..-...-....\"],\n  [\"South Sudan (‫جنوب السودان‬‎)\", \"ss\", \"211\", \"+...-..-...-....\"],\n  [\"Spain (España)\", \"es\", \"34\", \"+.. ... ... ...\"],\n  [\"Sri Lanka (ශ්‍රී ලංකාව)\", \"lk\", \"94\", \"+..-..-...-....\"],\n  [\"Sudan (‫السودان‬‎)\", \"sd\", \"249\", \"+...-..-...-....\"],\n  [\"Suriname\", \"sr\", \"597\", \"+...-...-...\"],\n  [\"Svalbard and Jan Mayen\", \"sj\", \"47\", \"\"],\n  [\"Swaziland\", \"sz\", \"268\", \"+...-..-..-....\"],\n  [\"Sweden (Sverige)\", \"se\", \"46\", \"+.. .. ... .. ..\"],\n  [\"Switzerland (Schweiz)\", \"ch\", \"41\", \"+.. .. ... .. ..\"],\n  [\"Syria (‫سوريا‬‎)\", \"sy\", \"963\", \"+...-..-....-...\"],\n  [\"Taiwan (台灣)\", \"tw\", \"886\", \"+...-....-....\"],\n  [\"Tajikistan\", \"tj\", \"992\", \"+...-..-...-....\"],\n  [\"Tanzania\", \"tz\", \"255\", \"+...-..-...-....\"],\n  [\"Thailand (ไทย)\", \"th\", \"66\", \"+..-..-...-...\"],\n  [\"Timor-Leste\", \"tl\", \"670\", \"+...-...-....\"],\n  [\"Togo\", \"tg\", \"228\", \"+...-..-...-...\"],\n  [\"Tokelau\", \"tk\", \"690\", \"+...-....\"],\n  [\"Tonga\", \"to\", \"676\", \"+...-.....\"],\n  [\"Trinidad and Tobago\", \"tt\", \"1868\", \"+.(...)...-....\"],\n  [\"Tunisia (‫تونس‬‎)\", \"tn\", \"216\", \"+...-..-...-...\"],\n  [\"Turkey (Türkiye)\", \"tr\", \"90\", \"+.. ... ... .. ..\"],\n  [\"Turkmenistan\", \"tm\", \"993\", \"+...-.-...-....\"],\n  [\"Turks and Caicos Islands\", \"tc\", \"1649\", \"+.(...)...-....\"],\n  [\"Tuvalu\", \"tv\", \"688\", \"+...-.....\"],\n  [\"U.S. Virgin Islands\", \"vi\", \"1340\", \"+.(...)...-....\"],\n  [\"Uganda\", \"ug\", \"256\", \"+...(...)...-...\"],\n  [\"Ukraine (Україна)\", \"ua\", \"380\", \"+...(..)...-..-..\"],\n  [\n    \"United Arab Emirates (‫الإمارات العربية المتحدة‬‎)\",\n    \"ae\",\n    \"971\",\n    \"+...-.-...-....\"\n  ],\n  [\"United Kingdom\", \"gb\", \"44\", \"+.. .... ......\"],\n  [\"United States\", \"us\", \"1\", \"+. (...) ...-....\", 0],\n  [\"United States Minor Outlying Islands\", \"um\", \"1\", \"\"],\n  [\"Uruguay\", \"uy\", \"598\", \"+...-.-...-..-..\"],\n  [\"Uzbekistan (Oʻzbekiston)\", \"uz\", \"998\", \"+...-..-...-....\"],\n  [\"Vanuatu\", \"vu\", \"678\", \"+...-.....\"],\n  [\"Vatican City (Città del Vaticano)\", \"va\", \"39\", \"+.. .. .... ....\", 1],\n  [\"Venezuela\", \"ve\", \"58\", \"+..(...)...-....\"],\n  [\"Vietnam (Việt Nam)\", \"vn\", \"84\", \"+..-..-....-...\"],\n  [\"Wallis and Futuna\", \"wf\", \"681\", \"+...-..-....\"],\n  [\"Western Sahara\", \"eh\", \"212\", \"+...-..-....\"],\n  [\"Yemen (‫اليمن‬‎)\", \"ye\", \"967\", \"+...-.-...-...\"],\n  [\"Zambia\", \"zm\", \"260\", \"+...-..-...-....\"],\n  [\"Zimbabwe\", \"zw\", \"263\", \"+...-.-......\"]\n];\n\nexport const findFirstCountryByCode = code => {\n  let filteredCode = code.match(/\\d/g).join(\"\");\n  const filteredCountries = allCountries.filter(\n    contryArr => contryArr[2] === filteredCode && contryArr[3]\n  );\n\n  let country = filteredCountries[0] ? filteredCountries[0][1] : \"\";\n\n  return country.toUpperCase();\n};\n\n\nexport const findFirstCountryByAlpha2 = alpha2 => {\n  if (!alpha2) return null;\n\n  const filteredCountries = allCountries.filter(\n    contryArr => contryArr[1] === alpha2\n  );\n\n  let country = filteredCountries[0] ? { country: filteredCountries[0][1], code: filteredCountries[0][2] } : null;\n\n  return country;\n};\n\nexport const getMaskToLibPhoneNumber = libPhoneNumberObj => {\n  const contry = libPhoneNumberObj ? libPhoneNumberObj.country : \"\";\n\n  if (!contry) return null;\n\n  const filteredCountries = allCountries.filter(\n    contryArr => contryArr[1].toUpperCase() === contry.toUpperCase()\n  );\n\n  if (!filteredCountries[0]) return null;\n\n  let mask = filteredCountries[0][3]\n    ? filteredCountries[0][3].replace(/\\./g, \"#\")\n    : null;\n\n  return {\n    mask: addCountryCodeToMask(mask, filteredCountries[0][2]),\n    countryCode: `+${filteredCountries[0][2]}`\n  };\n};\n\nexport const isCanada = number => {\n  let filteredNumber = number.match(/\\d/g).join(\"\");\n  if (filteredNumber.length < 4) return false;\n  const areaCode = filteredNumber.substring(1, 4);\n\n  return CanadaAreaCodes.includes(areaCode);\n};\n","import { callingCountries } from 'country-data';\nimport momentTz from 'moment-timezone';\nimport { zones } from 'moment-timezone/data/meta/latest.json';\nimport UAParser from 'ua-parser-js';\n\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n\n    if (enumerableOnly) {\n      symbols = symbols.filter(function (sym) {\n        return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n      });\n    }\n\n    keys.push.apply(keys, symbols);\n  }\n\n  return keys;\n}\n\nfunction _objectSpread2(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n\n    if (i % 2) {\n      ownKeys(Object(source), true).forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      });\n    } else if (Object.getOwnPropertyDescriptors) {\n      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n    } else {\n      ownKeys(Object(source)).forEach(function (key) {\n        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n      });\n    }\n  }\n\n  return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nvar timezone, countryCode, country, results; // eslint-disable-line prefer-const\n\nvar getTimezone = function getTimezone() {\n  return timezone || momentTz.tz.zone(momentTz.tz.guess());\n};\n\nvar getCountryCode = function getCountryCode() {\n  return countryCode || zones[timezone.name] && zones[timezone.name].countries[0];\n};\n\nvar getCountry = function getCountry() {\n  return country || callingCountries.all.find(function (item) {\n    return item.alpha2 === getCountryCode();\n  });\n};\n\nvar getResult = function getResult() {\n  return results || new UAParser(navigator.userAgent).getResult();\n};\n\ntimezone = getTimezone();\ncountryCode = getCountryCode();\ncountry = getCountry();\nresults = getResult();\n\nvar visitorInfo = function visitorInfo() {\n  return _objectSpread2({\n    timezone: getTimezone(),\n    country: getCountry()\n  }, results);\n};\n\nexport default visitorInfo;\n","// Some functions take a variable number of arguments, or a few expected\n// arguments at the beginning and then a variable number of values to operate\n// on. This helper accumulates all remaining arguments past the function’s\n// argument length (or an explicit `startIndex`), into an array that becomes\n// the last argument. Similar to ES6’s \"rest parameter\".\nexport default function restArguments(func, startIndex) {\n  startIndex = startIndex == null ? func.length - 1 : +startIndex;\n  return function() {\n    var length = Math.max(arguments.length - startIndex, 0),\n        rest = Array(length),\n        index = 0;\n    for (; index < length; index++) {\n      rest[index] = arguments[index + startIndex];\n    }\n    switch (startIndex) {\n      case 0: return func.call(this, rest);\n      case 1: return func.call(this, arguments[0], rest);\n      case 2: return func.call(this, arguments[0], arguments[1], rest);\n    }\n    var args = Array(startIndex + 1);\n    for (index = 0; index < startIndex; index++) {\n      args[index] = arguments[index];\n    }\n    args[startIndex] = rest;\n    return func.apply(this, args);\n  };\n}\n","// Is a given variable an object?\nexport default function isObject(obj) {\n  var type = typeof obj;\n  return type === 'function' || (type === 'object' && !!obj);\n}\n","// Is a given value equal to null?\nexport default function isNull(obj) {\n  return obj === null;\n}\n","// Is a given variable undefined?\nexport default function isUndefined(obj) {\n  return obj === void 0;\n}\n","import { toString } from './_setup.js';\n\n// Is a given value a boolean?\nexport default function isBoolean(obj) {\n  return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n}\n","// Is a given value a DOM element?\nexport default function isElement(obj) {\n  return !!(obj && obj.nodeType === 1);\n}\n","import { toString } from './_setup.js';\n\n// Internal function for creating a `toString`-based type tester.\nexport default function tagTester(name) {\n  var tag = '[object ' + name + ']';\n  return function(obj) {\n    return toString.call(obj) === tag;\n  };\n}\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('String');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Number');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Date');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('RegExp');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Error');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Symbol');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('ArrayBuffer');\n","import tagTester from './_tagTester.js';\nimport { root } from './_setup.js';\n\nvar isFunction = tagTester('Function');\n\n// Optimize `isFunction` if appropriate. Work around some `typeof` bugs in old\n// v8, IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).\nvar nodelist = root.document && root.document.childNodes;\nif (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') {\n  isFunction = function(obj) {\n    return typeof obj == 'function' || false;\n  };\n}\n\nexport default isFunction;\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Object');\n","import { supportsDataView } from './_setup.js';\nimport hasObjectTag from './_hasObjectTag.js';\n\n// In IE 10 - Edge 13, `DataView` has string tag `'[object Object]'`.\n// In IE 11, the most common among them, this problem also applies to\n// `Map`, `WeakMap` and `Set`.\nexport var hasStringTagBug = (\n      supportsDataView && hasObjectTag(new DataView(new ArrayBuffer(8)))\n    ),\n    isIE11 = (typeof Map !== 'undefined' && hasObjectTag(new Map));\n","import tagTester from './_tagTester.js';\nimport isFunction from './isFunction.js';\nimport isArrayBuffer from './isArrayBuffer.js';\nimport { hasStringTagBug } from './_stringTagBug.js';\n\nvar isDataView = tagTester('DataView');\n\n// In IE 10 - Edge 13, we need a different heuristic\n// to determine whether an object is a `DataView`.\nfunction ie10IsDataView(obj) {\n  return obj != null && isFunction(obj.getInt8) && isArrayBuffer(obj.buffer);\n}\n\nexport default (hasStringTagBug ? ie10IsDataView : isDataView);\n","import { nativeIsArray } from './_setup.js';\nimport tagTester from './_tagTester.js';\n\n// Is a given value an array?\n// Delegates to ECMA5's native `Array.isArray`.\nexport default nativeIsArray || tagTester('Array');\n","import { hasOwnProperty } from './_setup.js';\n\n// Internal function to check whether `key` is an own property name of `obj`.\nexport default function has(obj, key) {\n  return obj != null && hasOwnProperty.call(obj, key);\n}\n","import tagTester from './_tagTester.js';\nimport has from './_has.js';\n\nvar isArguments = tagTester('Arguments');\n\n// Define a fallback version of the method in browsers (ahem, IE < 9), where\n// there isn't any inspectable \"Arguments\" type.\n(function() {\n  if (!isArguments(arguments)) {\n    isArguments = function(obj) {\n      return has(obj, 'callee');\n    };\n  }\n}());\n\nexport default isArguments;\n","import { _isFinite } from './_setup.js';\nimport isSymbol from './isSymbol.js';\n\n// Is a given object a finite number?\nexport default function isFinite(obj) {\n  return !isSymbol(obj) && _isFinite(obj) && !isNaN(parseFloat(obj));\n}\n","import { _isNaN } from './_setup.js';\nimport isNumber from './isNumber.js';\n\n// Is the given value `NaN`?\nexport default function isNaN(obj) {\n  return isNumber(obj) && _isNaN(obj);\n}\n","// Predicate-generating function. Often useful outside of Underscore.\nexport default function constant(value) {\n  return function() {\n    return value;\n  };\n}\n","import { MAX_ARRAY_INDEX } from './_setup.js';\n\n// Common internal logic for `isArrayLike` and `isBufferLike`.\nexport default function createSizePropertyCheck(getSizeProperty) {\n  return function(collection) {\n    var sizeProperty = getSizeProperty(collection);\n    return typeof sizeProperty == 'number' && sizeProperty >= 0 && sizeProperty <= MAX_ARRAY_INDEX;\n  }\n}\n","// Internal helper to generate a function to obtain property `key` from `obj`.\nexport default function shallowProperty(key) {\n  return function(obj) {\n    return obj == null ? void 0 : obj[key];\n  };\n}\n","import shallowProperty from './_shallowProperty.js';\n\n// Internal helper to obtain the `byteLength` property of an object.\nexport default shallowProperty('byteLength');\n","import createSizePropertyCheck from './_createSizePropertyCheck.js';\nimport getByteLength from './_getByteLength.js';\n\n// Internal helper to determine whether we should spend extensive checks against\n// `ArrayBuffer` et al.\nexport default createSizePropertyCheck(getByteLength);\n","import { supportsArrayBuffer, nativeIsView, toString } from './_setup.js';\nimport isDataView from './isDataView.js';\nimport constant from './constant.js';\nimport isBufferLike from './_isBufferLike.js';\n\n// Is a given value a typed array?\nvar typedArrayPattern = /\\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\\]/;\nfunction isTypedArray(obj) {\n  // `ArrayBuffer.isView` is the most future-proof, so use it when available.\n  // Otherwise, fall back on the above regular expression.\n  return nativeIsView ? (nativeIsView(obj) && !isDataView(obj)) :\n                isBufferLike(obj) && typedArrayPattern.test(toString.call(obj));\n}\n\nexport default supportsArrayBuffer ? isTypedArray : constant(false);\n","import shallowProperty from './_shallowProperty.js';\n\n// Internal helper to obtain the `length` property of an object.\nexport default shallowProperty('length');\n","import { nonEnumerableProps, ObjProto } from './_setup.js';\nimport isFunction from './isFunction.js';\nimport has from './_has.js';\n\n// Internal helper to create a simple lookup structure.\n// `collectNonEnumProps` used to depend on `_.contains`, but this led to\n// circular imports. `emulatedSet` is a one-off solution that only works for\n// arrays of strings.\nfunction emulatedSet(keys) {\n  var hash = {};\n  for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true;\n  return {\n    contains: function(key) { return hash[key] === true; },\n    push: function(key) {\n      hash[key] = true;\n      return keys.push(key);\n    }\n  };\n}\n\n// Internal helper. Checks `keys` for the presence of keys in IE < 9 that won't\n// be iterated by `for key in ...` and thus missed. Extends `keys` in place if\n// needed.\nexport default function collectNonEnumProps(obj, keys) {\n  keys = emulatedSet(keys);\n  var nonEnumIdx = nonEnumerableProps.length;\n  var constructor = obj.constructor;\n  var proto = (isFunction(constructor) && constructor.prototype) || ObjProto;\n\n  // Constructor is a special case.\n  var prop = 'constructor';\n  if (has(obj, prop) && !keys.contains(prop)) keys.push(prop);\n\n  while (nonEnumIdx--) {\n    prop = nonEnumerableProps[nonEnumIdx];\n    if (prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop)) {\n      keys.push(prop);\n    }\n  }\n}\n","import isObject from './isObject.js';\nimport { nativeKeys, hasEnumBug } from './_setup.js';\nimport has from './_has.js';\nimport collectNonEnumProps from './_collectNonEnumProps.js';\n\n// Retrieve the names of an object's own properties.\n// Delegates to **ECMAScript 5**'s native `Object.keys`.\nexport default function keys(obj) {\n  if (!isObject(obj)) return [];\n  if (nativeKeys) return nativeKeys(obj);\n  var keys = [];\n  for (var key in obj) if (has(obj, key)) keys.push(key);\n  // Ahem, IE < 9.\n  if (hasEnumBug) collectNonEnumProps(obj, keys);\n  return keys;\n}\n","import getLength from './_getLength.js';\nimport isArray from './isArray.js';\nimport isString from './isString.js';\nimport isArguments from './isArguments.js';\nimport keys from './keys.js';\n\n// Is a given array, string, or object empty?\n// An \"empty\" object has no enumerable own-properties.\nexport default function isEmpty(obj) {\n  if (obj == null) return true;\n  // Skip the more expensive `toString`-based type checks if `obj` has no\n  // `.length`.\n  var length = getLength(obj);\n  if (typeof length == 'number' && (\n    isArray(obj) || isString(obj) || isArguments(obj)\n  )) return length === 0;\n  return getLength(keys(obj)) === 0;\n}\n","import keys from './keys.js';\n\n// Returns whether an object has a given set of `key:value` pairs.\nexport default function isMatch(object, attrs) {\n  var _keys = keys(attrs), length = _keys.length;\n  if (object == null) return !length;\n  var obj = Object(object);\n  for (var i = 0; i < length; i++) {\n    var key = _keys[i];\n    if (attrs[key] !== obj[key] || !(key in obj)) return false;\n  }\n  return true;\n}\n","import { VERSION } from './_setup.js';\n\n// If Underscore is called as a function, it returns a wrapped object that can\n// be used OO-style. This wrapper holds altered versions of all functions added\n// through `_.mixin`. Wrapped objects may be chained.\nexport default function _(obj) {\n  if (obj instanceof _) return obj;\n  if (!(this instanceof _)) return new _(obj);\n  this._wrapped = obj;\n}\n\n_.VERSION = VERSION;\n\n// Extracts the result from a wrapped and chained object.\n_.prototype.value = function() {\n  return this._wrapped;\n};\n\n// Provide unwrapping proxies for some methods used in engine operations\n// such as arithmetic and JSON stringification.\n_.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n_.prototype.toString = function() {\n  return String(this._wrapped);\n};\n","import getByteLength from './_getByteLength.js';\n\n// Internal function to wrap or shallow-copy an ArrayBuffer,\n// typed array or DataView to a new view, reusing the buffer.\nexport default function toBufferView(bufferSource) {\n  return new Uint8Array(\n    bufferSource.buffer || bufferSource,\n    bufferSource.byteOffset || 0,\n    getByteLength(bufferSource)\n  );\n}\n","import _ from './underscore.js';\nimport { toString, SymbolProto } from './_setup.js';\nimport getByteLength from './_getByteLength.js';\nimport isTypedArray from './isTypedArray.js';\nimport isFunction from './isFunction.js';\nimport { hasStringTagBug }  from './_stringTagBug.js';\nimport isDataView from './isDataView.js';\nimport keys from './keys.js';\nimport has from './_has.js';\nimport toBufferView from './_toBufferView.js';\n\n// We use this string twice, so give it a name for minification.\nvar tagDataView = '[object DataView]';\n\n// Internal recursive comparison function for `_.isEqual`.\nfunction eq(a, b, aStack, bStack) {\n  // Identical objects are equal. `0 === -0`, but they aren't identical.\n  // See the [Harmony `egal` proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal).\n  if (a === b) return a !== 0 || 1 / a === 1 / b;\n  // `null` or `undefined` only equal to itself (strict comparison).\n  if (a == null || b == null) return false;\n  // `NaN`s are equivalent, but non-reflexive.\n  if (a !== a) return b !== b;\n  // Exhaust primitive checks\n  var type = typeof a;\n  if (type !== 'function' && type !== 'object' && typeof b != 'object') return false;\n  return deepEq(a, b, aStack, bStack);\n}\n\n// Internal recursive comparison function for `_.isEqual`.\nfunction deepEq(a, b, aStack, bStack) {\n  // Unwrap any wrapped objects.\n  if (a instanceof _) a = a._wrapped;\n  if (b instanceof _) b = b._wrapped;\n  // Compare `[[Class]]` names.\n  var className = toString.call(a);\n  if (className !== toString.call(b)) return false;\n  // Work around a bug in IE 10 - Edge 13.\n  if (hasStringTagBug && className == '[object Object]' && isDataView(a)) {\n    if (!isDataView(b)) return false;\n    className = tagDataView;\n  }\n  switch (className) {\n    // These types are compared by value.\n    case '[object RegExp]':\n      // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n    case '[object String]':\n      // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n      // equivalent to `new String(\"5\")`.\n      return '' + a === '' + b;\n    case '[object Number]':\n      // `NaN`s are equivalent, but non-reflexive.\n      // Object(NaN) is equivalent to NaN.\n      if (+a !== +a) return +b !== +b;\n      // An `egal` comparison is performed for other numeric values.\n      return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n    case '[object Date]':\n    case '[object Boolean]':\n      // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n      // millisecond representations. Note that invalid dates with millisecond representations\n      // of `NaN` are not equivalent.\n      return +a === +b;\n    case '[object Symbol]':\n      return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b);\n    case '[object ArrayBuffer]':\n    case tagDataView:\n      // Coerce to typed array so we can fall through.\n      return deepEq(toBufferView(a), toBufferView(b), aStack, bStack);\n  }\n\n  var areArrays = className === '[object Array]';\n  if (!areArrays && isTypedArray(a)) {\n      var byteLength = getByteLength(a);\n      if (byteLength !== getByteLength(b)) return false;\n      if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) return true;\n      areArrays = true;\n  }\n  if (!areArrays) {\n    if (typeof a != 'object' || typeof b != 'object') return false;\n\n    // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n    // from different frames are.\n    var aCtor = a.constructor, bCtor = b.constructor;\n    if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor &&\n                             isFunction(bCtor) && bCtor instanceof bCtor)\n                        && ('constructor' in a && 'constructor' in b)) {\n      return false;\n    }\n  }\n  // Assume equality for cyclic structures. The algorithm for detecting cyclic\n  // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n  // Initializing stack of traversed objects.\n  // It's done here since we only need them for objects and arrays comparison.\n  aStack = aStack || [];\n  bStack = bStack || [];\n  var length = aStack.length;\n  while (length--) {\n    // Linear search. Performance is inversely proportional to the number of\n    // unique nested structures.\n    if (aStack[length] === a) return bStack[length] === b;\n  }\n\n  // Add the first object to the stack of traversed objects.\n  aStack.push(a);\n  bStack.push(b);\n\n  // Recursively compare objects and arrays.\n  if (areArrays) {\n    // Compare array lengths to determine if a deep comparison is necessary.\n    length = a.length;\n    if (length !== b.length) return false;\n    // Deep compare the contents, ignoring non-numeric properties.\n    while (length--) {\n      if (!eq(a[length], b[length], aStack, bStack)) return false;\n    }\n  } else {\n    // Deep compare objects.\n    var _keys = keys(a), key;\n    length = _keys.length;\n    // Ensure that both objects contain the same number of properties before comparing deep equality.\n    if (keys(b).length !== length) return false;\n    while (length--) {\n      // Deep compare each member\n      key = _keys[length];\n      if (!(has(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n    }\n  }\n  // Remove the first object from the stack of traversed objects.\n  aStack.pop();\n  bStack.pop();\n  return true;\n}\n\n// Perform a deep comparison to check if two objects are equal.\nexport default function isEqual(a, b) {\n  return eq(a, b);\n}\n","import isObject from './isObject.js';\nimport { hasEnumBug } from './_setup.js';\nimport collectNonEnumProps from './_collectNonEnumProps.js';\n\n// Retrieve all the enumerable property names of an object.\nexport default function allKeys(obj) {\n  if (!isObject(obj)) return [];\n  var keys = [];\n  for (var key in obj) keys.push(key);\n  // Ahem, IE < 9.\n  if (hasEnumBug) collectNonEnumProps(obj, keys);\n  return keys;\n}\n","import getLength from './_getLength.js';\nimport isFunction from './isFunction.js';\nimport allKeys from './allKeys.js';\n\n// Since the regular `Object.prototype.toString` type tests don't work for\n// some types in IE 11, we use a fingerprinting heuristic instead, based\n// on the methods. It's not great, but it's the best we got.\n// The fingerprint method lists are defined below.\nexport function ie11fingerprint(methods) {\n  var length = getLength(methods);\n  return function(obj) {\n    if (obj == null) return false;\n    // `Map`, `WeakMap` and `Set` have no enumerable keys.\n    var keys = allKeys(obj);\n    if (getLength(keys)) return false;\n    for (var i = 0; i < length; i++) {\n      if (!isFunction(obj[methods[i]])) return false;\n    }\n    // If we are testing against `WeakMap`, we need to ensure that\n    // `obj` doesn't have a `forEach` method in order to distinguish\n    // it from a regular `Map`.\n    return methods !== weakMapMethods || !isFunction(obj[forEachName]);\n  };\n}\n\n// In the interest of compact minification, we write\n// each string in the fingerprints only once.\nvar forEachName = 'forEach',\n    hasName = 'has',\n    commonInit = ['clear', 'delete'],\n    mapTail = ['get', hasName, 'set'];\n\n// `Map`, `WeakMap` and `Set` each have slightly different\n// combinations of the above sublists.\nexport var mapMethods = commonInit.concat(forEachName, mapTail),\n    weakMapMethods = commonInit.concat(mapTail),\n    setMethods = ['add'].concat(commonInit, forEachName, hasName);\n","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, mapMethods }  from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(mapMethods) : tagTester('Map');\n","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, weakMapMethods }  from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(weakMapMethods) : tagTester('WeakMap');\n","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, setMethods }  from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(setMethods) : tagTester('Set');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('WeakSet');\n","import keys from './keys.js';\n\n// Retrieve the values of an object's properties.\nexport default function values(obj) {\n  var _keys = keys(obj);\n  var length = _keys.length;\n  var values = Array(length);\n  for (var i = 0; i < length; i++) {\n    values[i] = obj[_keys[i]];\n  }\n  return values;\n}\n","import keys from './keys.js';\n\n// Convert an object into a list of `[key, value]` pairs.\n// The opposite of `_.object` with one argument.\nexport default function pairs(obj) {\n  var _keys = keys(obj);\n  var length = _keys.length;\n  var pairs = Array(length);\n  for (var i = 0; i < length; i++) {\n    pairs[i] = [_keys[i], obj[_keys[i]]];\n  }\n  return pairs;\n}\n","import keys from './keys.js';\n\n// Invert the keys and values of an object. The values must be serializable.\nexport default function invert(obj) {\n  var result = {};\n  var _keys = keys(obj);\n  for (var i = 0, length = _keys.length; i < length; i++) {\n    result[obj[_keys[i]]] = _keys[i];\n  }\n  return result;\n}\n","import isFunction from './isFunction.js';\n\n// Return a sorted list of the function names available on the object.\nexport default function functions(obj) {\n  var names = [];\n  for (var key in obj) {\n    if (isFunction(obj[key])) names.push(key);\n  }\n  return names.sort();\n}\n","// An internal function for creating assigner functions.\nexport default function createAssigner(keysFunc, defaults) {\n  return function(obj) {\n    var length = arguments.length;\n    if (defaults) obj = Object(obj);\n    if (length < 2 || obj == null) return obj;\n    for (var index = 1; index < length; index++) {\n      var source = arguments[index],\n          keys = keysFunc(source),\n          l = keys.length;\n      for (var i = 0; i < l; i++) {\n        var key = keys[i];\n        if (!defaults || obj[key] === void 0) obj[key] = source[key];\n      }\n    }\n    return obj;\n  };\n}\n","import createAssigner from './_createAssigner.js';\nimport allKeys from './allKeys.js';\n\n// Extend a given object with all the properties in passed-in object(s).\nexport default createAssigner(allKeys);\n","import createAssigner from './_createAssigner.js';\nimport keys from './keys.js';\n\n// Assigns a given object with all the own properties in the passed-in\n// object(s).\n// (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\nexport default createAssigner(keys);\n","import createAssigner from './_createAssigner.js';\nimport allKeys from './allKeys.js';\n\n// Fill in a given object with default properties.\nexport default createAssigner(allKeys, true);\n","import isObject from './isObject.js';\nimport { nativeCreate } from './_setup.js';\n\n// Create a naked function reference for surrogate-prototype-swapping.\nfunction ctor() {\n  return function(){};\n}\n\n// An internal function for creating a new object that inherits from another.\nexport default function baseCreate(prototype) {\n  if (!isObject(prototype)) return {};\n  if (nativeCreate) return nativeCreate(prototype);\n  var Ctor = ctor();\n  Ctor.prototype = prototype;\n  var result = new Ctor;\n  Ctor.prototype = null;\n  return result;\n}\n","import baseCreate from './_baseCreate.js';\nimport extendOwn from './extendOwn.js';\n\n// Creates an object that inherits from the given prototype object.\n// If additional properties are provided then they will be added to the\n// created object.\nexport default function create(prototype, props) {\n  var result = baseCreate(prototype);\n  if (props) extendOwn(result, props);\n  return result;\n}\n","import isObject from './isObject.js';\nimport isArray from './isArray.js';\nimport extend from './extend.js';\n\n// Create a (shallow-cloned) duplicate of an object.\nexport default function clone(obj) {\n  if (!isObject(obj)) return obj;\n  return isArray(obj) ? obj.slice() : extend({}, obj);\n}\n","// Invokes `interceptor` with the `obj` and then returns `obj`.\n// The primary purpose of this method is to \"tap into\" a method chain, in\n// order to perform operations on intermediate results within the chain.\nexport default function tap(obj, interceptor) {\n  interceptor(obj);\n  return obj;\n}\n","import _ from './underscore.js';\nimport isArray from './isArray.js';\n\n// Normalize a (deep) property `path` to array.\n// Like `_.iteratee`, this function can be customized.\nexport default function toPath(path) {\n  return isArray(path) ? path : [path];\n}\n_.toPath = toPath;\n","import _ from './underscore.js';\nimport './toPath.js';\n\n// Internal wrapper for `_.toPath` to enable minification.\n// Similar to `cb` for `_.iteratee`.\nexport default function toPath(path) {\n  return _.toPath(path);\n}\n","// Internal function to obtain a nested property in `obj` along `path`.\nexport default function deepGet(obj, path) {\n  var length = path.length;\n  for (var i = 0; i < length; i++) {\n    if (obj == null) return void 0;\n    obj = obj[path[i]];\n  }\n  return length ? obj : void 0;\n}\n","import toPath from './_toPath.js';\nimport deepGet from './_deepGet.js';\nimport isUndefined from './isUndefined.js';\n\n// Get the value of the (deep) property on `path` from `object`.\n// If any property in `path` does not exist or if the value is\n// `undefined`, return `defaultValue` instead.\n// The `path` is normalized through `_.toPath`.\nexport default function get(object, path, defaultValue) {\n  var value = deepGet(object, toPath(path));\n  return isUndefined(value) ? defaultValue : value;\n}\n","import _has from './_has.js';\nimport toPath from './_toPath.js';\n\n// Shortcut function for checking if an object has a given property directly on\n// itself (in other words, not on a prototype). Unlike the internal `has`\n// function, this public version can also traverse nested properties.\nexport default function has(obj, path) {\n  path = toPath(path);\n  var length = path.length;\n  for (var i = 0; i < length; i++) {\n    var key = path[i];\n    if (!_has(obj, key)) return false;\n    obj = obj[key];\n  }\n  return !!length;\n}\n","// Keep the identity function around for default iteratees.\nexport default function identity(value) {\n  return value;\n}\n","import extendOwn from './extendOwn.js';\nimport isMatch from './isMatch.js';\n\n// Returns a predicate for checking whether an object has a given set of\n// `key:value` pairs.\nexport default function matcher(attrs) {\n  attrs = extendOwn({}, attrs);\n  return function(obj) {\n    return isMatch(obj, attrs);\n  };\n}\n","import deepGet from './_deepGet.js';\nimport toPath from './_toPath.js';\n\n// Creates a function that, when passed an object, will traverse that object’s\n// properties down the given `path`, specified as an array of keys or indices.\nexport default function property(path) {\n  path = toPath(path);\n  return function(obj) {\n    return deepGet(obj, path);\n  };\n}\n","// Internal function that returns an efficient (for current engines) version\n// of the passed-in callback, to be repeatedly applied in other Underscore\n// functions.\nexport default function optimizeCb(func, context, argCount) {\n  if (context === void 0) return func;\n  switch (argCount == null ? 3 : argCount) {\n    case 1: return function(value) {\n      return func.call(context, value);\n    };\n    // The 2-argument case is omitted because we’re not using it.\n    case 3: return function(value, index, collection) {\n      return func.call(context, value, index, collection);\n    };\n    case 4: return function(accumulator, value, index, collection) {\n      return func.call(context, accumulator, value, index, collection);\n    };\n  }\n  return function() {\n    return func.apply(context, arguments);\n  };\n}\n","import identity from './identity.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isArray from './isArray.js';\nimport matcher from './matcher.js';\nimport property from './property.js';\nimport optimizeCb from './_optimizeCb.js';\n\n// An internal function to generate callbacks that can be applied to each\n// element in a collection, returning the desired result — either `_.identity`,\n// an arbitrary callback, a property matcher, or a property accessor.\nexport default function baseIteratee(value, context, argCount) {\n  if (value == null) return identity;\n  if (isFunction(value)) return optimizeCb(value, context, argCount);\n  if (isObject(value) && !isArray(value)) return matcher(value);\n  return property(value);\n}\n","import _ from './underscore.js';\nimport baseIteratee from './_baseIteratee.js';\n\n// External wrapper for our callback generator. Users may customize\n// `_.iteratee` if they want additional predicate/iteratee shorthand styles.\n// This abstraction hides the internal-only `argCount` argument.\nexport default function iteratee(value, context) {\n  return baseIteratee(value, context, Infinity);\n}\n_.iteratee = iteratee;\n","import _ from './underscore.js';\nimport baseIteratee from './_baseIteratee.js';\nimport iteratee from './iteratee.js';\n\n// The function we call internally to generate a callback. It invokes\n// `_.iteratee` if overridden, otherwise `baseIteratee`.\nexport default function cb(value, context, argCount) {\n  if (_.iteratee !== iteratee) return _.iteratee(value, context);\n  return baseIteratee(value, context, argCount);\n}\n","import cb from './_cb.js';\nimport keys from './keys.js';\n\n// Returns the results of applying the `iteratee` to each element of `obj`.\n// In contrast to `_.map` it returns an object.\nexport default function mapObject(obj, iteratee, context) {\n  iteratee = cb(iteratee, context);\n  var _keys = keys(obj),\n      length = _keys.length,\n      results = {};\n  for (var index = 0; index < length; index++) {\n    var currentKey = _keys[index];\n    results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n  }\n  return results;\n}\n","// Predicate-generating function. Often useful outside of Underscore.\nexport default function noop(){}\n","import noop from './noop.js';\nimport get from './get.js';\n\n// Generates a function for a given object that returns a given property.\nexport default function propertyOf(obj) {\n  if (obj == null) return noop;\n  return function(path) {\n    return get(obj, path);\n  };\n}\n","import optimizeCb from './_optimizeCb.js';\n\n// Run a function **n** times.\nexport default function times(n, iteratee, context) {\n  var accum = Array(Math.max(0, n));\n  iteratee = optimizeCb(iteratee, context, 1);\n  for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n  return accum;\n}\n","// Return a random integer between `min` and `max` (inclusive).\nexport default function random(min, max) {\n  if (max == null) {\n    max = min;\n    min = 0;\n  }\n  return min + Math.floor(Math.random() * (max - min + 1));\n}\n","// A (possibly faster) way to get the current timestamp as an integer.\nexport default Date.now || function() {\n  return new Date().getTime();\n};\n","import keys from './keys.js';\n\n// Internal helper to generate functions for escaping and unescaping strings\n// to/from HTML interpolation.\nexport default function createEscaper(map) {\n  var escaper = function(match) {\n    return map[match];\n  };\n  // Regexes for identifying a key that needs to be escaped.\n  var source = '(?:' + keys(map).join('|') + ')';\n  var testRegexp = RegExp(source);\n  var replaceRegexp = RegExp(source, 'g');\n  return function(string) {\n    string = string == null ? '' : '' + string;\n    return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n  };\n}\n","// Internal list of HTML entities for escaping.\nexport default {\n  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n  '\"': '&quot;',\n  \"'\": '&#x27;',\n  '`': '&#x60;'\n};\n","import createEscaper from './_createEscaper.js';\nimport escapeMap from './_escapeMap.js';\n\n// Function for escaping strings to HTML interpolation.\nexport default createEscaper(escapeMap);\n","import createEscaper from './_createEscaper.js';\nimport unescapeMap from './_unescapeMap.js';\n\n// Function for unescaping strings from HTML interpolation.\nexport default createEscaper(unescapeMap);\n","import invert from './invert.js';\nimport escapeMap from './_escapeMap.js';\n\n// Internal list of HTML entities for unescaping.\nexport default invert(escapeMap);\n","import _ from './underscore.js';\n\n// By default, Underscore uses ERB-style template delimiters. Change the\n// following template settings to use alternative delimiters.\nexport default _.templateSettings = {\n  evaluate: /<%([\\s\\S]+?)%>/g,\n  interpolate: /<%=([\\s\\S]+?)%>/g,\n  escape: /<%-([\\s\\S]+?)%>/g\n};\n","import defaults from './defaults.js';\nimport _ from './underscore.js';\nimport './templateSettings.js';\n\n// When customizing `_.templateSettings`, if you don't want to define an\n// interpolation, evaluation or escaping regex, we need one that is\n// guaranteed not to match.\nvar noMatch = /(.)^/;\n\n// Certain characters need to be escaped so that they can be put into a\n// string literal.\nvar escapes = {\n  \"'\": \"'\",\n  '\\\\': '\\\\',\n  '\\r': 'r',\n  '\\n': 'n',\n  '\\u2028': 'u2028',\n  '\\u2029': 'u2029'\n};\n\nvar escapeRegExp = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\nfunction escapeChar(match) {\n  return '\\\\' + escapes[match];\n}\n\n// In order to prevent third-party code injection through\n// `_.templateSettings.variable`, we test it against the following regular\n// expression. It is intentionally a bit more liberal than just matching valid\n// identifiers, but still prevents possible loopholes through defaults or\n// destructuring assignment.\nvar bareIdentifier = /^\\s*(\\w|\\$)+\\s*$/;\n\n// JavaScript micro-templating, similar to John Resig's implementation.\n// Underscore templating handles arbitrary delimiters, preserves whitespace,\n// and correctly escapes quotes within interpolated code.\n// NB: `oldSettings` only exists for backwards compatibility.\nexport default function template(text, settings, oldSettings) {\n  if (!settings && oldSettings) settings = oldSettings;\n  settings = defaults({}, settings, _.templateSettings);\n\n  // Combine delimiters into one regular expression via alternation.\n  var matcher = RegExp([\n    (settings.escape || noMatch).source,\n    (settings.interpolate || noMatch).source,\n    (settings.evaluate || noMatch).source\n  ].join('|') + '|$', 'g');\n\n  // Compile the template source, escaping string literals appropriately.\n  var index = 0;\n  var source = \"__p+='\";\n  text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n    source += text.slice(index, offset).replace(escapeRegExp, escapeChar);\n    index = offset + match.length;\n\n    if (escape) {\n      source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n    } else if (interpolate) {\n      source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n    } else if (evaluate) {\n      source += \"';\\n\" + evaluate + \"\\n__p+='\";\n    }\n\n    // Adobe VMs need the match returned to produce the correct offset.\n    return match;\n  });\n  source += \"';\\n\";\n\n  var argument = settings.variable;\n  if (argument) {\n    // Insure against third-party code injection. (CVE-2021-23358)\n    if (!bareIdentifier.test(argument)) throw new Error(\n      'variable is not a bare identifier: ' + argument\n    );\n  } else {\n    // If a variable is not specified, place data values in local scope.\n    source = 'with(obj||{}){\\n' + source + '}\\n';\n    argument = 'obj';\n  }\n\n  source = \"var __t,__p='',__j=Array.prototype.join,\" +\n    \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n    source + 'return __p;\\n';\n\n  var render;\n  try {\n    render = new Function(argument, '_', source);\n  } catch (e) {\n    e.source = source;\n    throw e;\n  }\n\n  var template = function(data) {\n    return render.call(this, data, _);\n  };\n\n  // Provide the compiled source as a convenience for precompilation.\n  template.source = 'function(' + argument + '){\\n' + source + '}';\n\n  return template;\n}\n","import isFunction from './isFunction.js';\nimport toPath from './_toPath.js';\n\n// Traverses the children of `obj` along `path`. If a child is a function, it\n// is invoked with its parent as context. Returns the value of the final\n// child, or `fallback` if any child is undefined.\nexport default function result(obj, path, fallback) {\n  path = toPath(path);\n  var length = path.length;\n  if (!length) {\n    return isFunction(fallback) ? fallback.call(obj) : fallback;\n  }\n  for (var i = 0; i < length; i++) {\n    var prop = obj == null ? void 0 : obj[path[i]];\n    if (prop === void 0) {\n      prop = fallback;\n      i = length; // Ensure we don't continue iterating.\n    }\n    obj = isFunction(prop) ? prop.call(obj) : prop;\n  }\n  return obj;\n}\n","// Generate a unique integer id (unique within the entire client session).\n// Useful for temporary DOM ids.\nvar idCounter = 0;\nexport default function uniqueId(prefix) {\n  var id = ++idCounter + '';\n  return prefix ? prefix + id : id;\n}\n","import _ from './underscore.js';\n\n// Start chaining a wrapped Underscore object.\nexport default function chain(obj) {\n  var instance = _(obj);\n  instance._chain = true;\n  return instance;\n}\n","import baseCreate from './_baseCreate.js';\nimport isObject from './isObject.js';\n\n// Internal function to execute `sourceFunc` bound to `context` with optional\n// `args`. Determines whether to execute a function as a constructor or as a\n// normal function.\nexport default function executeBound(sourceFunc, boundFunc, context, callingContext, args) {\n  if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n  var self = baseCreate(sourceFunc.prototype);\n  var result = sourceFunc.apply(self, args);\n  if (isObject(result)) return result;\n  return self;\n}\n","import restArguments from './restArguments.js';\nimport executeBound from './_executeBound.js';\nimport _ from './underscore.js';\n\n// Partially apply a function by creating a version that has had some of its\n// arguments pre-filled, without changing its dynamic `this` context. `_` acts\n// as a placeholder by default, allowing any combination of arguments to be\n// pre-filled. Set `_.partial.placeholder` for a custom placeholder argument.\nvar partial = restArguments(function(func, boundArgs) {\n  var placeholder = partial.placeholder;\n  var bound = function() {\n    var position = 0, length = boundArgs.length;\n    var args = Array(length);\n    for (var i = 0; i < length; i++) {\n      args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i];\n    }\n    while (position < arguments.length) args.push(arguments[position++]);\n    return executeBound(func, bound, this, this, args);\n  };\n  return bound;\n});\n\npartial.placeholder = _;\nexport default partial;\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport executeBound from './_executeBound.js';\n\n// Create a function bound to a given object (assigning `this`, and arguments,\n// optionally).\nexport default restArguments(function(func, context, args) {\n  if (!isFunction(func)) throw new TypeError('Bind must be called on a function');\n  var bound = restArguments(function(callArgs) {\n    return executeBound(func, bound, context, this, args.concat(callArgs));\n  });\n  return bound;\n});\n","import createSizePropertyCheck from './_createSizePropertyCheck.js';\nimport getLength from './_getLength.js';\n\n// Internal helper for collection methods to determine whether a collection\n// should be iterated as an array or as an object.\n// Related: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n// Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\nexport default createSizePropertyCheck(getLength);\n","import getLength from './_getLength.js';\nimport isArrayLike from './_isArrayLike.js';\nimport isArray from './isArray.js';\nimport isArguments from './isArguments.js';\n\n// Internal implementation of a recursive `flatten` function.\nexport default function flatten(input, depth, strict, output) {\n  output = output || [];\n  if (!depth && depth !== 0) {\n    depth = Infinity;\n  } else if (depth <= 0) {\n    return output.concat(input);\n  }\n  var idx = output.length;\n  for (var i = 0, length = getLength(input); i < length; i++) {\n    var value = input[i];\n    if (isArrayLike(value) && (isArray(value) || isArguments(value))) {\n      // Flatten current level of array or arguments object.\n      if (depth > 1) {\n        flatten(value, depth - 1, strict, output);\n        idx = output.length;\n      } else {\n        var j = 0, len = value.length;\n        while (j < len) output[idx++] = value[j++];\n      }\n    } else if (!strict) {\n      output[idx++] = value;\n    }\n  }\n  return output;\n}\n","import restArguments from './restArguments.js';\nimport flatten from './_flatten.js';\nimport bind from './bind.js';\n\n// Bind a number of an object's methods to that object. Remaining arguments\n// are the method names to be bound. Useful for ensuring that all callbacks\n// defined on an object belong to it.\nexport default restArguments(function(obj, keys) {\n  keys = flatten(keys, false, false);\n  var index = keys.length;\n  if (index < 1) throw new Error('bindAll must be passed function names');\n  while (index--) {\n    var key = keys[index];\n    obj[key] = bind(obj[key], obj);\n  }\n  return obj;\n});\n","import has from './_has.js';\n\n// Memoize an expensive function by storing its results.\nexport default function memoize(func, hasher) {\n  var memoize = function(key) {\n    var cache = memoize.cache;\n    var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n    if (!has(cache, address)) cache[address] = func.apply(this, arguments);\n    return cache[address];\n  };\n  memoize.cache = {};\n  return memoize;\n}\n","import restArguments from './restArguments.js';\n\n// Delays a function for the given number of milliseconds, and then calls\n// it with the arguments supplied.\nexport default restArguments(function(func, wait, args) {\n  return setTimeout(function() {\n    return func.apply(null, args);\n  }, wait);\n});\n","import partial from './partial.js';\nimport delay from './delay.js';\nimport _ from './underscore.js';\n\n// Defers a function, scheduling it to run after the current call stack has\n// cleared.\nexport default partial(delay, _, 1);\n","import now from './now.js';\n\n// Returns a function, that, when invoked, will only be triggered at most once\n// during a given window of time. Normally, the throttled function will run\n// as much as it can, without ever going more than once per `wait` duration;\n// but if you'd like to disable the execution on the leading edge, pass\n// `{leading: false}`. To disable execution on the trailing edge, ditto.\nexport default function throttle(func, wait, options) {\n  var timeout, context, args, result;\n  var previous = 0;\n  if (!options) options = {};\n\n  var later = function() {\n    previous = options.leading === false ? 0 : now();\n    timeout = null;\n    result = func.apply(context, args);\n    if (!timeout) context = args = null;\n  };\n\n  var throttled = function() {\n    var _now = now();\n    if (!previous && options.leading === false) previous = _now;\n    var remaining = wait - (_now - previous);\n    context = this;\n    args = arguments;\n    if (remaining <= 0 || remaining > wait) {\n      if (timeout) {\n        clearTimeout(timeout);\n        timeout = null;\n      }\n      previous = _now;\n      result = func.apply(context, args);\n      if (!timeout) context = args = null;\n    } else if (!timeout && options.trailing !== false) {\n      timeout = setTimeout(later, remaining);\n    }\n    return result;\n  };\n\n  throttled.cancel = function() {\n    clearTimeout(timeout);\n    previous = 0;\n    timeout = context = args = null;\n  };\n\n  return throttled;\n}\n","import restArguments from './restArguments.js';\nimport now from './now.js';\n\n// When a sequence of calls of the returned function ends, the argument\n// function is triggered. The end of a sequence is defined by the `wait`\n// parameter. If `immediate` is passed, the argument function will be\n// triggered at the beginning of the sequence instead of at the end.\nexport default function debounce(func, wait, immediate) {\n  var timeout, previous, args, result, context;\n\n  var later = function() {\n    var passed = now() - previous;\n    if (wait > passed) {\n      timeout = setTimeout(later, wait - passed);\n    } else {\n      timeout = null;\n      if (!immediate) result = func.apply(context, args);\n      // This check is needed because `func` can recursively invoke `debounced`.\n      if (!timeout) args = context = null;\n    }\n  };\n\n  var debounced = restArguments(function(_args) {\n    context = this;\n    args = _args;\n    previous = now();\n    if (!timeout) {\n      timeout = setTimeout(later, wait);\n      if (immediate) result = func.apply(context, args);\n    }\n    return result;\n  });\n\n  debounced.cancel = function() {\n    clearTimeout(timeout);\n    timeout = args = context = null;\n  };\n\n  return debounced;\n}\n","import partial from './partial.js';\n\n// Returns the first function passed as an argument to the second,\n// allowing you to adjust arguments, run code before and after, and\n// conditionally execute the original function.\nexport default function wrap(func, wrapper) {\n  return partial(wrapper, func);\n}\n","// Returns a negated version of the passed-in predicate.\nexport default function negate(predicate) {\n  return function() {\n    return !predicate.apply(this, arguments);\n  };\n}\n","// Returns a function that is the composition of a list of functions, each\n// consuming the return value of the function that follows.\nexport default function compose() {\n  var args = arguments;\n  var start = args.length - 1;\n  return function() {\n    var i = start;\n    var result = args[start].apply(this, arguments);\n    while (i--) result = args[i].call(this, result);\n    return result;\n  };\n}\n","// Returns a function that will only be executed on and after the Nth call.\nexport default function after(times, func) {\n  return function() {\n    if (--times < 1) {\n      return func.apply(this, arguments);\n    }\n  };\n}\n","// Returns a function that will only be executed up to (but not including) the\n// Nth call.\nexport default function before(times, func) {\n  var memo;\n  return function() {\n    if (--times > 0) {\n      memo = func.apply(this, arguments);\n    }\n    if (times <= 1) func = null;\n    return memo;\n  };\n}\n","import partial from './partial.js';\nimport before from './before.js';\n\n// Returns a function that will be executed at most one time, no matter how\n// often you call it. Useful for lazy initialization.\nexport default partial(before, 2);\n","import cb from './_cb.js';\nimport keys from './keys.js';\n\n// Returns the first key on an object that passes a truth test.\nexport default function findKey(obj, predicate, context) {\n  predicate = cb(predicate, context);\n  var _keys = keys(obj), key;\n  for (var i = 0, length = _keys.length; i < length; i++) {\n    key = _keys[i];\n    if (predicate(obj[key], key, obj)) return key;\n  }\n}\n","import cb from './_cb.js';\nimport getLength from './_getLength.js';\n\n// Internal function to generate `_.findIndex` and `_.findLastIndex`.\nexport default function createPredicateIndexFinder(dir) {\n  return function(array, predicate, context) {\n    predicate = cb(predicate, context);\n    var length = getLength(array);\n    var index = dir > 0 ? 0 : length - 1;\n    for (; index >= 0 && index < length; index += dir) {\n      if (predicate(array[index], index, array)) return index;\n    }\n    return -1;\n  };\n}\n","import createPredicateIndexFinder from './_createPredicateIndexFinder.js';\n\n// Returns the first index on an array-like that passes a truth test.\nexport default createPredicateIndexFinder(1);\n","import createPredicateIndexFinder from './_createPredicateIndexFinder.js';\n\n// Returns the last index on an array-like that passes a truth test.\nexport default createPredicateIndexFinder(-1);\n","import cb from './_cb.js';\nimport getLength from './_getLength.js';\n\n// Use a comparator function to figure out the smallest index at which\n// an object should be inserted so as to maintain order. Uses binary search.\nexport default function sortedIndex(array, obj, iteratee, context) {\n  iteratee = cb(iteratee, context, 1);\n  var value = iteratee(obj);\n  var low = 0, high = getLength(array);\n  while (low < high) {\n    var mid = Math.floor((low + high) / 2);\n    if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n  }\n  return low;\n}\n","import getLength from './_getLength.js';\nimport { slice } from './_setup.js';\nimport isNaN from './isNaN.js';\n\n// Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions.\nexport default function createIndexFinder(dir, predicateFind, sortedIndex) {\n  return function(array, item, idx) {\n    var i = 0, length = getLength(array);\n    if (typeof idx == 'number') {\n      if (dir > 0) {\n        i = idx >= 0 ? idx : Math.max(idx + length, i);\n      } else {\n        length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n      }\n    } else if (sortedIndex && idx && length) {\n      idx = sortedIndex(array, item);\n      return array[idx] === item ? idx : -1;\n    }\n    if (item !== item) {\n      idx = predicateFind(slice.call(array, i, length), isNaN);\n      return idx >= 0 ? idx + i : -1;\n    }\n    for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n      if (array[idx] === item) return idx;\n    }\n    return -1;\n  };\n}\n","import sortedIndex from './sortedIndex.js';\nimport findIndex from './findIndex.js';\nimport createIndexFinder from './_createIndexFinder.js';\n\n// Return the position of the first occurrence of an item in an array,\n// or -1 if the item is not included in the array.\n// If the array is large and already in sort order, pass `true`\n// for **isSorted** to use binary search.\nexport default createIndexFinder(1, findIndex, sortedIndex);\n","import findLastIndex from './findLastIndex.js';\nimport createIndexFinder from './_createIndexFinder.js';\n\n// Return the position of the last occurrence of an item in an array,\n// or -1 if the item is not included in the array.\nexport default createIndexFinder(-1, findLastIndex);\n","import isArrayLike from './_isArrayLike.js';\nimport findIndex from './findIndex.js';\nimport findKey from './findKey.js';\n\n// Return the first value which passes a truth test.\nexport default function find(obj, predicate, context) {\n  var keyFinder = isArrayLike(obj) ? findIndex : findKey;\n  var key = keyFinder(obj, predicate, context);\n  if (key !== void 0 && key !== -1) return obj[key];\n}\n","import find from './find.js';\nimport matcher from './matcher.js';\n\n// Convenience version of a common use case of `_.find`: getting the first\n// object containing specific `key:value` pairs.\nexport default function findWhere(obj, attrs) {\n  return find(obj, matcher(attrs));\n}\n","import optimizeCb from './_optimizeCb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// The cornerstone for collection functions, an `each`\n// implementation, aka `forEach`.\n// Handles raw objects in addition to array-likes. Treats all\n// sparse array-likes as if they were dense.\nexport default function each(obj, iteratee, context) {\n  iteratee = optimizeCb(iteratee, context);\n  var i, length;\n  if (isArrayLike(obj)) {\n    for (i = 0, length = obj.length; i < length; i++) {\n      iteratee(obj[i], i, obj);\n    }\n  } else {\n    var _keys = keys(obj);\n    for (i = 0, length = _keys.length; i < length; i++) {\n      iteratee(obj[_keys[i]], _keys[i], obj);\n    }\n  }\n  return obj;\n}\n","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Return the results of applying the iteratee to each element.\nexport default function map(obj, iteratee, context) {\n  iteratee = cb(iteratee, context);\n  var _keys = !isArrayLike(obj) && keys(obj),\n      length = (_keys || obj).length,\n      results = Array(length);\n  for (var index = 0; index < length; index++) {\n    var currentKey = _keys ? _keys[index] : index;\n    results[index] = iteratee(obj[currentKey], currentKey, obj);\n  }\n  return results;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\nimport optimizeCb from './_optimizeCb.js';\n\n// Internal helper to create a reducing function, iterating left or right.\nexport default function createReduce(dir) {\n  // Wrap code that reassigns argument variables in a separate function than\n  // the one that accesses `arguments.length` to avoid a perf hit. (#1991)\n  var reducer = function(obj, iteratee, memo, initial) {\n    var _keys = !isArrayLike(obj) && keys(obj),\n        length = (_keys || obj).length,\n        index = dir > 0 ? 0 : length - 1;\n    if (!initial) {\n      memo = obj[_keys ? _keys[index] : index];\n      index += dir;\n    }\n    for (; index >= 0 && index < length; index += dir) {\n      var currentKey = _keys ? _keys[index] : index;\n      memo = iteratee(memo, obj[currentKey], currentKey, obj);\n    }\n    return memo;\n  };\n\n  return function(obj, iteratee, memo, context) {\n    var initial = arguments.length >= 3;\n    return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial);\n  };\n}\n","import createReduce from './_createReduce.js';\n\n// **Reduce** builds up a single result from a list of values, aka `inject`,\n// or `foldl`.\nexport default createReduce(1);\n","import createReduce from './_createReduce.js';\n\n// The right-associative version of reduce, also known as `foldr`.\nexport default createReduce(-1);\n","import cb from './_cb.js';\nimport each from './each.js';\n\n// Return all the elements that pass a truth test.\nexport default function filter(obj, predicate, context) {\n  var results = [];\n  predicate = cb(predicate, context);\n  each(obj, function(value, index, list) {\n    if (predicate(value, index, list)) results.push(value);\n  });\n  return results;\n}\n","import filter from './filter.js';\nimport negate from './negate.js';\nimport cb from './_cb.js';\n\n// Return all the elements for which a truth test fails.\nexport default function reject(obj, predicate, context) {\n  return filter(obj, negate(cb(predicate)), context);\n}\n","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Determine whether all of the elements pass a truth test.\nexport default function every(obj, predicate, context) {\n  predicate = cb(predicate, context);\n  var _keys = !isArrayLike(obj) && keys(obj),\n      length = (_keys || obj).length;\n  for (var index = 0; index < length; index++) {\n    var currentKey = _keys ? _keys[index] : index;\n    if (!predicate(obj[currentKey], currentKey, obj)) return false;\n  }\n  return true;\n}\n","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Determine if at least one element in the object passes a truth test.\nexport default function some(obj, predicate, context) {\n  predicate = cb(predicate, context);\n  var _keys = !isArrayLike(obj) && keys(obj),\n      length = (_keys || obj).length;\n  for (var index = 0; index < length; index++) {\n    var currentKey = _keys ? _keys[index] : index;\n    if (predicate(obj[currentKey], currentKey, obj)) return true;\n  }\n  return false;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport indexOf from './indexOf.js';\n\n// Determine if the array or object contains a given item (using `===`).\nexport default function contains(obj, item, fromIndex, guard) {\n  if (!isArrayLike(obj)) obj = values(obj);\n  if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n  return indexOf(obj, item, fromIndex) >= 0;\n}\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport map from './map.js';\nimport deepGet from './_deepGet.js';\nimport toPath from './_toPath.js';\n\n// Invoke a method (with arguments) on every item in a collection.\nexport default restArguments(function(obj, path, args) {\n  var contextPath, func;\n  if (isFunction(path)) {\n    func = path;\n  } else {\n    path = toPath(path);\n    contextPath = path.slice(0, -1);\n    path = path[path.length - 1];\n  }\n  return map(obj, function(context) {\n    var method = func;\n    if (!method) {\n      if (contextPath && contextPath.length) {\n        context = deepGet(context, contextPath);\n      }\n      if (context == null) return void 0;\n      method = context[path];\n    }\n    return method == null ? method : method.apply(context, args);\n  });\n});\n","import map from './map.js';\nimport property from './property.js';\n\n// Convenience version of a common use case of `_.map`: fetching a property.\nexport default function pluck(obj, key) {\n  return map(obj, property(key));\n}\n","import filter from './filter.js';\nimport matcher from './matcher.js';\n\n// Convenience version of a common use case of `_.filter`: selecting only\n// objects containing specific `key:value` pairs.\nexport default function where(obj, attrs) {\n  return filter(obj, matcher(attrs));\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport cb from './_cb.js';\nimport each from './each.js';\n\n// Return the maximum element (or element-based computation).\nexport default function max(obj, iteratee, context) {\n  var result = -Infinity, lastComputed = -Infinity,\n      value, computed;\n  if (iteratee == null || (typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null)) {\n    obj = isArrayLike(obj) ? obj : values(obj);\n    for (var i = 0, length = obj.length; i < length; i++) {\n      value = obj[i];\n      if (value != null && value > result) {\n        result = value;\n      }\n    }\n  } else {\n    iteratee = cb(iteratee, context);\n    each(obj, function(v, index, list) {\n      computed = iteratee(v, index, list);\n      if (computed > lastComputed || (computed === -Infinity && result === -Infinity)) {\n        result = v;\n        lastComputed = computed;\n      }\n    });\n  }\n  return result;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport cb from './_cb.js';\nimport each from './each.js';\n\n// Return the minimum element (or element-based computation).\nexport default function min(obj, iteratee, context) {\n  var result = Infinity, lastComputed = Infinity,\n      value, computed;\n  if (iteratee == null || (typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null)) {\n    obj = isArrayLike(obj) ? obj : values(obj);\n    for (var i = 0, length = obj.length; i < length; i++) {\n      value = obj[i];\n      if (value != null && value < result) {\n        result = value;\n      }\n    }\n  } else {\n    iteratee = cb(iteratee, context);\n    each(obj, function(v, index, list) {\n      computed = iteratee(v, index, list);\n      if (computed < lastComputed || (computed === Infinity && result === Infinity)) {\n        result = v;\n        lastComputed = computed;\n      }\n    });\n  }\n  return result;\n}\n","import isArray from './isArray.js';\nimport { slice } from './_setup.js';\nimport isString from './isString.js';\nimport isArrayLike from './_isArrayLike.js';\nimport map from './map.js';\nimport identity from './identity.js';\nimport values from './values.js';\n\n// Safely create a real, live array from anything iterable.\nvar reStrSymbol = /[^\\ud800-\\udfff]|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff]/g;\nexport default function toArray(obj) {\n  if (!obj) return [];\n  if (isArray(obj)) return slice.call(obj);\n  if (isString(obj)) {\n    // Keep surrogate pair characters together.\n    return obj.match(reStrSymbol);\n  }\n  if (isArrayLike(obj)) return map(obj, identity);\n  return values(obj);\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport getLength from './_getLength.js';\nimport random from './random.js';\nimport toArray from './toArray.js';\n\n// Sample **n** random values from a collection using the modern version of the\n// [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n// If **n** is not specified, returns a single random element.\n// The internal `guard` argument allows it to work with `_.map`.\nexport default function sample(obj, n, guard) {\n  if (n == null || guard) {\n    if (!isArrayLike(obj)) obj = values(obj);\n    return obj[random(obj.length - 1)];\n  }\n  var sample = toArray(obj);\n  var length = getLength(sample);\n  n = Math.max(Math.min(n, length), 0);\n  var last = length - 1;\n  for (var index = 0; index < n; index++) {\n    var rand = random(index, last);\n    var temp = sample[index];\n    sample[index] = sample[rand];\n    sample[rand] = temp;\n  }\n  return sample.slice(0, n);\n}\n","import sample from './sample.js';\n\n// Shuffle a collection.\nexport default function shuffle(obj) {\n  return sample(obj, Infinity);\n}\n","import cb from './_cb.js';\nimport pluck from './pluck.js';\nimport map from './map.js';\n\n// Sort the object's values by a criterion produced by an iteratee.\nexport default function sortBy(obj, iteratee, context) {\n  var index = 0;\n  iteratee = cb(iteratee, context);\n  return pluck(map(obj, function(value, key, list) {\n    return {\n      value: value,\n      index: index++,\n      criteria: iteratee(value, key, list)\n    };\n  }).sort(function(left, right) {\n    var a = left.criteria;\n    var b = right.criteria;\n    if (a !== b) {\n      if (a > b || a === void 0) return 1;\n      if (a < b || b === void 0) return -1;\n    }\n    return left.index - right.index;\n  }), 'value');\n}\n","import cb from './_cb.js';\nimport each from './each.js';\n\n// An internal function used for aggregate \"group by\" operations.\nexport default function group(behavior, partition) {\n  return function(obj, iteratee, context) {\n    var result = partition ? [[], []] : {};\n    iteratee = cb(iteratee, context);\n    each(obj, function(value, index) {\n      var key = iteratee(value, index, obj);\n      behavior(result, value, key);\n    });\n    return result;\n  };\n}\n","import group from './_group.js';\nimport has from './_has.js';\n\n// Groups the object's values by a criterion. Pass either a string attribute\n// to group by, or a function that returns the criterion.\nexport default group(function(result, value, key) {\n  if (has(result, key)) result[key].push(value); else result[key] = [value];\n});\n","import group from './_group.js';\n\n// Indexes the object's values by a criterion, similar to `_.groupBy`, but for\n// when you know that your index values will be unique.\nexport default group(function(result, value, key) {\n  result[key] = value;\n});\n","import group from './_group.js';\nimport has from './_has.js';\n\n// Counts instances of an object that group by a certain criterion. Pass\n// either a string attribute to count by, or a function that returns the\n// criterion.\nexport default group(function(result, value, key) {\n  if (has(result, key)) result[key]++; else result[key] = 1;\n});\n","import group from './_group.js';\n\n// Split a collection into two arrays: one whose elements all pass the given\n// truth test, and one whose elements all do not pass the truth test.\nexport default group(function(result, value, pass) {\n  result[pass ? 0 : 1].push(value);\n}, true);\n","import isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Return the number of elements in a collection.\nexport default function size(obj) {\n  if (obj == null) return 0;\n  return isArrayLike(obj) ? obj.length : keys(obj).length;\n}\n","// Internal `_.pick` helper function to determine whether `key` is an enumerable\n// property name of `obj`.\nexport default function keyInObj(value, key, obj) {\n  return key in obj;\n}\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport optimizeCb from './_optimizeCb.js';\nimport allKeys from './allKeys.js';\nimport keyInObj from './_keyInObj.js';\nimport flatten from './_flatten.js';\n\n// Return a copy of the object only containing the allowed properties.\nexport default restArguments(function(obj, keys) {\n  var result = {}, iteratee = keys[0];\n  if (obj == null) return result;\n  if (isFunction(iteratee)) {\n    if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]);\n    keys = allKeys(obj);\n  } else {\n    iteratee = keyInObj;\n    keys = flatten(keys, false, false);\n    obj = Object(obj);\n  }\n  for (var i = 0, length = keys.length; i < length; i++) {\n    var key = keys[i];\n    var value = obj[key];\n    if (iteratee(value, key, obj)) result[key] = value;\n  }\n  return result;\n});\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport negate from './negate.js';\nimport map from './map.js';\nimport flatten from './_flatten.js';\nimport contains from './contains.js';\nimport pick from './pick.js';\n\n// Return a copy of the object without the disallowed properties.\nexport default restArguments(function(obj, keys) {\n  var iteratee = keys[0], context;\n  if (isFunction(iteratee)) {\n    iteratee = negate(iteratee);\n    if (keys.length > 1) context = keys[1];\n  } else {\n    keys = map(flatten(keys, false, false), String);\n    iteratee = function(value, key) {\n      return !contains(keys, key);\n    };\n  }\n  return pick(obj, iteratee, context);\n});\n","import { slice } from './_setup.js';\n\n// Returns everything but the last entry of the array. Especially useful on\n// the arguments object. Passing **n** will return all the values in\n// the array, excluding the last N.\nexport default function initial(array, n, guard) {\n  return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n}\n","import initial from './initial.js';\n\n// Get the first element of an array. Passing **n** will return the first N\n// values in the array. The **guard** check allows it to work with `_.map`.\nexport default function first(array, n, guard) {\n  if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n  if (n == null || guard) return array[0];\n  return initial(array, array.length - n);\n}\n","import { slice } from './_setup.js';\n\n// Returns everything but the first entry of the `array`. Especially useful on\n// the `arguments` object. Passing an **n** will return the rest N values in the\n// `array`.\nexport default function rest(array, n, guard) {\n  return slice.call(array, n == null || guard ? 1 : n);\n}\n","import rest from './rest.js';\n\n// Get the last element of an array. Passing **n** will return the last N\n// values in the array.\nexport default function last(array, n, guard) {\n  if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n  if (n == null || guard) return array[array.length - 1];\n  return rest(array, Math.max(0, array.length - n));\n}\n","import filter from './filter.js';\n\n// Trim out all falsy values from an array.\nexport default function compact(array) {\n  return filter(array, Boolean);\n}\n","import _flatten from './_flatten.js';\n\n// Flatten out an array, either recursively (by default), or up to `depth`.\n// Passing `true` or `false` as `depth` means `1` or `Infinity`, respectively.\nexport default function flatten(array, depth) {\n  return _flatten(array, depth, false);\n}\n","import restArguments from './restArguments.js';\nimport flatten from './_flatten.js';\nimport filter from './filter.js';\nimport contains from './contains.js';\n\n// Take the difference between one array and a number of other arrays.\n// Only the elements present in just the first array will remain.\nexport default restArguments(function(array, rest) {\n  rest = flatten(rest, true, true);\n  return filter(array, function(value){\n    return !contains(rest, value);\n  });\n});\n","import restArguments from './restArguments.js';\nimport difference from './difference.js';\n\n// Return a version of the array that does not contain the specified value(s).\nexport default restArguments(function(array, otherArrays) {\n  return difference(array, otherArrays);\n});\n","import isBoolean from './isBoolean.js';\nimport cb from './_cb.js';\nimport getLength from './_getLength.js';\nimport contains from './contains.js';\n\n// Produce a duplicate-free version of the array. If the array has already\n// been sorted, you have the option of using a faster algorithm.\n// The faster algorithm will not work with an iteratee if the iteratee\n// is not a one-to-one function, so providing an iteratee will disable\n// the faster algorithm.\nexport default function uniq(array, isSorted, iteratee, context) {\n  if (!isBoolean(isSorted)) {\n    context = iteratee;\n    iteratee = isSorted;\n    isSorted = false;\n  }\n  if (iteratee != null) iteratee = cb(iteratee, context);\n  var result = [];\n  var seen = [];\n  for (var i = 0, length = getLength(array); i < length; i++) {\n    var value = array[i],\n        computed = iteratee ? iteratee(value, i, array) : value;\n    if (isSorted && !iteratee) {\n      if (!i || seen !== computed) result.push(value);\n      seen = computed;\n    } else if (iteratee) {\n      if (!contains(seen, computed)) {\n        seen.push(computed);\n        result.push(value);\n      }\n    } else if (!contains(result, value)) {\n      result.push(value);\n    }\n  }\n  return result;\n}\n","import restArguments from './restArguments.js';\nimport uniq from './uniq.js';\nimport flatten from './_flatten.js';\n\n// Produce an array that contains the union: each distinct element from all of\n// the passed-in arrays.\nexport default restArguments(function(arrays) {\n  return uniq(flatten(arrays, true, true));\n});\n","import getLength from './_getLength.js';\nimport contains from './contains.js';\n\n// Produce an array that contains every item shared between all the\n// passed-in arrays.\nexport default function intersection(array) {\n  var result = [];\n  var argsLength = arguments.length;\n  for (var i = 0, length = getLength(array); i < length; i++) {\n    var item = array[i];\n    if (contains(result, item)) continue;\n    var j;\n    for (j = 1; j < argsLength; j++) {\n      if (!contains(arguments[j], item)) break;\n    }\n    if (j === argsLength) result.push(item);\n  }\n  return result;\n}\n","import max from './max.js';\nimport getLength from './_getLength.js';\nimport pluck from './pluck.js';\n\n// Complement of zip. Unzip accepts an array of arrays and groups\n// each array's elements on shared indices.\nexport default function unzip(array) {\n  var length = (array && max(array, getLength).length) || 0;\n  var result = Array(length);\n\n  for (var index = 0; index < length; index++) {\n    result[index] = pluck(array, index);\n  }\n  return result;\n}\n","import restArguments from './restArguments.js';\nimport unzip from './unzip.js';\n\n// Zip together multiple lists into a single array -- elements that share\n// an index go together.\nexport default restArguments(unzip);\n","import getLength  from './_getLength.js';\n\n// Converts lists into objects. Pass either a single array of `[key, value]`\n// pairs, or two parallel arrays of the same length -- one of keys, and one of\n// the corresponding values. Passing by pairs is the reverse of `_.pairs`.\nexport default function object(list, values) {\n  var result = {};\n  for (var i = 0, length = getLength(list); i < length; i++) {\n    if (values) {\n      result[list[i]] = values[i];\n    } else {\n      result[list[i][0]] = list[i][1];\n    }\n  }\n  return result;\n}\n","// Generate an integer Array containing an arithmetic progression. A port of\n// the native Python `range()` function. See\n// [the Python documentation](https://docs.python.org/library/functions.html#range).\nexport default function range(start, stop, step) {\n  if (stop == null) {\n    stop = start || 0;\n    start = 0;\n  }\n  if (!step) {\n    step = stop < start ? -1 : 1;\n  }\n\n  var length = Math.max(Math.ceil((stop - start) / step), 0);\n  var range = Array(length);\n\n  for (var idx = 0; idx < length; idx++, start += step) {\n    range[idx] = start;\n  }\n\n  return range;\n}\n","import { slice } from './_setup.js';\n\n// Chunk a single array into multiple arrays, each containing `count` or fewer\n// items.\nexport default function chunk(array, count) {\n  if (count == null || count < 1) return [];\n  var result = [];\n  var i = 0, length = array.length;\n  while (i < length) {\n    result.push(slice.call(array, i, i += count));\n  }\n  return result;\n}\n","import _ from './underscore.js';\n\n// Helper function to continue chaining intermediate results.\nexport default function chainResult(instance, obj) {\n  return instance._chain ? _(obj).chain() : obj;\n}\n","import _ from './underscore.js';\nimport each from './each.js';\nimport functions from './functions.js';\nimport { push } from './_setup.js';\nimport chainResult from './_chainResult.js';\n\n// Add your own custom functions to the Underscore object.\nexport default function mixin(obj) {\n  each(functions(obj), function(name) {\n    var func = _[name] = obj[name];\n    _.prototype[name] = function() {\n      var args = [this._wrapped];\n      push.apply(args, arguments);\n      return chainResult(this, func.apply(_, args));\n    };\n  });\n  return _;\n}\n","import _ from './underscore.js';\nimport each from './each.js';\nimport { ArrayProto } from './_setup.js';\nimport chainResult from './_chainResult.js';\n\n// Add all mutator `Array` functions to the wrapper.\neach(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n  var method = ArrayProto[name];\n  _.prototype[name] = function() {\n    var obj = this._wrapped;\n    if (obj != null) {\n      method.apply(obj, arguments);\n      if ((name === 'shift' || name === 'splice') && obj.length === 0) {\n        delete obj[0];\n      }\n    }\n    return chainResult(this, obj);\n  };\n});\n\n// Add all accessor `Array` functions to the wrapper.\neach(['concat', 'join', 'slice'], function(name) {\n  var method = ArrayProto[name];\n  _.prototype[name] = function() {\n    var obj = this._wrapped;\n    if (obj != null) obj = method.apply(obj, arguments);\n    return chainResult(this, obj);\n  };\n});\n\nexport default _;\n","// Default Export\n// ==============\n// In this module, we mix our bundled exports into the `_` object and export\n// the result. This is analogous to setting `module.exports = _` in CommonJS.\n// Hence, this module is also the entry point of our UMD bundle and the package\n// entry point for CommonJS and AMD users. In other words, this is (the source\n// of) the module you are interfacing with when you do any of the following:\n//\n// ```js\n// // CommonJS\n// var _ = require('underscore');\n//\n// // AMD\n// define(['underscore'], function(_) {...});\n//\n// // UMD in the browser\n// // _ is available as a global variable\n// ```\nimport * as allExports from './index.js';\nimport { mixin } from './index.js';\n\n// Add all of the Underscore functions to the wrapper object.\nvar _ = mixin(allExports);\n// Legacy Node.js API.\n_._ = _;\n// Export the Underscore API.\nexport default _;\n","'use strict';\n\nvar regions = {};\n\nregions.centralAsia = {\n  name: 'Central Asia',\n  countries: [\n    // source is http://en.wikipedia.org/wiki/Central_Asia\n    'KZ', // Kazakhstan\n    'KG', // Kyrgyzstan\n    'TJ', // Tajikistan\n    'TM', // Turkmenistan\n    'UZ', // Uzbekistan\n  ]\n}\n\nregions.southernAsia = {\n  name: 'Southern Asia',\n  countries: [\n    // source is http://en.wikipedia.org/wiki/South_Asia\n    'AF', // Afghanistan\n    'BD', // Bangladesh\n    'BT', // Bhutan\n    'IO', // British Indian Ocean Territory\n    'IN', // India\n    'IR', // Iran\n    'MV', // Maldives\n    'NP', // Nepal\n    'PK', // Pakistan\n    'LK', // Sri Lanka\n  ]\n}\n\nregions.southeastAsia = {\n  name: 'Southeast Asia',\n  countries: [\n    // source is http://en.wikipedia.org/wiki/Southeast_Asia\n    'BN', // Brunei\n    'KH', // Cambodia\n    'CX', // Christmas Island\n    'CC', // Cocos (Keeling) Islands\n    'TL', // East Timor\n    'ID', // Indonesia\n    'LA', // Laos\n    'MY', // Malaysia\n    'MM', // Myanmar (Burma)\n    'PH', // Philippines\n    'SG', // Singapore\n    'TH', // Thailand\n    'VN', // Vietnam\n  ]\n}\n\nregions.eastAsia = {\n  name: 'East Asia',\n  countries: [\n    // source is http://en.wikipedia.org/wiki/East_Asia\n    'CN', // China\n    'HK', // Hong Kong\n    'JP', // Japan\n    'KP', // North Korea\n    'KR', // South Korea\n    'MO', // Macao\n    'MN', // Mongolia\n    'TW', // Taiwan\n  ]\n}\n\nregions.westernAsia = {\n  name: 'Western Asia',\n  countries: [\n    // source is http://en.wikipedia.org/wiki/Western_Asia\n    'AM', // Armenia\n    'AZ', // Azerbaijan\n    'BH', // Bahrain\n    'IQ', // Iraq\n    'IL', // Israel\n    'JO', // Jordan\n    'KW', // Kuwait\n    'LB', // Lebanon\n    'OM', // Oman\n    'PS', // Palestinian territories\n    'QA', // Qatar\n    'SA', // Saudi Arabia\n    'SY', // Syria\n    'TR', // Turkey\n    'AE', // United Arab Emirates\n    'YE', // Yemen\n  ]\n}\n\nregions.centralAfrica = {\n  name: 'Central Aftrica',\n  countries: [\n    // source is http://en.wikipedia.org/wiki/Central_Africa\n    'AO', // Angola\n    'CM', // Cameroon\n    'CF', // Central African Republic\n    'TD', // Chad\n    'CG', // Republic of the Congo\n    'CD', // Democratic Republic of the Congo\n    'GQ', // Equatorial Guinea\n    'GA', // Gabon\n    'ST', // São Tomé and Príncipe\n  ]\n};\n\nregions.northAfrica = {\n  name: 'North Africa',\n  countries: [\n    // source is http://en.wikipedia.org/wiki/North_Africa\n    'DZ', // Algeria\n    'EG', // Egypt\n    'LY', // Libya\n    'MA', // Morocco\n    'SD', // Sudan\n    'TN', // Tunisia\n    'EH', // Western Sahara\n  ]\n};\n\nregions.southernAfrica = {\n  name: 'Southern Africa',\n  countries: [\n    // source is http://en.wikipedia.org/wiki/Southern_Africa\n    'BW', // Botswana\n    'LS', // Lesotho\n    'NA', // Namibia\n    'ZA', // South Africa\n    'SZ', // Swaziland\n  ]\n};\n\nregions.eastAfrica = {\n  name: 'East Africa',\n  countries: [\n    // source is http://en.wikipedia.org/wiki/East_Africa\n    'BI', // Burundi\n    'KM', // Comoros\n    'DJ', // Djibouti\n    'ER', // Eritrea\n    'ET', // Ethiopia\n    'KE', // Kenya\n    'MG', // Madagascar\n    'MW', // Malawi\n    'MU', // Mauritius\n    'YT', // Mayotte (France)\n    'MZ', // Mozambique\n    'RE', // Réunion (France)\n    'RW', // Rwanda\n    'SC', // Seychelles\n    'SO', // Somalia\n    'SS', // South Sudan\n    'TZ', // Tanzania\n    'UG', // Uganda\n    'ZM', // Zambia\n    'ZW', // Zimbabwe\n  ]\n};\n\nregions.westAfrica = {\n  name: 'West Africa',\n  countries: [\n    // source is http://en.wikipedia.org/wiki/West_Africa\n    'BJ', // Benin\n    'BF', // Burkina Faso\n    'CV', // Cabo Verde\n    'CI', // Côte d'Ivoire\n    'GM', // Gambia\n    'GH', // Ghana\n    'GN', // Guinea\n    'GW', // Guinea-Bissau\n    'LR', // Liberia\n    'ML', // Mali\n    'MR', // Mauritania\n    'NE', // Niger\n    'NG', // Nigeria\n    'SH', // Saint Helena, Ascension and Tristan da Cunha (United Kingdom)\n    'SN', // Senegal\n    'SL', // Sierra Leone\n    'TG', // Togo\n  ]\n};\n\nregions.centralAmerica = {\n  name: 'Central America',\n  countries: [\n    // source is http://en.wikipedia.org/wiki/Central_America\n    'BZ', // Belize\n    'CR', // Costa Rica\n    'SV', // El Salvador\n    'GT', // Guatemala\n    'HN', // Honduras\n    'NI', // Nicaragua\n    'PA', // Panama\n  ]\n}\n\nregions.northernAmerica = {\n  name: 'Northern America',\n  countries: [\n    // source is http://en.wikipedia.org/wiki/Northern_America\n    'BM', // Bermuda\n    'CA', // Canada\n    'GL', // Greenland\n    'MX', // Mexico\n    'PM', // Saint Pierre and Miquelon\n    'US', // United States\n  ]\n}\n\nregions.caribbean = {\n  name: 'Caribbean',\n  countries: [\n    // source is http://en.wikipedia.org/wiki/Caribbean\n    'AI', // Anguilla\n    'AG', // Antigua and Barbuda\n    'AW', // Aruba\n    'BS', // Bahamas\n    'BB', // Barbados\n    'BQ', // Bonaire, Sint Eustatius & Saba\n    'VG', // British Virgin Islands\n    'KY', // Cayman Islands\n    'CU', // Cuba\n    'CW', // Curaçao\n    'DM', // Dominica\n    'DO', // Dominican Republic\n    'GD', // Grenada\n    'GP', // Guadeloupe\n    'HT', // Haiti\n    'JM', // Jamaica\n    'MQ', // Martinique\n    'MS', // Montserrat\n    'PR', // Puerto Rico\n    'BL', // Saint Barthélemy\n    'KN', // St. Kitts & Nevis\n    'LC', // Saint Lucia\n    'MF', // Saint Martin\n    'VC', // Saint Vincent and the Grenadines\n    'SX', // Sint Maarten\n    'TT', // Trinidad and Tobago\n    'TC', // Turks & Caicos\n    'VI', // United States Virgin Islands\n  ]\n}\n\nregions.southAmerica = {\n  name: 'South America',\n  countries: [\n    // source is http://en.wikipedia.org/wiki/South_America\n    'AR', // Argentina\n    'BO', // Bolivia\n    'BR', // Brazil\n    'CL', // Chile\n    'CO', // Colombia\n    'EC', // Ecuador\n    'FK', // Falkland Islands\n    'GF', // French Guiana\n    'GY', // Guyana\n    'PY', // Paraguay\n    'PE', // Peru\n    'SR', // Suriname\n    'UY', // Uruguay\n    'VE', // Venezuela\n  ]\n}\n\nregions.antartica = {\n  name: 'Antartica',\n  countries: [\n    // source is http://en.wikipedia.org/wiki/Antarctica\n    'AQ', // Antarctica\n    'BV', // Bouvet Island\n    'TF', // French Southern Territories\n    'HM', // Heard Island and McDonald Islands\n    'GS', // South Georgia and the South Sandwich Islands\n  ]\n}\n\nregions.northernEurope = {\n  name: 'Northern Europe',\n  countries: [\n    // source is http://en.wikipedia.org/wiki/Northern_Europe\n    'AX', // Åland\n    'DK', // Denmark\n    'EE', // Estonia\n    'FO', // Faroe Islands\n    'FI', // Finland\n    'GG', // Guernsey\n    'IS', // Iceland\n    'IE', // Republic of Ireland\n    'JE', // Jersey (UK)\n    'IM', // Isle of Man\n    'LV', // Latvia\n    'LT', // Lithuania\n    'NO', // Norway\n    'SJ', // Svalbard and Jan Mayen\n    'SE', // Sweden\n    'GB', // United Kingdom\n  ]\n}\n\nregions.southernEurope = {\n  name: 'Southern Europe',\n  countries: [\n    // source is http://en.wikipedia.org/wiki/Southern_Europe\n    'AL', // Albania\n    'AD', // Andorra\n    'BA', // Bosnia and Herzegovina\n    'HR', // Croatia\n    'CY', // Cyprus\n    'GI', // Gibraltar\n    'GR', // Greece\n    'IT', // Italy\n    'MK', // Republic of Macedonia\n    'VA', // Vatican City\n    'MT', // Malta\n    'ME', // Montenegro\n    'PT', // Portugal\n    'SM', // San Marino\n    'RS', // Serbia\n    'SI', // Slovenia\n    'ES', // Spain\n  ]\n}\n\nregions.easternEurope = {\n  name: 'Eastern Europe',\n  countries: [\n    // source is http://en.wikipedia.org/wiki/Eastern_Europe\n    'BY', // Belarus\n    'BG', // Bulgaria\n    'CZ', // Czech Republic\n    'GE', // Georgia\n    'HU', // Hungary\n    'MD', // Moldova\n    'PL', // Poland\n    'RO', // Romania\n    'RU', // Russia\n    'SK', // Slovakia\n    'UA', // Ukraine\n  ]\n}\n\nregions.westernEurope = {\n  name: 'Western Europe',\n  countries: [\n    // source is http://en.wikipedia.org/wiki/Western_Europe\n    'AT', // Austria\n    'BE', // Belgium\n    'FR', // France\n    'DE', // Germany\n    'LI', // Liechtenstein\n    'LU', // Luxembourg\n    'MC', // Monaco\n    'NL', // Netherlands\n    'CH', // Switzerland\n  ],\n};\n \nregions.australia = {\n  name: 'Australia',\n  countries: [\n    // source is http://en.wikipedia.org/wiki/Oceania\n    'AU', // Australia\n    'NF', // Norfolk Island\n    'NZ', // New Zealand\n  ]\n};\n\nregions.melanesia = {\n  name: 'Melanesia',\n  countries: [\n    // source is http://en.wikipedia.org/wiki/Oceania\n    'FJ', // Fiji\n    'NC', //  New Caledonia\n    'PG', // Papua New Guinea\n    'SB', // Solomon Islands\n    'VU', // Vanuatu\n  ]\n};    \n\nregions.micronesia = {\n  name: 'Micronesia',\n  countries: [\n    // source is http://en.wikipedia.org/wiki/Oceania\n    'GU', // Guam\n    'KI', // Kiribati\n    'MH', // Marshall Islands\n    'FM', // Micronesia, Fed. Sts.\n    'NR', // Nauru\n    'MP', // Northern Mariana Islands\n    'PW', // Palau\n    'UM', // United States Minor Outlying Islands\n  ]\n};    \n\nregions.polynesia = {\n  name: 'Polynesia',\n  countries: [\n    // source is http://en.wikipedia.org/wiki/Oceania\n    'AS', // American Samoa\n    'CK', // Cook Islands\n    'PF', // French Polynesia\n    'NU', // Niue\n    'PN', // Pitcairn Islands\n    'WS', // Samoa\n    'TK', // Tokelau\n    'TO', // Tonga\n    'TV', // Tuvalu\n    'WF', // Wallis and Futuna\n  ]\n};\n\nmodule.exports = regions;\n","'use strict';\n\nvar _ = require('underscore');\nvar continents = require('./data/continents');\nvar regions = require('./data/regions');\nvar countriesAll = require('./data/countries.json');\nvar currenciesAll = require('./data/currencies.json');\nvar languagesAll = require('./data/languages.json');\nvar lookup = require('./lookup');\n\nvar getSymbol = require('currency-symbol-map')\n\nexports.continents = continents;\nexports.regions = regions;\n\nexports.countries = {\n  all: countriesAll,\n};\n\n_.each(countriesAll, function (country) {\n  // prefer assigned country codes over inactive ones\n  var exportedAlpha2 = exports.countries[country.alpha2];\n  if (!exportedAlpha2 || exportedAlpha2.status === 'deleted') {\n    exports.countries[country.alpha2] = country;\n  }\n\n  var exportedAlpha3 = exports.countries[country.alpha3];\n  if (!exportedAlpha3 || exportedAlpha3.status === 'deleted') {\n    exports.countries[country.alpha3] = country;\n  }\n});\n\nexports.currencies = {\n  all: currenciesAll,\n};\n\n_.each(currenciesAll, function (currency) {\n  //If the symbol isn't available, default to the currency code\n  var symbol = getSymbol(currency.code);\n  if (symbol == '?') {\n    symbol = currency.code;\n  }\n\n  currency.symbol = symbol;\n  exports.currencies[currency.code] = currency;\n});\n\nexports.languages = {\n  all: languagesAll,\n};\n\n// Note that for the languages there are several entries with the same alpha3 -\n// eg Dutch and Flemish. Not sure how to best deal with that - here whichever\n// comes last wins.\n_.each(languagesAll, function (language) {\n  exports.languages[language.alpha2] = language;\n  exports.languages[language.bibliographic] = language;\n  exports.languages[language.alpha3] = language;\n});\n\nexports.lookup = lookup({\n    countries: countriesAll,\n    currencies: currenciesAll,\n    languages: languagesAll\n});\n\nvar callingCountries = {all: []};\n\nvar callingCodesAll = _.reduce(countriesAll, function (codes, country) {\n  if (country.countryCallingCodes && country.countryCallingCodes.length) {\n    callingCountries.all.push(country);\n\n    callingCountries[country.alpha2] = country;\n    callingCountries[country.alpha3] = country;\n\n    _.each(country.countryCallingCodes, function (code) {\n      if (codes.indexOf(code) == -1) {\n        codes.push(code);\n      }\n    });\n  }\n  return codes;\n}, []);\n\ndelete callingCountries['']; // remove empty alpha3s\nexports.callingCountries = callingCountries;\n\ncallingCodesAll.sort(function (a, b) {\n  var parse = function (str) { return parseInt(str) };\n  var splitA = _.map(a.split(' '), parse);\n  var splitB = _.map(b.split(' '), parse);\n\n  if (splitA[0] < splitB[0]) {\n    return -1;\n  } else if (splitA[0] > splitB[0]) {\n    return 1;\n  } else {\n    // Same - check split[1]\n    if (splitA[1] === undefined && splitB[1] !== undefined) {\n      return -1;\n    } else if (splitA[1] !== undefined && splitB[1] === undefined) {\n      return 1;\n    } else if (splitA[1] < splitB[1]) {\n      return -1;\n    } else if (splitA[1] > splitB[1]) {\n      return 1;\n    } else {\n      return 0;\n    }\n  }\n});\n\nexports.callingCodes = {\n  all: callingCodesAll\n};\n","'use strict';\n\nvar _ = require('underscore');\nvar regions = require('./regions.js');\nvar continents = {};\n\ncontinents.asia = {\n  name: 'Asia',\n  regions: ['centralAsia', 'southernAsia', 'southeastAsia', 'eastAsia', 'westernAsia'],\n  countries: _.flatten([\n    regions.centralAsia.countries,\n    regions.southernAsia.countries,\n    regions.southeastAsia.countries,\n    regions.eastAsia.countries,\n    regions.westernAsia.countries\n  ])\n  .sort()\n};\n\ncontinents.africa = {\n  name: 'Africa',\n  regions: ['centralAfrica', 'northAfrica', 'southernAfrica', 'eastAfrica', 'westAfrica'],\n  countries: _.flatten([\n      regions.centralAfrica.countries,\n      regions.northAfrica.countries,\n      regions.southernAfrica.countries,\n      regions.eastAfrica.countries,\n      regions.westAfrica.countries\n  ])\n  .sort()\n};\n\ncontinents.northAmerica = {\n  name: 'North America',\n  regions: ['centralAmerica', 'northernAmerica', 'caribbean'],\n  countries: _.flatten([\n    regions.centralAmerica.countries,\n    regions.northernAmerica.countries,\n    regions.caribbean.countries\n  ])\n  .sort()\n};\n\ncontinents.southAmerica = {\n  name: 'South America',\n  regions: ['southAmerica'],\n  countries: _.flatten([\n    regions.southAmerica.countries\n  ])\n  .sort()\n}\n\ncontinents.antartica = {\n  name: 'Antartica',\n  regions: ['antartica'],\n  countries: _.flatten([\n    regions.antartica.countries\n  ])\n  .sort()\n}\n\ncontinents.europe = {\n  name: 'Europe',\n  regions: ['northernEurope', 'southernEurope', 'easternEurope', 'westernEurope'],\n  countries: _.flatten([\n    regions.northernEurope.countries,\n    regions.southernEurope.countries,\n    regions.easternEurope.countries,\n    regions.westernEurope.countries\n  ])\n  .sort()\n}\n\ncontinents.oceania = {\n  name: 'Oceania',\n  regions: ['australia', 'melanesia', 'micronesia', 'polynesia'],\n  countries: _.flatten([\n    regions.australia.countries,\n    regions.melanesia.countries,\n    regions.micronesia.countries,\n    regions.polynesia.countries\n  ])\n  .sort()\n};\n\nmodule.exports = continents;\n","var _ = require('underscore');\n\nmodule.exports = init;\n\nfunction init(o) {\n  return {\n    countries: search.bind(null, o.countries),\n    currencies: search.bind(null, o.currencies),\n    languages: search.bind(null, o.languages)\n  };\n}\n\nfunction search(data, query) {\n  var q = _.pairs(query);\n\n  return data.filter(function(d) {\n    return q.filter(function(v) {\n      var prop = d[v[0]];\n\n      if(_.isArray(prop)) return prop.indexOf(v[1]) >= 0;\n\n      return prop == v[1];\n    }).length == q.length;\n  });\n}","module.exports = mapSymbol\n\nvar map = require('./map')\n\nfunction mapSymbol(currencyCode) {\n  if (map.hasOwnProperty(currencyCode)) {\n    return map[currencyCode]\n  } else {\n    return '?'\n  }\n}","module.exports =\n{ \"ALL\": \"L\"\n, \"AFN\": \"؋\"\n, \"ARS\": \"$\"\n, \"AWG\": \"ƒ\"\n, \"AUD\": \"$\"\n, \"AZN\": \"₼\"\n, \"BSD\": \"$\"\n, \"BBD\": \"$\"\n, \"BYR\": \"p.\"\n, \"BZD\": \"BZ$\"\n, \"BMD\": \"$\"\n, \"BOB\": \"Bs.\"\n, \"BAM\": \"KM\"\n, \"BWP\": \"P\"\n, \"BGN\": \"лв\"\n, \"BRL\": \"R$\"\n, \"BND\": \"$\"\n, \"KHR\": \"៛\"\n, \"CAD\": \"$\"\n, \"KYD\": \"$\"\n, \"CLP\": \"$\"\n, \"CNY\": \"¥\"\n, \"COP\": \"$\"\n, \"CRC\": \"₡\"\n, \"HRK\": \"kn\"\n, \"CUP\": \"₱\"\n, \"CZK\": \"Kč\"\n, \"DKK\": \"kr\"\n, \"DOP\": \"RD$\"\n, \"XCD\": \"$\"\n, \"EGP\": \"£\"\n, \"SVC\": \"$\"\n, \"EEK\": \"kr\"\n, \"EUR\": \"€\"\n, \"FKP\": \"£\"\n, \"FJD\": \"$\"\n, \"GHC\": \"¢\"\n, \"GIP\": \"£\"\n, \"GTQ\": \"Q\"\n, \"GGP\": \"£\"\n, \"GYD\": \"$\"\n, \"HNL\": \"L\"\n, \"HKD\": \"$\"\n, \"HUF\": \"Ft\"\n, \"ISK\": \"kr\"\n, \"INR\": \"₹\"\n, \"IDR\": \"Rp\"\n, \"IRR\": \"﷼\"\n, \"IMP\": \"£\"\n, \"ILS\": \"₪\"\n, \"JMD\": \"J$\"\n, \"JPY\": \"¥\"\n, \"JEP\": \"£\"\n, \"KES\": \"KSh\"\n, \"KZT\": \"лв\"\n, \"KPW\": \"₩\"\n, \"KRW\": \"₩\"\n, \"KGS\": \"лв\"\n, \"LAK\": \"₭\"\n, \"LVL\": \"Ls\"\n, \"LBP\": \"£\"\n, \"LRD\": \"$\"\n, \"LTL\": \"Lt\"\n, \"MKD\": \"ден\"\n, \"MYR\": \"RM\"\n, \"MUR\": \"₨\"\n, \"MXN\": \"$\"\n, \"MNT\": \"₮\"\n, \"MZN\": \"MT\"\n, \"NAD\": \"$\"\n, \"NPR\": \"₨\"\n, \"ANG\": \"ƒ\"\n, \"NZD\": \"$\"\n, \"NIO\": \"C$\"\n, \"NGN\": \"₦\"\n, \"NOK\": \"kr\"\n, \"OMR\": \"﷼\"\n, \"PKR\": \"₨\"\n, \"PAB\": \"B/.\"\n, \"PYG\": \"Gs\"\n, \"PEN\": \"S/.\"\n, \"PHP\": \"₱\"\n, \"PLN\": \"zł\"\n, \"QAR\": \"﷼\"\n, \"RON\": \"lei\"\n, \"RUB\": \"₽\"\n, \"SHP\": \"£\"\n, \"SAR\": \"﷼\"\n, \"RSD\": \"Дин.\"\n, \"SCR\": \"₨\"\n, \"SGD\": \"$\"\n, \"SBD\": \"$\"\n, \"SOS\": \"S\"\n, \"ZAR\": \"R\"\n, \"LKR\": \"₨\"\n, \"SEK\": \"kr\"\n, \"CHF\": \"CHF\"\n, \"SRD\": \"$\"\n, \"SYP\": \"£\"\n, \"TZS\": \"TSh\"\n, \"TWD\": \"NT$\"\n, \"THB\": \"฿\"\n, \"TTD\": \"TT$\"\n, \"TRY\": \"\"\n, \"TRL\": \"₤\"\n, \"TVD\": \"$\"\n, \"UGX\": \"USh\"\n, \"UAH\": \"₴\"\n, \"GBP\": \"£\"\n, \"USD\": \"$\"\n, \"UYU\": \"$U\"\n, \"UZS\": \"лв\"\n, \"VEF\": \"Bs\"\n, \"VND\": \"₫\"\n, \"YER\": \"﷼\"\n, \"ZWD\": \"Z$\"\n}\n","/////////////////////////////////////////////////////////////////////////////////\n/* UAParser.js v0.7.38\n   Copyright © 2012-2021 Faisal Salman <f@faisalman.com>\n   MIT License *//*\n   Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.\n   Supports browser & node.js environment. \n   Demo   : https://faisalman.github.io/ua-parser-js\n   Source : https://github.com/faisalman/ua-parser-js */\n/////////////////////////////////////////////////////////////////////////////////\n\n(function (window, undefined) {\n\n    'use strict';\n\n    //////////////\n    // Constants\n    /////////////\n\n\n    var LIBVERSION  = '0.7.38',\n        EMPTY       = '',\n        UNKNOWN     = '?',\n        FUNC_TYPE   = 'function',\n        UNDEF_TYPE  = 'undefined',\n        OBJ_TYPE    = 'object',\n        STR_TYPE    = 'string',\n        MAJOR       = 'major',\n        MODEL       = 'model',\n        NAME        = 'name',\n        TYPE        = 'type',\n        VENDOR      = 'vendor',\n        VERSION     = 'version',\n        ARCHITECTURE= 'architecture',\n        CONSOLE     = 'console',\n        MOBILE      = 'mobile',\n        TABLET      = 'tablet',\n        SMARTTV     = 'smarttv',\n        WEARABLE    = 'wearable',\n        EMBEDDED    = 'embedded',\n        UA_MAX_LENGTH = 500;\n\n    var AMAZON  = 'Amazon',\n        APPLE   = 'Apple',\n        ASUS    = 'ASUS',\n        BLACKBERRY = 'BlackBerry',\n        BROWSER = 'Browser',\n        CHROME  = 'Chrome',\n        EDGE    = 'Edge',\n        FIREFOX = 'Firefox',\n        GOOGLE  = 'Google',\n        HUAWEI  = 'Huawei',\n        LG      = 'LG',\n        MICROSOFT = 'Microsoft',\n        MOTOROLA  = 'Motorola',\n        OPERA   = 'Opera',\n        SAMSUNG = 'Samsung',\n        SHARP   = 'Sharp',\n        SONY    = 'Sony',\n        XIAOMI  = 'Xiaomi',\n        ZEBRA   = 'Zebra',\n        FACEBOOK    = 'Facebook',\n        CHROMIUM_OS = 'Chromium OS',\n        MAC_OS  = 'Mac OS';\n\n    ///////////\n    // Helper\n    //////////\n\n    var extend = function (regexes, extensions) {\n            var mergedRegexes = {};\n            for (var i in regexes) {\n                if (extensions[i] && extensions[i].length % 2 === 0) {\n                    mergedRegexes[i] = extensions[i].concat(regexes[i]);\n                } else {\n                    mergedRegexes[i] = regexes[i];\n                }\n            }\n            return mergedRegexes;\n        },\n        enumerize = function (arr) {\n            var enums = {};\n            for (var i=0; i<arr.length; i++) {\n                enums[arr[i].toUpperCase()] = arr[i];\n            }\n            return enums;\n        },\n        has = function (str1, str2) {\n            return typeof str1 === STR_TYPE ? lowerize(str2).indexOf(lowerize(str1)) !== -1 : false;\n        },\n        lowerize = function (str) {\n            return str.toLowerCase();\n        },\n        majorize = function (version) {\n            return typeof(version) === STR_TYPE ? version.replace(/[^\\d\\.]/g, EMPTY).split('.')[0] : undefined;\n        },\n        trim = function (str, len) {\n            if (typeof(str) === STR_TYPE) {\n                str = str.replace(/^\\s\\s*/, EMPTY);\n                return typeof(len) === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH);\n            }\n    };\n\n    ///////////////\n    // Map helper\n    //////////////\n\n    var rgxMapper = function (ua, arrays) {\n\n            var i = 0, j, k, p, q, matches, match;\n\n            // loop through all regexes maps\n            while (i < arrays.length && !matches) {\n\n                var regex = arrays[i],       // even sequence (0,2,4,..)\n                    props = arrays[i + 1];   // odd sequence (1,3,5,..)\n                j = k = 0;\n\n                // try matching uastring with regexes\n                while (j < regex.length && !matches) {\n\n                    if (!regex[j]) { break; }\n                    matches = regex[j++].exec(ua);\n\n                    if (!!matches) {\n                        for (p = 0; p < props.length; p++) {\n                            match = matches[++k];\n                            q = props[p];\n                            // check if given property is actually array\n                            if (typeof q === OBJ_TYPE && q.length > 0) {\n                                if (q.length === 2) {\n                                    if (typeof q[1] == FUNC_TYPE) {\n                                        // assign modified match\n                                        this[q[0]] = q[1].call(this, match);\n                                    } else {\n                                        // assign given value, ignore regex match\n                                        this[q[0]] = q[1];\n                                    }\n                                } else if (q.length === 3) {\n                                    // check whether function or regex\n                                    if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {\n                                        // call function (usually string mapper)\n                                        this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;\n                                    } else {\n                                        // sanitize match using given regex\n                                        this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;\n                                    }\n                                } else if (q.length === 4) {\n                                        this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;\n                                }\n                            } else {\n                                this[q] = match ? match : undefined;\n                            }\n                        }\n                    }\n                }\n                i += 2;\n            }\n        },\n\n        strMapper = function (str, map) {\n\n            for (var i in map) {\n                // check if current value is array\n                if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {\n                    for (var j = 0; j < map[i].length; j++) {\n                        if (has(map[i][j], str)) {\n                            return (i === UNKNOWN) ? undefined : i;\n                        }\n                    }\n                } else if (has(map[i], str)) {\n                    return (i === UNKNOWN) ? undefined : i;\n                }\n            }\n            return str;\n    };\n\n    ///////////////\n    // String map\n    //////////////\n\n    // Safari < 3.0\n    var oldSafariMap = {\n            '1.0'   : '/8',\n            '1.2'   : '/1',\n            '1.3'   : '/3',\n            '2.0'   : '/412',\n            '2.0.2' : '/416',\n            '2.0.3' : '/417',\n            '2.0.4' : '/419',\n            '?'     : '/'\n        },\n        windowsVersionMap = {\n            'ME'        : '4.90',\n            'NT 3.11'   : 'NT3.51',\n            'NT 4.0'    : 'NT4.0',\n            '2000'      : 'NT 5.0',\n            'XP'        : ['NT 5.1', 'NT 5.2'],\n            'Vista'     : 'NT 6.0',\n            '7'         : 'NT 6.1',\n            '8'         : 'NT 6.2',\n            '8.1'       : 'NT 6.3',\n            '10'        : ['NT 6.4', 'NT 10.0'],\n            'RT'        : 'ARM'\n    };\n\n    //////////////\n    // Regex map\n    /////////////\n\n    var regexes = {\n\n        browser : [[\n\n            /\\b(?:crmo|crios)\\/([\\w\\.]+)/i                                      // Chrome for Android/iOS\n            ], [VERSION, [NAME, 'Chrome']], [\n            /edg(?:e|ios|a)?\\/([\\w\\.]+)/i                                       // Microsoft Edge\n            ], [VERSION, [NAME, 'Edge']], [\n\n            // Presto based\n            /(opera mini)\\/([-\\w\\.]+)/i,                                        // Opera Mini\n            /(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i,                 // Opera Mobi/Tablet\n            /(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i                           // Opera\n            ], [NAME, VERSION], [\n            /opios[\\/ ]+([\\w\\.]+)/i                                             // Opera mini on iphone >= 8.0\n            ], [VERSION, [NAME, OPERA+' Mini']], [\n            /\\bop(?:rg)?x\\/([\\w\\.]+)/i                                          // Opera GX\n            ], [VERSION, [NAME, OPERA+' GX']], [\n            /\\bopr\\/([\\w\\.]+)/i                                                 // Opera Webkit\n            ], [VERSION, [NAME, OPERA]], [\n\n            // Mixed\n            /\\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\\/ ]?([\\w\\.]+)/i            // Baidu\n            ], [VERSION, [NAME, 'Baidu']], [\n            /(kindle)\\/([\\w\\.]+)/i,                                             // Kindle\n            /(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i,      // Lunascape/Maxthon/Netfront/Jasmine/Blazer\n            // Trident based\n            /(avant|iemobile|slim)\\s?(?:browser)?[\\/ ]?([\\w\\.]*)/i,             // Avant/IEMobile/SlimBrowser\n            /(?:ms|\\()(ie) ([\\w\\.]+)/i,                                         // Internet Explorer\n\n            // Webkit/KHTML based                                               // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon\n            /(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,\n                                                                                // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ\n            /(heytap|ovi)browser\\/([\\d\\.]+)/i,                                  // Heytap/Ovi\n            /(weibo)__([\\d\\.]+)/i                                               // Weibo\n            ], [NAME, VERSION], [\n            /\\bddg\\/([\\w\\.]+)/i                                                 // DuckDuckGo\n            ], [VERSION, [NAME, 'DuckDuckGo']], [\n            /(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i                 // UCBrowser\n            ], [VERSION, [NAME, 'UC'+BROWSER]], [\n            /microm.+\\bqbcore\\/([\\w\\.]+)/i,                                     // WeChat Desktop for Windows Built-in Browser\n            /\\bqbcore\\/([\\w\\.]+).+microm/i,\n            /micromessenger\\/([\\w\\.]+)/i                                        // WeChat\n            ], [VERSION, [NAME, 'WeChat']], [\n            /konqueror\\/([\\w\\.]+)/i                                             // Konqueror\n            ], [VERSION, [NAME, 'Konqueror']], [\n            /trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i                       // IE11\n            ], [VERSION, [NAME, 'IE']], [\n            /ya(?:search)?browser\\/([\\w\\.]+)/i                                  // Yandex\n            ], [VERSION, [NAME, 'Yandex']], [\n            /slbrowser\\/([\\w\\.]+)/i                                             // Smart Lenovo Browser\n            ], [VERSION, [NAME, 'Smart Lenovo '+BROWSER]], [\n            /(avast|avg)\\/([\\w\\.]+)/i                                           // Avast/AVG Secure Browser\n            ], [[NAME, /(.+)/, '$1 Secure '+BROWSER], VERSION], [\n            /\\bfocus\\/([\\w\\.]+)/i                                               // Firefox Focus\n            ], [VERSION, [NAME, FIREFOX+' Focus']], [\n            /\\bopt\\/([\\w\\.]+)/i                                                 // Opera Touch\n            ], [VERSION, [NAME, OPERA+' Touch']], [\n            /coc_coc\\w+\\/([\\w\\.]+)/i                                            // Coc Coc Browser\n            ], [VERSION, [NAME, 'Coc Coc']], [\n            /dolfin\\/([\\w\\.]+)/i                                                // Dolphin\n            ], [VERSION, [NAME, 'Dolphin']], [\n            /coast\\/([\\w\\.]+)/i                                                 // Opera Coast\n            ], [VERSION, [NAME, OPERA+' Coast']], [\n            /miuibrowser\\/([\\w\\.]+)/i                                           // MIUI Browser\n            ], [VERSION, [NAME, 'MIUI '+BROWSER]], [\n            /fxios\\/([-\\w\\.]+)/i                                                // Firefox for iOS\n            ], [VERSION, [NAME, FIREFOX]], [\n            /\\bqihu|(qi?ho?o?|360)browser/i                                     // 360\n            ], [[NAME, '360 ' + BROWSER]], [\n            /(oculus|sailfish|huawei|vivo)browser\\/([\\w\\.]+)/i\n            ], [[NAME, /(.+)/, '$1 ' + BROWSER], VERSION], [                    // Oculus/Sailfish/HuaweiBrowser/VivoBrowser\n            /samsungbrowser\\/([\\w\\.]+)/i                                        // Samsung Internet\n            ], [VERSION, [NAME, SAMSUNG + ' Internet']], [\n            /(comodo_dragon)\\/([\\w\\.]+)/i                                       // Comodo Dragon\n            ], [[NAME, /_/g, ' '], VERSION], [\n            /metasr[\\/ ]?([\\d\\.]+)/i                                            // Sogou Explorer\n            ], [VERSION, [NAME, 'Sogou Explorer']], [\n            /(sogou)mo\\w+\\/([\\d\\.]+)/i                                          // Sogou Mobile\n            ], [[NAME, 'Sogou Mobile'], VERSION], [\n            /(electron)\\/([\\w\\.]+) safari/i,                                    // Electron-based App\n            /(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i,                   // Tesla\n            /m?(qqbrowser|2345Explorer)[\\/ ]?([\\w\\.]+)/i                        // QQBrowser/2345 Browser\n            ], [NAME, VERSION], [\n            /(lbbrowser)/i,                                                     // LieBao Browser\n            /\\[(linkedin)app\\]/i                                                // LinkedIn App for iOS & Android\n            ], [NAME], [\n\n            // WebView\n            /((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i       // Facebook App for iOS & Android\n            ], [[NAME, FACEBOOK], VERSION], [\n            /(Klarna)\\/([\\w\\.]+)/i,                                             // Klarna Shopping Browser for iOS & Android\n            /(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i,                             // Kakao App\n            /(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i,                                  // Naver InApp\n            /safari (line)\\/([\\w\\.]+)/i,                                        // Line App for iOS\n            /\\b(line)\\/([\\w\\.]+)\\/iab/i,                                        // Line App for Android\n            /(alipay)client\\/([\\w\\.]+)/i,                                       // Alipay\n            /(twitter)(?:and| f.+e\\/([\\w\\.]+))/i,                               // Twitter\n            /(chromium|instagram|snapchat)[\\/ ]([-\\w\\.]+)/i                     // Chromium/Instagram/Snapchat\n            ], [NAME, VERSION], [\n            /\\bgsa\\/([\\w\\.]+) .*safari\\//i                                      // Google Search Appliance on iOS\n            ], [VERSION, [NAME, 'GSA']], [\n            /musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i                        // TikTok\n            ], [VERSION, [NAME, 'TikTok']], [\n\n            /headlesschrome(?:\\/([\\w\\.]+)| )/i                                  // Chrome Headless\n            ], [VERSION, [NAME, CHROME+' Headless']], [\n\n            / wv\\).+(chrome)\\/([\\w\\.]+)/i                                       // Chrome WebView\n            ], [[NAME, CHROME+' WebView'], VERSION], [\n\n            /droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i           // Android Browser\n            ], [VERSION, [NAME, 'Android '+BROWSER]], [\n\n            /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i       // Chrome/OmniWeb/Arora/Tizen/Nokia\n            ], [NAME, VERSION], [\n\n            /version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i                      // Mobile Safari\n            ], [VERSION, [NAME, 'Mobile Safari']], [\n            /version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i                // Safari & Safari Mobile\n            ], [VERSION, NAME], [\n            /webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i                      // Safari < 3.0\n            ], [NAME, [VERSION, strMapper, oldSafariMap]], [\n\n            /(webkit|khtml)\\/([\\w\\.]+)/i\n            ], [NAME, VERSION], [\n\n            // Gecko based\n            /(navigator|netscape\\d?)\\/([-\\w\\.]+)/i                              // Netscape\n            ], [[NAME, 'Netscape'], VERSION], [\n            /mobile vr; rv:([\\w\\.]+)\\).+firefox/i                               // Firefox Reality\n            ], [VERSION, [NAME, FIREFOX+' Reality']], [\n            /ekiohf.+(flow)\\/([\\w\\.]+)/i,                                       // Flow\n            /(swiftfox)/i,                                                      // Swiftfox\n            /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,\n                                                                                // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror/Klar\n            /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,\n                                                                                // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\n            /(firefox)\\/([\\w\\.]+)/i,                                            // Other Firefox-based\n            /(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i,                         // Mozilla\n\n            // Other\n            /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,\n                                                                                // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir/Obigo/Mosaic/Go/ICE/UP.Browser\n            /(links) \\(([\\w\\.]+)/i,                                             // Links\n            /panasonic;(viera)/i                                                // Panasonic Viera\n            ], [NAME, VERSION], [\n            \n            /(cobalt)\\/([\\w\\.]+)/i                                              // Cobalt\n            ], [NAME, [VERSION, /master.|lts./, \"\"]]\n        ],\n\n        cpu : [[\n\n            /(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i                     // AMD64 (x64)\n            ], [[ARCHITECTURE, 'amd64']], [\n\n            /(ia32(?=;))/i                                                      // IA32 (quicktime)\n            ], [[ARCHITECTURE, lowerize]], [\n\n            /((?:i[346]|x)86)[;\\)]/i                                            // IA32 (x86)\n            ], [[ARCHITECTURE, 'ia32']], [\n\n            /\\b(aarch64|arm(v?8e?l?|_?64))\\b/i                                 // ARM64\n            ], [[ARCHITECTURE, 'arm64']], [\n\n            /\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i                                   // ARMHF\n            ], [[ARCHITECTURE, 'armhf']], [\n\n            // PocketPC mistakenly identified as PowerPC\n            /windows (ce|mobile); ppc;/i\n            ], [[ARCHITECTURE, 'arm']], [\n\n            /((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i                            // PowerPC\n            ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [\n\n            /(sun4\\w)[;\\)]/i                                                    // SPARC\n            ], [[ARCHITECTURE, 'sparc']], [\n\n            /((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i\n                                                                                // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\n            ], [[ARCHITECTURE, lowerize]]\n        ],\n\n        device : [[\n\n            //////////////////////////\n            // MOBILES & TABLETS\n            /////////////////////////\n\n            // Samsung\n            /\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i\n            ], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [\n            /\\b((?:s[cgp]h|gt|sm)-\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,\n            /samsung[- ]([-\\w]+)/i,\n            /sec-(sgh\\w+)/i\n            ], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [\n\n            // Apple\n            /(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i                          // iPod/iPhone\n            ], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [\n            /\\((ipad);[-\\w\\),; ]+apple/i,                                       // iPad\n            /applecoremedia\\/[\\w\\.]+ \\((ipad)/i,\n            /\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i\n            ], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [\n            /(macintosh);/i\n            ], [MODEL, [VENDOR, APPLE]], [\n\n            // Sharp\n            /\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i\n            ], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [\n\n            // Huawei\n            /\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i\n            ], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [\n            /(?:huawei|honor)([-\\w ]+)[;\\)]/i,\n            /\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i\n            ], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [\n\n            // Xiaomi\n            /\\b(poco[\\w ]+|m2\\d{3}j\\d\\d[a-z]{2})(?: bui|\\))/i,                  // Xiaomi POCO\n            /\\b; (\\w+) build\\/hm\\1/i,                                           // Xiaomi Hongmi 'numeric' models\n            /\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i,                             // Xiaomi Hongmi\n            /\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i,                   // Xiaomi Redmi\n            /oid[^\\)]+; (m?[12][0-389][01]\\w{3,6}[c-y])( bui|; wv|\\))/i,        // Xiaomi Redmi 'numeric' models\n            /\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i // Xiaomi Mi\n            ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [\n            /oid[^\\)]+; (2\\d{4}(283|rpbf)[cgl])( bui|\\))/i,                     // Redmi Pad\n            /\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i                        // Mi Pad tablets\n            ],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [\n\n            // OPPO\n            /; (\\w+) bui.+ oppo/i,\n            /\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i\n            ], [MODEL, [VENDOR, 'OPPO'], [TYPE, MOBILE]], [\n            /\\b(opd2\\d{3}a?) bui/i\n            ], [MODEL, [VENDOR, 'OPPO'], [TYPE, TABLET]], [\n\n            // Vivo\n            /vivo (\\w+)(?: bui|\\))/i,\n            /\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i\n            ], [MODEL, [VENDOR, 'Vivo'], [TYPE, MOBILE]], [\n\n            // Realme\n            /\\b(rmx[1-3]\\d{3})(?: bui|;|\\))/i\n            ], [MODEL, [VENDOR, 'Realme'], [TYPE, MOBILE]], [\n\n            // Motorola\n            /\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,\n            /\\bmot(?:orola)?[- ](\\w*)/i,\n            /((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i\n            ], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [\n            /\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i\n            ], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [\n\n            // LG\n            /((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i\n            ], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [\n            /(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,\n            /\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,\n            /\\blg-?([\\d\\w]+) bui/i\n            ], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [\n\n            // Lenovo\n            /(ideatab[-\\w ]+)/i,\n            /lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i\n            ], [MODEL, [VENDOR, 'Lenovo'], [TYPE, TABLET]], [\n\n            // Nokia\n            /(?:maemo|nokia).*(n900|lumia \\d+)/i,\n            /nokia[-_ ]?([-\\w\\.]*)/i\n            ], [[MODEL, /_/g, ' '], [VENDOR, 'Nokia'], [TYPE, MOBILE]], [\n\n            // Google\n            /(pixel c)\\b/i                                                      // Google Pixel C\n            ], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [\n            /droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i                         // Google Pixel\n            ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [\n\n            // Sony\n            /droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i\n            ], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [\n            /sony tablet [ps]/i,\n            /\\b(?:sony)?sgp\\w+(?: bui|\\))/i\n            ], [[MODEL, 'Xperia Tablet'], [VENDOR, SONY], [TYPE, TABLET]], [\n\n            // OnePlus\n            / (kb2005|in20[12]5|be20[12][59])\\b/i,\n            /(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i\n            ], [MODEL, [VENDOR, 'OnePlus'], [TYPE, MOBILE]], [\n\n            // Amazon\n            /(alexa)webm/i,\n            /(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\\))/i,                             // Kindle Fire without Silk / Echo Show\n            /(kf[a-z]+)( bui|\\)).+silk\\//i                                      // Kindle Fire HD\n            ], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [\n            /((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i                     // Fire Phone\n            ], [[MODEL, /(.+)/g, 'Fire Phone $1'], [VENDOR, AMAZON], [TYPE, MOBILE]], [\n\n            // BlackBerry\n            /(playbook);[-\\w\\),; ]+(rim)/i                                      // BlackBerry PlayBook\n            ], [MODEL, VENDOR, [TYPE, TABLET]], [\n            /\\b((?:bb[a-f]|st[hv])100-\\d)/i,\n            /\\(bb10; (\\w+)/i                                                    // BlackBerry 10\n            ], [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]], [\n\n            // Asus\n            /(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i\n            ], [MODEL, [VENDOR, ASUS], [TYPE, TABLET]], [\n            / (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i\n            ], [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]], [\n\n            // HTC\n            /(nexus 9)/i                                                        // HTC Nexus 9\n            ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [\n            /(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i,                         // HTC\n\n            // ZTE\n            /(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,\n            /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i         // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\n            ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [\n\n            // Acer\n            /droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i\n            ], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [\n\n            // Meizu\n            /droid.+; (m[1-5] note) bui/i,\n            /\\bmz-([-\\w]{2,})/i\n            ], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [\n                \n            // Ulefone\n            /; ((?:power )?armor(?:[\\w ]{0,8}))(?: bui|\\))/i\n            ], [MODEL, [VENDOR, 'Ulefone'], [TYPE, MOBILE]], [\n\n            // MIXED\n            /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\\w]*)/i,\n                                                                                // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron\n            /(hp) ([\\w ]+\\w)/i,                                                 // HP iPAQ\n            /(asus)-?(\\w+)/i,                                                   // Asus\n            /(microsoft); (lumia[\\w ]+)/i,                                      // Microsoft Lumia\n            /(lenovo)[-_ ]?([-\\w]+)/i,                                          // Lenovo\n            /(jolla)/i,                                                         // Jolla\n            /(oppo) ?([\\w ]+) bui/i                                             // OPPO\n            ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n\n            /(kobo)\\s(ereader|touch)/i,                                         // Kobo\n            /(archos) (gamepad2?)/i,                                            // Archos\n            /(hp).+(touchpad(?!.+tablet)|tablet)/i,                             // HP TouchPad\n            /(kindle)\\/([\\w\\.]+)/i,                                             // Kindle\n            /(nook)[\\w ]+build\\/(\\w+)/i,                                        // Nook\n            /(dell) (strea[kpr\\d ]*[\\dko])/i,                                   // Dell Streak\n            /(le[- ]+pan)[- ]+(\\w{1,9}) bui/i,                                  // Le Pan Tablets\n            /(trinity)[- ]*(t\\d{3}) bui/i,                                      // Trinity Tablets\n            /(gigaset)[- ]+(q\\w{1,9}) bui/i,                                    // Gigaset Tablets\n            /(vodafone) ([\\w ]+)(?:\\)| bui)/i                                   // Vodafone\n            ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n            /(surface duo)/i                                                    // Surface Duo\n            ], [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], [\n            /droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i                                 // Fairphone\n            ], [MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]], [\n            /(u304aa)/i                                                         // AT&T\n            ], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [\n            /\\bsie-(\\w*)/i                                                      // Siemens\n            ], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [\n            /\\b(rct\\w+) b/i                                                     // RCA Tablets\n            ], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [\n            /\\b(venue[\\d ]{2,7}) b/i                                            // Dell Venue Tablets\n            ], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [\n            /\\b(q(?:mv|ta)\\w+) b/i                                              // Verizon Tablet\n            ], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [\n            /\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i                       // Barnes & Noble Tablet\n            ], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [\n            /\\b(tm\\d{3}\\w+) b/i\n            ], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [\n            /\\b(k88) b/i                                                        // ZTE K Series Tablet\n            ], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [\n            /\\b(nx\\d{3}j) b/i                                                   // ZTE Nubia\n            ], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [\n            /\\b(gen\\d{3}) b.+49h/i                                              // Swiss GEN Mobile\n            ], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [\n            /\\b(zur\\d{3}) b/i                                                   // Swiss ZUR Tablet\n            ], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [\n            /\\b((zeki)?tb.*\\b) b/i                                              // Zeki Tablets\n            ], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [\n            /\\b([yr]\\d{2}) b/i,\n            /\\b(dragon[- ]+touch |dt)(\\w{5}) b/i                                // Dragon Touch Tablet\n            ], [[VENDOR, 'Dragon Touch'], MODEL, [TYPE, TABLET]], [\n            /\\b(ns-?\\w{0,9}) b/i                                                // Insignia Tablets\n            ], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [\n            /\\b((nxa|next)-?\\w{0,9}) b/i                                        // NextBook Tablets\n            ], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [\n            /\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i                  // Voice Xtreme Phones\n            ], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [\n            /\\b(lvtel\\-)?(v1[12]) b/i                                           // LvTel Phones\n            ], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [\n            /\\b(ph-1) /i                                                        // Essential PH-1\n            ], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [\n            /\\b(v(100md|700na|7011|917g).*\\b) b/i                               // Envizen Tablets\n            ], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [\n            /\\b(trio[-\\w\\. ]+) b/i                                              // MachSpeed Tablets\n            ], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [\n            /\\btu_(1491) b/i                                                    // Rotor Tablets\n            ], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]], [\n            /(shield[\\w ]+) b/i                                                 // Nvidia Shield Tablets\n            ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, TABLET]], [\n            /(sprint) (\\w+)/i                                                   // Sprint Phones\n            ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n            /(kin\\.[onetw]{3})/i                                                // Microsoft Kin\n            ], [[MODEL, /\\./g, ' '], [VENDOR, MICROSOFT], [TYPE, MOBILE]], [\n            /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i             // Zebra\n            ], [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]], [\n            /droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i\n            ], [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]], [\n\n            ///////////////////\n            // SMARTTVS\n            ///////////////////\n\n            /smart-tv.+(samsung)/i                                              // Samsung\n            ], [VENDOR, [TYPE, SMARTTV]], [\n            /hbbtv.+maple;(\\d+)/i\n            ], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [\n            /(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i        // LG SmartTV\n            ], [[VENDOR, LG], [TYPE, SMARTTV]], [\n            /(apple) ?tv/i                                                      // Apple TV\n            ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [\n            /crkey/i                                                            // Google Chromecast\n            ], [[MODEL, CHROME+'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n            /droid.+aft(\\w+)( bui|\\))/i                                         // Fire TV\n            ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [\n            /\\(dtv[\\);].+(aquos)/i,\n            /(aquos-tv[\\w ]+)\\)/i                                               // Sharp\n            ], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[\n            /(bravia[\\w ]+)( bui|\\))/i                                              // Sony\n            ], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [\n            /(mitv-\\w{5}) bui/i                                                 // Xiaomi\n            ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [\n            /Hbbtv.*(technisat) (.*);/i                                         // TechniSAT\n            ], [VENDOR, MODEL, [TYPE, SMARTTV]], [\n            /\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i,                          // Roku\n            /hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i         // HbbTV devices\n            ], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [\n            /\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i                   // SmartTV from Unidentified Vendors\n            ], [[TYPE, SMARTTV]], [\n\n            ///////////////////\n            // CONSOLES\n            ///////////////////\n\n            /(ouya)/i,                                                          // Ouya\n            /(nintendo) ([wids3utch]+)/i                                        // Nintendo\n            ], [VENDOR, MODEL, [TYPE, CONSOLE]], [\n            /droid.+; (shield) bui/i                                            // Nvidia\n            ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [\n            /(playstation [345portablevi]+)/i                                   // Playstation\n            ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [\n            /\\b(xbox(?: one)?(?!; xbox))[\\); ]/i                                // Microsoft Xbox\n            ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [\n\n            ///////////////////\n            // WEARABLES\n            ///////////////////\n\n            /((pebble))app/i                                                    // Pebble\n            ], [VENDOR, MODEL, [TYPE, WEARABLE]], [\n            /(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i                              // Apple Watch\n            ], [MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]], [\n            /droid.+; (glass) \\d/i                                              // Google Glass\n            ], [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]], [\n            /droid.+; (wt63?0{2,3})\\)/i\n            ], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [\n            /(quest( \\d| pro)?)/i                                               // Oculus Quest\n            ], [MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]], [\n\n            ///////////////////\n            // EMBEDDED\n            ///////////////////\n\n            /(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i                              // Tesla\n            ], [VENDOR, [TYPE, EMBEDDED]], [\n            /(aeobc)\\b/i                                                        // Echo Dot\n            ], [MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]], [\n\n            ////////////////////\n            // MIXED (GENERIC)\n            ///////////////////\n\n            /droid .+?; ([^;]+?)(?: bui|; wv\\)|\\) applew).+? mobile safari/i    // Android Phones from Unidentified Vendors\n            ], [MODEL, [TYPE, MOBILE]], [\n            /droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i       // Android Tablets from Unidentified Vendors\n            ], [MODEL, [TYPE, TABLET]], [\n            /\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i                      // Unidentifiable Tablet\n            ], [[TYPE, TABLET]], [\n            /(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i    // Unidentifiable Mobile\n            ], [[TYPE, MOBILE]], [\n            /(android[-\\w\\. ]{0,9});.+buil/i                                    // Generic Android Device\n            ], [MODEL, [VENDOR, 'Generic']]\n        ],\n\n        engine : [[\n\n            /windows.+ edge\\/([\\w\\.]+)/i                                       // EdgeHTML\n            ], [VERSION, [NAME, EDGE+'HTML']], [\n\n            /webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i                         // Blink\n            ], [VERSION, [NAME, 'Blink']], [\n\n            /(presto)\\/([\\w\\.]+)/i,                                             // Presto\n            /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna\n            /ekioh(flow)\\/([\\w\\.]+)/i,                                          // Flow\n            /(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i,                           // KHTML/Tasman/Links\n            /(icab)[\\/ ]([23]\\.[\\d\\.]+)/i,                                      // iCab\n            /\\b(libweb)/i\n            ], [NAME, VERSION], [\n\n            /rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i                                     // Gecko\n            ], [VERSION, NAME]\n        ],\n\n        os : [[\n\n            // Windows\n            /microsoft (windows) (vista|xp)/i                                   // Windows (iTunes)\n            ], [NAME, VERSION], [\n            /(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i             // Windows Phone\n            ], [NAME, [VERSION, strMapper, windowsVersionMap]], [\n            /windows nt 6\\.2; (arm)/i,                                        // Windows RT\n            /windows[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i,\n            /(?:win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i\n            ], [[VERSION, strMapper, windowsVersionMap], [NAME, 'Windows']], [\n\n            // iOS/macOS\n            /ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i,              // iOS\n            /(?:ios;fbsv\\/|iphone.+ios[\\/ ])([\\d\\.]+)/i,\n            /cfnetwork\\/.+darwin/i\n            ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [\n            /(mac os x) ?([\\w\\. ]*)/i,\n            /(macintosh|mac_powerpc\\b)(?!.+haiku)/i                             // Mac OS\n            ], [[NAME, MAC_OS], [VERSION, /_/g, '.']], [\n\n            // Mobile OSes\n            /droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i                    // Android-x86/HarmonyOS\n            ], [VERSION, NAME], [                                               // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS\n            /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,\n            /(blackberry)\\w*\\/([\\w\\.]*)/i,                                      // Blackberry\n            /(tizen|kaios)[\\/ ]([\\w\\.]+)/i,                                     // Tizen/KaiOS\n            /\\((series40);/i                                                    // Series 40\n            ], [NAME, VERSION], [\n            /\\(bb(10);/i                                                        // BlackBerry 10\n            ], [VERSION, [NAME, BLACKBERRY]], [\n            /(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i         // Symbian\n            ], [VERSION, [NAME, 'Symbian']], [\n            /mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i // Firefox OS\n            ], [VERSION, [NAME, FIREFOX+' OS']], [\n            /web0s;.+rt(tv)/i,\n            /\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i                              // WebOS\n            ], [VERSION, [NAME, 'webOS']], [\n            /watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i                              // watchOS\n            ], [VERSION, [NAME, 'watchOS']], [\n\n            // Google Chromecast\n            /crkey\\/([\\d\\.]+)/i                                                 // Google Chromecast\n            ], [VERSION, [NAME, CHROME+'cast']], [\n            /(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i                                  // Chromium OS\n            ], [[NAME, CHROMIUM_OS], VERSION],[\n\n            // Smart TVs\n            /panasonic;(viera)/i,                                               // Panasonic Viera\n            /(netrange)mmh/i,                                                   // Netrange\n            /(nettv)\\/(\\d+\\.[\\w\\.]+)/i,                                         // NetTV\n\n            // Console\n            /(nintendo|playstation) ([wids345portablevuch]+)/i,                 // Nintendo/Playstation\n            /(xbox); +xbox ([^\\);]+)/i,                                         // Microsoft Xbox (360, One, X, S, Series X, Series S)\n\n            // Other\n            /\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i,                            // Joli/Palm\n            /(mint)[\\/\\(\\) ]?(\\w*)/i,                                           // Mint\n            /(mageia|vectorlinux)[; ]/i,                                        // Mageia/VectorLinux\n            /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,\n                                                                                // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire\n            /(hurd|linux) ?([\\w\\.]*)/i,                                         // Hurd/Linux\n            /(gnu) ?([\\w\\.]*)/i,                                                // GNU\n            /\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly\n            /(haiku) (\\w+)/i                                                    // Haiku\n            ], [NAME, VERSION], [\n            /(sunos) ?([\\w\\.\\d]*)/i                                             // Solaris\n            ], [[NAME, 'Solaris'], VERSION], [\n            /((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i,                              // Solaris\n            /(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i,                                  // AIX\n            /\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i, // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX/SerenityOS\n            /(unix) ?([\\w\\.]*)/i                                                // UNIX\n            ], [NAME, VERSION]\n        ]\n    };\n\n    /////////////////\n    // Constructor\n    ////////////////\n\n    var UAParser = function (ua, extensions) {\n\n        if (typeof ua === OBJ_TYPE) {\n            extensions = ua;\n            ua = undefined;\n        }\n\n        if (!(this instanceof UAParser)) {\n            return new UAParser(ua, extensions).getResult();\n        }\n\n        var _navigator = (typeof window !== UNDEF_TYPE && window.navigator) ? window.navigator : undefined;\n        var _ua = ua || ((_navigator && _navigator.userAgent) ? _navigator.userAgent : EMPTY);\n        var _uach = (_navigator && _navigator.userAgentData) ? _navigator.userAgentData : undefined;\n        var _rgxmap = extensions ? extend(regexes, extensions) : regexes;\n        var _isSelfNav = _navigator && _navigator.userAgent == _ua;\n\n        this.getBrowser = function () {\n            var _browser = {};\n            _browser[NAME] = undefined;\n            _browser[VERSION] = undefined;\n            rgxMapper.call(_browser, _ua, _rgxmap.browser);\n            _browser[MAJOR] = majorize(_browser[VERSION]);\n            // Brave-specific detection\n            if (_isSelfNav && _navigator && _navigator.brave && typeof _navigator.brave.isBrave == FUNC_TYPE) {\n                _browser[NAME] = 'Brave';\n            }\n            return _browser;\n        };\n        this.getCPU = function () {\n            var _cpu = {};\n            _cpu[ARCHITECTURE] = undefined;\n            rgxMapper.call(_cpu, _ua, _rgxmap.cpu);\n            return _cpu;\n        };\n        this.getDevice = function () {\n            var _device = {};\n            _device[VENDOR] = undefined;\n            _device[MODEL] = undefined;\n            _device[TYPE] = undefined;\n            rgxMapper.call(_device, _ua, _rgxmap.device);\n            if (_isSelfNav && !_device[TYPE] && _uach && _uach.mobile) {\n                _device[TYPE] = MOBILE;\n            }\n            // iPadOS-specific detection: identified as Mac, but has some iOS-only properties\n            if (_isSelfNav && _device[MODEL] == 'Macintosh' && _navigator && typeof _navigator.standalone !== UNDEF_TYPE && _navigator.maxTouchPoints && _navigator.maxTouchPoints > 2) {\n                _device[MODEL] = 'iPad';\n                _device[TYPE] = TABLET;\n            }\n            return _device;\n        };\n        this.getEngine = function () {\n            var _engine = {};\n            _engine[NAME] = undefined;\n            _engine[VERSION] = undefined;\n            rgxMapper.call(_engine, _ua, _rgxmap.engine);\n            return _engine;\n        };\n        this.getOS = function () {\n            var _os = {};\n            _os[NAME] = undefined;\n            _os[VERSION] = undefined;\n            rgxMapper.call(_os, _ua, _rgxmap.os);\n            if (_isSelfNav && !_os[NAME] && _uach && _uach.platform && _uach.platform != 'Unknown') {\n                _os[NAME] = _uach.platform  \n                                    .replace(/chrome os/i, CHROMIUM_OS)\n                                    .replace(/macos/i, MAC_OS);           // backward compatibility\n            }\n            return _os;\n        };\n        this.getResult = function () {\n            return {\n                ua      : this.getUA(),\n                browser : this.getBrowser(),\n                engine  : this.getEngine(),\n                os      : this.getOS(),\n                device  : this.getDevice(),\n                cpu     : this.getCPU()\n            };\n        };\n        this.getUA = function () {\n            return _ua;\n        };\n        this.setUA = function (ua) {\n            _ua = (typeof ua === STR_TYPE && ua.length > UA_MAX_LENGTH) ? trim(ua, UA_MAX_LENGTH) : ua;\n            return this;\n        };\n        this.setUA(_ua);\n        return this;\n    };\n\n    UAParser.VERSION = LIBVERSION;\n    UAParser.BROWSER =  enumerize([NAME, VERSION, MAJOR]);\n    UAParser.CPU = enumerize([ARCHITECTURE]);\n    UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);\n    UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);\n\n    ///////////\n    // Export\n    //////////\n\n    // check js environment\n    if (typeof(exports) !== UNDEF_TYPE) {\n        // nodejs env\n        if (typeof module !== UNDEF_TYPE && module.exports) {\n            exports = module.exports = UAParser;\n        }\n        exports.UAParser = UAParser;\n    } else {\n        // requirejs env (optional)\n        if (typeof(define) === FUNC_TYPE && define.amd) {\n            define(function () {\n                return UAParser;\n            });\n        } else if (typeof window !== UNDEF_TYPE) {\n            // browser env\n            window.UAParser = UAParser;\n        }\n    }\n\n    // jQuery/Zepto specific (optional)\n    // Note:\n    //   In AMD env the global scope should be kept clean, but jQuery is an exception.\n    //   jQuery always exports to global scope, unless jQuery.noConflict(true) is used,\n    //   and we should catch that.\n    var $ = typeof window !== UNDEF_TYPE && (window.jQuery || window.Zepto);\n    if ($ && !$.ua) {\n        var parser = new UAParser();\n        $.ua = parser.getResult();\n        $.ua.get = function () {\n            return parser.getUA();\n        };\n        $.ua.set = function (ua) {\n            parser.setUA(ua);\n            var result = parser.getResult();\n            for (var prop in result) {\n                $.ua[prop] = result[prop];\n            }\n        };\n    }\n\n})(typeof window === 'object' ? window : this);\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","// This file is a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nexport default {\"version\":4,\"country_calling_codes\":{\"1\":[\"US\",\"AG\",\"AI\",\"AS\",\"BB\",\"BM\",\"BS\",\"CA\",\"DM\",\"DO\",\"GD\",\"GU\",\"JM\",\"KN\",\"KY\",\"LC\",\"MP\",\"MS\",\"PR\",\"SX\",\"TC\",\"TT\",\"VC\",\"VG\",\"VI\"],\"7\":[\"RU\",\"KZ\"],\"20\":[\"EG\"],\"27\":[\"ZA\"],\"30\":[\"GR\"],\"31\":[\"NL\"],\"32\":[\"BE\"],\"33\":[\"FR\"],\"34\":[\"ES\"],\"36\":[\"HU\"],\"39\":[\"IT\",\"VA\"],\"40\":[\"RO\"],\"41\":[\"CH\"],\"43\":[\"AT\"],\"44\":[\"GB\",\"GG\",\"IM\",\"JE\"],\"45\":[\"DK\"],\"46\":[\"SE\"],\"47\":[\"NO\",\"SJ\"],\"48\":[\"PL\"],\"49\":[\"DE\"],\"51\":[\"PE\"],\"52\":[\"MX\"],\"53\":[\"CU\"],\"54\":[\"AR\"],\"55\":[\"BR\"],\"56\":[\"CL\"],\"57\":[\"CO\"],\"58\":[\"VE\"],\"60\":[\"MY\"],\"61\":[\"AU\",\"CC\",\"CX\"],\"62\":[\"ID\"],\"63\":[\"PH\"],\"64\":[\"NZ\"],\"65\":[\"SG\"],\"66\":[\"TH\"],\"81\":[\"JP\"],\"82\":[\"KR\"],\"84\":[\"VN\"],\"86\":[\"CN\"],\"90\":[\"TR\"],\"91\":[\"IN\"],\"92\":[\"PK\"],\"93\":[\"AF\"],\"94\":[\"LK\"],\"95\":[\"MM\"],\"98\":[\"IR\"],\"211\":[\"SS\"],\"212\":[\"MA\",\"EH\"],\"213\":[\"DZ\"],\"216\":[\"TN\"],\"218\":[\"LY\"],\"220\":[\"GM\"],\"221\":[\"SN\"],\"222\":[\"MR\"],\"223\":[\"ML\"],\"224\":[\"GN\"],\"225\":[\"CI\"],\"226\":[\"BF\"],\"227\":[\"NE\"],\"228\":[\"TG\"],\"229\":[\"BJ\"],\"230\":[\"MU\"],\"231\":[\"LR\"],\"232\":[\"SL\"],\"233\":[\"GH\"],\"234\":[\"NG\"],\"235\":[\"TD\"],\"236\":[\"CF\"],\"237\":[\"CM\"],\"238\":[\"CV\"],\"239\":[\"ST\"],\"240\":[\"GQ\"],\"241\":[\"GA\"],\"242\":[\"CG\"],\"243\":[\"CD\"],\"244\":[\"AO\"],\"245\":[\"GW\"],\"246\":[\"IO\"],\"247\":[\"AC\"],\"248\":[\"SC\"],\"249\":[\"SD\"],\"250\":[\"RW\"],\"251\":[\"ET\"],\"252\":[\"SO\"],\"253\":[\"DJ\"],\"254\":[\"KE\"],\"255\":[\"TZ\"],\"256\":[\"UG\"],\"257\":[\"BI\"],\"258\":[\"MZ\"],\"260\":[\"ZM\"],\"261\":[\"MG\"],\"262\":[\"RE\",\"YT\"],\"263\":[\"ZW\"],\"264\":[\"NA\"],\"265\":[\"MW\"],\"266\":[\"LS\"],\"267\":[\"BW\"],\"268\":[\"SZ\"],\"269\":[\"KM\"],\"290\":[\"SH\",\"TA\"],\"291\":[\"ER\"],\"297\":[\"AW\"],\"298\":[\"FO\"],\"299\":[\"GL\"],\"350\":[\"GI\"],\"351\":[\"PT\"],\"352\":[\"LU\"],\"353\":[\"IE\"],\"354\":[\"IS\"],\"355\":[\"AL\"],\"356\":[\"MT\"],\"357\":[\"CY\"],\"358\":[\"FI\",\"AX\"],\"359\":[\"BG\"],\"370\":[\"LT\"],\"371\":[\"LV\"],\"372\":[\"EE\"],\"373\":[\"MD\"],\"374\":[\"AM\"],\"375\":[\"BY\"],\"376\":[\"AD\"],\"377\":[\"MC\"],\"378\":[\"SM\"],\"380\":[\"UA\"],\"381\":[\"RS\"],\"382\":[\"ME\"],\"383\":[\"XK\"],\"385\":[\"HR\"],\"386\":[\"SI\"],\"387\":[\"BA\"],\"389\":[\"MK\"],\"420\":[\"CZ\"],\"421\":[\"SK\"],\"423\":[\"LI\"],\"500\":[\"FK\"],\"501\":[\"BZ\"],\"502\":[\"GT\"],\"503\":[\"SV\"],\"504\":[\"HN\"],\"505\":[\"NI\"],\"506\":[\"CR\"],\"507\":[\"PA\"],\"508\":[\"PM\"],\"509\":[\"HT\"],\"590\":[\"GP\",\"BL\",\"MF\"],\"591\":[\"BO\"],\"592\":[\"GY\"],\"593\":[\"EC\"],\"594\":[\"GF\"],\"595\":[\"PY\"],\"596\":[\"MQ\"],\"597\":[\"SR\"],\"598\":[\"UY\"],\"599\":[\"CW\",\"BQ\"],\"670\":[\"TL\"],\"672\":[\"NF\"],\"673\":[\"BN\"],\"674\":[\"NR\"],\"675\":[\"PG\"],\"676\":[\"TO\"],\"677\":[\"SB\"],\"678\":[\"VU\"],\"679\":[\"FJ\"],\"680\":[\"PW\"],\"681\":[\"WF\"],\"682\":[\"CK\"],\"683\":[\"NU\"],\"685\":[\"WS\"],\"686\":[\"KI\"],\"687\":[\"NC\"],\"688\":[\"TV\"],\"689\":[\"PF\"],\"690\":[\"TK\"],\"691\":[\"FM\"],\"692\":[\"MH\"],\"850\":[\"KP\"],\"852\":[\"HK\"],\"853\":[\"MO\"],\"855\":[\"KH\"],\"856\":[\"LA\"],\"880\":[\"BD\"],\"886\":[\"TW\"],\"960\":[\"MV\"],\"961\":[\"LB\"],\"962\":[\"JO\"],\"963\":[\"SY\"],\"964\":[\"IQ\"],\"965\":[\"KW\"],\"966\":[\"SA\"],\"967\":[\"YE\"],\"968\":[\"OM\"],\"970\":[\"PS\"],\"971\":[\"AE\"],\"972\":[\"IL\"],\"973\":[\"BH\"],\"974\":[\"QA\"],\"975\":[\"BT\"],\"976\":[\"MN\"],\"977\":[\"NP\"],\"992\":[\"TJ\"],\"993\":[\"TM\"],\"994\":[\"AZ\"],\"995\":[\"GE\"],\"996\":[\"KG\"],\"998\":[\"UZ\"]},\"countries\":{\"AC\":[\"247\",\"00\",\"(?:[01589]\\\\d|[46])\\\\d{4}\",[5,6]],\"AD\":[\"376\",\"00\",\"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\",[6,8,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[135-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]]],\"AE\":[\"971\",\"00\",\"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{2,9})\",\"$1 $2\",[\"60|8\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[236]|[479][2-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{5})\",\"$1 $2 $3\",[\"[479]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AF\":[\"93\",\"00\",\"[2-7]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"]],\"0\"],\"AG\":[\"1\",\"011\",\"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([457]\\\\d{6})$|1\",\"268$1\",0,\"268\"],\"AI\":[\"1\",\"011\",\"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2457]\\\\d{6})$|1\",\"264$1\",0,\"264\"],\"AL\":[\"355\",\"00\",\"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\",[6,7,8,9],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"80|9\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2358][2-5]|4\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[23578]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"]],\"0\"],\"AM\":[\"374\",\"00\",\"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]0\"],\"0 $1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2|3[12]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"1|47\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[3-9]\"],\"0$1\"]],\"0\"],\"AO\":[\"244\",\"00\",\"[29]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[29]\"]]]],\"AR\":[\"54\",\"00\",\"(?:11|[89]\\\\d\\\\d)\\\\d{8}|[2368]\\\\d{9}\",[10,11],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2-$3\",[\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\",\"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"1\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[68]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[23]\"],\"0$1\",1],[\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9(?:2[2-469]|3[3-578])\",\"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\",\"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 15-$3-$4\",[\"91\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9\"],\"0$1\",0,\"$1 $2 $3-$4\"]],\"0\",0,\"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\",\"9$1\"],\"AS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\",[10],0,\"1\",0,\"([267]\\\\d{6})$|1\",\"684$1\",0,\"684\"],\"AT\":[\"43\",\"00\",\"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}\",[4,5,6,7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3,12})\",\"$1 $2\",[\"1(?:11|[2-9])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})\",\"$1 $2\",[\"517\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"5[079]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,10})\",\"$1 $2\",[\"(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,9})\",\"$1 $2\",[\"[2-467]|5[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AU\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{7}(?:\\\\d(?:\\\\d{2})?)?|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}\",[5,6,7,8,9,10,12],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"16\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"16\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"14|4\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[2378]\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:30|[89])\"]]],\"0\",0,\"(183[12])|0\",0,0,0,[[\"(?:(?:(?:2(?:[0-26-9]\\\\d|3[0-8]|4[02-9]|5[0135-9])|7(?:[013-57-9]\\\\d|2[0-8]))\\\\d|3(?:(?:[0-3589]\\\\d|6[1-9]|7[0-35-9])\\\\d|4(?:[0-578]\\\\d|90)))\\\\d\\\\d|8(?:51(?:0(?:0[03-9]|[12479]\\\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\\\d|7[89]|9[0-4])|3\\\\d\\\\d)|(?:6[0-8]|[78]\\\\d)\\\\d{3}|9(?:[02-9]\\\\d{3}|1(?:(?:[0-58]\\\\d|6[0135-9])\\\\d|7(?:0[0-24-9]|[1-9]\\\\d)|9(?:[0-46-9]\\\\d|5[0-79])))))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-389]|94[0-4])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,[\"163\\\\d{2,6}\",[5,6,7,8,9]],[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"AW\":[\"297\",\"00\",\"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[25-9]\"]]]],\"AX\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"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}\",[5,6,7,8,9,10,11,12],0,\"0\",0,0,0,0,\"18\",0,\"00\"],\"AZ\":[\"994\",\"00\",\"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[28]|2|365|46\",\"1[28]|2|365[45]|46\",\"1[28]|2|365(?:4|5[02])|46\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[13-9]\"],\"0$1\"]],\"0\"],\"BA\":[\"387\",\"00\",\"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[1-3]|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2-$3\",[\"[3-5]|6[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\"]],\"0\"],\"BB\":[\"1\",\"011\",\"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"246$1\",0,\"246\"],\"BD\":[\"880\",\"00\",\"[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}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1-$2\",[\"31[5-8]|[459]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1-$2\",[\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,6})\",\"$1-$2\",[\"[13-9]|22\"],\"0$1\"],[\"(\\\\d)(\\\\d{7,8})\",\"$1-$2\",[\"2\"],\"0$1\"]],\"0\"],\"BE\":[\"32\",\"00\",\"4\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:80|9)0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[239]|4[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[15-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4\"],\"0$1\"]],\"0\"],\"BF\":[\"226\",\"00\",\"[025-7]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[025-7]\"]]]],\"BG\":[\"359\",\"00\",\"00800\\\\d{7}|[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\",[6,7,8,9,12],[[\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"43[1-6]|70[1-9]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:70|8)0\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"43[1-7]|7\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[48]|9[08]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"BH\":[\"973\",\"00\",\"[136-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[13679]|8[02-4679]\"]]]],\"BI\":[\"257\",\"00\",\"(?:[267]\\\\d|31)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2367]\"]]]],\"BJ\":[\"229\",\"00\",\"[24-689]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-689]\"]]]],\"BL\":[\"590\",\"00\",\"590\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:2[7-9]|3[3-7]|5[12]|87)\\\\d{4}\"],[\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"BM\":[\"1\",\"011\",\"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"441$1\",0,\"441\"],\"BN\":[\"673\",\"00\",\"[2-578]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-578]\"]]]],\"BO\":[\"591\",\"00(?:1\\\\d)?\",\"(?:[2-467]\\\\d\\\\d|8001)\\\\d{5}\",[8,9],[[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[23]|4[46]\"]],[\"(\\\\d{8})\",\"$1\",[\"[67]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\",0,\"0(1\\\\d)?\"],\"BQ\":[\"599\",\"00\",\"(?:[34]1|7\\\\d)\\\\d{5}\",[7],0,0,0,0,0,0,\"[347]\"],\"BR\":[\"55\",\"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\",\"(?:[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}\",[8,9,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"300|4(?:0[02]|37)\",\"4(?:02|37)0|[34]00\"]],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:[358]|90)0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1 $2-$3\",[\"[16][1-9]|[2-57-9]\"],\"($1)\"]],\"0\",0,\"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\",\"$2\"],\"BS\":[\"1\",\"011\",\"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([3-8]\\\\d{6})$|1\",\"242$1\",0,\"242\"],\"BT\":[\"975\",\"00\",\"[17]\\\\d{7}|[2-8]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-68]|7[246]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[67]|7\"]]]],\"BW\":[\"267\",\"00\",\"(?:0800|(?:[37]|800)\\\\d)\\\\d{6}|(?:[2-6]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[24-6]|3[15-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"BY\":[\"375\",\"810\",\"(?:[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}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"800\"],\"8 $1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\",\"$1 $2 $3\",[\"800\"],\"8 $1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{3})\",\"$1 $2-$3\",[\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\",\"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"1(?:[56]|7[467])|2[1-3]\"],\"8 0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-4]\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"8 $1\"]],\"8\",0,\"0|80?\",0,0,0,0,\"8~10\"],\"BZ\":[\"501\",\"00\",\"(?:0800\\\\d|[2-8])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-8]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"0\"]]]],\"CA\":[\"1\",\"011\",\"(?:[2-8]\\\\d|90)\\\\d{8}|3\\\\d{6}\",[7,10],0,\"1\",0,0,0,0,0,[[\"(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|90[25])[2-9]\\\\d{6}\",[10]],[\"\",[10]],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",[10]],[\"900[2-9]\\\\d{6}\",[10]],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|(?:5(?:00|2[125-9]|33|44|66|77|88)|622)[2-9]\\\\d{6}\",[10]],0,[\"310\\\\d{4}\",[7]],0,[\"600[2-9]\\\\d{6}\",[10]]]],\"CC\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\\\d|70[23]|959))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-389]|94[0-4])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CD\":[\"243\",\"00\",\"[189]\\\\d{8}|[1-68]\\\\d{6}\",[7,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[1-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\"],\"CF\":[\"236\",\"00\",\"(?:[27]\\\\d{3}|8776)\\\\d{4}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[278]\"]]]],\"CG\":[\"242\",\"00\",\"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[02]\"]]]],\"CH\":[\"41\",\"00\",\"8\\\\d{11}|[2-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8[047]|90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]|81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"8\"],\"0$1\"]],\"0\"],\"CI\":[\"225\",\"00\",\"[02]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d)(\\\\d{5})\",\"$1 $2 $3 $4\",[\"2\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]]],\"CK\":[\"682\",\"00\",\"[2-578]\\\\d{4}\",[5],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"[2-578]\"]]]],\"CL\":[\"56\",\"(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0\",\"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\",[9,10,11],[[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"219\",\"2196\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[1-36]\"],\"($1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"9[2-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"60|8\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"60\"]]]],\"CM\":[\"237\",\"00\",\"[26]\\\\d{8}|88\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"88\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[26]|88\"]]]],\"CN\":[\"86\",\"00|1(?:[12]\\\\d|79)\\\\d\\\\d00\",\"1[127]\\\\d{8,9}|2\\\\d{9}(?:\\\\d{2})?|[12]\\\\d{6,7}|86\\\\d{6}|(?:1[03-689]\\\\d|6)\\\\d{7,9}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{6,9}\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]\",\"(?:10|2[0-57-9])(?:10|9[56])\",\"10(?:10|9[56])|2[0-57-9](?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\",\"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\",\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\",\"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:4|80)0\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|2(?:[02-57-9]|1[1-9])\",\"10|2(?:[02-57-9]|1[1-9])\",\"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-578]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"1[3-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"[12]\"],\"0$1\",1]],\"0\",0,\"(1(?:[12]\\\\d|79)\\\\d\\\\d)|0\",0,0,0,0,\"00\"],\"CO\":[\"57\",\"00(?:4(?:[14]4|56)|[579])\",\"(?:60\\\\d\\\\d|9101)\\\\d{6}|(?:1\\\\d|3)\\\\d{9}\",[10,11],[[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"6\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3[0-357]|91\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{7})\",\"$1-$2-$3\",[\"1\"],\"0$1\",0,\"$1 $2 $3\"]],\"0\",0,\"0([3579]|4(?:[14]4|56))?\"],\"CR\":[\"506\",\"00\",\"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\",[8,10],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[3-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[89]\"]]],0,0,\"(19(?:0[0-2468]|1[09]|20|66|77|99))\"],\"CU\":[\"53\",\"119\",\"(?:[2-7]|8\\\\d\\\\d)\\\\d{7}|[2-47]\\\\d{6}|[34]\\\\d{5}\",[6,7,8,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"2[1-4]|[34]\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{6,7})\",\"$1 $2\",[\"7\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[56]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"8\"],\"0$1\"]],\"0\"],\"CV\":[\"238\",\"0\",\"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"CW\":[\"599\",\"00\",\"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[3467]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9[4-8]\"]]],0,0,0,0,0,\"[69]\"],\"CX\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\\\d|7(?:0[01]|1[0-2])|958))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-389]|94[0-4])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CY\":[\"357\",\"00\",\"(?:[279]\\\\d|[58]0)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[257-9]\"]]]],\"CZ\":[\"420\",\"00\",\"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]|9[015-7]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"96\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]]],\"DE\":[\"49\",\"00\",\"[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}\",[4,5,6,7,8,9,10,11,12,13,14,15],[[\"(\\\\d{2})(\\\\d{3,13})\",\"$1 $2\",[\"3[02]|40|[68]9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,12})\",\"$1 $2\",[\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\",\"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2,11})\",\"$1 $2\",[\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\",\"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"138\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{2,10})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,11})\",\"$1 $2\",[\"181\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\",\"$1 $2 $3\",[\"1(?:3|80)|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"1[67]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,12})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"185\",\"1850\",\"18500\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"18[68]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"15[1279]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"15[03568]\",\"15(?:[0568]|31)\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{8})\",\"$1 $2\",[\"18\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\",\"$1 $2 $3\",[\"1(?:6[023]|7)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\",\"$1 $2 $3\",[\"15[279]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\",\"$1 $2 $3\",[\"15\"],\"0$1\"]],\"0\"],\"DJ\":[\"253\",\"00\",\"(?:2\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[27]\"]]]],\"DK\":[\"45\",\"00\",\"[2-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-9]\"]]]],\"DM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"767$1\",0,\"767\"],\"DO\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"8001|8[024]9\"],\"DZ\":[\"213\",\"00\",\"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-8]\"],\"0$1\"]],\"0\"],\"EC\":[\"593\",\"00\",\"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\",[8,9,10,11],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[2-7]\"],\"(0$1)\",0,\"$1-$2-$3\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"EE\":[\"372\",\"00\",\"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\",\"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]],[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[45]|8(?:00|[1-49])\",\"[45]|8(?:00[1-9]|[1-49])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"EG\":[\"20\",\"00\",\"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{7,8})\",\"$1 $2\",[\"[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,7})\",\"$1 $2\",[\"1[35]|[4-6]|8[2468]|9[235-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{8})\",\"$1 $2\",[\"1\"],\"0$1\"]],\"0\"],\"EH\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],0,\"0\",0,0,0,0,\"528[89]\"],\"ER\":[\"291\",\"00\",\"[178]\\\\d{6}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[178]\"],\"0$1\"]],\"0\"],\"ES\":[\"34\",\"00\",\"[5-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]00\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-9]\"]]]],\"ET\":[\"251\",\"00\",\"(?:11|[2-579]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-579]\"],\"0$1\"]],\"0\"],\"FI\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{5})\",\"$1\",[\"20[2-59]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"(?:[1-3]0|[68])0|70[07-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,8})\",\"$1 $2\",[\"[14]|2[09]|50|7[135]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"(?:1[3-79]|[2568])[1-8]|3(?:0[1-9]|[1-9])|9\"],\"0$1\"]],\"0\",0,0,0,0,\"1[03-79]|[2-9]\",0,\"00\"],\"FJ\":[\"679\",\"0(?:0|52)\",\"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[235-9]|45\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]]],0,0,0,0,0,0,0,\"00\"],\"FK\":[\"500\",\"00\",\"[2-7]\\\\d{4}\",[5]],\"FM\":[\"691\",\"00\",\"(?:[39]\\\\d\\\\d|820)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[389]\"]]]],\"FO\":[\"298\",\"00\",\"[2-9]\\\\d{5}\",[6],[[\"(\\\\d{6})\",\"$1\",[\"[2-9]\"]]],0,0,\"(10(?:01|[12]0|88))\"],\"FR\":[\"33\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0 $1\"],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[1-79]\"],\"0$1\"]],\"0\"],\"GA\":[\"241\",\"00\",\"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"11|[67]\"],\"0$1\"]],0,0,\"0(11\\\\d{6}|60\\\\d{6}|61\\\\d{6}|6[256]\\\\d{6}|7[467]\\\\d{6})\",\"$1\"],\"GB\":[\"44\",\"00\",\"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\",[7,9,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"800\",\"8001\",\"80011\",\"800111\",\"8001111\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"845\",\"8454\",\"84546\",\"845464\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"1(?:38|5[23]|69|76|94)\",\"1(?:(?:38|69)7|5(?:24|39)|768|946)\",\"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"1(?:[2-69][02-9]|[78])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[25]|7(?:0|6[02-9])\",\"[25]|7(?:0|6(?:[03-9]|2[356]))\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1389]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:1(?:1(?:3(?:[0-58]\\\\d\\\\d|73[0-35])|4(?:(?:[0-5]\\\\d|70)\\\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\\\d|6(?:[0-4]\\\\d|50))\\\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\\\d)\\\\d|1(?:[0-7]\\\\d|8[0-3]))|(?:3(?:0\\\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\\\d)\\\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\\\d{3})\\\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\\\d)|76\\\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\\\d|7[4-79])|295[5-7]|35[34]\\\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\\\d{3}\",[9,10]],[\"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[2-49]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]],0,\" x\"],\"GD\":[\"1\",\"011\",\"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"473$1\",0,\"473\"],\"GE\":[\"995\",\"00\",\"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"32\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[57]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[348]\"],\"0$1\"]],\"0\"],\"GF\":[\"594\",\"00\",\"[56]94\\\\d{6}|(?:80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[56]|9[47]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[89]\"],\"0$1\"]],\"0\"],\"GG\":[\"44\",\"00\",\"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\",[7,9,10],0,\"0\",0,\"([25-9]\\\\d{5})$|0\",\"1481$1\",0,0,[[\"1481[25-9]\\\\d{5}\",[10]],[\"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[0-3]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]]],\"GH\":[\"233\",\"00\",\"(?:[235]\\\\d{3}|800)\\\\d{5}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[235]\"],\"0$1\"]],\"0\"],\"GI\":[\"350\",\"00\",\"(?:[25]\\\\d|60)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2\"]]]],\"GL\":[\"299\",\"00\",\"(?:19|[2-689]\\\\d|70)\\\\d{4}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"19|[2-9]\"]]]],\"GM\":[\"220\",\"00\",\"[2-9]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"GN\":[\"224\",\"00\",\"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"3\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[67]\"]]]],\"GP\":[\"590\",\"00\",\"590\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\\\d)\\\\d{4}\"],[\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"GQ\":[\"240\",\"00\",\"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235]\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[89]\"]]]],\"GR\":[\"30\",\"00\",\"5005000\\\\d{3}|8\\\\d{9,11}|(?:[269]\\\\d|70)\\\\d{8}\",[10,11,12],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"21|7\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2689]\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{5})\",\"$1 $2 $3\",[\"8\"]]]],\"GT\":[\"502\",\"00\",\"80\\\\d{6}|(?:1\\\\d{3}|[2-7])\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-8]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"GU\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"671$1\",0,\"671\"],\"GW\":[\"245\",\"00\",\"[49]\\\\d{8}|4\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"40\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"]]]],\"GY\":[\"592\",\"001\",\"(?:[2-8]\\\\d{3}|9008)\\\\d{3}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"HK\":[\"852\",\"00(?:30|5[09]|[126-9]?)\",\"8[0-46-9]\\\\d{6,7}|9\\\\d{4,7}|(?:[2-7]|9\\\\d{3})\\\\d{7}\",[5,6,7,8,9,11],[[\"(\\\\d{3})(\\\\d{2,5})\",\"$1 $2\",[\"900\",\"9003\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],0,0,0,0,0,0,0,\"00\"],\"HN\":[\"504\",\"00\",\"8\\\\d{10}|[237-9]\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[237-9]\"]]]],\"HR\":[\"385\",\"00\",\"(?:[24-69]\\\\d|3[0-79])\\\\d{7}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{5,6}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"6[01]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6|7[245]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-57]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"HT\":[\"509\",\"00\",\"(?:[2-489]\\\\d|55)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"HU\":[\"36\",\"00\",\"[235-7]\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"06 $1\"]],\"06\"],\"ID\":[\"62\",\"00[89]\",\"(?:(?:00[1-9]|8\\\\d)\\\\d{4}|[1-36])\\\\d{6}|00\\\\d{10}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\",[7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"15\"]],[\"(\\\\d{2})(\\\\d{5,9})\",\"$1 $2\",[\"2[124]|[36]1\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,7})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,8})\",\"$1 $2\",[\"[2-79]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\",\"$1-$2-$3\",[\"8[1-35-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6,8})\",\"$1 $2\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"804\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"80\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"]],\"0\"],\"IE\":[\"353\",\"00\",\"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"2[24-9]|47|58|6[237-9]|9[35-9]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[45]0\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2569]|4[1-69]|7[14]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"81\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"IL\":[\"972\",\"0(?:0|1[2-9])\",\"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\",[7,8,9,10,11,12],[[\"(\\\\d{4})(\\\\d{3})\",\"$1-$2\",[\"125\"]],[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"121\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-489]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"12\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1-$2\",[\"159\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"1[7-9]\"]],[\"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3-$4\",[\"15\"]]],\"0\"],\"IM\":[\"44\",\"00\",\"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([25-8]\\\\d{5})$|0\",\"1624$1\",0,\"74576|(?:16|7[56])24\"],\"IN\":[\"91\",\"00\",\"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\",[8,9,10,11,12,13],[[\"(\\\\d{8})\",\"$1\",[\"5(?:0|2[23]|3[03]|[67]1|88)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"],0,1],[\"(\\\\d{4})(\\\\d{4,5})\",\"$1 $2\",[\"180\",\"1800\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"140\"],0,1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\",\"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\",\"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\",\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\",\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"],\"0$1\",1],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"[6-9]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:6|8[06])\",\"1(?:6|8[06]0)\"],0,1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"18\"],0,1]],\"0\"],\"IO\":[\"246\",\"00\",\"3\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"3\"]]]],\"IQ\":[\"964\",\"00\",\"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"IR\":[\"98\",\"00\",\"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\",[4,5,6,7,10],[[\"(\\\\d{4,5})\",\"$1\",[\"96\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,5})\",\"$1 $2\",[\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-8]\"],\"0$1\"]],\"0\"],\"IS\":[\"354\",\"00|1(?:0(?:01|[12]0)|100)\",\"(?:38\\\\d|[4-9])\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,0,\"00\"],\"IT\":[\"39\",\"00\",\"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})?\",[6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"0[26]\"]],[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"0[13-57-9][0159]|8(?:03|4[17]|9[2-5])\",\"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))\"]],[\"(\\\\d{4})(\\\\d{2,6})\",\"$1 $2\",[\"0(?:[13-579][2-46-8]|8[236-8])\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"894\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[26]|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1(?:44|[679])|[378]|43\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[13-57-9][0159]|14\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\",\"$1 $2 $3\",[\"0[26]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,[[\"0669[0-79]\\\\d{1,6}|0(?:1(?:[0159]\\\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\\\d\\\\d|3(?:[0159]\\\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\\\d|6[0-8])|7(?:[0159]\\\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\\\d{2,7}\"],[\"3[2-9]\\\\d{7,8}|(?:31|43)\\\\d{8}\",[9,10]],[\"80(?:0\\\\d{3}|3)\\\\d{3}\",[6,9]],[\"(?:0878\\\\d{3}|89(?:2\\\\d|3[04]|4(?:[0-4]|[5-9]\\\\d\\\\d)|5[0-4]))\\\\d\\\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\\\d{6}\",[6,8,9,10]],[\"1(?:78\\\\d|99)\\\\d{6}\",[9,10]],0,0,0,[\"55\\\\d{8}\",[10]],[\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\",[6,9]]]],\"JE\":[\"44\",\"00\",\"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([0-24-8]\\\\d{5})$|0\",\"1534$1\",0,0,[[\"1534[0-24-8]\\\\d{5}\"],[\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97\\\\d))\\\\d{5}\"],[\"80(?:07(?:35|81)|8901)\\\\d{4}\"],[\"(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\\\d{4}\"],[\"701511\\\\d{4}\"],0,[\"(?:3(?:0(?:07(?:35|81)|8901)|3\\\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\\\d{4})\\\\d{4}\"],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\"],[\"56\\\\d{8}\"]]],\"JM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"658|876\"],\"JO\":[\"962\",\"00\",\"(?:(?:[2689]|7\\\\d)\\\\d|32|53)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2356]|87\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"70\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"JP\":[\"81\",\"010\",\"00[1-9]\\\\d{6,14}|[257-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\",[8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"(?:12|57|99)0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]|4(?:2[09]|7[01])\",\"[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"800\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[257-9]\"],\"0$1\"]],\"0\",0,\"(000[259]\\\\d{6})$|(?:(?:003768)0?)|0\",\"$1\"],\"KE\":[\"254\",\"000\",\"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"[24-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[17]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\"],\"KG\":[\"996\",\"00\",\"8\\\\d{9}|[235-9]\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3(?:1[346]|[24-79])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-79]|88\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"KH\":[\"855\",\"00[14-9]\",\"1\\\\d{9}|[1-9]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"KI\":[\"686\",\"00\",\"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\",[5,8],0,\"0\"],\"KM\":[\"269\",\"00\",\"[3478]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[3478]\"]]]],\"KN\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"869$1\",0,\"869\"],\"KP\":[\"850\",\"00|99\",\"85\\\\d{6}|(?:19\\\\d|[2-7])\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"KR\":[\"82\",\"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\",\"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}\",[5,6,8,9,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1-$2\",[\"(?:3[1-3]|[46][1-4]|5[1-5])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"1\"]],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"[1346]|5[1-5]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1-$2-$3\",[\"5\"],\"0$1\"]],\"0\",0,\"0(8(?:[1-46-8]|5\\\\d\\\\d))?\"],\"KW\":[\"965\",\"00\",\"18\\\\d{5}|(?:[2569]\\\\d|41)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[169]|2(?:[235]|4[1-35-9])|52\"]],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[245]\"]]]],\"KY\":[\"1\",\"011\",\"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"345$1\",0,\"345\"],\"KZ\":[\"7\",\"810\",\"(?:33622|8\\\\d{8})\\\\d{5}|[78]\\\\d{9}\",[10,14],0,\"8\",0,0,0,0,\"33|7\",0,\"8~10\"],\"LA\":[\"856\",\"00\",\"[23]\\\\d{9}|3\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2[13]|3[14]|[4-8]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"30[013-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\"],\"LB\":[\"961\",\"00\",\"[27-9]\\\\d{7}|[13-9]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27-9]\"]]],\"0\"],\"LC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-8]\\\\d{6})$|1\",\"758$1\",0,\"758\"],\"LI\":[\"423\",\"00\",\"[68]\\\\d{8}|(?:[2378]\\\\d|90)\\\\d{5}\",[7,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2379]|8(?:0[09]|7)\",\"[2379]|8(?:0(?:02|9)|7)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"69\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]],\"0\",0,\"(1001)|0\"],\"LK\":[\"94\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[1-689]\"],\"0$1\"]],\"0\"],\"LR\":[\"231\",\"00\",\"(?:[245]\\\\d|33|77|88)\\\\d{7}|(?:2\\\\d|[4-6])\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4[67]|[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-578]\"],\"0$1\"]],\"0\"],\"LS\":[\"266\",\"00\",\"(?:[256]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2568]\"]]]],\"LT\":[\"370\",\"00\",\"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"52[0-7]\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0 $1\",1],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"37|4(?:[15]|6[1-8])\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"(0-$1)\",1]],\"0\",0,\"[08]\"],\"LU\":[\"352\",\"00\",\"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\",[4,5,6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"20[2-689]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"80[01]|90[015]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"20\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4 $5\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\",\"$1 $2 $3 $4\",[\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"]]],0,0,\"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\"],\"LV\":[\"371\",\"00\",\"(?:[268]\\\\d|90)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[269]|8[01]\"]]]],\"LY\":[\"218\",\"00\",\"[2-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MA\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5[45]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1-$2\",[\"5(?:2[2-46-9]|3[3-9]|9)|8(?:0[89]|92)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"8\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1-$2\",[\"[5-7]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"5(?:2(?:[0-25-79]\\\\d|3[1-578]|4[02-46-8]|8[0235-7])|3(?:[0-47]\\\\d|5[02-9]|6[02-8]|8[014-9]|9[3-9])|(?:4[067]|5[03])\\\\d)\\\\d{5}\"],[\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[0167]\\\\d|2[0-4]|5[01]|8[0-3]))\\\\d{6}\"],[\"80[0-7]\\\\d{6}\"],[\"89\\\\d{7}\"],0,0,0,0,[\"(?:592(?:4[0-2]|93)|80[89]\\\\d\\\\d)\\\\d{4}\"]]],\"MC\":[\"377\",\"00\",\"(?:[3489]|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[389]\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"6\"],\"0$1\"]],\"0\"],\"MD\":[\"373\",\"00\",\"(?:[235-7]\\\\d|[89]0)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"22|3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[25-7]\"],\"0$1\"]],\"0\"],\"ME\":[\"382\",\"00\",\"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MF\":[\"590\",\"00\",\"590\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\\\d{4}\"],[\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"MG\":[\"261\",\"00\",\"[23]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\",0,\"([24-9]\\\\d{6})$|0\",\"20$1\"],\"MH\":[\"692\",\"011\",\"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-6]\"]]],\"1\"],\"MK\":[\"389\",\"00\",\"[2-578]\\\\d{7}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2|34[47]|4(?:[37]7|5[47]|64)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[347]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[58]\"],\"0$1\"]],\"0\"],\"ML\":[\"223\",\"00\",\"[24-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-9]\"]]]],\"MM\":[\"95\",\"00\",\"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\",[6,7,8,9,10],[[\"(\\\\d)(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"16|2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[4-7]|8[1-35]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4,6})\",\"$1 $2 $3\",[\"9(?:2[0-4]|[35-9]|4[137-9])\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"92\"],\"0$1\"],[\"(\\\\d)(\\\\d{5})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"MN\":[\"976\",\"001\",\"[12]\\\\d{7,9}|[5-9]\\\\d{7}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[12]1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[12]2[1-3]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\",\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"[12]\"],\"0$1\"]],\"0\"],\"MO\":[\"853\",\"00\",\"0800\\\\d{3}|(?:28|[68]\\\\d)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[268]\"]]]],\"MP\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"670$1\",0,\"670\"],\"MQ\":[\"596\",\"00\",\"596\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"MR\":[\"222\",\"00\",\"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-48]\"]]]],\"MS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\",[10],0,\"1\",0,\"([34]\\\\d{6})$|1\",\"664$1\",0,\"664\"],\"MT\":[\"356\",\"00\",\"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2357-9]\"]]]],\"MU\":[\"230\",\"0(?:0|[24-7]0|3[03])\",\"(?:[57]|8\\\\d\\\\d)\\\\d{7}|[2-468]\\\\d{6}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46]|8[013]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[57]\"]],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"8\"]]],0,0,0,0,0,0,0,\"020\"],\"MV\":[\"960\",\"0(?:0|19)\",\"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\",[7,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[34679]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],0,0,0,0,0,0,0,\"00\"],\"MW\":[\"265\",\"00\",\"(?:[1289]\\\\d|31|77)\\\\d{7}|1\\\\d{6}\",[7,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[137-9]\"],\"0$1\"]],\"0\"],\"MX\":[\"52\",\"0[09]\",\"[2-9]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"]]],0,0,0,0,0,0,0,\"00\"],\"MY\":[\"60\",\"00\",\"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"[4-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1-$2 $3\",[\"1(?:[02469]|[378][1-9]|53)|8\",\"1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3-$4\",[\"1(?:[367]|80)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"15\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"MZ\":[\"258\",\"00\",\"(?:2|8\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2|8[2-79]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"NA\":[\"264\",\"00\",\"[68]\\\\d{7,8}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"87\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"NC\":[\"687\",\"00\",\"(?:050|[2-57-9]\\\\d\\\\d)\\\\d{3}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1.$2.$3\",[\"[02-57-9]\"]]]],\"NE\":[\"227\",\"00\",\"[027-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"08\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[089]|2[013]|7[0467]\"]]]],\"NF\":[\"672\",\"00\",\"[13]\\\\d{5}\",[6],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"1[0-3]\"]],[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"[13]\"]]],0,0,\"([0-258]\\\\d{4})$\",\"3$1\"],\"NG\":[\"234\",\"009\",\"2[0-24-9]\\\\d{8}|[78]\\\\d{10,13}|[7-9]\\\\d{9}|[1-9]\\\\d{7}|[124-7]\\\\d{6}\",[7,8,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"78\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]|9(?:0[3-9]|[1-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-6]|7(?:0[0-689]|[1-79])|8[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"20[129]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"]],\"0\"],\"NI\":[\"505\",\"00\",\"(?:1800|[25-8]\\\\d{3})\\\\d{4}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[125-8]\"]]]],\"NL\":[\"31\",\"00\",\"(?:[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}\",[5,6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{4,7})\",\"$1 $2\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"66\"],\"0$1\"],[\"(\\\\d)(\\\\d{8})\",\"$1 $2\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-578]|91\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"NO\":[\"47\",\"00\",\"(?:0|[2-9]\\\\d{3})\\\\d{4}\",[5,8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]\"]]],0,0,0,0,0,\"[02-689]|7[0-8]\"],\"NP\":[\"977\",\"00\",\"(?:1\\\\d|9)\\\\d{9}|[1-9]\\\\d{7}\",[8,10,11],[[\"(\\\\d)(\\\\d{7})\",\"$1-$2\",[\"1[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1-$2\",[\"1[01]|[2-8]|9(?:[1-59]|[67][2-6])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"9\"]]],\"0\"],\"NR\":[\"674\",\"00\",\"(?:444|(?:55|8\\\\d)\\\\d|666)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-68]\"]]]],\"NU\":[\"683\",\"00\",\"(?:[4-7]|888\\\\d)\\\\d{3}\",[4,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"8\"]]]],\"NZ\":[\"64\",\"0(?:0|161)\",\"[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}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,8})\",\"$1 $2\",[\"8[1-79]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"50[036-8]|8|90\",\"50(?:[0367]|88)|8|90\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"24|[346]|7[2-57-9]|9[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:10|74)|[589]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1|2[028]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\",\"$1 $2 $3\",[\"2(?:[169]|7[0-35-9])|7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"00\"],\"OM\":[\"968\",\"00\",\"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|800\\\\d{5,6}\",[7,8,9],[[\"(\\\\d{3})(\\\\d{4,6})\",\"$1 $2\",[\"[58]\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[179]\"]]]],\"PA\":[\"507\",\"00\",\"(?:00800|8\\\\d{3})\\\\d{6}|[68]\\\\d{7}|[1-57-9]\\\\d{6}\",[7,8,10,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[1-57-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[68]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]]],\"PE\":[\"51\",\"00|19(?:1[124]|77|90)00\",\"(?:[14-8]|9\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[4-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"]]],\"0\",0,0,0,0,0,0,\"00\",\" Anexo \"],\"PF\":[\"689\",\"00\",\"4\\\\d{5}(?:\\\\d{2})?|8\\\\d{7,8}\",[6,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4|8[7-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"PG\":[\"675\",\"00|140[1-3]\",\"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"18|[2-69]|85\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[78]\"]]],0,0,0,0,0,0,0,\"00\"],\"PH\":[\"63\",\"00\",\"(?:[2-7]|9\\\\d)\\\\d{8}|2\\\\d{5}|(?:1800|8)\\\\d{7,9}\",[6,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"2\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\",\"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"346|4(?:27|9[35])|883\",\"3469|4(?:279|9(?:30|56))|8834\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|8[2-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"1\"]]],\"0\"],\"PK\":[\"92\",\"00\",\"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}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,7})\",\"$1 $2 $3\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{6,7})\",\"$1 $2\",[\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\",\"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{7,8})\",\"$1 $2\",[\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"58\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[24-9]\"],\"(0$1)\"]],\"0\"],\"PL\":[\"48\",\"00\",\"(?:6|8\\\\d\\\\d)\\\\d{7}|[1-9]\\\\d{6}(?:\\\\d{2})?|[26]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{5})\",\"$1\",[\"19\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"11|20|64\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\",\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"64\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[2-8]|[2-7]|8[1-79]|9[145]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"8\"]]]],\"PM\":[\"508\",\"00\",\"[45]\\\\d{5}|(?:708|80\\\\d)\\\\d{6}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[45]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"PR\":[\"1\",\"011\",\"(?:[589]\\\\d\\\\d|787)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"787|939\"],\"PS\":[\"970\",\"00\",\"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2489]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"PT\":[\"351\",\"00\",\"1693\\\\d{5}|(?:[26-9]\\\\d|30)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2[12]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"16|[236-9]\"]]]],\"PW\":[\"680\",\"01[12]\",\"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"PY\":[\"595\",\"00\",\"59\\\\d{4,6}|9\\\\d{5,10}|(?:[2-46-8]\\\\d|5[0-8])\\\\d{4,7}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"[2-9]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{4,5})\",\"$1 $2\",[\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"87\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"9(?:[5-79]|8[1-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"]]],\"0\"],\"QA\":[\"974\",\"00\",\"800\\\\d{4}|(?:2|800)\\\\d{6}|(?:0080|[3-7])\\\\d{7}\",[7,8,9,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"2[16]|8\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[3-7]\"]]]],\"RE\":[\"262\",\"00\",\"(?:26|[689]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2689]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"26(?:2\\\\d\\\\d|3(?:0\\\\d|1[0-6]))\\\\d{4}\"],[\"69(?:2\\\\d\\\\d|3(?:[06][0-6]|1[013]|2[0-2]|3[0-39]|4\\\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))\\\\d{4}\"],[\"80\\\\d{7}\"],[\"89[1-37-9]\\\\d{6}\"],0,0,0,0,[\"9(?:399[0-3]|479[0-5]|76(?:2[278]|3[0-37]))\\\\d{4}\"],[\"8(?:1[019]|2[0156]|84|90)\\\\d{6}\"]]],\"RO\":[\"40\",\"00\",\"(?:[236-8]\\\\d|90)\\\\d{7}|[23]\\\\d{5}\",[6,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"2[3-6]\",\"2[3-6]\\\\d9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"219|31\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[23]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[236-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\" int \"],\"RS\":[\"381\",\"00\",\"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}\",[6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3,9})\",\"$1 $2\",[\"(?:2[389]|39)0|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5,10})\",\"$1 $2\",[\"[1-36]\"],\"0$1\"]],\"0\"],\"RU\":[\"7\",\"810\",\"8\\\\d{13}|[347-9]\\\\d{9}\",[10,14],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-8]|2[1-9])\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"],\"8 ($1)\",1],[\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-68]|2[1-9])\",\"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\",\"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[349]|8(?:[02-7]|1[1-8])\"],\"8 ($1)\",1],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"8\"],\"8 ($1)\"]],\"8\",0,0,0,0,\"3[04-689]|[489]\",0,\"8~10\"],\"RW\":[\"250\",\"00\",\"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"]],\"0\"],\"SA\":[\"966\",\"00\",\"92\\\\d{7}|(?:[15]|8\\\\d)\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\"],\"SB\":[\"677\",\"0[01]\",\"[6-9]\\\\d{6}|[1-6]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"6[89]|7|8[4-9]|9(?:[1-8]|9[0-8])\"]]]],\"SC\":[\"248\",\"010|0[0-2]\",\"800\\\\d{4}|(?:[249]\\\\d|64)\\\\d{5}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[246]|9[57]\"]]],0,0,0,0,0,0,0,\"00\"],\"SD\":[\"249\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"SE\":[\"46\",\"00\",\"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"20\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"9(?:00|39|44|9)\"],\"0$1\",0,\"$1 $2\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3\",[\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\",\"$1-$2 $3\",[\"9(?:00|39|44)\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"10|7\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1-$2 $3 $4\",[\"9\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4 $5\",[\"[26]\"],\"0$1\",0,\"$1 $2 $3 $4 $5\"]],\"0\"],\"SG\":[\"65\",\"0[0-3]\\\\d\",\"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[369]|8(?:0[1-9]|[1-9])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"SH\":[\"290\",\"00\",\"(?:[256]\\\\d|8)\\\\d{3}\",[4,5],0,0,0,0,0,0,\"[256]\"],\"SI\":[\"386\",\"00|10(?:22|66|88|99)\",\"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\",[5,6,7,8],[[\"(\\\\d{2})(\\\\d{3,6})\",\"$1 $2\",[\"8[09]|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"59|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37][01]|4[0139]|51|6\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-57]\"],\"(0$1)\"]],\"0\",0,0,0,0,0,0,\"00\"],\"SJ\":[\"47\",\"00\",\"0\\\\d{4}|(?:[489]\\\\d|79)\\\\d{6}\",[5,8],0,0,0,0,0,0,\"79\"],\"SK\":[\"421\",\"00\",\"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\",[6,7,9],[[\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\",\"$1 $2 $3\",[\"21\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-5][1-8]1\",\"[3-5][1-8]1[67]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[689]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"[3-5]\"],\"0$1\"]],\"0\"],\"SL\":[\"232\",\"00\",\"(?:[237-9]\\\\d|66)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[236-9]\"],\"(0$1)\"]],\"0\"],\"SM\":[\"378\",\"00\",\"(?:0549|[5-7]\\\\d)\\\\d{6}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"0\"]]],0,0,\"([89]\\\\d{5})$\",\"0549$1\"],\"SN\":[\"221\",\"00\",\"(?:[378]\\\\d|93)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[379]\"]]]],\"SO\":[\"252\",\"00\",\"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"8[125]\"]],[\"(\\\\d{6})\",\"$1\",[\"[134]\"]],[\"(\\\\d)(\\\\d{6})\",\"$1 $2\",[\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"(?:2|90)4|[67]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[348]|64|79|90\"]],[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"1|28|6[0-35-9]|77|9[2-9]\"]]],\"0\"],\"SR\":[\"597\",\"00\",\"(?:[2-5]|68|[78]\\\\d)\\\\d{5}\",[6,7],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"56\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1-$2\",[\"[2-5]\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[6-8]\"]]]],\"SS\":[\"211\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"ST\":[\"239\",\"00\",\"(?:22|9\\\\d)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[29]\"]]]],\"SV\":[\"503\",\"00\",\"[267]\\\\d{7}|(?:80\\\\d|900)\\\\d{4}(?:\\\\d{4})?\",[7,8,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[89]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[267]\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]]],\"SX\":[\"1\",\"011\",\"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"(5\\\\d{6})$|1\",\"721$1\",0,\"721\"],\"SY\":[\"963\",\"00\",\"[1-39]\\\\d{8}|[1-5]\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-5]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\",1]],\"0\"],\"SZ\":[\"268\",\"00\",\"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\",[8,9],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[0237]\"]],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"9\"]]]],\"TA\":[\"290\",\"00\",\"8\\\\d{3}\",[4],0,0,0,0,0,0,\"8\"],\"TC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-479]\\\\d{6})$|1\",\"649$1\",0,\"649\"],\"TD\":[\"235\",\"00|16\",\"(?:22|[69]\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2679]\"]]],0,0,0,0,0,0,0,\"00\"],\"TG\":[\"228\",\"00\",\"[279]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[279]\"]]]],\"TH\":[\"66\",\"00[1-9]\",\"(?:001800|[2-57]|[689]\\\\d)\\\\d{7}|1\\\\d{7,9}\",[8,9,10,13],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[13-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"TJ\":[\"992\",\"810\",\"[0-57-9]\\\\d{8}\",[9],[[\"(\\\\d{6})(\\\\d)(\\\\d{2})\",\"$1 $2 $3\",[\"331\",\"3317\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"44[02-479]|[34]7\"]],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"3[1-5]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[0-57-9]\"]]],0,0,0,0,0,0,0,\"8~10\"],\"TK\":[\"690\",\"00\",\"[2-47]\\\\d{3,6}\",[4,5,6,7]],\"TL\":[\"670\",\"00\",\"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-489]|70\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"7\"]]]],\"TM\":[\"993\",\"810\",\"(?:[1-6]\\\\d|71)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"12\"],\"(8 $1)\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-5]\"],\"(8 $1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[67]\"],\"8 $1\"]],\"8\",0,0,0,0,0,0,\"8~10\"],\"TN\":[\"216\",\"00\",\"[2-57-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-57-9]\"]]]],\"TO\":[\"676\",\"00\",\"(?:0800|(?:[5-8]\\\\d\\\\d|999)\\\\d)\\\\d{3}|[2-8]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1-$2\",[\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]],[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]]]],\"TR\":[\"90\",\"00\",\"4\\\\d{6}|8\\\\d{11,12}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\",[7,10,12,13],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"512|8[01589]|90\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5(?:[0-59]|61)\",\"5(?:[0-59]|61[06])\",\"5(?:[0-59]|61[06]1)\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24][1-8]|3[1-9]\"],\"(0$1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1]],\"0\"],\"TT\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-46-8]\\\\d{6})$|1\",\"868$1\",0,\"868\"],\"TV\":[\"688\",\"00\",\"(?:2|7\\\\d\\\\d|90)\\\\d{4}\",[5,6,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"TW\":[\"886\",\"0(?:0[25-79]|19)\",\"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\",[7,8,9,10,11],[[\"(\\\\d{2})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"202\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[258]0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\",\"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\"#\"],\"TZ\":[\"255\",\"00[056]\",\"(?:[25-8]\\\\d|41|90)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[24]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"]],\"0\"],\"UA\":[\"380\",\"00\",\"[89]\\\\d{9}|[3-9]\\\\d{8}\",[9,10],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\",\"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])\",\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|89|9[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"0~0\"],\"UG\":[\"256\",\"00[057]\",\"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"202\",\"2024\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[27-9]|4(?:6[45]|[7-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[34]\"],\"0$1\"]],\"0\"],\"US\":[\"1\",\"011\",\"[2-9]\\\\d{9}|3\\\\d{6}\",[10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"310\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"($1) $2-$3\",[\"[2-9]\"],0,1,\"$1-$2-$3\"]],\"1\",0,0,0,0,0,[[\"(?:3052(?:0[0-8]|[1-9]\\\\d)|5056(?:[0-35-9]\\\\d|4[468])|7302[0-4]\\\\d)\\\\d{4}|(?:305[3-9]|472[24]|505[2-57-9]|7306|983[2-47-9])\\\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[013569]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\\\d{6}\"],[\"\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\"],0,0,0,[\"305209\\\\d{4}\"]]],\"UY\":[\"598\",\"0(?:0|1[3-9]\\\\d)\",\"0004\\\\d{2,9}|[1249]\\\\d{7}|(?:[49]\\\\d|80)\\\\d{5}\",[6,7,8,9,10,11,12,13],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[49]0|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[124]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3 $4\",[\"0\"]]],\"0\",0,0,0,0,0,0,\"00\",\" int. \"],\"UZ\":[\"998\",\"00\",\"(?:20|33|[5-79]\\\\d|88)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[235-9]\"]]]],\"VA\":[\"39\",\"00\",\"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}\",[6,7,8,9,10,11],0,0,0,0,0,0,\"06698\"],\"VC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"784$1\",0,\"784\"],\"VE\":[\"58\",\"00\",\"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\",[10],[[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"[24-689]\"],\"0$1\"]],\"0\"],\"VG\":[\"1\",\"011\",\"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-578]\\\\d{6})$|1\",\"284$1\",0,\"284\"],\"VI\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"340$1\",0,\"340\"],\"VN\":[\"84\",\"00\",\"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"1\"],0,1],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[357-9]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[48]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\",1]],\"0\"],\"VU\":[\"678\",\"00\",\"[57-9]\\\\d{6}|(?:[238]\\\\d|48)\\\\d{3}\",[5,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[57-9]\"]]]],\"WF\":[\"681\",\"00\",\"(?:40|72)\\\\d{4}|8\\\\d{5}(?:\\\\d{3})?\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[478]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"WS\":[\"685\",\"0\",\"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\",[5,6,7,10],[[\"(\\\\d{5})\",\"$1\",[\"[2-5]|6[1-9]\"]],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[68]\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"XK\":[\"383\",\"00\",\"2\\\\d{7,8}|3\\\\d{7,11}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2|39\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7,10})\",\"$1 $2\",[\"3\"],\"0$1\"]],\"0\"],\"YE\":[\"967\",\"00\",\"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-6]|7(?:[24-6]|8[0-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"YT\":[\"262\",\"00\",\"(?:80|9\\\\d)\\\\d{7}|(?:26|63)9\\\\d{6}\",[9],0,\"0\",0,0,0,0,0,[[\"269(?:0[0-467]|15|5[0-4]|6\\\\d|[78]0)\\\\d{4}\"],[\"639(?:0[0-79]|1[019]|[267]\\\\d|3[09]|40|5[05-9]|9[04-79])\\\\d{4}\"],[\"80\\\\d{7}\"],0,0,0,0,0,[\"9(?:(?:39|47)8[01]|769\\\\d)\\\\d{4}\"]]],\"ZA\":[\"27\",\"00\",\"[1-79]\\\\d{8}|8\\\\d{4,9}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"860\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"ZM\":[\"260\",\"00\",\"800\\\\d{6}|(?:21|63|[79]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[28]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[79]\"],\"0$1\"]],\"0\"],\"ZW\":[\"263\",\"00\",\"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}\",[5,6,7,8,9,10],[[\"(\\\\d{3})(\\\\d{3,5})\",\"$1 $2\",[\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"80\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\",\"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\",\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"29[013-9]|39|54\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,5})\",\"$1 $2\",[\"(?:25|54)8\",\"258|5483\"],\"0$1\"]],\"0\"]},\"nonGeographic\":{\"800\":[\"800\",0,\"(?:00|[1-9]\\\\d)\\\\d{6}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"\\\\d\"]]],0,0,0,0,0,0,[0,0,[\"(?:00|[1-9]\\\\d)\\\\d{6}\"]]],\"808\":[\"808\",0,\"[1-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,0,[\"[1-9]\\\\d{7}\"]]],\"870\":[\"870\",0,\"7\\\\d{11}|[35-7]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[35-7]\"]]],0,0,0,0,0,0,[0,[\"(?:[356]|774[45])\\\\d{8}|7[6-8]\\\\d{7}\"]]],\"878\":[\"878\",0,\"10\\\\d{10}\",[12],[[\"(\\\\d{2})(\\\\d{5})(\\\\d{5})\",\"$1 $2 $3\",[\"1\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"10\\\\d{10}\"]]],\"881\":[\"881\",0,\"6\\\\d{9}|[0-36-9]\\\\d{8}\",[9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"[0-37-9]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{5,6})\",\"$1 $2 $3\",[\"6\"]]],0,0,0,0,0,0,[0,[\"6\\\\d{9}|[0-36-9]\\\\d{8}\"]]],\"882\":[\"882\",0,\"[13]\\\\d{6}(?:\\\\d{2,5})?|[19]\\\\d{7}|(?:[25]\\\\d\\\\d|4)\\\\d{7}(?:\\\\d{2})?\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"16|342\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"49\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"1[36]|9\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"3[23]\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"16\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|23|3(?:[15]|4[57])|4|51\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"34\"]],[\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\",\"$1 $2 $3\",[\"[1-35]\"]]],0,0,0,0,0,0,[0,[\"342\\\\d{4}|(?:337|49)\\\\d{6}|(?:3(?:2|47|7\\\\d{3})|50\\\\d{3})\\\\d{7}\",[7,8,9,10,12]],0,0,0,0,0,0,[\"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|(?:345\\\\d|9[89])\\\\d{6}|(?:10|2(?:3|85\\\\d)|3(?:[15]|[69]\\\\d\\\\d)|4[15-8]|51)\\\\d{8}\"]]],\"883\":[\"883\",0,\"(?:[1-4]\\\\d|51)\\\\d{6,10}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,8})\",\"$1 $2 $3\",[\"[14]|2[24-689]|3[02-689]|51[24-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"510\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"21\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"51[13]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[235]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"(?:2(?:00\\\\d\\\\d|10)|(?:370[1-9]|51\\\\d0)\\\\d)\\\\d{7}|51(?:00\\\\d{5}|[24-9]0\\\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\\\d{5,9}\"]]],\"888\":[\"888\",0,\"\\\\d{11}\",[11],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\"]],0,0,0,0,0,0,[0,0,0,0,0,0,[\"\\\\d{11}\"]]],\"979\":[\"979\",0,\"[1359]\\\\d{8}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1359]\"]]],0,0,0,0,0,0,[0,0,0,[\"[1359]\\\\d{8}\"]]]}}","var objectConstructor = {}.constructor;\nexport default function isObject(object) {\n  return object !== undefined && object !== null && object.constructor === objectConstructor;\n}\n//# sourceMappingURL=isObject.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport isObject from './helpers/isObject.js'; // Extracts the following properties from function arguments:\n// * input `text`\n// * `options` object\n// * `metadata` JSON\n\nexport default function normalizeArguments(args) {\n  var _Array$prototype$slic = Array.prototype.slice.call(args),\n      _Array$prototype$slic2 = _slicedToArray(_Array$prototype$slic, 4),\n      arg_1 = _Array$prototype$slic2[0],\n      arg_2 = _Array$prototype$slic2[1],\n      arg_3 = _Array$prototype$slic2[2],\n      arg_4 = _Array$prototype$slic2[3];\n\n  var text;\n  var options;\n  var metadata; // If the phone number is passed as a string.\n  // `parsePhoneNumber('88005553535', ...)`.\n\n  if (typeof arg_1 === 'string') {\n    text = arg_1;\n  } else throw new TypeError('A text for parsing must be a string.'); // If \"default country\" argument is being passed then move it to `options`.\n  // `parsePhoneNumber('88005553535', 'RU', [options], metadata)`.\n\n\n  if (!arg_2 || typeof arg_2 === 'string') {\n    if (arg_4) {\n      options = arg_3;\n      metadata = arg_4;\n    } else {\n      options = undefined;\n      metadata = arg_3;\n    }\n\n    if (arg_2) {\n      options = _objectSpread({\n        defaultCountry: arg_2\n      }, options);\n    }\n  } // `defaultCountry` is not passed.\n  // Example: `parsePhoneNumber('+78005553535', [options], metadata)`.\n  else if (isObject(arg_2)) {\n    if (arg_3) {\n      options = arg_2;\n      metadata = arg_3;\n    } else {\n      metadata = arg_2;\n    }\n  } else throw new Error(\"Invalid second argument: \".concat(arg_2));\n\n  return {\n    text: text,\n    options: options,\n    metadata: metadata\n  };\n}\n//# sourceMappingURL=normalizeArguments.js.map","// The minimum length of the national significant number.\nexport var MIN_LENGTH_FOR_NSN = 2; // The ITU says the maximum length should be 15,\n// but one can find longer numbers in Germany.\n\nexport var MAX_LENGTH_FOR_NSN = 17; // The maximum length of the country calling code.\n\nexport var MAX_LENGTH_COUNTRY_CODE = 3; // Digits accepted in phone numbers\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\n\nexport var VALID_DIGITS = \"0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9\"; // `DASHES` will be right after the opening square bracket of the \"character class\"\n\nvar DASHES = \"-\\u2010-\\u2015\\u2212\\u30FC\\uFF0D\";\nvar SLASHES = \"\\uFF0F/\";\nvar DOTS = \"\\uFF0E.\";\nexport var WHITESPACE = \" \\xA0\\xAD\\u200B\\u2060\\u3000\";\nvar BRACKETS = \"()\\uFF08\\uFF09\\uFF3B\\uFF3D\\\\[\\\\]\"; // export const OPENING_BRACKETS = '(\\uFF08\\uFF3B\\\\\\['\n\nvar TILDES = \"~\\u2053\\u223C\\uFF5E\"; // Regular expression of acceptable punctuation found in phone numbers. This\n// excludes punctuation found as a leading character only. This consists of dash\n// characters, white space characters, full stops, slashes, square brackets,\n// parentheses and tildes. Full-width variants are also present.\n\nexport var VALID_PUNCTUATION = \"\".concat(DASHES).concat(SLASHES).concat(DOTS).concat(WHITESPACE).concat(BRACKETS).concat(TILDES);\nexport var PLUS_CHARS = \"+\\uFF0B\"; // const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')\n//# sourceMappingURL=constants.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n// https://stackoverflow.com/a/46971044/970769\n// \"Breaking changes in Typescript 2.1\"\n// \"Extending built-ins like Error, Array, and Map may no longer work.\"\n// \"As a recommendation, you can manually adjust the prototype immediately after any super(...) calls.\"\n// https://github.com/Microsoft/TypeScript-wiki/blob/main/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\nvar ParseError = /*#__PURE__*/function (_Error) {\n  _inherits(ParseError, _Error);\n\n  var _super = _createSuper(ParseError);\n\n  function ParseError(code) {\n    var _this;\n\n    _classCallCheck(this, ParseError);\n\n    _this = _super.call(this, code); // Set the prototype explicitly.\n    // Any subclass of FooError will have to manually set the prototype as well.\n\n    Object.setPrototypeOf(_assertThisInitialized(_this), ParseError.prototype);\n    _this.name = _this.constructor.name;\n    return _this;\n  }\n\n  return _createClass(ParseError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nexport { ParseError as default };\n//# sourceMappingURL=ParseError.js.map","// Copy-pasted from:\n// https://github.com/substack/semver-compare/blob/master/index.js\n//\n// Inlining this function because some users reported issues with\n// importing from `semver-compare` in a browser with ES6 \"native\" modules.\n//\n// Fixes `semver-compare` not being able to compare versions with alpha/beta/etc \"tags\".\n// https://github.com/catamphetamine/libphonenumber-js/issues/381\nexport default function (a, b) {\n  a = a.split('-');\n  b = b.split('-');\n  var pa = a[0].split('.');\n  var pb = b[0].split('.');\n\n  for (var i = 0; i < 3; i++) {\n    var na = Number(pa[i]);\n    var nb = Number(pb[i]);\n    if (na > nb) return 1;\n    if (nb > na) return -1;\n    if (!isNaN(na) && isNaN(nb)) return 1;\n    if (isNaN(na) && !isNaN(nb)) return -1;\n  }\n\n  if (a[1] && b[1]) {\n    return a[1] > b[1] ? 1 : a[1] < b[1] ? -1 : 0;\n  }\n\n  return !a[1] && b[1] ? 1 : a[1] && !b[1] ? -1 : 0;\n}\n//# sourceMappingURL=semver-compare.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport compare from './tools/semver-compare.js';\nimport isObject from './helpers/isObject.js'; // Added \"possibleLengths\" and renamed\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\n\nvar V2 = '1.0.18'; // Added \"idd_prefix\" and \"default_idd_prefix\".\n\nvar V3 = '1.2.0'; // Moved `001` country code to \"nonGeographic\" section of metadata.\n\nvar V4 = '1.7.35';\nvar DEFAULT_EXT_PREFIX = ' ext. ';\nvar CALLING_CODE_REG_EXP = /^\\d+$/;\n/**\r\n * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\r\n */\n\nvar Metadata = /*#__PURE__*/function () {\n  function Metadata(metadata) {\n    _classCallCheck(this, Metadata);\n\n    validateMetadata(metadata);\n    this.metadata = metadata;\n    setVersion.call(this, metadata);\n  }\n\n  _createClass(Metadata, [{\n    key: \"getCountries\",\n    value: function getCountries() {\n      return Object.keys(this.metadata.countries).filter(function (_) {\n        return _ !== '001';\n      });\n    }\n  }, {\n    key: \"getCountryMetadata\",\n    value: function getCountryMetadata(countryCode) {\n      return this.metadata.countries[countryCode];\n    }\n  }, {\n    key: \"nonGeographic\",\n    value: function nonGeographic() {\n      if (this.v1 || this.v2 || this.v3) return; // `nonGeographical` was a typo.\n      // It's present in metadata generated from `1.7.35` to `1.7.37`.\n      // The test case could be found by searching for \"nonGeographical\".\n\n      return this.metadata.nonGeographic || this.metadata.nonGeographical;\n    }\n  }, {\n    key: \"hasCountry\",\n    value: function hasCountry(country) {\n      return this.getCountryMetadata(country) !== undefined;\n    }\n  }, {\n    key: \"hasCallingCode\",\n    value: function hasCallingCode(callingCode) {\n      if (this.getCountryCodesForCallingCode(callingCode)) {\n        return true;\n      }\n\n      if (this.nonGeographic()) {\n        if (this.nonGeographic()[callingCode]) {\n          return true;\n        }\n      } else {\n        // A hacky workaround for old custom metadata (generated before V4).\n        var countryCodes = this.countryCallingCodes()[callingCode];\n\n        if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n          return true;\n        }\n      }\n    }\n  }, {\n    key: \"isNonGeographicCallingCode\",\n    value: function isNonGeographicCallingCode(callingCode) {\n      if (this.nonGeographic()) {\n        return this.nonGeographic()[callingCode] ? true : false;\n      } else {\n        return this.getCountryCodesForCallingCode(callingCode) ? false : true;\n      }\n    } // Deprecated.\n\n  }, {\n    key: \"country\",\n    value: function country(countryCode) {\n      return this.selectNumberingPlan(countryCode);\n    }\n  }, {\n    key: \"selectNumberingPlan\",\n    value: function selectNumberingPlan(countryCode, callingCode) {\n      // Supports just passing `callingCode` as the first argument.\n      if (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {\n        callingCode = countryCode;\n        countryCode = null;\n      }\n\n      if (countryCode && countryCode !== '001') {\n        if (!this.hasCountry(countryCode)) {\n          throw new Error(\"Unknown country: \".concat(countryCode));\n        }\n\n        this.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this);\n      } else if (callingCode) {\n        if (!this.hasCallingCode(callingCode)) {\n          throw new Error(\"Unknown calling code: \".concat(callingCode));\n        }\n\n        this.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this);\n      } else {\n        this.numberingPlan = undefined;\n      }\n\n      return this;\n    }\n  }, {\n    key: \"getCountryCodesForCallingCode\",\n    value: function getCountryCodesForCallingCode(callingCode) {\n      var countryCodes = this.countryCallingCodes()[callingCode];\n\n      if (countryCodes) {\n        // Metadata before V4 included \"non-geographic entity\" calling codes\n        // inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\n        // Now the semantics of `country_calling_codes` has changed:\n        // it's specifically for \"countries\" now.\n        // Older versions of custom metadata will simply skip parsing\n        // \"non-geographic entity\" phone numbers with new versions\n        // of this library: it's not considered a bug,\n        // because such numbers are extremely rare,\n        // and developers extremely rarely use custom metadata.\n        if (countryCodes.length === 1 && countryCodes[0].length === 3) {\n          return;\n        }\n\n        return countryCodes;\n      }\n    }\n  }, {\n    key: \"getCountryCodeForCallingCode\",\n    value: function getCountryCodeForCallingCode(callingCode) {\n      var countryCodes = this.getCountryCodesForCallingCode(callingCode);\n\n      if (countryCodes) {\n        return countryCodes[0];\n      }\n    }\n  }, {\n    key: \"getNumberingPlanMetadata\",\n    value: function getNumberingPlanMetadata(callingCode) {\n      var countryCode = this.getCountryCodeForCallingCode(callingCode);\n\n      if (countryCode) {\n        return this.getCountryMetadata(countryCode);\n      }\n\n      if (this.nonGeographic()) {\n        var metadata = this.nonGeographic()[callingCode];\n\n        if (metadata) {\n          return metadata;\n        }\n      } else {\n        // A hacky workaround for old custom metadata (generated before V4).\n        // In that metadata, there was no concept of \"non-geographic\" metadata\n        // so metadata for `001` country code was stored along with other countries.\n        // The test case can be found by searching for:\n        // \"should work around `nonGeographic` metadata not existing\".\n        var countryCodes = this.countryCallingCodes()[callingCode];\n\n        if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n          return this.metadata.countries['001'];\n        }\n      }\n    } // Deprecated.\n\n  }, {\n    key: \"countryCallingCode\",\n    value: function countryCallingCode() {\n      return this.numberingPlan.callingCode();\n    } // Deprecated.\n\n  }, {\n    key: \"IDDPrefix\",\n    value: function IDDPrefix() {\n      return this.numberingPlan.IDDPrefix();\n    } // Deprecated.\n\n  }, {\n    key: \"defaultIDDPrefix\",\n    value: function defaultIDDPrefix() {\n      return this.numberingPlan.defaultIDDPrefix();\n    } // Deprecated.\n\n  }, {\n    key: \"nationalNumberPattern\",\n    value: function nationalNumberPattern() {\n      return this.numberingPlan.nationalNumberPattern();\n    } // Deprecated.\n\n  }, {\n    key: \"possibleLengths\",\n    value: function possibleLengths() {\n      return this.numberingPlan.possibleLengths();\n    } // Deprecated.\n\n  }, {\n    key: \"formats\",\n    value: function formats() {\n      return this.numberingPlan.formats();\n    } // Deprecated.\n\n  }, {\n    key: \"nationalPrefixForParsing\",\n    value: function nationalPrefixForParsing() {\n      return this.numberingPlan.nationalPrefixForParsing();\n    } // Deprecated.\n\n  }, {\n    key: \"nationalPrefixTransformRule\",\n    value: function nationalPrefixTransformRule() {\n      return this.numberingPlan.nationalPrefixTransformRule();\n    } // Deprecated.\n\n  }, {\n    key: \"leadingDigits\",\n    value: function leadingDigits() {\n      return this.numberingPlan.leadingDigits();\n    } // Deprecated.\n\n  }, {\n    key: \"hasTypes\",\n    value: function hasTypes() {\n      return this.numberingPlan.hasTypes();\n    } // Deprecated.\n\n  }, {\n    key: \"type\",\n    value: function type(_type) {\n      return this.numberingPlan.type(_type);\n    } // Deprecated.\n\n  }, {\n    key: \"ext\",\n    value: function ext() {\n      return this.numberingPlan.ext();\n    }\n  }, {\n    key: \"countryCallingCodes\",\n    value: function countryCallingCodes() {\n      if (this.v1) return this.metadata.country_phone_code_to_countries;\n      return this.metadata.country_calling_codes;\n    } // Deprecated.\n\n  }, {\n    key: \"chooseCountryByCountryCallingCode\",\n    value: function chooseCountryByCountryCallingCode(callingCode) {\n      return this.selectNumberingPlan(callingCode);\n    }\n  }, {\n    key: \"hasSelectedNumberingPlan\",\n    value: function hasSelectedNumberingPlan() {\n      return this.numberingPlan !== undefined;\n    }\n  }]);\n\n  return Metadata;\n}();\n\nexport { Metadata as default };\n\nvar NumberingPlan = /*#__PURE__*/function () {\n  function NumberingPlan(metadata, globalMetadataObject) {\n    _classCallCheck(this, NumberingPlan);\n\n    this.globalMetadataObject = globalMetadataObject;\n    this.metadata = metadata;\n    setVersion.call(this, globalMetadataObject.metadata);\n  }\n\n  _createClass(NumberingPlan, [{\n    key: \"callingCode\",\n    value: function callingCode() {\n      return this.metadata[0];\n    } // Formatting information for regions which share\n    // a country calling code is contained by only one region\n    // for performance reasons. For example, for NANPA region\n    // (\"North American Numbering Plan Administration\",\n    //  which includes USA, Canada, Cayman Islands, Bahamas, etc)\n    // it will be contained in the metadata for `US`.\n\n  }, {\n    key: \"getDefaultCountryMetadataForRegion\",\n    value: function getDefaultCountryMetadataForRegion() {\n      return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode());\n    } // Is always present.\n\n  }, {\n    key: \"IDDPrefix\",\n    value: function IDDPrefix() {\n      if (this.v1 || this.v2) return;\n      return this.metadata[1];\n    } // Is only present when a country supports multiple IDD prefixes.\n\n  }, {\n    key: \"defaultIDDPrefix\",\n    value: function defaultIDDPrefix() {\n      if (this.v1 || this.v2) return;\n      return this.metadata[12];\n    }\n  }, {\n    key: \"nationalNumberPattern\",\n    value: function nationalNumberPattern() {\n      if (this.v1 || this.v2) return this.metadata[1];\n      return this.metadata[2];\n    } // \"possible length\" data is always present in Google's metadata.\n\n  }, {\n    key: \"possibleLengths\",\n    value: function possibleLengths() {\n      if (this.v1) return;\n      return this.metadata[this.v2 ? 2 : 3];\n    }\n  }, {\n    key: \"_getFormats\",\n    value: function _getFormats(metadata) {\n      return metadata[this.v1 ? 2 : this.v2 ? 3 : 4];\n    } // For countries of the same region (e.g. NANPA)\n    // formats are all stored in the \"main\" country for that region.\n    // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n  }, {\n    key: \"formats\",\n    value: function formats() {\n      var _this = this;\n\n      var formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || [];\n      return formats.map(function (_) {\n        return new Format(_, _this);\n      });\n    }\n  }, {\n    key: \"nationalPrefix\",\n    value: function nationalPrefix() {\n      return this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5];\n    }\n  }, {\n    key: \"_getNationalPrefixFormattingRule\",\n    value: function _getNationalPrefixFormattingRule(metadata) {\n      return metadata[this.v1 ? 4 : this.v2 ? 5 : 6];\n    } // For countries of the same region (e.g. NANPA)\n    // national prefix formatting rule is stored in the \"main\" country for that region.\n    // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n  }, {\n    key: \"nationalPrefixFormattingRule\",\n    value: function nationalPrefixFormattingRule() {\n      return this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion());\n    }\n  }, {\n    key: \"_nationalPrefixForParsing\",\n    value: function _nationalPrefixForParsing() {\n      return this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7];\n    }\n  }, {\n    key: \"nationalPrefixForParsing\",\n    value: function nationalPrefixForParsing() {\n      // If `national_prefix_for_parsing` is not set explicitly,\n      // then infer it from `national_prefix` (if any)\n      return this._nationalPrefixForParsing() || this.nationalPrefix();\n    }\n  }, {\n    key: \"nationalPrefixTransformRule\",\n    value: function nationalPrefixTransformRule() {\n      return this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8];\n    }\n  }, {\n    key: \"_getNationalPrefixIsOptionalWhenFormatting\",\n    value: function _getNationalPrefixIsOptionalWhenFormatting() {\n      return !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9];\n    } // For countries of the same region (e.g. NANPA)\n    // \"national prefix is optional when formatting\" flag is\n    // stored in the \"main\" country for that region.\n    // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n  }, {\n    key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n    value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n      return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) || this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion());\n    }\n  }, {\n    key: \"leadingDigits\",\n    value: function leadingDigits() {\n      return this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10];\n    }\n  }, {\n    key: \"types\",\n    value: function types() {\n      return this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11];\n    }\n  }, {\n    key: \"hasTypes\",\n    value: function hasTypes() {\n      // Versions 1.2.0 - 1.2.4: can be `[]`.\n\n      /* istanbul ignore next */\n      if (this.types() && this.types().length === 0) {\n        return false;\n      } // Versions <= 1.2.4: can be `undefined`.\n      // Version >= 1.2.5: can be `0`.\n\n\n      return !!this.types();\n    }\n  }, {\n    key: \"type\",\n    value: function type(_type2) {\n      if (this.hasTypes() && getType(this.types(), _type2)) {\n        return new Type(getType(this.types(), _type2), this);\n      }\n    }\n  }, {\n    key: \"ext\",\n    value: function ext() {\n      if (this.v1 || this.v2) return DEFAULT_EXT_PREFIX;\n      return this.metadata[13] || DEFAULT_EXT_PREFIX;\n    }\n  }]);\n\n  return NumberingPlan;\n}();\n\nvar Format = /*#__PURE__*/function () {\n  function Format(format, metadata) {\n    _classCallCheck(this, Format);\n\n    this._format = format;\n    this.metadata = metadata;\n  }\n\n  _createClass(Format, [{\n    key: \"pattern\",\n    value: function pattern() {\n      return this._format[0];\n    }\n  }, {\n    key: \"format\",\n    value: function format() {\n      return this._format[1];\n    }\n  }, {\n    key: \"leadingDigitsPatterns\",\n    value: function leadingDigitsPatterns() {\n      return this._format[2] || [];\n    }\n  }, {\n    key: \"nationalPrefixFormattingRule\",\n    value: function nationalPrefixFormattingRule() {\n      return this._format[3] || this.metadata.nationalPrefixFormattingRule();\n    }\n  }, {\n    key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n    value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n      return !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n    }\n  }, {\n    key: \"nationalPrefixIsMandatoryWhenFormattingInNationalFormat\",\n    value: function nationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\n      // National prefix is omitted if there's no national prefix formatting rule\n      // set for this country, or when the national prefix formatting rule\n      // contains no national prefix itself, or when this rule is set but\n      // national prefix is optional for this phone number format\n      // (and it is not enforced explicitly)\n      return this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n    } // Checks whether national prefix formatting rule contains national prefix.\n\n  }, {\n    key: \"usesNationalPrefix\",\n    value: function usesNationalPrefix() {\n      return this.nationalPrefixFormattingRule() && // Check that national prefix formatting rule is not a \"dummy\" one.\n      !FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule()) // In compressed metadata, `this.nationalPrefixFormattingRule()` is `0`\n      // when `national_prefix_formatting_rule` is not present.\n      // So, `true` or `false` are returned explicitly here, so that\n      // `0` number isn't returned.\n      ? true : false;\n    }\n  }, {\n    key: \"internationalFormat\",\n    value: function internationalFormat() {\n      return this._format[5] || this.format();\n    }\n  }]);\n\n  return Format;\n}();\n/**\r\n * A pattern that is used to determine if the national prefix formatting rule\r\n * has the first group only, i.e., does not start with the national prefix.\r\n * Note that the pattern explicitly allows for unbalanced parentheses.\r\n */\n\n\nvar FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/;\n\nvar Type = /*#__PURE__*/function () {\n  function Type(type, metadata) {\n    _classCallCheck(this, Type);\n\n    this.type = type;\n    this.metadata = metadata;\n  }\n\n  _createClass(Type, [{\n    key: \"pattern\",\n    value: function pattern() {\n      if (this.metadata.v1) return this.type;\n      return this.type[0];\n    }\n  }, {\n    key: \"possibleLengths\",\n    value: function possibleLengths() {\n      if (this.metadata.v1) return;\n      return this.type[1] || this.metadata.possibleLengths();\n    }\n  }]);\n\n  return Type;\n}();\n\nfunction getType(types, type) {\n  switch (type) {\n    case 'FIXED_LINE':\n      return types[0];\n\n    case 'MOBILE':\n      return types[1];\n\n    case 'TOLL_FREE':\n      return types[2];\n\n    case 'PREMIUM_RATE':\n      return types[3];\n\n    case 'PERSONAL_NUMBER':\n      return types[4];\n\n    case 'VOICEMAIL':\n      return types[5];\n\n    case 'UAN':\n      return types[6];\n\n    case 'PAGER':\n      return types[7];\n\n    case 'VOIP':\n      return types[8];\n\n    case 'SHARED_COST':\n      return types[9];\n  }\n}\n\nexport function validateMetadata(metadata) {\n  if (!metadata) {\n    throw new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.');\n  } // `country_phone_code_to_countries` was renamed to\n  // `country_calling_codes` in `1.0.18`.\n\n\n  if (!isObject(metadata) || !isObject(metadata.countries)) {\n    throw new Error(\"[libphonenumber-js] `metadata` argument was passed but it's not a valid metadata. Must be an object having `.countries` child object property. Got \".concat(isObject(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + typeOf(metadata) + ': ' + metadata, \".\"));\n  }\n} // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\nvar typeOf = function typeOf(_) {\n  return _typeof(_);\n};\n/**\r\n * Returns extension prefix for a country.\r\n * @param  {string} country\r\n * @param  {object} metadata\r\n * @return {string?}\r\n * @example\r\n * // Returns \" ext. \"\r\n * getExtPrefix(\"US\")\r\n */\n\n\nexport function getExtPrefix(country, metadata) {\n  metadata = new Metadata(metadata);\n\n  if (metadata.hasCountry(country)) {\n    return metadata.country(country).ext();\n  }\n\n  return DEFAULT_EXT_PREFIX;\n}\n/**\r\n * Returns \"country calling code\" for a country.\r\n * Throws an error if the country doesn't exist or isn't supported by this library.\r\n * @param  {string} country\r\n * @param  {object} metadata\r\n * @return {string}\r\n * @example\r\n * // Returns \"44\"\r\n * getCountryCallingCode(\"GB\")\r\n */\n\nexport function getCountryCallingCode(country, metadata) {\n  metadata = new Metadata(metadata);\n\n  if (metadata.hasCountry(country)) {\n    return metadata.country(country).countryCallingCode();\n  }\n\n  throw new Error(\"Unknown country: \".concat(country));\n}\nexport function isSupportedCountry(country, metadata) {\n  // metadata = new Metadata(metadata)\n  // return metadata.hasCountry(country)\n  return metadata.countries.hasOwnProperty(country);\n}\n\nfunction setVersion(metadata) {\n  var version = metadata.version;\n\n  if (typeof version === 'number') {\n    this.v1 = version === 1;\n    this.v2 = version === 2;\n    this.v3 = version === 3;\n    this.v4 = version === 4;\n  } else {\n    if (!version) {\n      this.v1 = true;\n    } else if (compare(version, V3) === -1) {\n      this.v2 = true;\n    } else if (compare(version, V4) === -1) {\n      this.v3 = true;\n    } else {\n      this.v4 = true;\n    }\n  }\n} // const ISO_COUNTRY_CODE = /^[A-Z]{2}$/\n// function isCountryCode(countryCode) {\n// \treturn ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode)\n// }\n//# sourceMappingURL=metadata.js.map","import { VALID_DIGITS } from '../../constants.js'; // The RFC 3966 format for extensions.\n\nvar RFC3966_EXTN_PREFIX = ';ext=';\n/**\r\n * Helper method for constructing regular expressions for parsing. Creates\r\n * an expression that captures up to max_length digits.\r\n * @return {string} RegEx pattern to capture extension digits.\r\n */\n\nvar getExtensionDigitsPattern = function getExtensionDigitsPattern(maxLength) {\n  return \"([\".concat(VALID_DIGITS, \"]{1,\").concat(maxLength, \"})\");\n};\n/**\r\n * Helper initialiser method to create the regular-expression pattern to match\r\n * extensions.\r\n * Copy-pasted from Google's `libphonenumber`:\r\n * https://github.com/google/libphonenumber/blob/55b2646ec9393f4d3d6661b9c82ef9e258e8b829/javascript/i18n/phonenumbers/phonenumberutil.js#L759-L766\r\n * @return {string} RegEx pattern to capture extensions.\r\n */\n\n\nexport default function createExtensionPattern(purpose) {\n  // We cap the maximum length of an extension based on the ambiguity of the way\n  // the extension is prefixed. As per ITU, the officially allowed length for\n  // extensions is actually 40, but we don't support this since we haven't seen real\n  // examples and this introduces many false interpretations as the extension labels\n  // are not standardized.\n\n  /** @type {string} */\n  var extLimitAfterExplicitLabel = '20';\n  /** @type {string} */\n\n  var extLimitAfterLikelyLabel = '15';\n  /** @type {string} */\n\n  var extLimitAfterAmbiguousChar = '9';\n  /** @type {string} */\n\n  var extLimitWhenNotSure = '6';\n  /** @type {string} */\n\n  var possibleSeparatorsBetweenNumberAndExtLabel = \"[ \\xA0\\\\t,]*\"; // Optional full stop (.) or colon, followed by zero or more spaces/tabs/commas.\n\n  /** @type {string} */\n\n  var possibleCharsAfterExtLabel = \"[:\\\\.\\uFF0E]?[ \\xA0\\\\t,-]*\";\n  /** @type {string} */\n\n  var optionalExtnSuffix = \"#?\"; // Here the extension is called out in more explicit way, i.e mentioning it obvious\n  // patterns like \"ext.\".\n\n  /** @type {string} */\n\n  var explicitExtLabels = \"(?:e?xt(?:ensi(?:o\\u0301?|\\xF3))?n?|\\uFF45?\\uFF58\\uFF54\\uFF4E?|\\u0434\\u043E\\u0431|anexo)\"; // One-character symbols that can be used to indicate an extension, and less\n  // commonly used or more ambiguous extension labels.\n\n  /** @type {string} */\n\n  var ambiguousExtLabels = \"(?:[x\\uFF58#\\uFF03~\\uFF5E]|int|\\uFF49\\uFF4E\\uFF54)\"; // When extension is not separated clearly.\n\n  /** @type {string} */\n\n  var ambiguousSeparator = \"[- ]+\"; // This is the same as possibleSeparatorsBetweenNumberAndExtLabel, but not matching\n  // comma as extension label may have it.\n\n  /** @type {string} */\n\n  var possibleSeparatorsNumberExtLabelNoComma = \"[ \\xA0\\\\t]*\"; // \",,\" is commonly used for auto dialling the extension when connected. First\n  // comma is matched through possibleSeparatorsBetweenNumberAndExtLabel, so we do\n  // not repeat it here. Semi-colon works in Iphone and Android also to pop up a\n  // button with the extension number following.\n\n  /** @type {string} */\n\n  var autoDiallingAndExtLabelsFound = \"(?:,{2}|;)\";\n  /** @type {string} */\n\n  var rfcExtn = RFC3966_EXTN_PREFIX + getExtensionDigitsPattern(extLimitAfterExplicitLabel);\n  /** @type {string} */\n\n  var explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterExplicitLabel) + optionalExtnSuffix;\n  /** @type {string} */\n\n  var ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix;\n  /** @type {string} */\n\n  var americanStyleExtnWithSuffix = ambiguousSeparator + getExtensionDigitsPattern(extLimitWhenNotSure) + \"#\";\n  /** @type {string} */\n\n  var autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterLikelyLabel) + optionalExtnSuffix;\n  /** @type {string} */\n\n  var onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma + \"(?:,)+\" + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix; // The first regular expression covers RFC 3966 format, where the extension is added\n  // using \";ext=\". The second more generic where extension is mentioned with explicit\n  // labels like \"ext:\". In both the above cases we allow more numbers in extension than\n  // any other extension labels. The third one captures when single character extension\n  // labels or less commonly used labels are used. In such cases we capture fewer\n  // extension digits in order to reduce the chance of falsely interpreting two\n  // numbers beside each other as a number + extension. The fourth one covers the\n  // special case of American numbers where the extension is written with a hash\n  // at the end, such as \"- 503#\". The fifth one is exclusively for extension\n  // autodialling formats which are used when dialling and in this case we accept longer\n  // extensions. The last one is more liberal on the number of commas that acts as\n  // extension labels, so we have a strict cap on the number of digits in such extensions.\n\n  return rfcExtn + \"|\" + explicitExtn + \"|\" + ambiguousExtn + \"|\" + americanStyleExtnWithSuffix + \"|\" + autoDiallingExtn + \"|\" + onlyCommasExtn;\n}\n//# sourceMappingURL=createExtensionPattern.js.map","import { MIN_LENGTH_FOR_NSN, VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from '../constants.js';\nimport createExtensionPattern from './extension/createExtensionPattern.js'; //  Regular expression of viable phone numbers. This is location independent.\n//  Checks we have at least three leading digits, and only valid punctuation,\n//  alpha characters and digits in the phone number. Does not include extension\n//  data. The symbol 'x' is allowed here as valid punctuation since it is often\n//  used as a placeholder for carrier codes, for example in Brazilian phone\n//  numbers. We also allow multiple '+' characters at the start.\n//\n//  Corresponds to the following:\n//  [digits]{minLengthNsn}|\n//  plus_sign*\n//  (([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])*\n//\n//  The first reg-ex is to allow short numbers (two digits long) to be parsed if\n//  they are entered as \"15\" etc, but only if there is no punctuation in them.\n//  The second expression restricts the number of digits to three or more, but\n//  then allows them to be in international form, and to have alpha-characters\n//  and punctuation. We split up the two reg-exes here and combine them when\n//  creating the reg-ex VALID_PHONE_NUMBER_PATTERN itself so we can prefix it\n//  with ^ and append $ to each branch.\n//\n//  \"Note VALID_PUNCTUATION starts with a -,\n//   so must be the first in the range\" (c) Google devs.\n//  (wtf did they mean by saying that; probably nothing)\n//\n\nvar MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + VALID_DIGITS + ']{' + MIN_LENGTH_FOR_NSN + '}'; //\n// And this is the second reg-exp:\n// (see MIN_LENGTH_PHONE_NUMBER_PATTERN for a full description of this reg-exp)\n//\n\nexport var VALID_PHONE_NUMBER = '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){3,}' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*'; // This regular expression isn't present in Google's `libphonenumber`\n// and is only used to determine whether the phone number being input\n// is too short for it to even consider it a \"valid\" number.\n// This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\n\nvar VALID_PHONE_NUMBER_START_REG_EXP = new RegExp('^' + '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){1,2}' + '$', 'i');\nexport var VALID_PHONE_NUMBER_WITH_EXTENSION = VALID_PHONE_NUMBER + // Phone number extensions\n'(?:' + createExtensionPattern() + ')?'; // The combined regular expression for valid phone numbers:\n//\n\nvar VALID_PHONE_NUMBER_PATTERN = new RegExp( // Either a short two-digit-only phone number\n'^' + MIN_LENGTH_PHONE_NUMBER_PATTERN + '$' + '|' + // Or a longer fully parsed phone number (min 3 characters)\n'^' + VALID_PHONE_NUMBER_WITH_EXTENSION + '$', 'i'); // Checks to see if the string of characters could possibly be a phone number at\n// all. At the moment, checks to see that the string begins with at least 2\n// digits, ignoring any punctuation commonly found in phone numbers. This method\n// does not require the number to be normalized in advance - but does assume\n// that leading non-number symbols have been removed, such as by the method\n// `extract_possible_number`.\n//\n\nexport default function isViablePhoneNumber(number) {\n  return number.length >= MIN_LENGTH_FOR_NSN && VALID_PHONE_NUMBER_PATTERN.test(number);\n} // This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\n\nexport function isViablePhoneNumberStart(number) {\n  return VALID_PHONE_NUMBER_START_REG_EXP.test(number);\n}\n//# sourceMappingURL=isViablePhoneNumber.js.map","import createExtensionPattern from './createExtensionPattern.js'; // Regexp of all known extension prefixes used by different regions followed by\n// 1 or more valid digits, for use when parsing.\n\nvar EXTN_PATTERN = new RegExp('(?:' + createExtensionPattern() + ')$', 'i'); // Strips any extension (as in, the part of the number dialled after the call is\n// connected, usually indicated with extn, ext, x or similar) from the end of\n// the number, and returns it.\n\nexport default function extractExtension(number) {\n  var start = number.search(EXTN_PATTERN);\n\n  if (start < 0) {\n    return {};\n  } // If we find a potential extension, and the number preceding this is a viable\n  // number, we assume it is an extension.\n\n\n  var numberWithoutExtension = number.slice(0, start);\n  var matches = number.match(EXTN_PATTERN);\n  var i = 1;\n\n  while (i < matches.length) {\n    if (matches[i]) {\n      return {\n        number: numberWithoutExtension,\n        ext: matches[i]\n      };\n    }\n\n    i++;\n  }\n}\n//# sourceMappingURL=extractExtension.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// These mappings map a character (key) to a specific digit that should\n// replace it for normalization purposes. Non-European digits that\n// may be used in phone numbers are mapped to a European equivalent.\n//\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n//\nexport var DIGITS = {\n  '0': '0',\n  '1': '1',\n  '2': '2',\n  '3': '3',\n  '4': '4',\n  '5': '5',\n  '6': '6',\n  '7': '7',\n  '8': '8',\n  '9': '9',\n  \"\\uFF10\": '0',\n  // Fullwidth digit 0\n  \"\\uFF11\": '1',\n  // Fullwidth digit 1\n  \"\\uFF12\": '2',\n  // Fullwidth digit 2\n  \"\\uFF13\": '3',\n  // Fullwidth digit 3\n  \"\\uFF14\": '4',\n  // Fullwidth digit 4\n  \"\\uFF15\": '5',\n  // Fullwidth digit 5\n  \"\\uFF16\": '6',\n  // Fullwidth digit 6\n  \"\\uFF17\": '7',\n  // Fullwidth digit 7\n  \"\\uFF18\": '8',\n  // Fullwidth digit 8\n  \"\\uFF19\": '9',\n  // Fullwidth digit 9\n  \"\\u0660\": '0',\n  // Arabic-indic digit 0\n  \"\\u0661\": '1',\n  // Arabic-indic digit 1\n  \"\\u0662\": '2',\n  // Arabic-indic digit 2\n  \"\\u0663\": '3',\n  // Arabic-indic digit 3\n  \"\\u0664\": '4',\n  // Arabic-indic digit 4\n  \"\\u0665\": '5',\n  // Arabic-indic digit 5\n  \"\\u0666\": '6',\n  // Arabic-indic digit 6\n  \"\\u0667\": '7',\n  // Arabic-indic digit 7\n  \"\\u0668\": '8',\n  // Arabic-indic digit 8\n  \"\\u0669\": '9',\n  // Arabic-indic digit 9\n  \"\\u06F0\": '0',\n  // Eastern-Arabic digit 0\n  \"\\u06F1\": '1',\n  // Eastern-Arabic digit 1\n  \"\\u06F2\": '2',\n  // Eastern-Arabic digit 2\n  \"\\u06F3\": '3',\n  // Eastern-Arabic digit 3\n  \"\\u06F4\": '4',\n  // Eastern-Arabic digit 4\n  \"\\u06F5\": '5',\n  // Eastern-Arabic digit 5\n  \"\\u06F6\": '6',\n  // Eastern-Arabic digit 6\n  \"\\u06F7\": '7',\n  // Eastern-Arabic digit 7\n  \"\\u06F8\": '8',\n  // Eastern-Arabic digit 8\n  \"\\u06F9\": '9' // Eastern-Arabic digit 9\n\n};\nexport function parseDigit(character) {\n  return DIGITS[character];\n}\n/**\r\n * Parses phone number digits from a string.\r\n * Drops all punctuation leaving only digits.\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param  {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * parseDigits('8 (800) 555')\r\n * // Outputs '8800555'.\r\n * ```\r\n */\n\nexport default function parseDigits(string) {\n  var result = ''; // Using `.split('')` here instead of normal `for ... of`\n  // because the importing application doesn't neccessarily include an ES6 polyfill.\n  // The `.split('')` approach discards \"exotic\" UTF-8 characters\n  // (the ones consisting of four bytes) but digits\n  // (including non-European ones) don't fall into that range\n  // so such \"exotic\" characters would be discarded anyway.\n\n  for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n    var character = _step.value;\n    var digit = parseDigit(character);\n\n    if (digit) {\n      result += digit;\n    }\n  }\n\n  return result;\n}\n//# sourceMappingURL=parseDigits.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { parseDigit } from './helpers/parseDigits.js';\n/**\r\n * Parses phone number characters from a string.\r\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param  {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * // Outputs '8800555'.\r\n * parseIncompletePhoneNumber('8 (800) 555')\r\n * // Outputs '+7800555'.\r\n * parseIncompletePhoneNumber('+7 800 555')\r\n * ```\r\n */\n\nexport default function parseIncompletePhoneNumber(string) {\n  var result = ''; // Using `.split('')` here instead of normal `for ... of`\n  // because the importing application doesn't neccessarily include an ES6 polyfill.\n  // The `.split('')` approach discards \"exotic\" UTF-8 characters\n  // (the ones consisting of four bytes) but digits\n  // (including non-European ones) don't fall into that range\n  // so such \"exotic\" characters would be discarded anyway.\n\n  for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n    var character = _step.value;\n    result += parsePhoneNumberCharacter(character, result) || '';\n  }\n\n  return result;\n}\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param  {string} character - Yet another character from raw input string.\r\n * @param  {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param  {function?} emitEvent - An optional \"emit event\" function.\r\n * @return {string?} The parsed character.\r\n */\n\nexport function parsePhoneNumberCharacter(character, prevParsedCharacters, emitEvent) {\n  // Only allow a leading `+`.\n  if (character === '+') {\n    // If this `+` is not the first parsed character\n    // then discard it.\n    if (prevParsedCharacters) {\n      // `emitEvent` argument was added to this `export`ed function on Dec 26th, 2023.\n      // Any 3rd-party code that used to `import` and call this function before that\n      // won't be passing any `emitEvent` argument.\n      //\n      // The addition of the `emitEvent` argument was to fix the slightly-weird behavior\n      // of parsing an input string when the user inputs something like `\"2+7\"\n      // https://github.com/catamphetamine/react-phone-number-input/issues/437\n      //\n      // If the parser encounters an unexpected `+` in a string being parsed\n      // then it simply discards that out-of-place `+` and any following characters.\n      //\n      if (typeof emitEvent === 'function') {\n        emitEvent('end');\n      }\n\n      return;\n    }\n\n    return '+';\n  } // Allow digits.\n\n\n  return parseDigit(character);\n}\n//# sourceMappingURL=parseIncompletePhoneNumber.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\r\n * Merges two arrays.\r\n * @param  {*} a\r\n * @param  {*} b\r\n * @return {*}\r\n */\nexport default function mergeArrays(a, b) {\n  var merged = a.slice();\n\n  for (var _iterator = _createForOfIteratorHelperLoose(b), _step; !(_step = _iterator()).done;) {\n    var element = _step.value;\n\n    if (a.indexOf(element) < 0) {\n      merged.push(element);\n    }\n  }\n\n  return merged.sort(function (a, b) {\n    return a - b;\n  }); // ES6 version, requires Set polyfill.\n  // let merged = new Set(a)\n  // for (const element of b) {\n  // \tmerged.add(i)\n  // }\n  // return Array.from(merged).sort((a, b) => a - b)\n}\n//# sourceMappingURL=mergeArrays.js.map","import mergeArrays from './mergeArrays.js';\nexport default function checkNumberLength(nationalNumber, metadata) {\n  return checkNumberLengthForType(nationalNumber, undefined, metadata);\n} // Checks whether a number is possible for the country based on its length.\n// Should only be called for the \"new\" metadata which has \"possible lengths\".\n\nexport function checkNumberLengthForType(nationalNumber, type, metadata) {\n  var type_info = metadata.type(type); // There should always be \"<possiblePengths/>\" set for every type element.\n  // This is declared in the XML schema.\n  // For size efficiency, where a sub-description (e.g. fixed-line)\n  // has the same \"<possiblePengths/>\" as the \"general description\", this is missing,\n  // so we fall back to the \"general description\". Where no numbers of the type\n  // exist at all, there is one possible length (-1) which is guaranteed\n  // not to match the length of any real phone number.\n\n  var possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths(); // let local_lengths    = type_info && type.possibleLengthsLocal() || metadata.possibleLengthsLocal()\n  // Metadata before version `1.0.18` didn't contain `possible_lengths`.\n\n  if (!possible_lengths) {\n    return 'IS_POSSIBLE';\n  }\n\n  if (type === 'FIXED_LINE_OR_MOBILE') {\n    // No such country in metadata.\n\n    /* istanbul ignore next */\n    if (!metadata.type('FIXED_LINE')) {\n      // The rare case has been encountered where no fixedLine data is available\n      // (true for some non-geographic entities), so we just check mobile.\n      return checkNumberLengthForType(nationalNumber, 'MOBILE', metadata);\n    }\n\n    var mobile_type = metadata.type('MOBILE');\n\n    if (mobile_type) {\n      // Merge the mobile data in if there was any. \"Concat\" creates a new\n      // array, it doesn't edit possible_lengths in place, so we don't need a copy.\n      // Note that when adding the possible lengths from mobile, we have\n      // to again check they aren't empty since if they are this indicates\n      // they are the same as the general desc and should be obtained from there.\n      possible_lengths = mergeArrays(possible_lengths, mobile_type.possibleLengths()); // The current list is sorted; we need to merge in the new list and\n      // re-sort (duplicates are okay). Sorting isn't so expensive because\n      // the lists are very small.\n      // if (local_lengths) {\n      // \tlocal_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal())\n      // } else {\n      // \tlocal_lengths = mobile_type.possibleLengthsLocal()\n      // }\n    }\n  } // If the type doesn't exist then return 'INVALID_LENGTH'.\n  else if (type && !type_info) {\n    return 'INVALID_LENGTH';\n  }\n\n  var actual_length = nationalNumber.length; // In `libphonenumber-js` all \"local-only\" formats are dropped for simplicity.\n  // // This is safe because there is never an overlap beween the possible lengths\n  // // and the local-only lengths; this is checked at build time.\n  // if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0)\n  // {\n  // \treturn 'IS_POSSIBLE_LOCAL_ONLY'\n  // }\n\n  var minimum_length = possible_lengths[0];\n\n  if (minimum_length === actual_length) {\n    return 'IS_POSSIBLE';\n  }\n\n  if (minimum_length > actual_length) {\n    return 'TOO_SHORT';\n  }\n\n  if (possible_lengths[possible_lengths.length - 1] < actual_length) {\n    return 'TOO_LONG';\n  } // We skip the first element since we've already checked it.\n\n\n  return possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH';\n}\n//# sourceMappingURL=checkNumberLength.js.map","import Metadata from './metadata.js';\nimport checkNumberLength from './helpers/checkNumberLength.js';\n/**\r\n * Checks if a phone number is \"possible\" (basically just checks its length).\r\n *\r\n * isPossible(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * @param  {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param  {object} [options]\r\n * @param  {object} metadata\r\n * @return {string}\r\n */\n\nexport default function isPossiblePhoneNumber(input, options, metadata) {\n  /* istanbul ignore if */\n  if (options === undefined) {\n    options = {};\n  }\n\n  metadata = new Metadata(metadata);\n\n  if (options.v2) {\n    if (!input.countryCallingCode) {\n      throw new Error('Invalid phone number object passed');\n    }\n\n    metadata.selectNumberingPlan(input.countryCallingCode);\n  } else {\n    if (!input.phone) {\n      return false;\n    }\n\n    if (input.country) {\n      if (!metadata.hasCountry(input.country)) {\n        throw new Error(\"Unknown country: \".concat(input.country));\n      }\n\n      metadata.country(input.country);\n    } else {\n      if (!input.countryCallingCode) {\n        throw new Error('Invalid phone number object passed');\n      }\n\n      metadata.selectNumberingPlan(input.countryCallingCode);\n    }\n  } // Old metadata (< 1.0.18) had no \"possible length\" data.\n\n\n  if (metadata.possibleLengths()) {\n    return isPossibleNumber(input.phone || input.nationalNumber, metadata);\n  } else {\n    // There was a bug between `1.7.35` and `1.7.37` where \"possible_lengths\"\n    // were missing for \"non-geographical\" numbering plans.\n    // Just assume the number is possible in such cases:\n    // it's unlikely that anyone generated their custom metadata\n    // in that short period of time (one day).\n    // This code can be removed in some future major version update.\n    if (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) {\n      // \"Non-geographic entities\" did't have `possibleLengths`\n      // due to a bug in metadata generation process.\n      return true;\n    } else {\n      throw new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\n    }\n  }\n}\nexport function isPossibleNumber(nationalNumber, metadata) {\n  //, isInternational) {\n  switch (checkNumberLength(nationalNumber, metadata)) {\n    case 'IS_POSSIBLE':\n      return true;\n    // This library ignores \"local-only\" phone numbers (for simplicity).\n    // See the readme for more info on what are \"local-only\" phone numbers.\n    // case 'IS_POSSIBLE_LOCAL_ONLY':\n    // \treturn !isInternational\n\n    default:\n      return false;\n  }\n}\n//# sourceMappingURL=isPossible.js.map","/**\r\n * Checks whether the entire input sequence can be matched\r\n * against the regular expression.\r\n * @return {boolean}\r\n */\nexport default function matchesEntirely(text, regular_expression) {\n  // If assigning the `''` default value is moved to the arguments above,\n  // code coverage would decrease for some weird reason.\n  text = text || '';\n  return new RegExp('^(?:' + regular_expression + ')$').test(text);\n}\n//# sourceMappingURL=matchesEntirely.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nvar NON_FIXED_LINE_PHONE_TYPES = ['MOBILE', 'PREMIUM_RATE', 'TOLL_FREE', 'SHARED_COST', 'VOIP', 'PERSONAL_NUMBER', 'PAGER', 'UAN', 'VOICEMAIL']; // Finds out national phone number type (fixed line, mobile, etc)\n\nexport default function getNumberType(input, options, metadata) {\n  // If assigning the `{}` default value is moved to the arguments above,\n  // code coverage would decrease for some weird reason.\n  options = options || {}; // When `parse()` returns an empty object — `{}` —\n  // that means that the phone number is malformed,\n  // so it can't possibly be valid.\n\n  if (!input.country && !input.countryCallingCode) {\n    return;\n  }\n\n  metadata = new Metadata(metadata);\n  metadata.selectNumberingPlan(input.country, input.countryCallingCode);\n  var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // The following is copy-pasted from the original function:\n  // https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\n  // Is this national number even valid for this country\n\n  if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {\n    return;\n  } // Is it fixed line number\n\n\n  if (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) {\n    // Because duplicate regular expressions are removed\n    // to reduce metadata size, if \"mobile\" pattern is \"\"\n    // then it means it was removed due to being a duplicate of the fixed-line pattern.\n    //\n    if (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\n      return 'FIXED_LINE_OR_MOBILE';\n    } // `MOBILE` type pattern isn't included if it matched `FIXED_LINE` one.\n    // For example, for \"US\" country.\n    // Old metadata (< `1.0.18`) had a specific \"types\" data structure\n    // that happened to be `undefined` for `MOBILE` in that case.\n    // Newer metadata (>= `1.0.18`) has another data structure that is\n    // not `undefined` for `MOBILE` in that case (it's just an empty array).\n    // So this `if` is just for backwards compatibility with old metadata.\n\n\n    if (!metadata.type('MOBILE')) {\n      return 'FIXED_LINE_OR_MOBILE';\n    } // Check if the number happens to qualify as both fixed line and mobile.\n    // (no such country in the minimal metadata set)\n\n    /* istanbul ignore if */\n\n\n    if (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\n      return 'FIXED_LINE_OR_MOBILE';\n    }\n\n    return 'FIXED_LINE';\n  }\n\n  for (var _iterator = _createForOfIteratorHelperLoose(NON_FIXED_LINE_PHONE_TYPES), _step; !(_step = _iterator()).done;) {\n    var type = _step.value;\n\n    if (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\n      return type;\n    }\n  }\n}\nexport function isNumberTypeEqualTo(nationalNumber, type, metadata) {\n  type = metadata.type(type);\n\n  if (!type || !type.pattern()) {\n    return false;\n  } // Check if any possible number lengths are present;\n  // if so, we use them to avoid checking\n  // the validation pattern if they don't match.\n  // If they are absent, this means they match\n  // the general description, which we have\n  // already checked before a specific number type.\n\n\n  if (type.possibleLengths() && type.possibleLengths().indexOf(nationalNumber.length) < 0) {\n    return false;\n  }\n\n  return matchesEntirely(nationalNumber, type.pattern());\n}\n//# sourceMappingURL=getNumberType.js.map","import Metadata from '../metadata.js';\n/**\r\n * Returns a list of countries that the phone number could potentially belong to.\r\n * @param  {string} callingCode — Calling code.\r\n * @param  {string} nationalNumber — National (significant) number.\r\n * @param  {object} metadata — Metadata.\r\n * @return {string[]} A list of possible countries.\r\n */\n\nexport default function getPossibleCountriesForNumber(callingCode, nationalNumber, metadata) {\n  var _metadata = new Metadata(metadata);\n\n  var possibleCountries = _metadata.getCountryCodesForCallingCode(callingCode);\n\n  if (!possibleCountries) {\n    return [];\n  }\n\n  return possibleCountries.filter(function (country) {\n    return couldNationalNumberBelongToCountry(nationalNumber, country, metadata);\n  });\n}\n\nfunction couldNationalNumberBelongToCountry(nationalNumber, country, metadata) {\n  var _metadata = new Metadata(metadata);\n\n  _metadata.selectNumberingPlan(country);\n\n  if (_metadata.numberingPlan.possibleLengths().indexOf(nationalNumber.length) >= 0) {\n    return true;\n  }\n\n  return false;\n}\n//# sourceMappingURL=getPossibleCountriesForNumber.js.map","import applyInternationalSeparatorStyle from './applyInternationalSeparatorStyle.js'; // This was originally set to $1 but there are some countries for which the\n// first group is not used in the national pattern (e.g. Argentina) so the $1\n// group does not match correctly. Therefore, we use `\\d`, so that the first\n// group actually used in the pattern will be matched.\n\nexport var FIRST_GROUP_PATTERN = /(\\$\\d)/;\nexport default function formatNationalNumberUsingFormat(number, format, _ref) {\n  var useInternationalFormat = _ref.useInternationalFormat,\n      withNationalPrefix = _ref.withNationalPrefix,\n      carrierCode = _ref.carrierCode,\n      metadata = _ref.metadata;\n  var formattedNumber = number.replace(new RegExp(format.pattern()), useInternationalFormat ? format.internationalFormat() : // This library doesn't use `domestic_carrier_code_formatting_rule`,\n  // because that one is only used when formatting phone numbers\n  // for dialing from a mobile phone, and this is not a dialing library.\n  // carrierCode && format.domesticCarrierCodeFormattingRule()\n  // \t// First, replace the $CC in the formatting rule with the desired carrier code.\n  // \t// Then, replace the $FG in the formatting rule with the first group\n  // \t// and the carrier code combined in the appropriate way.\n  // \t? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode))\n  // \t: (\n  // \t\twithNationalPrefix && format.nationalPrefixFormattingRule()\n  // \t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\n  // \t\t\t: format.format()\n  // \t)\n  withNationalPrefix && format.nationalPrefixFormattingRule() ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) : format.format());\n\n  if (useInternationalFormat) {\n    return applyInternationalSeparatorStyle(formattedNumber);\n  }\n\n  return formattedNumber;\n}\n//# sourceMappingURL=formatNationalNumberUsingFormat.js.map","import { VALID_PUNCTUATION } from '../constants.js'; // Removes brackets and replaces dashes with spaces.\n//\n// E.g. \"(999) 111-22-33\" -> \"999 111 22 33\"\n//\n// For some reason Google's metadata contains `<intlFormat/>`s with brackets and dashes.\n// Meanwhile, there's no single opinion about using punctuation in international phone numbers.\n//\n// For example, Google's `<intlFormat/>` for USA is `+1 213-373-4253`.\n// And here's a quote from WikiPedia's \"North American Numbering Plan\" page:\n// https://en.wikipedia.org/wiki/North_American_Numbering_Plan\n//\n// \"The country calling code for all countries participating in the NANP is 1.\n// In international format, an NANP number should be listed as +1 301 555 01 00,\n// where 301 is an area code (Maryland).\"\n//\n// I personally prefer the international format without any punctuation.\n// For example, brackets are remnants of the old age, meaning that the\n// phone number part in brackets (so called \"area code\") can be omitted\n// if dialing within the same \"area\".\n// And hyphens were clearly introduced for splitting local numbers into memorizable groups.\n// For example, remembering \"5553535\" is difficult but \"555-35-35\" is much simpler.\n// Imagine a man taking a bus from home to work and seeing an ad with a phone number.\n// He has a couple of seconds to memorize that number until it passes by.\n// If it were spaces instead of hyphens the man wouldn't necessarily get it,\n// but with hyphens instead of spaces the grouping is more explicit.\n// I personally think that hyphens introduce visual clutter,\n// so I prefer replacing them with spaces in international numbers.\n// In the modern age all output is done on displays where spaces are clearly distinguishable\n// so hyphens can be safely replaced with spaces without losing any legibility.\n//\n\nexport default function applyInternationalSeparatorStyle(formattedNumber) {\n  return formattedNumber.replace(new RegExp(\"[\".concat(VALID_PUNCTUATION, \"]+\"), 'g'), ' ').trim();\n}\n//# sourceMappingURL=applyInternationalSeparatorStyle.js.map","import Metadata from '../metadata.js';\n/**\r\n * Pattern that makes it easy to distinguish whether a region has a single\r\n * international dialing prefix or not. If a region has a single international\r\n * prefix (e.g. 011 in USA), it will be represented as a string that contains\r\n * a sequence of ASCII digits, and possibly a tilde, which signals waiting for\r\n * the tone. If there are multiple available international prefixes in a\r\n * region, they will be represented as a regex string that always contains one\r\n * or more characters that are not ASCII digits or a tilde.\r\n */\n\nvar SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/; // For regions that have multiple IDD prefixes\n// a preferred IDD prefix is returned.\n\nexport default function getIddPrefix(country, callingCode, metadata) {\n  var countryMetadata = new Metadata(metadata);\n  countryMetadata.selectNumberingPlan(country, callingCode);\n\n  if (countryMetadata.defaultIDDPrefix()) {\n    return countryMetadata.defaultIDDPrefix();\n  }\n\n  if (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\n    return countryMetadata.IDDPrefix();\n  }\n}\n//# sourceMappingURL=getIddPrefix.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js';\nimport Metadata, { getCountryCallingCode } from './metadata.js';\nimport getIddPrefix from './helpers/getIddPrefix.js';\nimport { formatRFC3966 } from './helpers/RFC3966.js';\nvar DEFAULT_OPTIONS = {\n  formatExtension: function formatExtension(formattedNumber, extension, metadata) {\n    return \"\".concat(formattedNumber).concat(metadata.ext()).concat(extension);\n  }\n};\n/**\r\n * Formats a phone number.\r\n *\r\n * format(phoneNumberInstance, 'INTERNATIONAL', { ..., v2: true }, metadata)\r\n * format(phoneNumberInstance, 'NATIONAL', { ..., v2: true }, metadata)\r\n *\r\n * format({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', { ... }, metadata)\r\n * format({ phone: '8005553535', country: 'RU' }, 'NATIONAL', undefined, metadata)\r\n *\r\n * @param  {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param  {string} format\r\n * @param  {object} [options]\r\n * @param  {object} metadata\r\n * @return {string}\r\n */\n\nexport default function formatNumber(input, format, options, metadata) {\n  // Apply default options.\n  if (options) {\n    options = _objectSpread(_objectSpread({}, DEFAULT_OPTIONS), options);\n  } else {\n    options = DEFAULT_OPTIONS;\n  }\n\n  metadata = new Metadata(metadata);\n\n  if (input.country && input.country !== '001') {\n    // Validate `input.country`.\n    if (!metadata.hasCountry(input.country)) {\n      throw new Error(\"Unknown country: \".concat(input.country));\n    }\n\n    metadata.country(input.country);\n  } else if (input.countryCallingCode) {\n    metadata.selectNumberingPlan(input.countryCallingCode);\n  } else return input.phone || '';\n\n  var countryCallingCode = metadata.countryCallingCode();\n  var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // This variable should have been declared inside `case`s\n  // but Babel has a bug and it says \"duplicate variable declaration\".\n\n  var number;\n\n  switch (format) {\n    case 'NATIONAL':\n      // Legacy argument support.\n      // (`{ country: ..., phone: '' }`)\n      if (!nationalNumber) {\n        return '';\n      }\n\n      number = formatNationalNumber(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options);\n      return addExtension(number, input.ext, metadata, options.formatExtension);\n\n    case 'INTERNATIONAL':\n      // Legacy argument support.\n      // (`{ country: ..., phone: '' }`)\n      if (!nationalNumber) {\n        return \"+\".concat(countryCallingCode);\n      }\n\n      number = formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata, options);\n      number = \"+\".concat(countryCallingCode, \" \").concat(number);\n      return addExtension(number, input.ext, metadata, options.formatExtension);\n\n    case 'E.164':\n      // `E.164` doesn't define \"phone number extensions\".\n      return \"+\".concat(countryCallingCode).concat(nationalNumber);\n\n    case 'RFC3966':\n      return formatRFC3966({\n        number: \"+\".concat(countryCallingCode).concat(nationalNumber),\n        ext: input.ext\n      });\n    // For reference, here's Google's IDD formatter:\n    // https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546\n    // Not saying that this IDD formatter replicates it 1:1, but it seems to work.\n    // Who would even need to format phone numbers in IDD format anyway?\n\n    case 'IDD':\n      if (!options.fromCountry) {\n        return; // throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\n      }\n\n      var formattedNumber = formatIDD(nationalNumber, input.carrierCode, countryCallingCode, options.fromCountry, metadata);\n      return addExtension(formattedNumber, input.ext, metadata, options.formatExtension);\n\n    default:\n      throw new Error(\"Unknown \\\"format\\\" argument passed to \\\"formatNumber()\\\": \\\"\".concat(format, \"\\\"\"));\n  }\n}\n\nfunction formatNationalNumber(number, carrierCode, formatAs, metadata, options) {\n  var format = chooseFormatForNumber(metadata.formats(), number);\n\n  if (!format) {\n    return number;\n  }\n\n  return formatNationalNumberUsingFormat(number, format, {\n    useInternationalFormat: formatAs === 'INTERNATIONAL',\n    withNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && options && options.nationalPrefix === false ? false : true,\n    carrierCode: carrierCode,\n    metadata: metadata\n  });\n}\n\nexport function chooseFormatForNumber(availableFormats, nationalNnumber) {\n  for (var _iterator = _createForOfIteratorHelperLoose(availableFormats), _step; !(_step = _iterator()).done;) {\n    var format = _step.value;\n\n    // Validate leading digits.\n    // The test case for \"else path\" could be found by searching for\n    // \"format.leadingDigitsPatterns().length === 0\".\n    if (format.leadingDigitsPatterns().length > 0) {\n      // The last leading_digits_pattern is used here, as it is the most detailed\n      var lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1]; // If leading digits don't match then move on to the next phone number format\n\n      if (nationalNnumber.search(lastLeadingDigitsPattern) !== 0) {\n        continue;\n      }\n    } // Check that the national number matches the phone number format regular expression\n\n\n    if (matchesEntirely(nationalNnumber, format.pattern())) {\n      return format;\n    }\n  }\n}\n\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\n  return ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber;\n}\n\nfunction formatIDD(nationalNumber, carrierCode, countryCallingCode, fromCountry, metadata) {\n  var fromCountryCallingCode = getCountryCallingCode(fromCountry, metadata.metadata); // When calling within the same country calling code.\n\n  if (fromCountryCallingCode === countryCallingCode) {\n    var formattedNumber = formatNationalNumber(nationalNumber, carrierCode, 'NATIONAL', metadata); // For NANPA regions, return the national format for these regions\n    // but prefix it with the country calling code.\n\n    if (countryCallingCode === '1') {\n      return countryCallingCode + ' ' + formattedNumber;\n    } // If regions share a country calling code, the country calling code need\n    // not be dialled. This also applies when dialling within a region, so this\n    // if clause covers both these cases. Technically this is the case for\n    // dialling from La Reunion to other overseas departments of France (French\n    // Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover\n    // this edge case for now and for those cases return the version including\n    // country calling code. Details here:\n    // http://www.petitfute.com/voyage/225-info-pratiques-reunion\n    //\n\n\n    return formattedNumber;\n  }\n\n  var iddPrefix = getIddPrefix(fromCountry, undefined, metadata.metadata);\n\n  if (iddPrefix) {\n    return \"\".concat(iddPrefix, \" \").concat(countryCallingCode, \" \").concat(formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata));\n  }\n}\n//# sourceMappingURL=format.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport isViablePhoneNumber from './isViablePhoneNumber.js'; // https://www.ietf.org/rfc/rfc3966.txt\n\n/**\r\n * @param  {string} text - Phone URI (RFC 3966).\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\nexport function parseRFC3966(text) {\n  var number;\n  var ext; // Replace \"tel:\" with \"tel=\" for parsing convenience.\n\n  text = text.replace(/^tel:/, 'tel=');\n\n  for (var _iterator = _createForOfIteratorHelperLoose(text.split(';')), _step; !(_step = _iterator()).done;) {\n    var part = _step.value;\n\n    var _part$split = part.split('='),\n        _part$split2 = _slicedToArray(_part$split, 2),\n        name = _part$split2[0],\n        value = _part$split2[1];\n\n    switch (name) {\n      case 'tel':\n        number = value;\n        break;\n\n      case 'ext':\n        ext = value;\n        break;\n\n      case 'phone-context':\n        // Only \"country contexts\" are supported.\n        // \"Domain contexts\" are ignored.\n        if (value[0] === '+') {\n          number = value + number;\n        }\n\n        break;\n    }\n  } // If the phone number is not viable, then abort.\n\n\n  if (!isViablePhoneNumber(number)) {\n    return {};\n  }\n\n  var result = {\n    number: number\n  };\n\n  if (ext) {\n    result.ext = ext;\n  }\n\n  return result;\n}\n/**\r\n * @param  {object} - `{ ?number, ?extension }`.\r\n * @return {string} Phone URI (RFC 3966).\r\n */\n\nexport function formatRFC3966(_ref) {\n  var number = _ref.number,\n      ext = _ref.ext;\n\n  if (!number) {\n    return '';\n  }\n\n  if (number[0] !== '+') {\n    throw new Error(\"\\\"formatRFC3966()\\\" expects \\\"number\\\" to be in E.164 format.\");\n  }\n\n  return \"tel:\".concat(number).concat(ext ? ';ext=' + ext : '');\n}\n//# sourceMappingURL=RFC3966.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport Metadata from './metadata.js';\nimport isPossibleNumber from './isPossible.js';\nimport isValidNumber from './isValid.js'; // import checkNumberLength from './helpers/checkNumberLength.js'\n\nimport getNumberType from './helpers/getNumberType.js';\nimport getPossibleCountriesForNumber from './helpers/getPossibleCountriesForNumber.js';\nimport formatNumber from './format.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar PhoneNumber = /*#__PURE__*/function () {\n  /**\r\n   * @param  {string} countryOrCountryCallingCode\r\n   * @param  {string} nationalNumber\r\n   * @param  {object} metadata — Metadata JSON\r\n   * @return {PhoneNumber}\r\n   */\n  function PhoneNumber(countryOrCountryCallingCode, nationalNumber, metadata) {\n    _classCallCheck(this, PhoneNumber);\n\n    if (!countryOrCountryCallingCode) {\n      throw new TypeError('`country` or `countryCallingCode` not passed');\n    }\n\n    if (!nationalNumber) {\n      throw new TypeError('`nationalNumber` not passed');\n    }\n\n    if (!metadata) {\n      throw new TypeError('`metadata` not passed');\n    }\n\n    var _getCountryAndCountry = getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadata),\n        country = _getCountryAndCountry.country,\n        countryCallingCode = _getCountryAndCountry.countryCallingCode;\n\n    this.country = country;\n    this.countryCallingCode = countryCallingCode;\n    this.nationalNumber = nationalNumber;\n    this.number = '+' + this.countryCallingCode + this.nationalNumber; // Exclude `metadata` property output from `PhoneNumber.toString()`\n    // so that it doesn't clutter the console output of Node.js.\n    // Previously, when Node.js did `console.log(new PhoneNumber(...))`,\n    // it would output the whole internal structure of the `metadata` object.\n\n    this.getMetadata = function () {\n      return metadata;\n    };\n  }\n\n  _createClass(PhoneNumber, [{\n    key: \"setExt\",\n    value: function setExt(ext) {\n      this.ext = ext;\n    }\n  }, {\n    key: \"getPossibleCountries\",\n    value: function getPossibleCountries() {\n      if (this.country) {\n        return [this.country];\n      }\n\n      return getPossibleCountriesForNumber(this.countryCallingCode, this.nationalNumber, this.getMetadata());\n    }\n  }, {\n    key: \"isPossible\",\n    value: function isPossible() {\n      return isPossibleNumber(this, {\n        v2: true\n      }, this.getMetadata());\n    }\n  }, {\n    key: \"isValid\",\n    value: function isValid() {\n      return isValidNumber(this, {\n        v2: true\n      }, this.getMetadata());\n    }\n  }, {\n    key: \"isNonGeographic\",\n    value: function isNonGeographic() {\n      var metadata = new Metadata(this.getMetadata());\n      return metadata.isNonGeographicCallingCode(this.countryCallingCode);\n    }\n  }, {\n    key: \"isEqual\",\n    value: function isEqual(phoneNumber) {\n      return this.number === phoneNumber.number && this.ext === phoneNumber.ext;\n    } // This function was originally meant to be an equivalent for `validatePhoneNumberLength()`,\n    // but later it was found out that it doesn't include the possible `TOO_SHORT` result\n    // returned from `parsePhoneNumberWithError()` in the original `validatePhoneNumberLength()`,\n    // so eventually I simply commented out this method from the `PhoneNumber` class\n    // and just left the `validatePhoneNumberLength()` function, even though that one would require\n    // and additional step to also validate the actual country / calling code of the phone number.\n    // validateLength() {\n    // \tconst metadata = new Metadata(this.getMetadata())\n    // \tmetadata.selectNumberingPlan(this.countryCallingCode)\n    // \tconst result = checkNumberLength(this.nationalNumber, metadata)\n    // \tif (result !== 'IS_POSSIBLE') {\n    // \t\treturn result\n    // \t}\n    // }\n\n  }, {\n    key: \"getType\",\n    value: function getType() {\n      return getNumberType(this, {\n        v2: true\n      }, this.getMetadata());\n    }\n  }, {\n    key: \"format\",\n    value: function format(_format, options) {\n      return formatNumber(this, _format, options ? _objectSpread(_objectSpread({}, options), {}, {\n        v2: true\n      }) : {\n        v2: true\n      }, this.getMetadata());\n    }\n  }, {\n    key: \"formatNational\",\n    value: function formatNational(options) {\n      return this.format('NATIONAL', options);\n    }\n  }, {\n    key: \"formatInternational\",\n    value: function formatInternational(options) {\n      return this.format('INTERNATIONAL', options);\n    }\n  }, {\n    key: \"getURI\",\n    value: function getURI(options) {\n      return this.format('RFC3966', options);\n    }\n  }]);\n\n  return PhoneNumber;\n}();\n\nexport { PhoneNumber as default };\n\nvar isCountryCode = function isCountryCode(value) {\n  return /^[A-Z]{2}$/.test(value);\n};\n\nfunction getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadataJson) {\n  var country;\n  var countryCallingCode;\n  var metadata = new Metadata(metadataJson); // If country code is passed then derive `countryCallingCode` from it.\n  // Also store the country code as `.country`.\n\n  if (isCountryCode(countryOrCountryCallingCode)) {\n    country = countryOrCountryCallingCode;\n    metadata.selectNumberingPlan(country);\n    countryCallingCode = metadata.countryCallingCode();\n  } else {\n    countryCallingCode = countryOrCountryCallingCode;\n    /* istanbul ignore if */\n\n    if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n      if (metadata.isNonGeographicCallingCode(countryCallingCode)) {\n        country = '001';\n      }\n    }\n  }\n\n  return {\n    country: country,\n    countryCallingCode: countryCallingCode\n  };\n}\n//# sourceMappingURL=PhoneNumber.js.map","import Metadata from './metadata.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport getNumberType from './helpers/getNumberType.js';\n/**\r\n * Checks if a given phone number is valid.\r\n *\r\n * isValid(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * If the `number` is a string, it will be parsed to an object,\r\n * but only if it contains only valid phone number characters (including punctuation).\r\n * If the `number` is an object, it is used as is.\r\n *\r\n * The optional `defaultCountry` argument is the default country.\r\n * I.e. it does not restrict to just that country,\r\n * e.g. in those cases where several countries share\r\n * the same phone numbering rules (NANPA, Britain, etc).\r\n * For example, even though the number `07624 369230`\r\n * belongs to the Isle of Man (\"IM\" country code)\r\n * calling `isValidNumber('07624369230', 'GB', metadata)`\r\n * still returns `true` because the country is not restricted to `GB`,\r\n * it's just that `GB` is the default one for the phone numbering rules.\r\n * For restricting the country see `isValidNumberForRegion()`\r\n * though restricting a country might not be a good idea.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n *\r\n * Examples:\r\n *\r\n * ```js\r\n * isValidNumber('+78005553535', metadata)\r\n * isValidNumber('8005553535', 'RU', metadata)\r\n * isValidNumber('88005553535', 'RU', metadata)\r\n * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata)\r\n * ```\r\n */\n\nexport default function isValidNumber(input, options, metadata) {\n  // If assigning the `{}` default value is moved to the arguments above,\n  // code coverage would decrease for some weird reason.\n  options = options || {};\n  metadata = new Metadata(metadata);\n  metadata.selectNumberingPlan(input.country, input.countryCallingCode); // By default, countries only have type regexps when it's required for\n  // distinguishing different countries having the same `countryCallingCode`.\n\n  if (metadata.hasTypes()) {\n    return getNumberType(input, options, metadata.metadata) !== undefined;\n  } // If there are no type regexps for this country in metadata then use\n  // `nationalNumberPattern` as a \"better than nothing\" replacement.\n\n\n  var nationalNumber = options.v2 ? input.nationalNumber : input.phone;\n  return matchesEntirely(nationalNumber, metadata.nationalNumberPattern());\n}\n//# sourceMappingURL=isValid.js.map","import Metadata from '../metadata.js';\nimport { VALID_DIGITS } from '../constants.js';\nvar CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])');\nexport default function stripIddPrefix(number, country, callingCode, metadata) {\n  if (!country) {\n    return;\n  } // Check if the number is IDD-prefixed.\n\n\n  var countryMetadata = new Metadata(metadata);\n  countryMetadata.selectNumberingPlan(country, callingCode);\n  var IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix());\n\n  if (number.search(IDDPrefixPattern) !== 0) {\n    return;\n  } // Strip IDD prefix.\n\n\n  number = number.slice(number.match(IDDPrefixPattern)[0].length); // If there're any digits after an IDD prefix,\n  // then those digits are a country calling code.\n  // Since no country code starts with a `0`,\n  // the code below validates that the next digit (if present) is not `0`.\n\n  var matchedGroups = number.match(CAPTURING_DIGIT_PATTERN);\n\n  if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\n    if (matchedGroups[1] === '0') {\n      return;\n    }\n  }\n\n  return number;\n}\n//# sourceMappingURL=stripIddPrefix.js.map","import extractNationalNumberFromPossiblyIncompleteNumber from './extractNationalNumberFromPossiblyIncompleteNumber.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport checkNumberLength from './checkNumberLength.js';\n/**\r\n * Strips national prefix and carrier code from a complete phone number.\r\n * The difference from the non-\"FromCompleteNumber\" function is that\r\n * it won't extract national prefix if the resultant number is too short\r\n * to be a complete number for the selected phone numbering plan.\r\n * @param  {string} number — Complete phone number digits.\r\n * @param  {Metadata} metadata — Metadata with a phone numbering plan selected.\r\n * @return {object} `{ nationalNumber: string, carrierCode: string? }`.\r\n */\n\nexport default function extractNationalNumber(number, metadata) {\n  // Parsing national prefixes and carrier codes\n  // is only required for local phone numbers\n  // but some people don't understand that\n  // and sometimes write international phone numbers\n  // with national prefixes (or maybe even carrier codes).\n  // http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\n  // Google's original library forgives such mistakes\n  // and so does this library, because it has been requested:\n  // https://github.com/catamphetamine/libphonenumber-js/issues/127\n  var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(number, metadata),\n      carrierCode = _extractNationalNumbe.carrierCode,\n      nationalNumber = _extractNationalNumbe.nationalNumber;\n\n  if (nationalNumber !== number) {\n    if (!shouldHaveExtractedNationalPrefix(number, nationalNumber, metadata)) {\n      // Don't strip the national prefix.\n      return {\n        nationalNumber: number\n      };\n    } // Check the national (significant) number length after extracting national prefix and carrier code.\n    // Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature.\n\n\n    if (metadata.possibleLengths()) {\n      // The number remaining after stripping the national prefix and carrier code\n      // should be long enough to have a possible length for the country.\n      // Otherwise, don't strip the national prefix and carrier code,\n      // since the original number could be a valid number.\n      // This check has been copy-pasted \"as is\" from Google's original library:\n      // https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250\n      // It doesn't check for the \"possibility\" of the original `number`.\n      // I guess it's fine not checking that one. It works as is anyway.\n      if (!isPossibleIncompleteNationalNumber(nationalNumber, metadata)) {\n        // Don't strip the national prefix.\n        return {\n          nationalNumber: number\n        };\n      }\n    }\n  }\n\n  return {\n    nationalNumber: nationalNumber,\n    carrierCode: carrierCode\n  };\n} // In some countries, the same digit could be a national prefix\n// or a leading digit of a valid phone number.\n// For example, in Russia, national prefix is `8`,\n// and also `800 555 35 35` is a valid number\n// in which `8` is not a national prefix, but the first digit\n// of a national (significant) number.\n// Same's with Belarus:\n// `82004910060` is a valid national (significant) number,\n// but `2004910060` is not.\n// To support such cases (to prevent the code from always stripping\n// national prefix), a condition is imposed: a national prefix\n// is not extracted when the original number is \"viable\" and the\n// resultant number is not, a \"viable\" national number being the one\n// that matches `national_number_pattern`.\n\nfunction shouldHaveExtractedNationalPrefix(nationalNumberBefore, nationalNumberAfter, metadata) {\n  // The equivalent in Google's code is:\n  // https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L2969-L3004\n  if (matchesEntirely(nationalNumberBefore, metadata.nationalNumberPattern()) && !matchesEntirely(nationalNumberAfter, metadata.nationalNumberPattern())) {\n    return false;\n  } // This \"is possible\" national number (length) check has been commented out\n  // because it's superceded by the (effectively) same check done in the\n  // `extractNationalNumber()` function after it calls `shouldHaveExtractedNationalPrefix()`.\n  // In other words, why run the same check twice if it could only be run once.\n  // // Check the national (significant) number length after extracting national prefix and carrier code.\n  // // Fixes a minor \"weird behavior\" bug: https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/57\n  // // (Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature).\n  // if (metadata.possibleLengths()) {\n  // \tif (isPossibleIncompleteNationalNumber(nationalNumberBefore, metadata) &&\n  // \t\t!isPossibleIncompleteNationalNumber(nationalNumberAfter, metadata)) {\n  // \t\treturn false\n  // \t}\n  // }\n\n\n  return true;\n}\n\nfunction isPossibleIncompleteNationalNumber(nationalNumber, metadata) {\n  switch (checkNumberLength(nationalNumber, metadata)) {\n    case 'TOO_SHORT':\n    case 'INVALID_LENGTH':\n      // This library ignores \"local-only\" phone numbers (for simplicity).\n      // See the readme for more info on what are \"local-only\" phone numbers.\n      // case 'IS_POSSIBLE_LOCAL_ONLY':\n      return false;\n\n    default:\n      return true;\n  }\n}\n//# sourceMappingURL=extractNationalNumber.js.map","/**\r\n * Strips any national prefix (such as 0, 1) present in a\r\n * (possibly incomplete) number provided.\r\n * \"Carrier codes\" are only used  in Colombia and Brazil,\r\n * and only when dialing within those countries from a mobile phone to a fixed line number.\r\n * Sometimes it won't actually strip national prefix\r\n * and will instead prepend some digits to the `number`:\r\n * for example, when number `2345678` is passed with `VI` country selected,\r\n * it will return `{ number: \"3402345678\" }`, because `340` area code is prepended.\r\n * @param {string} number — National number digits.\r\n * @param {object} metadata — Metadata with country selected.\r\n * @return {object} `{ nationalNumber: string, nationalPrefix: string? carrierCode: string? }`. Even if a national prefix was extracted, it's not necessarily present in the returned object, so don't rely on its presence in the returned object in order to find out whether a national prefix has been extracted or not.\r\n */\nexport default function extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) {\n  if (number && metadata.numberingPlan.nationalPrefixForParsing()) {\n    // See METADATA.md for the description of\n    // `national_prefix_for_parsing` and `national_prefix_transform_rule`.\n    // Attempt to parse the first digits as a national prefix.\n    var prefixPattern = new RegExp('^(?:' + metadata.numberingPlan.nationalPrefixForParsing() + ')');\n    var prefixMatch = prefixPattern.exec(number);\n\n    if (prefixMatch) {\n      var nationalNumber;\n      var carrierCode; // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n      // If a `national_prefix_for_parsing` has any \"capturing groups\"\n      // then it means that the national (significant) number is equal to\n      // those \"capturing groups\" transformed via `national_prefix_transform_rule`,\n      // and nothing could be said about the actual national prefix:\n      // what is it and was it even there.\n      // If a `national_prefix_for_parsing` doesn't have any \"capturing groups\",\n      // then everything it matches is a national prefix.\n      // To determine whether `national_prefix_for_parsing` matched any\n      // \"capturing groups\", the value of the result of calling `.exec()`\n      // is looked at, and if it has non-undefined values where there're\n      // \"capturing groups\" in the regular expression, then it means\n      // that \"capturing groups\" have been matched.\n      // It's not possible to tell whether there'll be any \"capturing gropus\"\n      // before the matching process, because a `national_prefix_for_parsing`\n      // could exhibit both behaviors.\n\n      var capturedGroupsCount = prefixMatch.length - 1;\n      var hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount];\n\n      if (metadata.nationalPrefixTransformRule() && hasCapturedGroups) {\n        nationalNumber = number.replace(prefixPattern, metadata.nationalPrefixTransformRule()); // If there's more than one captured group,\n        // then carrier code is the second one.\n\n        if (capturedGroupsCount > 1) {\n          carrierCode = prefixMatch[1];\n        }\n      } // If there're no \"capturing groups\",\n      // or if there're \"capturing groups\" but no\n      // `national_prefix_transform_rule`,\n      // then just strip the national prefix from the number,\n      // and possibly a carrier code.\n      // Seems like there could be more.\n      else {\n        // `prefixBeforeNationalNumber` is the whole substring matched by\n        // the `national_prefix_for_parsing` regular expression.\n        // There seem to be no guarantees that it's just a national prefix.\n        // For example, if there's a carrier code, it's gonna be a\n        // part of `prefixBeforeNationalNumber` too.\n        var prefixBeforeNationalNumber = prefixMatch[0];\n        nationalNumber = number.slice(prefixBeforeNationalNumber.length); // If there's at least one captured group,\n        // then carrier code is the first one.\n\n        if (hasCapturedGroups) {\n          carrierCode = prefixMatch[1];\n        }\n      } // Tries to guess whether a national prefix was present in the input.\n      // This is not something copy-pasted from Google's library:\n      // they don't seem to have an equivalent for that.\n      // So this isn't an \"officially approved\" way of doing something like that.\n      // But since there seems no other existing method, this library uses it.\n\n\n      var nationalPrefix;\n\n      if (hasCapturedGroups) {\n        var possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1]);\n        var possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup); // Example: an Argentinian (AR) phone number `0111523456789`.\n        // `prefixMatch[0]` is `01115`, and `$1` is `11`,\n        // and the rest of the phone number is `23456789`.\n        // The national number is transformed via `9$1` to `91123456789`.\n        // National prefix `0` is detected being present at the start.\n        // if (possibleNationalPrefix.indexOf(metadata.numberingPlan.nationalPrefix()) === 0) {\n\n        if (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) {\n          nationalPrefix = metadata.numberingPlan.nationalPrefix();\n        }\n      } else {\n        nationalPrefix = prefixMatch[0];\n      }\n\n      return {\n        nationalNumber: nationalNumber,\n        nationalPrefix: nationalPrefix,\n        carrierCode: carrierCode\n      };\n    }\n  }\n\n  return {\n    nationalNumber: number\n  };\n}\n//# sourceMappingURL=extractNationalNumberFromPossiblyIncompleteNumber.js.map","import stripIddPrefix from './stripIddPrefix.js';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js';\nimport Metadata from '../metadata.js';\nimport { MAX_LENGTH_COUNTRY_CODE } from '../constants.js';\n/**\r\n * Converts a phone number digits (possibly with a `+`)\r\n * into a calling code and the rest phone number digits.\r\n * The \"rest phone number digits\" could include\r\n * a national prefix, carrier code, and national\r\n * (significant) number.\r\n * @param  {string} number — Phone number digits (possibly with a `+`).\r\n * @param  {string} [country] — Default country.\r\n * @param  {string} [callingCode] — Default calling code (some phone numbering plans are non-geographic).\r\n * @param  {object} metadata\r\n * @return {object} `{ countryCallingCodeSource: string?, countryCallingCode: string?, number: string }`\r\n * @example\r\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\r\n * extractCountryCallingCode('2133734253', 'US', null, metadata)\r\n * extractCountryCallingCode('2133734253', null, '1', metadata)\r\n * extractCountryCallingCode('+12133734253', null, null, metadata)\r\n * extractCountryCallingCode('+12133734253', 'RU', null, metadata)\r\n */\n\nexport default function extractCountryCallingCode(number, country, callingCode, metadata) {\n  if (!number) {\n    return {};\n  }\n\n  var isNumberWithIddPrefix; // If this is not an international phone number,\n  // then either extract an \"IDD\" prefix, or extract a\n  // country calling code from a number by autocorrecting it\n  // by prepending a leading `+` in cases when it starts\n  // with the country calling code.\n  // https://wikitravel.org/en/International_dialling_prefix\n  // https://github.com/catamphetamine/libphonenumber-js/issues/376\n\n  if (number[0] !== '+') {\n    // Convert an \"out-of-country\" dialing phone number\n    // to a proper international phone number.\n    var numberWithoutIDD = stripIddPrefix(number, country, callingCode, metadata); // If an IDD prefix was stripped then\n    // convert the number to international one\n    // for subsequent parsing.\n\n    if (numberWithoutIDD && numberWithoutIDD !== number) {\n      isNumberWithIddPrefix = true;\n      number = '+' + numberWithoutIDD;\n    } else {\n      // Check to see if the number starts with the country calling code\n      // for the default country. If so, we remove the country calling code,\n      // and do some checks on the validity of the number before and after.\n      // https://github.com/catamphetamine/libphonenumber-js/issues/376\n      if (country || callingCode) {\n        var _extractCountryCallin = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata),\n            countryCallingCode = _extractCountryCallin.countryCallingCode,\n            shorterNumber = _extractCountryCallin.number;\n\n        if (countryCallingCode) {\n          return {\n            countryCallingCodeSource: 'FROM_NUMBER_WITHOUT_PLUS_SIGN',\n            countryCallingCode: countryCallingCode,\n            number: shorterNumber\n          };\n        }\n      }\n\n      return {\n        // No need to set it to `UNSPECIFIED`. It can be just `undefined`.\n        // countryCallingCodeSource: 'UNSPECIFIED',\n        number: number\n      };\n    }\n  } // Fast abortion: country codes do not begin with a '0'\n\n\n  if (number[1] === '0') {\n    return {};\n  }\n\n  metadata = new Metadata(metadata); // The thing with country phone codes\n  // is that they are orthogonal to each other\n  // i.e. there's no such country phone code A\n  // for which country phone code B exists\n  // where B starts with A.\n  // Therefore, while scanning digits,\n  // if a valid country code is found,\n  // that means that it is the country code.\n  //\n\n  var i = 2;\n\n  while (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\n    var _countryCallingCode = number.slice(1, i);\n\n    if (metadata.hasCallingCode(_countryCallingCode)) {\n      metadata.selectNumberingPlan(_countryCallingCode);\n      return {\n        countryCallingCodeSource: isNumberWithIddPrefix ? 'FROM_NUMBER_WITH_IDD' : 'FROM_NUMBER_WITH_PLUS_SIGN',\n        countryCallingCode: _countryCallingCode,\n        number: number.slice(i)\n      };\n    }\n\n    i++;\n  }\n\n  return {};\n} // The possible values for the returned `countryCallingCodeSource` are:\n//\n// Copy-pasted from:\n// https://github.com/google/libphonenumber/blob/master/resources/phonenumber.proto\n//\n// // The source from which the country_code is derived. This is not set in the\n// // general parsing method, but in the method that parses and keeps raw_input.\n// // New fields could be added upon request.\n// enum CountryCodeSource {\n//  // Default value returned if this is not set, because the phone number was\n//  // created using parse, not parseAndKeepRawInput. hasCountryCodeSource will\n//  // return false if this is the case.\n//  UNSPECIFIED = 0;\n//\n//  // The country_code is derived based on a phone number with a leading \"+\",\n//  // e.g. the French number \"+33 1 42 68 53 00\".\n//  FROM_NUMBER_WITH_PLUS_SIGN = 1;\n//\n//  // The country_code is derived based on a phone number with a leading IDD,\n//  // e.g. the French number \"011 33 1 42 68 53 00\", as it is dialled from US.\n//  FROM_NUMBER_WITH_IDD = 5;\n//\n//  // The country_code is derived based on a phone number without a leading\n//  // \"+\", e.g. the French number \"33 1 42 68 53 00\" when defaultCountry is\n//  // supplied as France.\n//  FROM_NUMBER_WITHOUT_PLUS_SIGN = 10;\n//\n//  // The country_code is derived NOT based on the phone number itself, but\n//  // from the defaultCountry parameter provided in the parsing function by the\n//  // clients. This happens mostly for numbers written in the national format\n//  // (without country code). For example, this would be set when parsing the\n//  // French number \"01 42 68 53 00\", when defaultCountry is supplied as\n//  // France.\n//  FROM_DEFAULT_COUNTRY = 20;\n// }\n//# sourceMappingURL=extractCountryCallingCode.js.map","import Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport extractNationalNumber from './extractNationalNumber.js';\nimport checkNumberLength from './checkNumberLength.js';\nimport getCountryCallingCode from '../getCountryCallingCode.js';\n/**\r\n * Sometimes some people incorrectly input international phone numbers\r\n * without the leading `+`. This function corrects such input.\r\n * @param  {string} number — Phone number digits.\r\n * @param  {string?} country\r\n * @param  {string?} callingCode\r\n * @param  {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`.\r\n */\n\nexport default function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata) {\n  var countryCallingCode = country ? getCountryCallingCode(country, metadata) : callingCode;\n\n  if (number.indexOf(countryCallingCode) === 0) {\n    metadata = new Metadata(metadata);\n    metadata.selectNumberingPlan(country, callingCode);\n    var possibleShorterNumber = number.slice(countryCallingCode.length);\n\n    var _extractNationalNumbe = extractNationalNumber(possibleShorterNumber, metadata),\n        possibleShorterNationalNumber = _extractNationalNumbe.nationalNumber;\n\n    var _extractNationalNumbe2 = extractNationalNumber(number, metadata),\n        nationalNumber = _extractNationalNumbe2.nationalNumber; // If the number was not valid before but is valid now,\n    // or if it was too long before, we consider the number\n    // with the country calling code stripped to be a better result\n    // and keep that instead.\n    // For example, in Germany (+49), `49` is a valid area code,\n    // so if a number starts with `49`, it could be both a valid\n    // national German number or an international number without\n    // a leading `+`.\n\n\n    if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) && matchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern()) || checkNumberLength(nationalNumber, metadata) === 'TOO_LONG') {\n      return {\n        countryCallingCode: countryCallingCode,\n        number: possibleShorterNumber\n      };\n    }\n  }\n\n  return {\n    number: number\n  };\n}\n//# sourceMappingURL=extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport Metadata from '../metadata.js';\nimport getNumberType from './getNumberType.js';\nexport default function getCountryByNationalNumber(nationalPhoneNumber, _ref) {\n  var countries = _ref.countries,\n      defaultCountry = _ref.defaultCountry,\n      metadata = _ref.metadata;\n  // Re-create `metadata` because it will be selecting a `country`.\n  metadata = new Metadata(metadata);\n  var matchingCountries = [];\n\n  for (var _iterator = _createForOfIteratorHelperLoose(countries), _step; !(_step = _iterator()).done;) {\n    var country = _step.value;\n    metadata.country(country); // \"Leading digits\" patterns are only defined for about 20% of all countries.\n    // By definition, matching \"leading digits\" is a sufficient but not a necessary\n    // condition for a phone number to belong to a country.\n    // The point of \"leading digits\" check is that it's the fastest one to get a match.\n    // https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\n    // I'd suppose that \"leading digits\" patterns are mutually exclusive for different countries\n    // because of the intended use of that feature.\n\n    if (metadata.leadingDigits()) {\n      if (nationalPhoneNumber && nationalPhoneNumber.search(metadata.leadingDigits()) === 0) {\n        return country;\n      }\n    } // Else perform full validation with all of those\n    // fixed-line/mobile/etc regular expressions.\n    else if (getNumberType({\n      phone: nationalPhoneNumber,\n      country: country\n    }, undefined, metadata.metadata)) {\n      // If the `defaultCountry` is among the `matchingCountries` then return it.\n      if (defaultCountry) {\n        if (country === defaultCountry) {\n          return country;\n        }\n\n        matchingCountries.push(country);\n      } else {\n        return country;\n      }\n    }\n  } // Return the first (\"main\") one of the `matchingCountries`.\n\n\n  if (matchingCountries.length > 0) {\n    return matchingCountries[0];\n  }\n}\n//# sourceMappingURL=getCountryByNationalNumber.js.map","import getCountryByNationalNumber from './getCountryByNationalNumber.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\nexport default function getCountryByCallingCode(callingCode, _ref) {\n  var nationalPhoneNumber = _ref.nationalNumber,\n      defaultCountry = _ref.defaultCountry,\n      metadata = _ref.metadata;\n\n  /* istanbul ignore if */\n  if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n    if (metadata.isNonGeographicCallingCode(callingCode)) {\n      return '001';\n    }\n  }\n\n  var possibleCountries = metadata.getCountryCodesForCallingCode(callingCode);\n\n  if (!possibleCountries) {\n    return;\n  } // If there's just one country corresponding to the country code,\n  // then just return it, without further phone number digits validation.\n\n\n  if (possibleCountries.length === 1) {\n    return possibleCountries[0];\n  }\n\n  return getCountryByNationalNumber(nationalPhoneNumber, {\n    countries: possibleCountries,\n    defaultCountry: defaultCountry,\n    metadata: metadata.metadata\n  });\n}\n//# sourceMappingURL=getCountryByCallingCode.js.map","// When phone numbers are written in `RFC3966` format — `\"tel:+12133734253\"` —\n// they can have their \"calling code\" part written separately in a `phone-context` parameter.\n// Example: `\"tel:12133734253;phone-context=+1\"`.\n// This function parses the full phone number from the local number and the `phone-context`\n// when the `phone-context` contains a `+` sign.\nimport { VALID_DIGITS // PLUS_CHARS\n} from '../constants.js';\nexport var PLUS_SIGN = '+';\nvar RFC3966_VISUAL_SEPARATOR_ = '[\\\\-\\\\.\\\\(\\\\)]?';\nvar RFC3966_PHONE_DIGIT_ = '(' + '[' + VALID_DIGITS + ']' + '|' + RFC3966_VISUAL_SEPARATOR_ + ')';\nvar RFC3966_GLOBAL_NUMBER_DIGITS_ = '^' + '\\\\' + PLUS_SIGN + RFC3966_PHONE_DIGIT_ + '*' + '[' + VALID_DIGITS + ']' + RFC3966_PHONE_DIGIT_ + '*' + '$';\n/**\r\n * Regular expression of valid global-number-digits for the phone-context\r\n * parameter, following the syntax defined in RFC3966.\r\n */\n\nvar RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_ = new RegExp(RFC3966_GLOBAL_NUMBER_DIGITS_, 'g'); // In this port of Google's library, we don't accept alpha characters in phone numbers.\n// const ALPHANUM_ = VALID_ALPHA_ + VALID_DIGITS\n\nvar ALPHANUM_ = VALID_DIGITS;\nvar RFC3966_DOMAINLABEL_ = '[' + ALPHANUM_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*';\nvar VALID_ALPHA_ = 'a-zA-Z';\nvar RFC3966_TOPLABEL_ = '[' + VALID_ALPHA_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*';\nvar RFC3966_DOMAINNAME_ = '^(' + RFC3966_DOMAINLABEL_ + '\\\\.)*' + RFC3966_TOPLABEL_ + '\\\\.?$';\n/**\r\n * Regular expression of valid domainname for the phone-context parameter,\r\n * following the syntax defined in RFC3966.\r\n */\n\nvar RFC3966_DOMAINNAME_PATTERN_ = new RegExp(RFC3966_DOMAINNAME_, 'g');\nexport var RFC3966_PREFIX_ = 'tel:';\nexport var RFC3966_PHONE_CONTEXT_ = ';phone-context=';\nexport var RFC3966_ISDN_SUBADDRESS_ = ';isub=';\n/**\r\n * Extracts the value of the phone-context parameter of `numberToExtractFrom`,\r\n * following the syntax defined in RFC3966.\r\n *\r\n * @param {string} numberToExtractFrom\r\n * @return {string|null} the extracted string (possibly empty), or `null` if no phone-context parameter is found.\r\n */\n\nexport default function extractPhoneContext(numberToExtractFrom) {\n  var indexOfPhoneContext = numberToExtractFrom.indexOf(RFC3966_PHONE_CONTEXT_); // If no phone-context parameter is present\n\n  if (indexOfPhoneContext < 0) {\n    return null;\n  }\n\n  var phoneContextStart = indexOfPhoneContext + RFC3966_PHONE_CONTEXT_.length; // If phone-context parameter is empty\n\n  if (phoneContextStart >= numberToExtractFrom.length) {\n    return '';\n  }\n\n  var phoneContextEnd = numberToExtractFrom.indexOf(';', phoneContextStart); // If phone-context is not the last parameter\n\n  if (phoneContextEnd >= 0) {\n    return numberToExtractFrom.substring(phoneContextStart, phoneContextEnd);\n  } else {\n    return numberToExtractFrom.substring(phoneContextStart);\n  }\n}\n/**\r\n * Returns whether the value of phoneContext follows the syntax defined in RFC3966.\r\n *\r\n * @param {string|null} phoneContext\r\n * @return {boolean}\r\n */\n\nexport function isPhoneContextValid(phoneContext) {\n  if (phoneContext === null) {\n    return true;\n  }\n\n  if (phoneContext.length === 0) {\n    return false;\n  } // Does phone-context value match pattern of global-number-digits or domainname.\n\n\n  return RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_.test(phoneContext) || RFC3966_DOMAINNAME_PATTERN_.test(phoneContext);\n}\n//# sourceMappingURL=extractPhoneContext.js.map","import extractPhoneContext, { isPhoneContextValid, PLUS_SIGN, RFC3966_PREFIX_, RFC3966_PHONE_CONTEXT_, RFC3966_ISDN_SUBADDRESS_ } from './extractPhoneContext.js';\nimport ParseError from '../ParseError.js';\n/**\r\n * @param  {string} numberToParse\r\n * @param  {string} nationalNumber\r\n * @return {}\r\n */\n\nexport default function extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(numberToParse, _ref) {\n  var extractFormattedPhoneNumber = _ref.extractFormattedPhoneNumber;\n  var phoneContext = extractPhoneContext(numberToParse);\n\n  if (!isPhoneContextValid(phoneContext)) {\n    throw new ParseError('NOT_A_NUMBER');\n  }\n\n  var phoneNumberString;\n\n  if (phoneContext === null) {\n    // Extract a possible number from the string passed in.\n    // (this strips leading characters that could not be the start of a phone number)\n    phoneNumberString = extractFormattedPhoneNumber(numberToParse) || '';\n  } else {\n    phoneNumberString = ''; // If the phone context contains a phone number prefix, we need to capture\n    // it, whereas domains will be ignored.\n\n    if (phoneContext.charAt(0) === PLUS_SIGN) {\n      phoneNumberString += phoneContext;\n    } // Now append everything between the \"tel:\" prefix and the phone-context.\n    // This should include the national number, an optional extension or\n    // isdn-subaddress component. Note we also handle the case when \"tel:\" is\n    // missing, as we have seen in some of the phone number inputs.\n    // In that case, we append everything from the beginning.\n\n\n    var indexOfRfc3966Prefix = numberToParse.indexOf(RFC3966_PREFIX_);\n    var indexOfNationalNumber; // RFC 3966 \"tel:\" prefix is preset at this stage because\n    // `isPhoneContextValid()` requires it to be present.\n\n    /* istanbul ignore else */\n\n    if (indexOfRfc3966Prefix >= 0) {\n      indexOfNationalNumber = indexOfRfc3966Prefix + RFC3966_PREFIX_.length;\n    } else {\n      indexOfNationalNumber = 0;\n    }\n\n    var indexOfPhoneContext = numberToParse.indexOf(RFC3966_PHONE_CONTEXT_);\n    phoneNumberString += numberToParse.substring(indexOfNationalNumber, indexOfPhoneContext);\n  } // Delete the isdn-subaddress and everything after it if it is present.\n  // Note extension won't appear at the same time with isdn-subaddress\n  // according to paragraph 5.3 of the RFC3966 spec.\n\n\n  var indexOfIsdn = phoneNumberString.indexOf(RFC3966_ISDN_SUBADDRESS_);\n\n  if (indexOfIsdn > 0) {\n    phoneNumberString = phoneNumberString.substring(0, indexOfIsdn);\n  } // If both phone context and isdn-subaddress are absent but other\n  // parameters are present, the parameters are left in nationalNumber.\n  // This is because we are concerned about deleting content from a potential\n  // number string when there is no strong evidence that the number is\n  // actually written in RFC3966.\n\n\n  if (phoneNumberString !== '') {\n    return phoneNumberString;\n  }\n}\n//# sourceMappingURL=extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js.map","// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport { VALID_DIGITS, PLUS_CHARS, MIN_LENGTH_FOR_NSN, MAX_LENGTH_FOR_NSN } from './constants.js';\nimport ParseError from './ParseError.js';\nimport Metadata from './metadata.js';\nimport isViablePhoneNumber, { isViablePhoneNumberStart } from './helpers/isViablePhoneNumber.js';\nimport extractExtension from './helpers/extension/extractExtension.js';\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber.js';\nimport getCountryCallingCode from './getCountryCallingCode.js';\nimport { isPossibleNumber } from './isPossible.js'; // import { parseRFC3966 } from './helpers/RFC3966.js'\n\nimport PhoneNumber from './PhoneNumber.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode.js';\nimport extractNationalNumber from './helpers/extractNationalNumber.js';\nimport stripIddPrefix from './helpers/stripIddPrefix.js';\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js';\nimport extractFormattedPhoneNumberFromPossibleRfc3966NumberUri from './helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js'; // We don't allow input strings for parsing to be longer than 250 chars.\n// This prevents malicious input from consuming CPU.\n\nvar MAX_INPUT_STRING_LENGTH = 250; // This consists of the plus symbol, digits, and arabic-indic digits.\n\nvar PHONE_NUMBER_START_PATTERN = new RegExp('[' + PLUS_CHARS + VALID_DIGITS + ']'); // Regular expression of trailing characters that we want to remove.\n// A trailing `#` is sometimes used when writing phone numbers with extensions in US.\n// Example: \"+1 (645) 123 1234-910#\" number has extension \"910\".\n\nvar AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + VALID_DIGITS + '#' + ']+$');\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false; // Examples:\n//\n// ```js\n// parse('8 (800) 555-35-35', 'RU')\n// parse('8 (800) 555-35-35', 'RU', metadata)\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } })\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } }, metadata)\n// parse('+7 800 555 35 35')\n// parse('+7 800 555 35 35', metadata)\n// ```\n//\n\n/**\r\n * Parses a phone number.\r\n *\r\n * parse('123456789', { defaultCountry: 'RU', v2: true }, metadata)\r\n * parse('123456789', { defaultCountry: 'RU' }, metadata)\r\n * parse('123456789', undefined, metadata)\r\n *\r\n * @param  {string} input\r\n * @param  {object} [options]\r\n * @param  {object} metadata\r\n * @return {object|PhoneNumber?} If `options.v2: true` flag is passed, it returns a `PhoneNumber?` instance. Otherwise, returns an object of shape `{ phone: '...', country: '...' }` (or just `{}` if no phone number was parsed).\r\n */\n\nexport default function parse(text, options, metadata) {\n  // If assigning the `{}` default value is moved to the arguments above,\n  // code coverage would decrease for some weird reason.\n  options = options || {};\n  metadata = new Metadata(metadata); // Validate `defaultCountry`.\n\n  if (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\n    if (options.v2) {\n      throw new ParseError('INVALID_COUNTRY');\n    }\n\n    throw new Error(\"Unknown country: \".concat(options.defaultCountry));\n  } // Parse the phone number.\n\n\n  var _parseInput = parseInput(text, options.v2, options.extract),\n      formattedPhoneNumber = _parseInput.number,\n      ext = _parseInput.ext,\n      error = _parseInput.error; // If the phone number is not viable then return nothing.\n\n\n  if (!formattedPhoneNumber) {\n    if (options.v2) {\n      if (error === 'TOO_SHORT') {\n        throw new ParseError('TOO_SHORT');\n      }\n\n      throw new ParseError('NOT_A_NUMBER');\n    }\n\n    return {};\n  }\n\n  var _parsePhoneNumber = parsePhoneNumber(formattedPhoneNumber, options.defaultCountry, options.defaultCallingCode, metadata),\n      country = _parsePhoneNumber.country,\n      nationalNumber = _parsePhoneNumber.nationalNumber,\n      countryCallingCode = _parsePhoneNumber.countryCallingCode,\n      countryCallingCodeSource = _parsePhoneNumber.countryCallingCodeSource,\n      carrierCode = _parsePhoneNumber.carrierCode;\n\n  if (!metadata.hasSelectedNumberingPlan()) {\n    if (options.v2) {\n      throw new ParseError('INVALID_COUNTRY');\n    }\n\n    return {};\n  } // Validate national (significant) number length.\n\n\n  if (!nationalNumber || nationalNumber.length < MIN_LENGTH_FOR_NSN) {\n    // Won't throw here because the regexp already demands length > 1.\n\n    /* istanbul ignore if */\n    if (options.v2) {\n      throw new ParseError('TOO_SHORT');\n    } // Google's demo just throws an error in this case.\n\n\n    return {};\n  } // Validate national (significant) number length.\n  //\n  // A sidenote:\n  //\n  // They say that sometimes national (significant) numbers\n  // can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany).\n  // https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36\n  // Such numbers will just be discarded.\n  //\n\n\n  if (nationalNumber.length > MAX_LENGTH_FOR_NSN) {\n    if (options.v2) {\n      throw new ParseError('TOO_LONG');\n    } // Google's demo just throws an error in this case.\n\n\n    return {};\n  }\n\n  if (options.v2) {\n    var phoneNumber = new PhoneNumber(countryCallingCode, nationalNumber, metadata.metadata);\n\n    if (country) {\n      phoneNumber.country = country;\n    }\n\n    if (carrierCode) {\n      phoneNumber.carrierCode = carrierCode;\n    }\n\n    if (ext) {\n      phoneNumber.ext = ext;\n    }\n\n    phoneNumber.__countryCallingCodeSource = countryCallingCodeSource;\n    return phoneNumber;\n  } // Check if national phone number pattern matches the number.\n  // National number pattern is different for each country,\n  // even for those ones which are part of the \"NANPA\" group.\n\n\n  var valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ? matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) : false;\n\n  if (!options.extended) {\n    return valid ? result(country, nationalNumber, ext) : {};\n  } // isInternational: countryCallingCode !== undefined\n\n\n  return {\n    country: country,\n    countryCallingCode: countryCallingCode,\n    carrierCode: carrierCode,\n    valid: valid,\n    possible: valid ? true : options.extended === true && metadata.possibleLengths() && isPossibleNumber(nationalNumber, metadata) ? true : false,\n    phone: nationalNumber,\n    ext: ext\n  };\n}\n/**\r\n * Extracts a formatted phone number from text.\r\n * Doesn't guarantee that the extracted phone number\r\n * is a valid phone number (for example, doesn't validate its length).\r\n * @param  {string} text\r\n * @param  {boolean} [extract] — If `false`, then will parse the entire `text` as a phone number.\r\n * @param  {boolean} [throwOnError] — By default, it won't throw if the text is too long.\r\n * @return {string}\r\n * @example\r\n * // Returns \"(213) 373-4253\".\r\n * extractFormattedPhoneNumber(\"Call (213) 373-4253 for assistance.\")\r\n */\n\nfunction _extractFormattedPhoneNumber(text, extract, throwOnError) {\n  if (!text) {\n    return;\n  }\n\n  if (text.length > MAX_INPUT_STRING_LENGTH) {\n    if (throwOnError) {\n      throw new ParseError('TOO_LONG');\n    }\n\n    return;\n  }\n\n  if (extract === false) {\n    return text;\n  } // Attempt to extract a possible number from the string passed in\n\n\n  var startsAt = text.search(PHONE_NUMBER_START_PATTERN);\n\n  if (startsAt < 0) {\n    return;\n  }\n\n  return text // Trim everything to the left of the phone number\n  .slice(startsAt) // Remove trailing non-numerical characters\n  .replace(AFTER_PHONE_NUMBER_END_PATTERN, '');\n}\n/**\r\n * @param  {string} text - Input.\r\n * @param  {boolean} v2 - Legacy API functions don't pass `v2: true` flag.\r\n * @param  {boolean} [extract] - Whether to extract a phone number from `text`, or attempt to parse the entire text as a phone number.\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\n\nfunction parseInput(text, v2, extract) {\n  // // Parse RFC 3966 phone number URI.\n  // if (text && text.indexOf('tel:') === 0) {\n  // \treturn parseRFC3966(text)\n  // }\n  // let number = extractFormattedPhoneNumber(text, extract, v2)\n  var number = extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(text, {\n    extractFormattedPhoneNumber: function extractFormattedPhoneNumber(text) {\n      return _extractFormattedPhoneNumber(text, extract, v2);\n    }\n  }); // If the phone number is not viable, then abort.\n\n  if (!number) {\n    return {};\n  }\n\n  if (!isViablePhoneNumber(number)) {\n    if (isViablePhoneNumberStart(number)) {\n      return {\n        error: 'TOO_SHORT'\n      };\n    }\n\n    return {};\n  } // Attempt to parse extension first, since it doesn't require region-specific\n  // data and we want to have the non-normalised number here.\n\n\n  var withExtensionStripped = extractExtension(number);\n\n  if (withExtensionStripped.ext) {\n    return withExtensionStripped;\n  }\n\n  return {\n    number: number\n  };\n}\n/**\r\n * Creates `parse()` result object.\r\n */\n\n\nfunction result(country, nationalNumber, ext) {\n  var result = {\n    country: country,\n    phone: nationalNumber\n  };\n\n  if (ext) {\n    result.ext = ext;\n  }\n\n  return result;\n}\n/**\r\n * Parses a viable phone number.\r\n * @param {string} formattedPhoneNumber — Example: \"(213) 373-4253\".\r\n * @param {string} [defaultCountry]\r\n * @param {string} [defaultCallingCode]\r\n * @param {Metadata} metadata\r\n * @return {object} Returns `{ country: string?, countryCallingCode: string?, nationalNumber: string? }`.\r\n */\n\n\nfunction parsePhoneNumber(formattedPhoneNumber, defaultCountry, defaultCallingCode, metadata) {\n  // Extract calling code from phone number.\n  var _extractCountryCallin = extractCountryCallingCode(parseIncompletePhoneNumber(formattedPhoneNumber), defaultCountry, defaultCallingCode, metadata.metadata),\n      countryCallingCodeSource = _extractCountryCallin.countryCallingCodeSource,\n      countryCallingCode = _extractCountryCallin.countryCallingCode,\n      number = _extractCountryCallin.number; // Choose a country by `countryCallingCode`.\n\n\n  var country;\n\n  if (countryCallingCode) {\n    metadata.selectNumberingPlan(countryCallingCode);\n  } // If `formattedPhoneNumber` is passed in \"national\" format\n  // then `number` is defined and `countryCallingCode` is `undefined`.\n  else if (number && (defaultCountry || defaultCallingCode)) {\n    metadata.selectNumberingPlan(defaultCountry, defaultCallingCode);\n\n    if (defaultCountry) {\n      country = defaultCountry;\n    } else {\n      /* istanbul ignore if */\n      if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n        if (metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n          country = '001';\n        }\n      }\n    }\n\n    countryCallingCode = defaultCallingCode || getCountryCallingCode(defaultCountry, metadata.metadata);\n  } else return {};\n\n  if (!number) {\n    return {\n      countryCallingCodeSource: countryCallingCodeSource,\n      countryCallingCode: countryCallingCode\n    };\n  }\n\n  var _extractNationalNumbe = extractNationalNumber(parseIncompletePhoneNumber(number), metadata),\n      nationalNumber = _extractNationalNumbe.nationalNumber,\n      carrierCode = _extractNationalNumbe.carrierCode; // Sometimes there are several countries\n  // corresponding to the same country phone code\n  // (e.g. NANPA countries all having `1` country phone code).\n  // Therefore, to reliably determine the exact country,\n  // national (significant) number should have been parsed first.\n  //\n  // When `metadata.json` is generated, all \"ambiguous\" country phone codes\n  // get their countries populated with the full set of\n  // \"phone number type\" regular expressions.\n  //\n\n\n  var exactCountry = getCountryByCallingCode(countryCallingCode, {\n    nationalNumber: nationalNumber,\n    defaultCountry: defaultCountry,\n    metadata: metadata\n  });\n\n  if (exactCountry) {\n    country = exactCountry;\n    /* istanbul ignore if */\n\n    if (exactCountry === '001') {// Can't happen with `USE_NON_GEOGRAPHIC_COUNTRY_CODE` being `false`.\n      // If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` is set to `true` for some reason,\n      // then remove the \"istanbul ignore if\".\n    } else {\n      metadata.country(country);\n    }\n  }\n\n  return {\n    country: country,\n    countryCallingCode: countryCallingCode,\n    countryCallingCodeSource: countryCallingCodeSource,\n    nationalNumber: nationalNumber,\n    carrierCode: carrierCode\n  };\n}\n//# sourceMappingURL=parse.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport parse from './parse.js';\nexport default function parsePhoneNumberWithError(text, options, metadata) {\n  return parse(text, _objectSpread(_objectSpread({}, options), {}, {\n    v2: true\n  }), metadata);\n}\n//# sourceMappingURL=parsePhoneNumberWithError_.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport parsePhoneNumberWithError from './parsePhoneNumberWithError_.js';\nimport ParseError from './ParseError.js';\nimport { isSupportedCountry } from './metadata.js';\nexport default function parsePhoneNumber(text, options, metadata) {\n  // Validate `defaultCountry`.\n  if (options && options.defaultCountry && !isSupportedCountry(options.defaultCountry, metadata)) {\n    options = _objectSpread(_objectSpread({}, options), {}, {\n      defaultCountry: undefined\n    });\n  } // Parse phone number.\n\n\n  try {\n    return parsePhoneNumberWithError(text, options, metadata);\n  } catch (error) {\n    /* istanbul ignore else */\n    if (error instanceof ParseError) {//\n    } else {\n      throw error;\n    }\n  }\n}\n//# sourceMappingURL=parsePhoneNumber_.js.map","import normalizeArguments from './normalizeArguments.js';\nimport parsePhoneNumber_ from './parsePhoneNumber_.js';\nexport default function parsePhoneNumber() {\n  var _normalizeArguments = normalizeArguments(arguments),\n      text = _normalizeArguments.text,\n      options = _normalizeArguments.options,\n      metadata = _normalizeArguments.metadata;\n\n  return parsePhoneNumber_(text, options, metadata);\n}\n//# sourceMappingURL=parsePhoneNumber.js.map","import withMetadataArgument from './withMetadataArgument.js'\r\nimport { default as _parsePhoneNumber } from '../../core/index.js'\r\n\r\nexport function parsePhoneNumber() {\r\n\treturn withMetadataArgument(_parsePhoneNumber, arguments)\r\n}","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\r\n// importing system which is even uncapable of importing \"*.json\" files.\r\nimport metadata from '../../metadata.min.json.js'\r\n\r\nexport default function withMetadataArgument(func, _arguments) {\r\n\tvar args = Array.prototype.slice.call(_arguments)\r\n\targs.push(metadata)\r\n\treturn func.apply(this, args)\r\n}"],"sourceRoot":""}