{"version":3,"sources":["node_modules/libphonenumber-js/metadata.min.json.js","node_modules/libphonenumber-js/min/exports/withMetadataArgument.js","node_modules/libphonenumber-js/es6/constants.js","node_modules/libphonenumber-js/es6/ParseError.js","node_modules/libphonenumber-js/es6/tools/semver-compare.js","node_modules/libphonenumber-js/es6/helpers/isObject.js","node_modules/libphonenumber-js/es6/metadata.js","node_modules/libphonenumber-js/es6/helpers/extension/createExtensionPattern.js","node_modules/libphonenumber-js/es6/helpers/isViablePhoneNumber.js","node_modules/libphonenumber-js/es6/helpers/extension/extractExtension.js","node_modules/libphonenumber-js/es6/helpers/parseDigits.js","node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.js","node_modules/libphonenumber-js/es6/helpers/mergeArrays.js","node_modules/libphonenumber-js/es6/helpers/checkNumberLength.js","node_modules/libphonenumber-js/es6/isPossible.js","node_modules/libphonenumber-js/es6/helpers/matchesEntirely.js","node_modules/libphonenumber-js/es6/helpers/getNumberType.js","node_modules/libphonenumber-js/es6/isValid.js","node_modules/libphonenumber-js/es6/helpers/getPossibleCountriesForNumber.js","node_modules/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.js","node_modules/libphonenumber-js/es6/helpers/formatNationalNumberUsingFormat.js","node_modules/libphonenumber-js/es6/helpers/getIddPrefix.js","node_modules/libphonenumber-js/es6/helpers/RFC3966.js","node_modules/libphonenumber-js/es6/format.js","node_modules/libphonenumber-js/es6/PhoneNumber.js","node_modules/libphonenumber-js/es6/helpers/stripIddPrefix.js","node_modules/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","node_modules/libphonenumber-js/es6/helpers/extractNationalNumber.js","node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.js","node_modules/libphonenumber-js/es6/helpers/getCountryByNationalNumber.js","node_modules/libphonenumber-js/es6/helpers/getCountryByCallingCode.js","node_modules/libphonenumber-js/es6/helpers/extractPhoneContext.js","node_modules/libphonenumber-js/es6/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js","node_modules/libphonenumber-js/es6/parse.js","node_modules/libphonenumber-js/es6/normalizeArguments.js","node_modules/libphonenumber-js/es6/legacy/parse.js","node_modules/libphonenumber-js/index.es6.exports/parse.js","node_modules/libphonenumber-js/es6/legacy/format.js","node_modules/libphonenumber-js/index.es6.exports/format.js","node_modules/libphonenumber-js/es6/parsePhoneNumberWithError_.js","node_modules/libphonenumber-js/es6/parsePhoneNumberWithError.js","node_modules/libphonenumber-js/es6/parsePhoneNumber_.js","node_modules/libphonenumber-js/es6/parsePhoneNumber.js","node_modules/libphonenumber-js/es6/getCountries.js","node_modules/libphonenumber-js/min/exports/parsePhoneNumberWithError.js","node_modules/libphonenumber-js/min/exports/parsePhoneNumber.js","node_modules/libphonenumber-js/min/exports/getCountries.js","node_modules/libphonenumber-js/min/exports/getCountryCallingCode.js","node_modules/libphonenumber-js/es6/legacy/getNumberType.js","node_modules/libphonenumber-js/es6/legacy/isValidNumber.js","node_modules/libphonenumber-js/index.es6.exports/isValidNumber.js"],"sourcesContent":["// 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 {\n \"version\": 4,\n \"country_calling_codes\": {\n \"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\"],\n \"7\": [\"RU\", \"KZ\"],\n \"20\": [\"EG\"],\n \"27\": [\"ZA\"],\n \"30\": [\"GR\"],\n \"31\": [\"NL\"],\n \"32\": [\"BE\"],\n \"33\": [\"FR\"],\n \"34\": [\"ES\"],\n \"36\": [\"HU\"],\n \"39\": [\"IT\", \"VA\"],\n \"40\": [\"RO\"],\n \"41\": [\"CH\"],\n \"43\": [\"AT\"],\n \"44\": [\"GB\", \"GG\", \"IM\", \"JE\"],\n \"45\": [\"DK\"],\n \"46\": [\"SE\"],\n \"47\": [\"NO\", \"SJ\"],\n \"48\": [\"PL\"],\n \"49\": [\"DE\"],\n \"51\": [\"PE\"],\n \"52\": [\"MX\"],\n \"53\": [\"CU\"],\n \"54\": [\"AR\"],\n \"55\": [\"BR\"],\n \"56\": [\"CL\"],\n \"57\": [\"CO\"],\n \"58\": [\"VE\"],\n \"60\": [\"MY\"],\n \"61\": [\"AU\", \"CC\", \"CX\"],\n \"62\": [\"ID\"],\n \"63\": [\"PH\"],\n \"64\": [\"NZ\"],\n \"65\": [\"SG\"],\n \"66\": [\"TH\"],\n \"81\": [\"JP\"],\n \"82\": [\"KR\"],\n \"84\": [\"VN\"],\n \"86\": [\"CN\"],\n \"90\": [\"TR\"],\n \"91\": [\"IN\"],\n \"92\": [\"PK\"],\n \"93\": [\"AF\"],\n \"94\": [\"LK\"],\n \"95\": [\"MM\"],\n \"98\": [\"IR\"],\n \"211\": [\"SS\"],\n \"212\": [\"MA\", \"EH\"],\n \"213\": [\"DZ\"],\n \"216\": [\"TN\"],\n \"218\": [\"LY\"],\n \"220\": [\"GM\"],\n \"221\": [\"SN\"],\n \"222\": [\"MR\"],\n \"223\": [\"ML\"],\n \"224\": [\"GN\"],\n \"225\": [\"CI\"],\n \"226\": [\"BF\"],\n \"227\": [\"NE\"],\n \"228\": [\"TG\"],\n \"229\": [\"BJ\"],\n \"230\": [\"MU\"],\n \"231\": [\"LR\"],\n \"232\": [\"SL\"],\n \"233\": [\"GH\"],\n \"234\": [\"NG\"],\n \"235\": [\"TD\"],\n \"236\": [\"CF\"],\n \"237\": [\"CM\"],\n \"238\": [\"CV\"],\n \"239\": [\"ST\"],\n \"240\": [\"GQ\"],\n \"241\": [\"GA\"],\n \"242\": [\"CG\"],\n \"243\": [\"CD\"],\n \"244\": [\"AO\"],\n \"245\": [\"GW\"],\n \"246\": [\"IO\"],\n \"247\": [\"AC\"],\n \"248\": [\"SC\"],\n \"249\": [\"SD\"],\n \"250\": [\"RW\"],\n \"251\": [\"ET\"],\n \"252\": [\"SO\"],\n \"253\": [\"DJ\"],\n \"254\": [\"KE\"],\n \"255\": [\"TZ\"],\n \"256\": [\"UG\"],\n \"257\": [\"BI\"],\n \"258\": [\"MZ\"],\n \"260\": [\"ZM\"],\n \"261\": [\"MG\"],\n \"262\": [\"RE\", \"YT\"],\n \"263\": [\"ZW\"],\n \"264\": [\"NA\"],\n \"265\": [\"MW\"],\n \"266\": [\"LS\"],\n \"267\": [\"BW\"],\n \"268\": [\"SZ\"],\n \"269\": [\"KM\"],\n \"290\": [\"SH\", \"TA\"],\n \"291\": [\"ER\"],\n \"297\": [\"AW\"],\n \"298\": [\"FO\"],\n \"299\": [\"GL\"],\n \"350\": [\"GI\"],\n \"351\": [\"PT\"],\n \"352\": [\"LU\"],\n \"353\": [\"IE\"],\n \"354\": [\"IS\"],\n \"355\": [\"AL\"],\n \"356\": [\"MT\"],\n \"357\": [\"CY\"],\n \"358\": [\"FI\", \"AX\"],\n \"359\": [\"BG\"],\n \"370\": [\"LT\"],\n \"371\": [\"LV\"],\n \"372\": [\"EE\"],\n \"373\": [\"MD\"],\n \"374\": [\"AM\"],\n \"375\": [\"BY\"],\n \"376\": [\"AD\"],\n \"377\": [\"MC\"],\n \"378\": [\"SM\"],\n \"380\": [\"UA\"],\n \"381\": [\"RS\"],\n \"382\": [\"ME\"],\n \"383\": [\"XK\"],\n \"385\": [\"HR\"],\n \"386\": [\"SI\"],\n \"387\": [\"BA\"],\n \"389\": [\"MK\"],\n \"420\": [\"CZ\"],\n \"421\": [\"SK\"],\n \"423\": [\"LI\"],\n \"500\": [\"FK\"],\n \"501\": [\"BZ\"],\n \"502\": [\"GT\"],\n \"503\": [\"SV\"],\n \"504\": [\"HN\"],\n \"505\": [\"NI\"],\n \"506\": [\"CR\"],\n \"507\": [\"PA\"],\n \"508\": [\"PM\"],\n \"509\": [\"HT\"],\n \"590\": [\"GP\", \"BL\", \"MF\"],\n \"591\": [\"BO\"],\n \"592\": [\"GY\"],\n \"593\": [\"EC\"],\n \"594\": [\"GF\"],\n \"595\": [\"PY\"],\n \"596\": [\"MQ\"],\n \"597\": [\"SR\"],\n \"598\": [\"UY\"],\n \"599\": [\"CW\", \"BQ\"],\n \"670\": [\"TL\"],\n \"672\": [\"NF\"],\n \"673\": [\"BN\"],\n \"674\": [\"NR\"],\n \"675\": [\"PG\"],\n \"676\": [\"TO\"],\n \"677\": [\"SB\"],\n \"678\": [\"VU\"],\n \"679\": [\"FJ\"],\n \"680\": [\"PW\"],\n \"681\": [\"WF\"],\n \"682\": [\"CK\"],\n \"683\": [\"NU\"],\n \"685\": [\"WS\"],\n \"686\": [\"KI\"],\n \"687\": [\"NC\"],\n \"688\": [\"TV\"],\n \"689\": [\"PF\"],\n \"690\": [\"TK\"],\n \"691\": [\"FM\"],\n \"692\": [\"MH\"],\n \"850\": [\"KP\"],\n \"852\": [\"HK\"],\n \"853\": [\"MO\"],\n \"855\": [\"KH\"],\n \"856\": [\"LA\"],\n \"880\": [\"BD\"],\n \"886\": [\"TW\"],\n \"960\": [\"MV\"],\n \"961\": [\"LB\"],\n \"962\": [\"JO\"],\n \"963\": [\"SY\"],\n \"964\": [\"IQ\"],\n \"965\": [\"KW\"],\n \"966\": [\"SA\"],\n \"967\": [\"YE\"],\n \"968\": [\"OM\"],\n \"970\": [\"PS\"],\n \"971\": [\"AE\"],\n \"972\": [\"IL\"],\n \"973\": [\"BH\"],\n \"974\": [\"QA\"],\n \"975\": [\"BT\"],\n \"976\": [\"MN\"],\n \"977\": [\"NP\"],\n \"992\": [\"TJ\"],\n \"993\": [\"TM\"],\n \"994\": [\"AZ\"],\n \"995\": [\"GE\"],\n \"996\": [\"KG\"],\n \"998\": [\"UZ\"]\n },\n \"countries\": {\n \"AC\": [\"247\", \"00\", \"(?:[01589]\\\\d|[46])\\\\d{4}\", [5, 6]],\n \"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\"]]]],\n \"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\"],\n \"AF\": [\"93\", \"00\", \"[2-7]\\\\d{8}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2-7]\"], \"0$1\"]], \"0\"],\n \"AG\": [\"1\", \"011\", \"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([457]\\\\d{6})$|1\", \"268$1\", 0, \"268\"],\n \"AI\": [\"1\", \"011\", \"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2457]\\\\d{6})$|1\", \"264$1\", 0, \"264\"],\n \"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\"],\n \"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\"],\n \"AO\": [\"244\", \"00\", \"[29]\\\\d{8}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[29]\"]]]],\n \"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\"],\n \"AS\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([267]\\\\d{6})$|1\", \"684$1\", 0, \"684\"],\n \"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\"],\n \"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|94)[01]|83[0-389])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[0-36-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\"],\n \"AW\": [\"297\", \"00\", \"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[25-9]\"]]]],\n \"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\"],\n \"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\"],\n \"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\"],\n \"BB\": [\"1\", \"011\", \"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-9]\\\\d{6})$|1\", \"246$1\", 0, \"246\"],\n \"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\"],\n \"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\"],\n \"BF\": [\"226\", \"00\", \"[025-7]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[025-7]\"]]]],\n \"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\"],\n \"BH\": [\"973\", \"00\", \"[136-9]\\\\d{7}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[13679]|8[02-4679]\"]]]],\n \"BI\": [\"257\", \"00\", \"(?:[267]\\\\d|31)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2367]\"]]]],\n \"BJ\": [\"229\", \"00\", \"[24-689]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[24-689]\"]]]],\n \"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}\"]]],\n \"BM\": [\"1\", \"011\", \"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-9]\\\\d{6})$|1\", \"441$1\", 0, \"441\"],\n \"BN\": [\"673\", \"00\", \"[2-578]\\\\d{6}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-578]\"]]]],\n \"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)?\"],\n \"BQ\": [\"599\", \"00\", \"(?:[34]1|7\\\\d)\\\\d{5}\", [7], 0, 0, 0, 0, 0, 0, \"[347]\"],\n \"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\"],\n \"BS\": [\"1\", \"011\", \"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([3-8]\\\\d{6})$|1\", \"242$1\", 0, \"242\"],\n \"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\"]]]],\n \"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\"]]]],\n \"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\"],\n \"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\"]]]],\n \"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|73)|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]]]],\n \"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|94)[01]|83[0-389])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[0-36-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\"],\n \"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\"],\n \"CF\": [\"236\", \"00\", \"(?:[27]\\\\d{3}|8776)\\\\d{4}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[278]\"]]]],\n \"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]\"]]]],\n \"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\"],\n \"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\"]]]],\n \"CK\": [\"682\", \"00\", \"[2-578]\\\\d{4}\", [5], [[\"(\\\\d{2})(\\\\d{3})\", \"$1 $2\", [\"[2-578]\"]]]],\n \"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\"]]]],\n \"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\"]]]],\n \"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\"],\n \"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))?\"],\n \"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))\"],\n \"CU\": [\"53\", \"119\", \"[27]\\\\d{6,7}|[34]\\\\d{5,7}|63\\\\d{6}|(?:5|8\\\\d\\\\d)\\\\d{7}\", [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\"],\n \"CV\": [\"238\", \"0\", \"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[2-589]\"]]]],\n \"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]\"],\n \"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|94)[01]|83[0-389])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[0-36-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\"],\n \"CY\": [\"357\", \"00\", \"(?:[279]\\\\d|[58]0)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"[257-9]\"]]]],\n \"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\"]]]],\n \"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\"],\n \"DJ\": [\"253\", \"00\", \"(?:2\\\\d|77)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[27]\"]]]],\n \"DK\": [\"45\", \"00\", \"[2-9]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2-9]\"]]]],\n \"DM\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-7]\\\\d{6})$|1\", \"767$1\", 0, \"767\"],\n \"DO\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, 0, 0, 0, \"8001|8[024]9\"],\n \"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\"],\n \"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\"],\n \"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\"]]]],\n \"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\"],\n \"EH\": [\"212\", \"00\", \"[5-8]\\\\d{8}\", [9], 0, \"0\", 0, 0, 0, 0, \"528[89]\"],\n \"ER\": [\"291\", \"00\", \"[178]\\\\d{6}\", [7], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[178]\"], \"0$1\"]], \"0\"],\n \"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]\"]]]],\n \"ET\": [\"251\", \"00\", \"(?:11|[2-579]\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[1-579]\"], \"0$1\"]], \"0\"],\n \"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\"],\n \"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\"],\n \"FK\": [\"500\", \"00\", \"[2-7]\\\\d{4}\", [5]],\n \"FM\": [\"691\", \"00\", \"(?:[39]\\\\d\\\\d|820)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[389]\"]]]],\n \"FO\": [\"298\", \"00\", \"[2-9]\\\\d{5}\", [6], [[\"(\\\\d{6})\", \"$1\", [\"[2-9]\"]]], 0, 0, \"(10(?:01|[12]0|88))\"],\n \"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\"],\n \"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\"],\n \"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[0235])|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-2]))|(?: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\"],\n \"GD\": [\"1\", \"011\", \"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-9]\\\\d{6})$|1\", \"473$1\", 0, \"473\"],\n \"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\"],\n \"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\"],\n \"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]]]],\n \"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\"],\n \"GI\": [\"350\", \"00\", \"(?:[25]\\\\d|60)\\\\d{6}\", [8], [[\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"2\"]]]],\n \"GL\": [\"299\", \"00\", \"(?:19|[2-689]\\\\d|70)\\\\d{4}\", [6], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"19|[2-9]\"]]]],\n \"GM\": [\"220\", \"00\", \"[2-9]\\\\d{6}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-9]\"]]]],\n \"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]\"]]]],\n \"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}\"]]],\n \"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]\"]]]],\n \"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\"]]]],\n \"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\"]]]],\n \"GU\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-9]\\\\d{6})$|1\", \"671$1\", 0, \"671\"],\n \"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]\"]]]],\n \"GY\": [\"592\", \"001\", \"(?:[2-8]\\\\d{3}|9008)\\\\d{3}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-9]\"]]]],\n \"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\"],\n \"HN\": [\"504\", \"00\", \"8\\\\d{10}|[237-9]\\\\d{7}\", [8, 11], [[\"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"[237-9]\"]]]],\n \"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\"],\n \"HT\": [\"509\", \"00\", \"(?:[2-489]\\\\d|55)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"[2-589]\"]]]],\n \"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\"],\n \"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\"],\n \"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\"],\n \"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\"],\n \"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\"],\n \"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\"],\n \"IO\": [\"246\", \"00\", \"3\\\\d{6}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"3\"]]]],\n \"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\"],\n \"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\"],\n \"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\"],\n \"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]]]],\n \"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}\"]]],\n \"JM\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\", [10], 0, \"1\", 0, 0, 0, 0, \"658|876\"],\n \"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\"],\n \"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\"],\n \"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\"],\n \"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\"],\n \"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\"],\n \"KI\": [\"686\", \"00\", \"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\", [5, 8], 0, \"0\"],\n \"KM\": [\"269\", \"00\", \"[3478]\\\\d{6}\", [7], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[3478]\"]]]],\n \"KN\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-7]\\\\d{6})$|1\", \"869$1\", 0, \"869\"],\n \"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\"],\n \"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))?\"],\n \"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]\"]]]],\n \"KY\": [\"1\", \"011\", \"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-9]\\\\d{6})$|1\", \"345$1\", 0, \"345\"],\n \"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\"],\n \"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\"],\n \"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\"],\n \"LC\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-8]\\\\d{6})$|1\", \"758$1\", 0, \"758\"],\n \"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\"],\n \"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\"],\n \"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\"],\n \"LS\": [\"266\", \"00\", \"(?:[256]\\\\d\\\\d|800)\\\\d{5}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2568]\"]]]],\n \"LT\": [\"370\", \"00\", \"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\", [8], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"52[0-7]\"], \"(8-$1)\", 1], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"[7-9]\"], \"8 $1\", 1], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"37|4(?:[15]|6[1-8])\"], \"(8-$1)\", 1], [\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[3-6]\"], \"(8-$1)\", 1]], \"8\", 0, \"[08]\"],\n \"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)\"],\n \"LV\": [\"371\", \"00\", \"(?:[268]\\\\d|90)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[269]|8[01]\"]]]],\n \"LY\": [\"218\", \"00\", \"[2-9]\\\\d{8}\", [9], [[\"(\\\\d{2})(\\\\d{7})\", \"$1-$2\", [\"[2-9]\"], \"0$1\"]], \"0\"],\n \"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}\"]]],\n \"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\"],\n \"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\"],\n \"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\"],\n \"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}\"]]],\n \"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\"],\n \"MH\": [\"692\", \"011\", \"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[2-6]\"]]], \"1\"],\n \"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\"],\n \"ML\": [\"223\", \"00\", \"[24-9]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[24-9]\"]]]],\n \"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\"],\n \"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\"],\n \"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]\"]]]],\n \"MP\": [\"1\", \"011\", \"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\", [10], 0, \"1\", 0, \"([2-9]\\\\d{6})$|1\", \"670$1\", 0, \"670\"],\n \"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\"],\n \"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]\"]]]],\n \"MS\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([34]\\\\d{6})$|1\", \"664$1\", 0, \"664\"],\n \"MT\": [\"356\", \"00\", \"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2357-9]\"]]]],\n \"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\"],\n \"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\"],\n \"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\"],\n \"MX\": [\"52\", \"0[09]\", \"1(?:(?:22|44|7[27]|87|99)[1-9]|65[0-689])\\\\d{7}|(?:1(?:[01]\\\\d|2[13-9]|[35][1-9]|4[0-35-9]|6[0-46-9]|7[013-689]|8[1-69]|9[1-8])|[2-9]\\\\d)\\\\d{8}\", [10, 11], [[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"33|5[56]|81\"], 0, 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2-9]\"], 0, 1], [\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$2 $3 $4\", [\"1(?:33|5[56]|81)\"], 0, 1], [\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$2 $3 $4\", [\"1\"], 0, 1]], \"01\", 0, \"0(?:[12]|4[45])|1\", 0, 0, 0, 0, \"00\"],\n \"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\"],\n \"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\"]]]],\n \"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\"],\n \"NC\": [\"687\", \"00\", \"(?:050|[2-57-9]\\\\d\\\\d)\\\\d{3}\", [6], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1.$2.$3\", [\"[02-57-9]\"]]]],\n \"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[047]\"]]]],\n \"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\"],\n \"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\"],\n \"NI\": [\"505\", \"00\", \"(?:1800|[25-8]\\\\d{3})\\\\d{4}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[125-8]\"]]]],\n \"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\"],\n \"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]\"],\n \"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\"],\n \"NR\": [\"674\", \"00\", \"(?:444|(?:55|8\\\\d)\\\\d|666)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[4-68]\"]]]],\n \"NU\": [\"683\", \"00\", \"(?:[4-7]|888\\\\d)\\\\d{3}\", [4, 7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"8\"]]]],\n \"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\"],\n \"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]\"]]]],\n \"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\"]]]],\n \"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 \"],\n \"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\"]]]],\n \"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\"],\n \"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\"],\n \"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\"],\n \"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\"]]]],\n \"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\"],\n \"PR\": [\"1\", \"011\", \"(?:[589]\\\\d\\\\d|787)\\\\d{7}\", [10], 0, \"1\", 0, 0, 0, 0, \"787|939\"],\n \"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\"],\n \"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]\"]]]],\n \"PW\": [\"680\", \"01[12]\", \"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-9]\"]]]],\n \"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\"],\n \"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]\"]]]],\n \"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[27]|3[0-37]))\\\\d{4}\"], [\"8(?:1[019]|2[0156]|84|90)\\\\d{6}\"]]],\n \"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 \"],\n \"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\"],\n \"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\"],\n \"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\"],\n \"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\"],\n \"SB\": [\"677\", \"0[01]\", \"(?:[1-6]|[7-9]\\\\d\\\\d)\\\\d{4}\", [5, 7], [[\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"7|8[4-9]|9(?:[1-8]|9[0-8])\"]]]],\n \"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\"],\n \"SD\": [\"249\", \"00\", \"[19]\\\\d{8}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[19]\"], \"0$1\"]], \"0\"],\n \"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\"],\n \"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\"]]]],\n \"SH\": [\"290\", \"00\", \"(?:[256]\\\\d|8)\\\\d{3}\", [4, 5], 0, 0, 0, 0, 0, 0, \"[256]\"],\n \"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\"],\n \"SJ\": [\"47\", \"00\", \"0\\\\d{4}|(?:[489]\\\\d|79)\\\\d{6}\", [5, 8], 0, 0, 0, 0, 0, 0, \"79\"],\n \"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\"],\n \"SL\": [\"232\", \"00\", \"(?:[237-9]\\\\d|66)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"[236-9]\"], \"(0$1)\"]], \"0\"],\n \"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\"],\n \"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]\"]]]],\n \"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\"],\n \"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]\"]]]],\n \"SS\": [\"211\", \"00\", \"[19]\\\\d{8}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[19]\"], \"0$1\"]], \"0\"],\n \"ST\": [\"239\", \"00\", \"(?:22|9\\\\d)\\\\d{5}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[29]\"]]]],\n \"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]\"]]]],\n \"SX\": [\"1\", \"011\", \"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"(5\\\\d{6})$|1\", \"721$1\", 0, \"721\"],\n \"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\"],\n \"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\"]]]],\n \"TA\": [\"290\", \"00\", \"8\\\\d{3}\", [4], 0, 0, 0, 0, 0, 0, \"8\"],\n \"TC\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-479]\\\\d{6})$|1\", \"649$1\", 0, \"649\"],\n \"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\"],\n \"TG\": [\"228\", \"00\", \"[279]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[279]\"]]]],\n \"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\"],\n \"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\"],\n \"TK\": [\"690\", \"00\", \"[2-47]\\\\d{3,6}\", [4, 5, 6, 7]],\n \"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\"]]]],\n \"TM\": [\"993\", \"810\", \"[1-6]\\\\d{7}\", [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\", [\"6\"], \"8 $1\"]], \"8\", 0, 0, 0, 0, 0, 0, \"8~10\"],\n \"TN\": [\"216\", \"00\", \"[2-57-9]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-57-9]\"]]]],\n \"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]\"]]]],\n \"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\"],\n \"TT\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-46-8]\\\\d{6})$|1\", \"868$1\", 0, \"868\"],\n \"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\"]]]],\n \"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, \"#\"],\n \"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\"],\n \"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\"],\n \"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\"],\n \"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, [[\"(?:5056(?:[0-35-9]\\\\d|4[468])|7302[0-3]\\\\d)\\\\d{4}|(?: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[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-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}\"]]],\n \"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. \"],\n \"UZ\": [\"998\", \"810\", \"(?:20|33|[5-79]\\\\d|88)\\\\d{7}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[235-9]\"], \"8 $1\"]], \"8\", 0, 0, 0, 0, 0, 0, \"8~10\"],\n \"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\"],\n \"VC\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-7]\\\\d{6})$|1\", \"784$1\", 0, \"784\"],\n \"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\"],\n \"VG\": [\"1\", \"011\", \"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-578]\\\\d{6})$|1\", \"284$1\", 0, \"284\"],\n \"VI\": [\"1\", \"011\", \"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\", [10], 0, \"1\", 0, \"([2-9]\\\\d{6})$|1\", \"340$1\", 0, \"340\"],\n \"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\"],\n \"VU\": [\"678\", \"00\", \"[57-9]\\\\d{6}|(?:[238]\\\\d|48)\\\\d{3}\", [5, 7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[57-9]\"]]]],\n \"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\"]]]],\n \"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\"]]]],\n \"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\"],\n \"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\"],\n \"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}\"]]],\n \"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\"],\n \"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\"],\n \"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\"]\n },\n \"nonGeographic\": {\n \"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}\"]]],\n \"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}\"]]],\n \"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}\"]]],\n \"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}\"]]],\n \"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}\"]]],\n \"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}\"]]],\n \"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}\"]]],\n \"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}\"]]],\n \"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}\"]]]\n }\n};","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\n// importing system which is even uncapable of importing \"*.json\" files.\nimport metadata from '../../metadata.min.json.js';\nexport default function withMetadataArgument(func, _arguments) {\n var args = Array.prototype.slice.call(_arguments);\n args.push(metadata);\n return func.apply(this, args);\n}","// 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","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n}\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return _assertThisInitialized(self);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\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 var _super = _createSuper(ParseError);\n function ParseError(code) {\n var _this;\n _classCallCheck(this, ParseError);\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 return _createClass(ParseError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\nexport { ParseError as default };\n","// 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 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 if (a[1] && b[1]) {\n return a[1] > b[1] ? 1 : a[1] < b[1] ? -1 : 0;\n }\n return !a[1] && b[1] ? 1 : a[1] && !b[1] ? -1 : 0;\n}\n","var objectConstructor = {}.constructor;\nexport default function isObject(object) {\n return object !== undefined && object !== null && object.constructor === objectConstructor;\n}\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n 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 validateMetadata(metadata);\n this.metadata = metadata;\n setVersion.call(this, metadata);\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 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 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 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 if (countryCode && countryCode !== '001') {\n if (!this.hasCountry(countryCode)) {\n throw new Error(\"Unknown country: \".concat(countryCode));\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 this.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this);\n } else {\n this.numberingPlan = undefined;\n }\n return this;\n }\n }, {\n key: \"getCountryCodesForCallingCode\",\n value: function getCountryCodesForCallingCode(callingCode) {\n var countryCodes = this.countryCallingCodes()[callingCode];\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 return countryCodes;\n }\n }\n }, {\n key: \"getCountryCodeForCallingCode\",\n value: function getCountryCodeForCallingCode(callingCode) {\n var countryCodes = this.getCountryCodesForCallingCode(callingCode);\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 if (countryCode) {\n return this.getCountryMetadata(countryCode);\n }\n if (this.nonGeographic()) {\n var metadata = this.nonGeographic()[callingCode];\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 if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return this.metadata.countries['001'];\n }\n }\n } // Deprecated.\n }, {\n key: \"countryCallingCode\",\n value: function countryCallingCode() {\n return this.numberingPlan.callingCode();\n } // Deprecated.\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n return this.numberingPlan.IDDPrefix();\n } // Deprecated.\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n return this.numberingPlan.defaultIDDPrefix();\n } // Deprecated.\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n return this.numberingPlan.nationalNumberPattern();\n } // Deprecated.\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n return this.numberingPlan.possibleLengths();\n } // Deprecated.\n }, {\n key: \"formats\",\n value: function formats() {\n return this.numberingPlan.formats();\n } // Deprecated.\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n return this.numberingPlan.nationalPrefixForParsing();\n } // Deprecated.\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.numberingPlan.nationalPrefixTransformRule();\n } // Deprecated.\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.numberingPlan.leadingDigits();\n } // Deprecated.\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n return this.numberingPlan.hasTypes();\n } // Deprecated.\n }, {\n key: \"type\",\n value: function type(_type) {\n return this.numberingPlan.type(_type);\n } // Deprecated.\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 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 return Metadata;\n}();\nexport { Metadata as default };\nvar NumberingPlan = /*#__PURE__*/function () {\n function NumberingPlan(metadata, globalMetadataObject) {\n _classCallCheck(this, NumberingPlan);\n this.globalMetadataObject = globalMetadataObject;\n this.metadata = metadata;\n setVersion.call(this, globalMetadataObject.metadata);\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 key: \"getDefaultCountryMetadataForRegion\",\n value: function getDefaultCountryMetadataForRegion() {\n return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode());\n } // Is always present.\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 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 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 key: \"formats\",\n value: function formats() {\n var _this = this;\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 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 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 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 return NumberingPlan;\n}();\nvar Format = /*#__PURE__*/function () {\n function Format(format, metadata) {\n _classCallCheck(this, Format);\n this._format = format;\n this.metadata = metadata;\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 key: \"usesNationalPrefix\",\n value: function usesNationalPrefix() {\n return this.nationalPrefixFormattingRule() &&\n // 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 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\nvar FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/;\nvar Type = /*#__PURE__*/function () {\n function Type(type, metadata) {\n _classCallCheck(this, Type);\n this.type = type;\n this.metadata = metadata;\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 return Type;\n}();\nfunction getType(types, type) {\n switch (type) {\n case 'FIXED_LINE':\n return types[0];\n case 'MOBILE':\n return types[1];\n case 'TOLL_FREE':\n return types[2];\n case 'PREMIUM_RATE':\n return types[3];\n case 'PERSONAL_NUMBER':\n return types[4];\n case 'VOICEMAIL':\n return types[5];\n case 'UAN':\n return types[6];\n case 'PAGER':\n return types[7];\n case 'VOIP':\n return types[8];\n case 'SHARED_COST':\n return types[9];\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 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\nexport function getExtPrefix(country, metadata) {\n metadata = new Metadata(metadata);\n if (metadata.hasCountry(country)) {\n return metadata.country(country).ext();\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 if (metadata.hasCountry(country)) {\n return metadata.country(country).countryCallingCode();\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}\nfunction setVersion(metadata) {\n var version = metadata.version;\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","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\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","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 +\n// Phone number extensions\n'(?:' + createExtensionPattern() + ')?'; // The combined regular expression for valid phone numbers:\n//\n\nvar VALID_PHONE_NUMBER_PATTERN = new RegExp(\n// Either a short two-digit-only phone number\n'^' + MIN_LENGTH_PHONE_NUMBER_PATTERN + '$' + '|' +\n// 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","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 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 var numberWithoutExtension = number.slice(0, start);\n var matches = number.match(EXTN_PATTERN);\n var i = 1;\n while (i < matches.length) {\n if (matches[i]) {\n return {\n number: numberWithoutExtension,\n ext: matches[i]\n };\n }\n i++;\n }\n}\n","function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n 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) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\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};\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 if (digit) {\n result += digit;\n }\n }\n return result;\n}\n","function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n 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) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n 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 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 return;\n }\n return '+';\n } // Allow digits.\n\n return parseDigit(character);\n}\n","function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n 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) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\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 for (var _iterator = _createForOfIteratorHelperLoose(b), _step; !(_step = _iterator()).done;) {\n var element = _step.value;\n if (a.indexOf(element) < 0) {\n merged.push(element);\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","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 \"\" 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 \"\" 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 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 var mobile_type = metadata.type('MOBILE');\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 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 if (minimum_length === actual_length) {\n return 'IS_POSSIBLE';\n }\n if (minimum_length > actual_length) {\n return 'TOO_SHORT';\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 return possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH';\n}\n","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 metadata = new Metadata(metadata);\n if (options.v2) {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else {\n if (!input.phone) {\n return false;\n }\n if (input.country) {\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n metadata.country(input.country);\n } else {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n metadata.selectNumberingPlan(input.countryCallingCode);\n }\n } // Old metadata (< 1.0.18) had no \"possible length\" data.\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","/**\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","function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n 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) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n 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 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 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 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 if (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\n return 'FIXED_LINE_OR_MOBILE';\n }\n return 'FIXED_LINE';\n }\n for (var _iterator = _createForOfIteratorHelperLoose(NON_FIXED_LINE_PHONE_TYPES), _step; !(_step = _iterator()).done;) {\n var type = _step.value;\n if (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\n return type;\n }\n }\n}\nexport function isNumberTypeEqualTo(nationalNumber, type, metadata) {\n type = metadata.type(type);\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 if (type.possibleLengths() && type.possibleLengths().indexOf(nationalNumber.length) < 0) {\n return false;\n }\n return matchesEntirely(nationalNumber, type.pattern());\n}\n","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 /**\r\n * Checks if a phone number is \"possible\" (basically just checks its length).\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\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 var nationalNumber = options.v2 ? input.nationalNumber : input.phone;\n return matchesEntirely(nationalNumber, metadata.nationalNumberPattern());\n}\n","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 var possibleCountries = _metadata.getCountryCodesForCallingCode(callingCode);\n if (!possibleCountries) {\n return [];\n }\n return possibleCountries.filter(function (country) {\n return couldNationalNumberBelongToCountry(nationalNumber, country, metadata);\n });\n}\nfunction couldNationalNumberBelongToCountry(nationalNumber, country, metadata) {\n var _metadata = new Metadata(metadata);\n _metadata.selectNumberingPlan(country);\n if (_metadata.numberingPlan.possibleLengths().indexOf(nationalNumber.length) >= 0) {\n return true;\n }\n return false;\n}\n","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 ``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 `` 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","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() :\n // 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 if (useInternationalFormat) {\n return applyInternationalSeparatorStyle(formattedNumber);\n }\n return formattedNumber;\n}\n","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 if (countryMetadata.defaultIDDPrefix()) {\n return countryMetadata.defaultIDDPrefix();\n }\n if (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\n return countryMetadata.IDDPrefix();\n }\n}\n","function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _nonIterableRest() {\n 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) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n}\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n 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) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n 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 for (var _iterator = _createForOfIteratorHelperLoose(text.split(';')), _step; !(_step = _iterator()).done;) {\n var part = _step.value;\n var _part$split = part.split('='),\n _part$split2 = _slicedToArray(_part$split, 2),\n name = _part$split2[0],\n value = _part$split2[1];\n switch (name) {\n case 'tel':\n number = value;\n break;\n case 'ext':\n ext = value;\n break;\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 break;\n }\n } // If the phone number is not viable, then abort.\n\n if (!isViablePhoneNumber(number)) {\n return {};\n }\n var result = {\n number: number\n };\n if (ext) {\n result.ext = ext;\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 if (!number) {\n return '';\n }\n if (number[0] !== '+') {\n throw new Error(\"\\\"formatRFC3966()\\\" expects \\\"number\\\" to be in E.164 format.\");\n }\n return \"tel:\".concat(number).concat(ext ? ';ext=' + ext : '');\n}\n","function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n 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) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\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 return obj;\n}\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 metadata = new Metadata(metadata);\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 metadata.country(input.country);\n } else if (input.countryCallingCode) {\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else return input.phone || '';\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 switch (format) {\n case 'NATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return '';\n }\n number = formatNationalNumber(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n case 'INTERNATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return \"+\".concat(countryCallingCode);\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 case 'E.164':\n // `E.164` doesn't define \"phone number extensions\".\n return \"+\".concat(countryCallingCode).concat(nationalNumber);\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 var formattedNumber = formatIDD(nationalNumber, input.carrierCode, countryCallingCode, options.fromCountry, metadata);\n return addExtension(formattedNumber, input.ext, metadata, options.formatExtension);\n default:\n throw new Error(\"Unknown \\\"format\\\" argument passed to \\\"formatNumber()\\\": \\\"\".concat(format, \"\\\"\"));\n }\n}\nfunction formatNationalNumber(number, carrierCode, formatAs, metadata, options) {\n var format = chooseFormatForNumber(metadata.formats(), number);\n if (!format) {\n return number;\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}\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 if (matchesEntirely(nationalNnumber, format.pattern())) {\n return format;\n }\n }\n}\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\n return ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber;\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 return formattedNumber;\n }\n var iddPrefix = getIddPrefix(fromCountry, undefined, metadata.metadata);\n if (iddPrefix) {\n return \"\".concat(iddPrefix, \" \").concat(countryCallingCode, \" \").concat(formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata));\n }\n}\n","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\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 return obj;\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n 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;\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 if (!countryOrCountryCallingCode) {\n throw new TypeError('`country` or `countryCallingCode` not passed');\n }\n if (!nationalNumber) {\n throw new TypeError('`nationalNumber` not passed');\n }\n if (!metadata) {\n throw new TypeError('`metadata` not passed');\n }\n var _getCountryAndCountry = getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadata),\n country = _getCountryAndCountry.country,\n countryCallingCode = _getCountryAndCountry.countryCallingCode;\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 _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 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 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 return PhoneNumber;\n}();\nexport { PhoneNumber as default };\nvar isCountryCode = function isCountryCode(value) {\n return /^[A-Z]{2}$/.test(value);\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 return {\n country: country,\n countryCallingCode: countryCallingCode\n };\n}\n","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 var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n var IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix());\n if (number.search(IDDPrefixPattern) !== 0) {\n return;\n } // Strip IDD prefix.\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 if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\n if (matchedGroups[1] === '0') {\n return;\n }\n }\n return number;\n}\n","/**\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 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 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 var nationalPrefix;\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 return {\n nationalNumber: nationalNumber,\n nationalPrefix: nationalPrefix,\n carrierCode: carrierCode\n };\n }\n }\n return {\n nationalNumber: number\n };\n}\n","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 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 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 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 return true;\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 default:\n return true;\n }\n}\n","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 if (number.indexOf(countryCallingCode) === 0) {\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(country, callingCode);\n var possibleShorterNumber = number.slice(countryCallingCode.length);\n var _extractNationalNumbe = extractNationalNumber(possibleShorterNumber, metadata),\n possibleShorterNationalNumber = _extractNationalNumbe.nationalNumber;\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 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 return {\n number: number\n };\n}\n","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 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 if (countryCallingCode) {\n return {\n countryCallingCodeSource: 'FROM_NUMBER_WITHOUT_PLUS_SIGN',\n countryCallingCode: countryCallingCode,\n number: shorterNumber\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 if (number[1] === '0') {\n return {};\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 while (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\n var _countryCallingCode = number.slice(1, i);\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 i++;\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","function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n 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) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n 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 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 matchingCountries.push(country);\n } else {\n return country;\n }\n }\n } // Return the first (\"main\") one of the `matchingCountries`.\n\n if (matchingCountries.length > 0) {\n return matchingCountries[0];\n }\n}\n","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 var possibleCountries = metadata.getCountryCodesForCallingCode(callingCode);\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 if (possibleCountries.length === 1) {\n return possibleCountries[0];\n }\n return getCountryByNationalNumber(nationalPhoneNumber, {\n countries: possibleCountries,\n defaultCountry: defaultCountry,\n metadata: metadata.metadata\n });\n}\n","// 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 var phoneContextStart = indexOfPhoneContext + RFC3966_PHONE_CONTEXT_.length; // If phone-context parameter is empty\n\n if (phoneContextStart >= numberToExtractFrom.length) {\n return '';\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 if (phoneContext.length === 0) {\n return false;\n } // Does phone-context value match pattern of global-number-digits or domainname.\n\n return RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_.test(phoneContext) || RFC3966_DOMAINNAME_PATTERN_.test(phoneContext);\n}\n","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 if (!isPhoneContextValid(phoneContext)) {\n throw new ParseError('NOT_A_NUMBER');\n }\n var phoneNumberString;\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 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 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 var indexOfIsdn = phoneNumberString.indexOf(RFC3966_ISDN_SUBADDRESS_);\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 if (phoneNumberString !== '') {\n return phoneNumberString;\n }\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 { 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 throw new Error(\"Unknown country: \".concat(options.defaultCountry));\n } // Parse the phone number.\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 if (!formattedPhoneNumber) {\n if (options.v2) {\n if (error === 'TOO_SHORT') {\n throw new ParseError('TOO_SHORT');\n }\n throw new ParseError('NOT_A_NUMBER');\n }\n return {};\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 if (!metadata.hasSelectedNumberingPlan()) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n return {};\n } // Validate national (significant) number length.\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 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 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 return {};\n }\n if (options.v2) {\n var phoneNumber = new PhoneNumber(countryCallingCode, nationalNumber, metadata.metadata);\n if (country) {\n phoneNumber.country = country;\n }\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n }\n if (ext) {\n phoneNumber.ext = ext;\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 var valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ? matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) : false;\n if (!options.extended) {\n return valid ? result(country, nationalNumber, ext) : {};\n } // isInternational: countryCallingCode !== undefined\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 if (text.length > MAX_INPUT_STRING_LENGTH) {\n if (throwOnError) {\n throw new ParseError('TOO_LONG');\n }\n return;\n }\n if (extract === false) {\n return text;\n } // Attempt to extract a possible number from the string passed in\n\n var startsAt = text.search(PHONE_NUMBER_START_PATTERN);\n if (startsAt < 0) {\n return;\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\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 if (!isViablePhoneNumber(number)) {\n if (isViablePhoneNumberStart(number)) {\n return {\n error: 'TOO_SHORT'\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 var withExtensionStripped = extractExtension(number);\n if (withExtensionStripped.ext) {\n return withExtensionStripped;\n }\n return {\n number: number\n };\n}\n/**\r\n * Creates `parse()` result object.\r\n */\n\nfunction result(country, nationalNumber, ext) {\n var result = {\n country: country,\n phone: nationalNumber\n };\n if (ext) {\n result.ext = ext;\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\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 var country;\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 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 countryCallingCode = defaultCallingCode || getCountryCallingCode(defaultCountry, metadata.metadata);\n } else return {};\n if (!number) {\n return {\n countryCallingCodeSource: countryCallingCodeSource,\n countryCallingCode: countryCallingCode\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 var exactCountry = getCountryByCallingCode(countryCallingCode, {\n nationalNumber: nationalNumber,\n defaultCountry: defaultCountry,\n metadata: metadata\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 return {\n country: country,\n countryCallingCode: countryCallingCode,\n countryCallingCodeSource: countryCallingCodeSource,\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n}\n","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\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 return obj;\n}\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _nonIterableRest() {\n 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) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n}\nfunction _arrayWithHoles(arr) {\n 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 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 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 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 return {\n text: text,\n options: options,\n metadata: metadata\n };\n}\n","import _parseNumber from '../parse.js';\nimport normalizeArguments from '../normalizeArguments.js';\nexport default function parseNumber() {\n var _normalizeArguments = normalizeArguments(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n return _parseNumber(text, options, metadata);\n}\n","import withMetadataArgument from '../min/exports/withMetadataArgument.js';\nimport _parse from '../es6/legacy/parse.js';\nexport function parse() {\n return withMetadataArgument(_parse, arguments);\n}","function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _nonIterableRest() {\n 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) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n}\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nimport _formatNumber from '../format.js';\nimport parse from '../parse.js';\nimport isObject from '../helpers/isObject.js';\nexport default function formatNumber() {\n var _normalizeArguments = normalizeArguments(arguments),\n input = _normalizeArguments.input,\n format = _normalizeArguments.format,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n return _formatNumber(input, format, options, metadata);\n} // Sort out arguments\n\nfunction normalizeArguments(args) {\n var _Array$prototype$slic = Array.prototype.slice.call(args),\n _Array$prototype$slic2 = _slicedToArray(_Array$prototype$slic, 5),\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 arg_5 = _Array$prototype$slic2[4];\n var input;\n var format;\n var options;\n var metadata; // Sort out arguments.\n // If the phone number is passed as a string.\n // `format('8005553535', ...)`.\n\n if (typeof arg_1 === 'string') {\n // If country code is supplied.\n // `format('8005553535', 'RU', 'NATIONAL', [options], metadata)`.\n if (typeof arg_3 === 'string') {\n format = arg_3;\n if (arg_5) {\n options = arg_4;\n metadata = arg_5;\n } else {\n metadata = arg_4;\n }\n input = parse(arg_1, {\n defaultCountry: arg_2,\n extended: true\n }, metadata);\n } // Just an international phone number is supplied\n // `format('+78005553535', 'NATIONAL', [options], metadata)`.\n else {\n if (typeof arg_2 !== 'string') {\n throw new Error('`format` argument not passed to `formatNumber(number, format)`');\n }\n format = arg_2;\n if (arg_4) {\n options = arg_3;\n metadata = arg_4;\n } else {\n metadata = arg_3;\n }\n input = parse(arg_1, {\n extended: true\n }, metadata);\n }\n } // If the phone number is passed as a parsed number object.\n // `format({ phone: '8005553535', country: 'RU' }, 'NATIONAL', [options], metadata)`.\n else if (isObject(arg_1)) {\n input = arg_1;\n format = arg_2;\n if (arg_4) {\n options = arg_3;\n metadata = arg_4;\n } else {\n metadata = arg_3;\n }\n } else throw new TypeError('A phone number must either be a string or an object of shape { phone, [country] }.'); // Legacy lowercase formats.\n\n if (format === 'International') {\n format = 'INTERNATIONAL';\n } else if (format === 'National') {\n format = 'NATIONAL';\n }\n return {\n input: input,\n format: format,\n options: options,\n metadata: metadata\n };\n}\n","import withMetadataArgument from '../min/exports/withMetadataArgument.js';\nimport _format from '../es6/legacy/format.js';\nexport function format() {\n return withMetadataArgument(_format, arguments);\n}","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\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 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","import parsePhoneNumberWithError_ from './parsePhoneNumberWithError_.js';\nimport normalizeArguments from './normalizeArguments.js';\nexport default function parsePhoneNumberWithError() {\n var _normalizeArguments = normalizeArguments(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n return parsePhoneNumberWithError_(text, options, metadata);\n}\n","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\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 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 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","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 return parsePhoneNumber_(text, options, metadata);\n}\n","import Metadata from './metadata.js';\nexport default function getCountries(metadata) {\n return new Metadata(metadata).getCountries();\n}\n","import withMetadataArgument from './withMetadataArgument.js';\nimport { parsePhoneNumberWithError as _parsePhoneNumberWithError } from '../../core/index.js';\nexport function parsePhoneNumberWithError() {\n return withMetadataArgument(_parsePhoneNumberWithError, arguments);\n}","import withMetadataArgument from './withMetadataArgument.js';\nimport { default as _parsePhoneNumber } from '../../core/index.js';\nexport function parsePhoneNumber() {\n return withMetadataArgument(_parsePhoneNumber, arguments);\n}","import withMetadataArgument from './withMetadataArgument.js';\nimport { getCountries as _getCountries } from '../../core/index.js';\nexport function getCountries() {\n return withMetadataArgument(_getCountries, arguments);\n}","import withMetadataArgument from './withMetadataArgument.js';\nimport { getCountryCallingCode as _getCountryCallingCode } from '../../core/index.js';\nexport function getCountryCallingCode() {\n return withMetadataArgument(_getCountryCallingCode, arguments);\n}","function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _nonIterableRest() {\n 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) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n}\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nimport isViablePhoneNumber from '../helpers/isViablePhoneNumber.js';\nimport _getNumberType from '../helpers/getNumberType.js';\nimport isObject from '../helpers/isObject.js';\nimport parse from '../parse.js'; // Finds out national phone number type (fixed line, mobile, etc)\n\nexport default function getNumberType() {\n var _normalizeArguments = normalizeArguments(arguments),\n input = _normalizeArguments.input,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata; // `parseNumber()` would return `{}` when no phone number could be parsed from the input.\n\n if (!input.phone) {\n return;\n }\n return _getNumberType(input, options, metadata);\n} // Sort out arguments\n\nexport 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 var input;\n var options = {};\n var metadata; // If the phone number is passed as a string.\n // `getNumberType('88005553535', ...)`.\n\n if (typeof arg_1 === 'string') {\n // If \"default country\" argument is being passed\n // then convert it to an `options` object.\n // `getNumberType('88005553535', 'RU', metadata)`.\n if (!isObject(arg_2)) {\n if (arg_4) {\n options = arg_3;\n metadata = arg_4;\n } else {\n metadata = arg_3;\n } // `parse` extracts phone numbers from raw text,\n // therefore it will cut off all \"garbage\" characters,\n // while this `validate` function needs to verify\n // that the phone number contains no \"garbage\"\n // therefore the explicit `isViablePhoneNumber` check.\n\n if (isViablePhoneNumber(arg_1)) {\n input = parse(arg_1, {\n defaultCountry: arg_2\n }, metadata);\n } else {\n input = {};\n }\n } // No \"resrict country\" argument is being passed.\n // International phone number is passed.\n // `getNumberType('+78005553535', metadata)`.\n else {\n if (arg_3) {\n options = arg_2;\n metadata = arg_3;\n } else {\n metadata = arg_2;\n } // `parse` extracts phone numbers from raw text,\n // therefore it will cut off all \"garbage\" characters,\n // while this `validate` function needs to verify\n // that the phone number contains no \"garbage\"\n // therefore the explicit `isViablePhoneNumber` check.\n\n if (isViablePhoneNumber(arg_1)) {\n input = parse(arg_1, undefined, metadata);\n } else {\n input = {};\n }\n }\n } // If the phone number is passed as a parsed phone number.\n // `getNumberType({ phone: '88005553535', country: 'RU' }, ...)`.\n else if (isObject(arg_1)) {\n input = arg_1;\n if (arg_3) {\n options = arg_2;\n metadata = arg_3;\n } else {\n metadata = arg_2;\n }\n } else throw new TypeError('A phone number must either be a string or an object of shape { phone, [country] }.');\n return {\n input: input,\n options: options,\n metadata: metadata\n };\n}\n","import _isValidNumber from '../isValid.js';\nimport { normalizeArguments } from './getNumberType.js'; // Finds out national phone number type (fixed line, mobile, etc)\n\nexport default function isValidNumber() {\n var _normalizeArguments = normalizeArguments(arguments),\n input = _normalizeArguments.input,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata; // `parseNumber()` would return `{}` when no phone number could be parsed from the input.\n\n if (!input.phone) {\n return false;\n }\n return _isValidNumber(input, options, metadata);\n}\n","// Deprecated.\n\nimport withMetadataArgument from '../min/exports/withMetadataArgument.js';\nimport _isValidNumber from '../es6/legacy/isValidNumber.js';\nexport function isValidNumber() {\n return withMetadataArgument(_isValidNumber, arguments);\n}"],"mappings":"AAGA,IAAOA,GAAQ,CACb,QAAW,EACX,sBAAyB,CACvB,EAAK,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EAC1J,EAAK,CAAC,KAAM,IAAI,EAChB,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,KAAM,IAAI,EACjB,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,KAAM,KAAM,KAAM,IAAI,EAC7B,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,KAAM,IAAI,EACjB,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,KAAM,KAAM,IAAI,EACvB,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,GAAM,CAAC,IAAI,EACX,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,KAAM,IAAI,EAClB,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,KAAM,IAAI,EAClB,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,KAAM,IAAI,EAClB,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,KAAM,IAAI,EAClB,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,KAAM,KAAM,IAAI,EACxB,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,KAAM,IAAI,EAClB,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC,IAAI,EACZ,IAAO,CAAC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","names":["metadata_min_json_default","withMetadataArgument","func","_arguments","args","metadata_min_json_default","MIN_LENGTH_FOR_NSN","MAX_LENGTH_FOR_NSN","MAX_LENGTH_COUNTRY_CODE","VALID_DIGITS","DASHES","SLASHES","DOTS","WHITESPACE","BRACKETS","TILDES","VALID_PUNCTUATION","PLUS_CHARS","_typeof","obj","_defineProperties","target","props","i","descriptor","_createClass","Constructor","protoProps","staticProps","_classCallCheck","instance","_inherits","subClass","superClass","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","result","NewTarget","_possibleConstructorReturn","self","call","_assertThisInitialized","_wrapNativeSuper","Class","_cache","_isNativeFunction","Wrapper","_construct","Parent","args","fn","o","p","ParseError","_Error","_super","code","_this","semver_compare_default","a","b","pa","pb","i","na","nb","objectConstructor","isObject","object","_typeof","obj","_classCallCheck","instance","Constructor","_defineProperties","target","props","i","descriptor","_createClass","protoProps","staticProps","V3","V4","DEFAULT_EXT_PREFIX","CALLING_CODE_REG_EXP","Metadata","metadata","_classCallCheck","validateMetadata","setVersion","_createClass","_","countryCode","country","callingCode","countryCodes","NumberingPlan","_type","NumberingPlan","metadata","globalMetadataObject","_classCallCheck","setVersion","_createClass","_this","formats","_","Format","_type2","getType","Type","DEFAULT_EXT_PREFIX","format","FIRST_GROUP_ONLY_PREFIX_PATTERN","type","types","validateMetadata","isObject","typeOf","_typeof","getCountryCallingCode","country","metadata","Metadata","isSupportedCountry","setVersion","version","semver_compare_default","V3","V4","RFC3966_EXTN_PREFIX","getExtensionDigitsPattern","maxLength","VALID_DIGITS","createExtensionPattern","purpose","extLimitAfterExplicitLabel","extLimitAfterLikelyLabel","extLimitAfterAmbiguousChar","extLimitWhenNotSure","possibleSeparatorsBetweenNumberAndExtLabel","possibleCharsAfterExtLabel","optionalExtnSuffix","explicitExtLabels","ambiguousExtLabels","ambiguousSeparator","possibleSeparatorsNumberExtLabelNoComma","autoDiallingAndExtLabelsFound","rfcExtn","explicitExtn","ambiguousExtn","americanStyleExtnWithSuffix","autoDiallingExtn","onlyCommasExtn","MIN_LENGTH_PHONE_NUMBER_PATTERN","VALID_DIGITS","MIN_LENGTH_FOR_NSN","VALID_PHONE_NUMBER","PLUS_CHARS","VALID_PUNCTUATION","VALID_PHONE_NUMBER_START_REG_EXP","VALID_PHONE_NUMBER_WITH_EXTENSION","createExtensionPattern","VALID_PHONE_NUMBER_PATTERN","isViablePhoneNumber","number","isViablePhoneNumberStart","EXTN_PATTERN","createExtensionPattern","extractExtension","number","start","numberWithoutExtension","matches","i","DIGITS","parseDigit","character","_createForOfIteratorHelperLoose","o","allowArrayLike","it","_unsupportedIterableToArray","i","minLen","_arrayLikeToArray","n","arr","len","arr2","parseIncompletePhoneNumber","string","result","_iterator","_step","character","parsePhoneNumberCharacter","prevParsedCharacters","emitEvent","parseDigit","_createForOfIteratorHelperLoose","o","allowArrayLike","it","_unsupportedIterableToArray","i","minLen","_arrayLikeToArray","n","arr","len","arr2","mergeArrays","a","b","merged","_iterator","_step","element","checkNumberLength","nationalNumber","metadata","checkNumberLengthForType","type","type_info","possible_lengths","mobile_type","mergeArrays","actual_length","minimum_length","isPossiblePhoneNumber","input","options","metadata","Metadata","isPossibleNumber","nationalNumber","checkNumberLength","matchesEntirely","text","regular_expression","_createForOfIteratorHelperLoose","o","allowArrayLike","it","_unsupportedIterableToArray","i","minLen","_arrayLikeToArray","n","arr","len","arr2","NON_FIXED_LINE_PHONE_TYPES","getNumberType","input","options","metadata","Metadata","nationalNumber","matchesEntirely","isNumberTypeEqualTo","_iterator","_step","type","isValidNumber","input","options","metadata","Metadata","getNumberType","nationalNumber","matchesEntirely","getPossibleCountriesForNumber","callingCode","nationalNumber","metadata","_metadata","Metadata","possibleCountries","country","couldNationalNumberBelongToCountry","applyInternationalSeparatorStyle","formattedNumber","VALID_PUNCTUATION","FIRST_GROUP_PATTERN","formatNationalNumberUsingFormat","number","format","_ref","useInternationalFormat","withNationalPrefix","carrierCode","metadata","formattedNumber","applyInternationalSeparatorStyle","SINGLE_IDD_PREFIX_REG_EXP","getIddPrefix","country","callingCode","metadata","countryMetadata","Metadata","formatRFC3966","_ref","number","ext","_createForOfIteratorHelperLoose","o","allowArrayLike","it","_unsupportedIterableToArray","i","minLen","_arrayLikeToArray","n","arr","len","arr2","ownKeys","object","enumerableOnly","keys","symbols","sym","_objectSpread","target","source","key","_defineProperty","obj","value","DEFAULT_OPTIONS","formattedNumber","extension","metadata","formatNumber","input","format","options","Metadata","countryCallingCode","nationalNumber","number","formatNationalNumber","addExtension","formatRFC3966","formatIDD","carrierCode","formatAs","chooseFormatForNumber","formatNationalNumberUsingFormat","availableFormats","nationalNnumber","_iterator","_step","lastLeadingDigitsPattern","matchesEntirely","ext","formatExtension","fromCountry","fromCountryCallingCode","getCountryCallingCode","iddPrefix","getIddPrefix","ownKeys","object","enumerableOnly","keys","symbols","sym","_objectSpread","target","i","source","key","_defineProperty","obj","value","_classCallCheck","instance","Constructor","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","USE_NON_GEOGRAPHIC_COUNTRY_CODE","PhoneNumber","countryOrCountryCallingCode","nationalNumber","metadata","_getCountryAndCountry","getCountryAndCountryCallingCode","country","countryCallingCode","ext","getPossibleCountriesForNumber","isPossiblePhoneNumber","isValidNumber","Metadata","phoneNumber","getNumberType","_format","options","formatNumber","isCountryCode","value","getCountryAndCountryCallingCode","countryOrCountryCallingCode","metadataJson","country","countryCallingCode","metadata","Metadata","USE_NON_GEOGRAPHIC_COUNTRY_CODE","CAPTURING_DIGIT_PATTERN","VALID_DIGITS","stripIddPrefix","number","country","callingCode","metadata","countryMetadata","Metadata","IDDPrefixPattern","matchedGroups","extractNationalNumberFromPossiblyIncompleteNumber","number","metadata","prefixPattern","prefixMatch","nationalNumber","carrierCode","capturedGroupsCount","hasCapturedGroups","prefixBeforeNationalNumber","nationalPrefix","possiblePositionOfTheFirstCapturedGroup","possibleNationalPrefix","extractNationalNumber","number","metadata","_extractNationalNumbe","extractNationalNumberFromPossiblyIncompleteNumber","carrierCode","nationalNumber","shouldHaveExtractedNationalPrefix","isPossibleIncompleteNationalNumber","nationalNumberBefore","nationalNumberAfter","matchesEntirely","checkNumberLength","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","number","country","callingCode","metadata","countryCallingCode","getCountryCallingCode","Metadata","possibleShorterNumber","_extractNationalNumbe","extractNationalNumber","possibleShorterNationalNumber","_extractNationalNumbe2","nationalNumber","matchesEntirely","checkNumberLength","extractCountryCallingCode","number","country","callingCode","metadata","isNumberWithIddPrefix","numberWithoutIDD","stripIddPrefix","_extractCountryCallin","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","countryCallingCode","shorterNumber","Metadata","i","MAX_LENGTH_COUNTRY_CODE","_countryCallingCode","_createForOfIteratorHelperLoose","o","allowArrayLike","it","_unsupportedIterableToArray","i","minLen","_arrayLikeToArray","n","arr","len","arr2","getCountryByNationalNumber","nationalPhoneNumber","_ref","countries","defaultCountry","metadata","Metadata","matchingCountries","_iterator","_step","country","getNumberType","USE_NON_GEOGRAPHIC_COUNTRY_CODE","getCountryByCallingCode","callingCode","_ref","nationalPhoneNumber","defaultCountry","metadata","possibleCountries","getCountryByNationalNumber","PLUS_SIGN","RFC3966_VISUAL_SEPARATOR_","RFC3966_PHONE_DIGIT_","VALID_DIGITS","RFC3966_GLOBAL_NUMBER_DIGITS_","RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_","ALPHANUM_","RFC3966_DOMAINLABEL_","VALID_ALPHA_","RFC3966_TOPLABEL_","RFC3966_DOMAINNAME_","RFC3966_DOMAINNAME_PATTERN_","RFC3966_PREFIX_","RFC3966_PHONE_CONTEXT_","RFC3966_ISDN_SUBADDRESS_","extractPhoneContext","numberToExtractFrom","indexOfPhoneContext","phoneContextStart","phoneContextEnd","isPhoneContextValid","phoneContext","extractFormattedPhoneNumberFromPossibleRfc3966NumberUri","numberToParse","_ref","extractFormattedPhoneNumber","phoneContext","extractPhoneContext","isPhoneContextValid","ParseError","phoneNumberString","PLUS_SIGN","indexOfRfc3966Prefix","RFC3966_PREFIX_","indexOfNationalNumber","indexOfPhoneContext","RFC3966_PHONE_CONTEXT_","indexOfIsdn","RFC3966_ISDN_SUBADDRESS_","MAX_INPUT_STRING_LENGTH","PHONE_NUMBER_START_PATTERN","PLUS_CHARS","VALID_DIGITS","AFTER_PHONE_NUMBER_END_PATTERN","USE_NON_GEOGRAPHIC_COUNTRY_CODE","parse","text","options","metadata","Metadata","ParseError","_parseInput","parseInput","formattedPhoneNumber","ext","error","_parsePhoneNumber","parsePhoneNumber","country","nationalNumber","countryCallingCode","countryCallingCodeSource","carrierCode","MIN_LENGTH_FOR_NSN","MAX_LENGTH_FOR_NSN","phoneNumber","PhoneNumber","valid","matchesEntirely","isPossibleNumber","result","_extractFormattedPhoneNumber","extract","throwOnError","startsAt","v2","number","extractFormattedPhoneNumberFromPossibleRfc3966NumberUri","isViablePhoneNumber","isViablePhoneNumberStart","withExtensionStripped","extractExtension","defaultCountry","defaultCallingCode","_extractCountryCallin","extractCountryCallingCode","parseIncompletePhoneNumber","getCountryCallingCode","_extractNationalNumbe","extractNationalNumber","exactCountry","getCountryByCallingCode","ownKeys","object","enumerableOnly","keys","symbols","sym","_objectSpread","target","i","source","key","_defineProperty","obj","value","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","o","minLen","_arrayLikeToArray","n","len","arr2","_i","_arr","_n","_d","_s","_e","err","normalizeArguments","args","_Array$prototype$slic","_Array$prototype$slic2","arg_1","arg_2","arg_3","arg_4","text","options","metadata","isObject","parseNumber","_normalizeArguments","normalizeArguments","text","options","metadata","parse","parse","withMetadataArgument","parseNumber","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","o","minLen","_arrayLikeToArray","n","len","arr2","_i","_arr","_n","_d","_s","_e","err","formatNumber","_normalizeArguments","normalizeArguments","input","format","options","metadata","args","_Array$prototype$slic","_Array$prototype$slic2","arg_1","arg_2","arg_3","arg_4","arg_5","parse","isObject","format","withMetadataArgument","formatNumber","ownKeys","object","enumerableOnly","keys","symbols","sym","_objectSpread","target","i","source","key","_defineProperty","obj","value","parsePhoneNumberWithError","text","options","metadata","parse","parsePhoneNumberWithError","_normalizeArguments","normalizeArguments","text","options","metadata","ownKeys","object","enumerableOnly","keys","symbols","sym","_objectSpread","target","i","source","key","_defineProperty","obj","value","parsePhoneNumber","text","options","metadata","isSupportedCountry","parsePhoneNumberWithError","error","ParseError","parsePhoneNumber","_normalizeArguments","normalizeArguments","text","options","metadata","getCountries","metadata","Metadata","parsePhoneNumberWithError","withMetadataArgument","parsePhoneNumber","withMetadataArgument","getCountries","withMetadataArgument","getCountryCallingCode","withMetadataArgument","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","o","minLen","_arrayLikeToArray","n","len","arr2","_i","_arr","_n","_d","_s","_e","err","normalizeArguments","args","_Array$prototype$slic","_Array$prototype$slic2","_slicedToArray","arg_1","arg_2","arg_3","arg_4","input","options","metadata","isObject","isViablePhoneNumber","parse","isValidNumber","_normalizeArguments","normalizeArguments","input","options","metadata","isValidNumber","withMetadataArgument"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51]}