{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/@oddcamp/cocoon-vanilla-js/index.js","webpack:///./node_modules/libphonenumber-js/metadata.full.json.js","webpack:///./node_modules/libphonenumber-js/max/metadata.js","webpack:///./node_modules/libphonenumber-js/es6/tools/semver-compare.js","webpack:///./node_modules/libphonenumber-js/es6/metadata.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/checkNumberLength.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/mergeArrays.js","webpack:///./node_modules/libphonenumber-js/es6/isPossibleNumber_.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/matchesEntirely.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/getNumberType.js","webpack:///./node_modules/libphonenumber-js/es6/constants.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/formatNationalNumberUsingFormat.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/getIddPrefix.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/extension/createExtensionPattern.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/isViablePhoneNumber.js","webpack:///./node_modules/libphonenumber-js/es6/format_.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/RFC3966.js","webpack:///./node_modules/libphonenumber-js/es6/PhoneNumber.js","webpack:///./node_modules/libphonenumber-js/es6/validate_.js","webpack:///./node_modules/libphonenumber-js/es6/AsYouTypeState.js","webpack:///./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.util.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/parseDigits.js","webpack:///./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.complete.js","webpack:///./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/stripIddPrefix.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/extractNationalNumber.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","webpack:///./node_modules/libphonenumber-js/es6/AsYouTypeParser.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/getCountryByCallingCode.js","webpack:///./node_modules/libphonenumber-js/es6/AsYouType.js","webpack:///./node_modules/libphonenumber-js/max/exports/AsYouType.js","webpack:///./app/javascript/packs/application.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_typeof","iterator","obj","constructor","this","Rails","linkClickSelector","buttonClickSelector","selector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","document","querySelector","content","cspNonce","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","element","getData","setData","$","Array","slice","querySelectorAll","csrfParam","csrfToken","meta","CSRFProtection","xhr","token","setRequestHeader","refreshCSRFTokens","param","forEach","input","CustomEvent","fire","preventDefault","window","event","params","evt","createEvent","initCustomEvent","bubbles","cancelable","detail","Event","result","defaultPrevented","data","dispatchEvent","stopEverything","e","target","stopPropagation","stopImmediatePropagation","delegate","eventType","handler","addEventListener","parentNode","AcceptHeaders","createXHR","prepareOptions","processResponse","text","html","xml","json","script","ajax","options","response","responseText","getResponseHeader","Math","floor","status","success","statusText","error","complete","beforeSend","readyState","XMLHttpRequest","OPENED","send","url","location","href","type","toUpperCase","indexOf","dataType","accept","done","open","crossDomain","withCredentials","onreadystatechange","DONE","parser","match","JSON","parse","createElement","setAttribute","head","appendChild","removeChild","DOMParser","replace","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","host","toArray","serializeElement","additionalParam","inputs","elements","disabled","option","selected","push","checked","map","encodeURIComponent","join","formElements","form","filter","el","allowAction","handleConfirm","confirm","message","answer","callback","getAttribute","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","innerHTML","originalText","removeEventListener","handleMethod","formContent","link","method","action","style","display","body","click","isRemote","handleRemote","button","enctype","FormData","append","args","arguments","length","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","Error","ajaxPrefilter","originalOptions","start","_rails_loaded","setTimeout","factory","sparkMd5","fn","createCommonjsModule","undefined","hex_chr","md5cycle","x","k","a","b","md5blk","md5blks","charCodeAt","md5blk_array","md51","tail","tmp","lo","hi","state","substring","toString","parseInt","md51_array","subarray","Uint8Array","rhex","j","hex","toUtf8","str","test","unescape","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arr","arrayBuffer2Utf8Str","String","fromCharCode","apply","concatenateArrayBuffers","first","second","byteLength","set","buffer","hexToBinaryString","bytes","substr","SparkMD5","reset","clamp","val","max","min","from","to","num","targetArray","sourceArray","begin","end","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","hash","setState","destroy","hashBinary","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","props","descriptor","configurable","writable","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkSize","chunkCount","ceil","size","chunkIndex","_this","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","findElement","root","eventInit","initEvent","toArray$1","isArray","BlobRecord","checksum","attributes","filename","content_type","byte_size","responseType","getMetaValue","requestDidLoad","requestDidError","stringify","blob","direct_upload","directUploadData","toJSON","_xhr","BlobUpload","_blob$directUploadDat","headers","id","DirectUpload","notify","upload","methodName","_len","messages","_key","DirectUploadController","directUpload","dispatch","hiddenInput","insertAdjacentElement","dispatchError","signed_id","progress","loaded","total","alert","_this2","uploadRequestDidProgress","DirectUploadsController","files","controllers","createDirectUploadControllers","startNextController","controller","shift","processingAttribute","submitButtonsByForm","WeakMap","started","didClick","didSubmitForm","didSubmitRemoteElement","tagName","handleFormSubmissionEvent","hasAttribute","disable","removeAttribute","enable","focus","delete","submitForm","ActiveStorage","webpackPolyfill","deprecate","paths","children","cocoon_element_counter","create_new_id","Date","getTime","newcontent_braced","newcontent_underscord","addFieldsHandler","btn","assoc","assocs","insertionNode","insertionTraversal","insertionMethod","new_id","count","regexp_braced","RegExp","regexp_underscord","new_content","new_contents","isNaN","insertionNodeElem","console","warn","getInsertionNodeElem","node","insertAdjacentHTML","closest","wrapperClass","nodeToDelete","concat","triggerNode","timeout","classList","contains","removeFieldsHandler","hideFields","split","pa","pb","na","Number","nb","_typeof2","_classCallCheck","_defineProperties","_createClass","DEFAULT_EXT_PREFIX","CALLING_CODE_REG_EXP","Metadata","metadata","is_object","countries","keys","type_of","validateMetadata","setVersion","_","countryCode","v1","v2","v3","nonGeographic","nonGeographical","country","getCountryMetadata","callingCode","getCountryCodesForCallingCode","countryCodes","countryCallingCodes","selectNumberingPlan","hasCountry","numberingPlan","NumberingPlan","hasCallingCode","getNumberingPlanMetadata","getCountryCodeForCallingCode","IDDPrefix","defaultIDDPrefix","nationalNumberPattern","possibleLengths","formats","nationalPrefixForParsing","nationalPrefixTransformRule","leadingDigits","hasTypes","_type","ext","country_phone_code_to_countries","country_calling_codes","globalMetadataObject","_getFormats","getDefaultCountryMetadataForRegion","Format","_getNationalPrefixFormattingRule","_nationalPrefixForParsing","nationalPrefix","_getNationalPrefixIsOptionalWhenFormatting","types","_type2","Type","format","_format","nationalPrefixFormattingRule","nationalPrefixIsOptionalWhenFormattingInNationalFormat","usesNationalPrefix","FIRST_GROUP_ONLY_PREFIX_PATTERN","getCountryCallingCode","countryCallingCode","version","v4","checkNumberLength","nationalNumber","checkNumberLengthForType","type_info","possible_lengths","mobile_type","merged","_iterator","_isArray","_i","_ref","next","sort","mergeArrays","actual_length","minimum_length","isPossiblePhoneNumber","phone","isPossibleNumber","isNonGeographicCallingCode","matchesEntirely","regular_expression","NON_FIXED_LINE_PHONE_TYPES","getNumberType","isNumberTypeEqualTo","pattern","_NON_FIXED_LINE_PHONE","VALID_DIGITS","VALID_PUNCTUATION","applyInternationalSeparatorStyle","formattedNumber","trim","FIRST_GROUP_PATTERN","formatNationalNumberUsingFormat","number","useInternationalFormat","withNationalPrefix","carrierCode","internationalFormat","SINGLE_IDD_PREFIX_REG_EXP","maxLength","VALID_PHONE_NUMBER_WITH_EXTENSION","rfcExtn","VALID_PHONE_NUMBER","_defineProperty","DEFAULT_OPTIONS","formatExtension","extension","formatNumber","source","ownKeys","getOwnPropertySymbols","sym","getOwnPropertyDescriptor","_objectSpread","addExtension","formatNationalNumber","_ref2","formatRFC3966","fromCountry","iddPrefix","countryMetadata","getIddPrefix","formatIDD","formatAs","availableFormats","nationalNnumber","leadingDigitsPatterns","lastLeadingDigitsPattern","search","chooseFormatForNumber","PhoneNumber","_metadata","isCountryCode","phoneNumber","AsYouTypeState","onCountryChange","onCallingCodeChange","properties","_Object$keys","defaultCountry","defaultCallingCode","international","missingPlus","digits","resetNationalSignificantNumber","initCountryAndCallingCode","nationalSignificantNumber","getNationalDigits","nationalSignificantNumberMatchesInput","complexPrefixBeforeNationalSignificantNumber","setCountry","setCallingCode","nextDigits","DIGIT_PLACEHOLDER","DIGIT_PLACEHOLDER_MATCHER","repeat","string","times","cutAndStripNonPairedParens","cutBeforeIndex","dangling_braces","pop","cleared_string","_i2","_dangling_braces","index","stripNonPairedParens","DIGITS","parseDigit","character","parseDigits","digit","formatCompleteNumber","shouldTryNationalPrefixFormattingRule","getSeparatorAfterNationalPrefix","useNationalPrefixFormattingRule","formatNationalNumberWithAndWithoutNationalPrefixFormattingRule","_ref3","formattedNationalNumber","isValidFormattedNationalNumber","LONGEST_DUMMY_PHONE_NUMBER","NATIONAL_PREFIX_SEPARATORS_PATTERN","CREATE_CHARACTER_CLASS_PATTERN","CREATE_STANDALONE_DIGIT_PATTERN","NON_ALTERING_FORMAT_REG_EXP","AsYouTypeFormatter","isNANP","resetFormat","chosenFormat","template","nationalNumberTemplate","populatedNationalNumberTemplate","populatedNationalNumberTemplatePosition","matchingFormats","narrowDownMatchingFormats","formattedCompleteNumber","setNationalNumberTemplate","lastIndexOf","formatNationalNumberWithNextDigits","previouslyChosenFormat","newlyChosenFormat","chooseFormat","formatNextNationalNumberDigits","_ref4","_this3","leadingDigitsPatternIndex","formatSuits","formatMatches","nationalPrefixIsMandatoryWhenFormattingInNationalFormat","leadingDigitsPatternsCount","leadingDigitsPattern","_this4","_loop2","_isArray2","_iterator2","_ref5","getFormatFormat","createTemplateForFormat","_loop","getTemplateForFormat","_ref6","spacing","internationalPrefix","getInternationalPrefixBeforeCountryCallingCode","getDigitsWithoutInternationalPrefix","_ref7","strictPattern","nationalNumberDummyDigits","nationalPrefixIncludedInTemplate","numberFormat","numberFormatWithNationalPrefix","position","_i3","populateTemplateWithDigits","CAPTURING_DIGIT_PATTERN","stripIddPrefix","IDDPrefixPattern","matchedGroups","extractNationalNumberFromPossiblyIncompleteNumber","prefixPattern","prefixMatch","exec","capturedGroupsCount","hasCapturedGroups","prefixBeforeNationalNumber","possiblePositionOfTheFirstCapturedGroup","extractNationalNumber","_extractNationalNumbe","shouldExtractNationalPrefix","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","possibleShorterNumber","possibleShorterNationalNumber","_arr","_n","_d","_e","_s","err","VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN","VALID_FORMATTED_PHONE_NUMBER_PART","AFTER_PHONE_NUMBER_DIGITS_END_PATTERN","COMPLEX_NATIONAL_PREFIX","AsYouTypeParser","onNationalSignificantNumberChange","justLeadingPlus","_extractFormattedDigi","_extractFormattedDigi4","extractedNumber","hasPlus","startsAt","extractFormattedPhoneNumber","_extractFormattedDigitsAndPlus","formattedDigits","extractFormattedDigitsAndPlus","_extractFormattedDigi2","startInternationalNumber","inputDigits","hasReceivedThreeLeadingDigits","appendDigits","extractIddPrefix","isWaitingForCountryCallingCode","extractCountryCallingCode","appendNationalSignificantNumberDigits","hasExtractedNationalSignificantNumber","extractNationalSignificantNumber","update","_extractCountryCallin","numberWithoutIDD","shorterNumber","_countryCallingCode","hasSelectedNumberingPlan","couldPossiblyExtractAnotherNationalSignificantNumber","nationalDigits","onExtractedNationalNumber","prevNationalSignificantNumber","_extractNationalNumbe2","nationalSignificantNumberIndex","extractAnotherNationalSignificantNumber","fixMissingPlus","extractCallingCodeAndNationalSignificantNumber","_extractCountryCallin2","newCallingCode","getCountryByCallingCode","nationalPhoneNumber","possibleCountries","selectCountryFromList","AsYouType","optionsOrDefaultCountry","_this$getCountryAndCa2","getCountryAndCallingCode","_this$parser$input","formattedOutput","determineTheCountryIfNeeded","formatter","reExtractNationalSignificantNumber","getFullNumber","getNonFormattedNumber","getCallingCode","_this$state","isCountryCallingCodeAmbiguous","determineTheCountry","isInternational","prefix","_this$state2","getNonFormattedNationalNumberWithPrefix","_this$state3","getCountry","getNumber","isPossible","isValid","getTemplate","getNonFormattedTemplate","initAddressAutocomplete","log","country_code","componentRestrictions","address_autocomplete","google","maps","places","Autocomplete","clearInstanceListeners","addListener","fillInAddress","place","getPlace","address_components","find","short_name","address","ShouldBeComponent","unit","street_number","street","suburb","region","postal_code","street_address","component","shouldBe","some","includes","long_name","getAUAddressObject","city","getNZAddressObject","prop","stored_countries","replaceCountryFields","identifier","dataset","country_fields","countries_node","getElementById","selected_country","toLowerCase","firstChild","toggle_delivery","nextButton","otherBusinessNameInnput","otherBusinessNameRadios","getElementsByName","other","item","addDomListener","currentTarget","cocoonLinks","getElementsByClassName","add","insertedItem"],"mappings":"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CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,KAAM,MACd,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,KAAM,MACd,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,KAAM,MACd,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,KAAM,KAAM,MACpB,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC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","file":"js/application-d517ffc29ed5dbbf9261.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form',\n formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n\n return element[expando][key] = value;\n };\n\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function CustomEvent(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function get() {\n return true;\n }\n });\n }\n\n return result;\n };\n }\n\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function prepareOptions(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n\n options.accept = AcceptHeaders[options.dataType];\n\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n\n return options;\n };\n\n createXHR = function createXHR(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n\n xhr.withCredentials = !!options.withCredentials;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n\n return xhr;\n };\n\n processResponse = function processResponse(response, type) {\n var parser, script;\n\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n\n return response;\n };\n\n Rails.href = function (element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n\n toArray = function toArray(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n\n if (additionalParam) {\n params.push(additionalParam);\n }\n\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n\n allowAction = function allowAction(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n\n if (!message) {\n return true;\n }\n\n answer = false;\n\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n\n callback = fire(element, 'confirm:complete', [answer]);\n }\n\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function (e) {\n var element;\n\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n\n element = e.target;\n } else {\n element = e;\n }\n\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function disableLinkElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function enableLinkElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function disableFormElements(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function disableFormElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function enableFormElements(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function enableFormElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n\n setData(element, 'ujs:enable-with', null);\n }\n\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function isXhrRedirect(event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n\n if (!method) {\n return;\n }\n\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function isRemote(element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n\n if (!isRemote(element)) {\n return true;\n }\n\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function beforeSend(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function success() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function error() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function complete() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n\n if (!form) {\n return;\n }\n\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function rhex(n) {\n var s = \"\",\n j;\n\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n\n return s;\n }\n\n function hex(x) {\n var i;\n\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n\n return x.join(\"\");\n }\n\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n function SparkMD5() {\n this.reset();\n }\n\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(this._hash, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n });\n });\n\n var classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n\n var createClass = function () {\n function 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 }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }]);\n return FileChecksum;\n }();\n\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n return root.querySelector(selector);\n }\n\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n\n return event;\n }\n\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var csrfToken = getMetaValue(\"csrf-token\");\n\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n\n var id = 0;\n\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n\n return object[methodName].apply(object, messages);\n }\n }\n\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n\n _this.dispatch(\"end\");\n\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var controllers = this.createDirectUploadControllers();\n\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n\n _this.dispatch(\"end\");\n }\n };\n\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n\n function didClick(event) {\n var target = event.target;\n\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n\n if (button) {\n var _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n\n submitButtonsByForm.delete(form);\n }\n\n function disable(input) {\n input.disabled = true;\n }\n\n function enable(input) {\n input.disabled = false;\n }\n\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","var cocoon_element_counter = 0;\n\nvar create_new_id = function create_new_id() {\n return new Date().getTime() + cocoon_element_counter++;\n};\n\nvar newcontent_braced = function newcontent_braced(id) {\n return '[' + id + ']$1';\n};\n\nvar newcontent_underscord = function newcontent_underscord(id) {\n return '_' + id + '_$1';\n};\n\nvar getInsertionNodeElem = function getInsertionNodeElem(insertionNode, insertionTraversal, btn) {\n if (!insertionNode) {\n return btn.parentNode;\n }\n\n if (typeof insertionNode === 'function') {\n if (insertionTraversal) {\n console.warn('association-insertion-traversal is ignored, because association-insertion-node is given as a function.');\n }\n\n return insertionNode(btn);\n }\n\n if (insertionTraversal) {\n // TODO:\n // https://github.com/nathanvda/cocoon/blob/master/app/assets/javascripts/cocoon.js#L32\n // data-association-insertion-traversal: the jquery traversal method to\n // allow node selection relative to the link. closest, next, children, etc.\n // return $this[insertionTraversal](insertionNode);\n return null;\n } else {\n return document.querySelector(insertionNode);\n }\n};\n\nvar addFieldsHandler = function addFieldsHandler(btn) {\n var assoc = btn.getAttribute('data-association');\n var assocs = btn.getAttribute('data-associations');\n var content = btn.getAttribute('data-association-insertion-template');\n var insertionNode = btn.getAttribute('data-association-insertion-node');\n var insertionTraversal = btn.getAttribute('data-association-insertion-traversal');\n var insertionMethod = btn.getAttribute('data-association-insertion-method') || btn.getAttribute('data-association-insertion-position') || 'before';\n var new_id = create_new_id();\n var count = parseInt(btn.getAttribute('data-count'), 10);\n var regexp_braced = new RegExp('\\\\[new_' + assoc + '\\\\](.*?\\\\s)', 'g');\n var regexp_underscord = new RegExp('_new_' + assoc + '_(\\\\w*)', 'g');\n var new_content = content.replace(regexp_braced, newcontent_braced(new_id));\n var new_contents = [];\n\n if (new_content == content) {\n regexp_braced = new RegExp('\\\\[new_' + assocs + '\\\\](.*?\\\\s)', 'g');\n regexp_underscord = new RegExp('_new_' + assocs + '_(\\\\w*)', 'g');\n new_content = content.replace(regexp_braced, newcontent_braced(new_id));\n }\n\n new_content = new_content.replace(regexp_underscord, newcontent_underscord(new_id));\n new_contents = [new_content];\n count = isNaN(count) ? 1 : Math.max(count, 1);\n count -= 1;\n\n while (count) {\n new_id = create_new_id();\n new_content = content.replace(regexp_braced, newcontent_braced(new_id));\n new_content = new_content.replace(regexp_underscord, newcontent_underscord(new_id));\n new_contents.push(new_content);\n count -= 1;\n }\n\n var insertionNodeElem = getInsertionNodeElem(insertionNode, insertionTraversal, btn);\n\n if (!insertionNodeElem || insertionNodeElem.length == 0) {\n console.warn(\"Couldn't find the element to insert the template. Make sure your `data-association-insertion-*` on `link_to_add_association` is correct.\");\n }\n\n new_contents.forEach(function (node) {\n var event = new CustomEvent('cocoon:before-insert', {\n detail: node,\n bubbles: true,\n cancelable: true\n });\n insertionNodeElem.dispatchEvent(event);\n\n if (!event.defaultPrevented) {\n switch (insertionMethod) {\n default:\n case 'before':\n insertionMethod = 'beforebegin';\n break;\n\n case 'after':\n insertionMethod = 'afterend';\n break;\n\n case 'append':\n insertionMethod = 'beforeend';\n break;\n\n case 'prepend':\n insertionMethod = 'afterbegin';\n break;\n }\n\n insertionNodeElem.insertAdjacentHTML(insertionMethod, node);\n insertionNodeElem.dispatchEvent(new CustomEvent('cocoon:after-insert', {\n detail: node,\n bubbles: true,\n cancelable: true\n }));\n }\n });\n};\n\ndocument.addEventListener('click', function (e) {\n if (e.target.closest('.add_fields')) {\n e.preventDefault();\n e.stopPropagation();\n addFieldsHandler(e.target.closest('.add_fields'));\n }\n});\n\nvar removeFieldsHandler = function removeFieldsHandler(btn) {\n var wrapperClass = btn.getAttribute('data-wrapper-class') || 'nested-fields';\n var nodeToDelete = btn.closest(\".\".concat(wrapperClass));\n var triggerNode = nodeToDelete.parentNode;\n var event = new CustomEvent('cocoon:before-remove', {\n detail: nodeToDelete,\n bubbles: true,\n cancelable: true\n });\n triggerNode.dispatchEvent(event);\n\n if (!event.defaultPrevented) {\n var timeout = triggerNode.getAttribute('data-remove-timeout') || 0;\n setTimeout(function () {\n if (btn.classList.contains('dynamic')) {\n // nodeToDelete.remove();\n nodeToDelete.parentNode.removeChild(nodeToDelete);\n } else {\n var input = nodeToDelete.querySelector('input[type=hidden][name*=\"[_destroy]\"');\n\n if (input) {\n input.value = 1;\n }\n\n nodeToDelete.style.display = 'none';\n }\n\n triggerNode.dispatchEvent(new CustomEvent('cocoon:after-remove', {\n detail: nodeToDelete,\n bubbles: true,\n cancelable: true\n }));\n }, timeout);\n }\n};\n\ndocument.addEventListener('click', function (e) {\n if (e.target.closest('.remove_fields.dynamic') || e.target.closest('.remove_fields.existing')) {\n e.preventDefault();\n e.stopPropagation();\n removeFieldsHandler(e.target);\n }\n});\n\nvar hideFields = function hideFields() {\n Array.from(document.querySelectorAll('.remove_fields.existing.destroyed')).forEach(function (btn) {\n var wrapperClass = btn.getAttribute('data-wrapper-class') || 'nested-fields';\n btn.closest(\".\".concat(wrapperClass)).style.display = 'none';\n });\n};\n\ndocument.addEventListener('DOMContentLoaded', hideFields);\ndocument.addEventListener('turbolinks:load', hideFields);\ndocument.addEventListener('page:load', hideFields);","// 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], 0, 0, 0, 0, 0, 0, 0, [[\"6[2-467]\\\\d{3}\", [5]], [\"4\\\\d{4}\", [5]], 0, 0, 0, 0, [\"(?:0[1-9]|[1589]\\\\d)\\\\d{4}\", [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\"]]], 0, 0, 0, 0, 0, 0, [[\"[78]\\\\d{5}\", [6]], [\"690\\\\d{6}|[356]\\\\d{5}\", [6, 9]], [\"180[02]\\\\d{4}\", [8]], [\"[19]\\\\d{5}\", [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\", 0, 0, 0, 0, 0, [[\"[2-4679][2-8]\\\\d{6}\", [8]], [\"5[024-68]\\\\d{7}\", [9]], [\"400\\\\d{6}|800\\\\d{2,9}\"], [\"900[02]\\\\d{5}\", [9]], 0, 0, [\"600[25]\\\\d{5}\", [9]], 0, 0, [\"700[05]\\\\d{5}\", [9]]]],\n \"AF\": [\"93\", \"00\", \"[2-7]\\\\d{8}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2-7]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"(?:[25][0-8]|[34][0-4]|6[0-5])[2-9]\\\\d{6}\"], [\"7\\\\d{8}\"]]],\n \"AG\": [\"1\", \"011\", \"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([457]\\\\d{6})$\", \"268$1\", 0, \"268\", [[\"268(?:4(?:6[0-38]|84)|56[0-2])\\\\d{4}\"], [\"268(?:464|7(?:1[3-9]|[28]\\\\d|3[0246]|64|7[0-689]))\\\\d{4}\"], [\"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[12]|33|44|66|77|88)[2-9]\\\\d{6}\"], 0, 0, [\"26840[69]\\\\d{4}\"], [\"26848[01]\\\\d{4}\"]]],\n \"AI\": [\"1\", \"011\", \"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2457]\\\\d{6})$\", \"264$1\", 0, \"264\", [[\"264(?:292|4(?:6[12]|9[78]))\\\\d{4}\"], [\"264(?:235|4(?:69|76)|5(?:3[6-9]|8[1-4])|7(?:29|72))\\\\d{4}\"], [\"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[12]|33|44|66|77|88)[2-9]\\\\d{6}\"], 0, 0, [\"264724\\\\d{4}\"]]],\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\", 0, 0, 0, 0, 0, [[\"4505[0-2]\\\\d{3}|(?:[2358][16-9]\\\\d[2-9]|4410)\\\\d{4}|(?:[2358][2-5][2-9]|4(?:[2-57-9][2-9]|6\\\\d))\\\\d{5}\", [8]], [\"6(?:[78][2-9]|9\\\\d)\\\\d{6}\", [9]], [\"800\\\\d{4}\", [7]], [\"900[1-9]\\\\d\\\\d\", [6]], [\"700[2-9]\\\\d{4}\", [8]], 0, 0, 0, 0, [\"808[1-9]\\\\d\\\\d\", [6]]]],\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\", 0, 0, 0, 0, 0, [[\"(?:(?:1[0-25]|47)\\\\d|2(?:2[2-46]|3[1-8]|4[2-69]|5[2-7]|6[1-9]|8[1-7])|3[12]2)\\\\d{5}\"], [\"(?:33|4[1349]|55|77|88|9[13-9])\\\\d{6}\"], [\"800\\\\d{5}\"], [\"90[016]\\\\d{5}\"], 0, 0, 0, 0, [\"60(?:2[78]|3[5-9]|4[02-9]|5[0-46-9]|[6-8]\\\\d|90)\\\\d{4}\"], [\"80[1-4]\\\\d{5}\"]]],\n \"AO\": [\"244\", \"00\", \"[29]\\\\d{8}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[29]\"]]], 0, 0, 0, 0, 0, 0, [[\"2\\\\d(?:[0134][25-9]|[25-9]\\\\d)\\\\d{5}\"], [\"9[1-49]\\\\d{7}\"]]],\n \"AR\": [\"54\", \"00\", \"11\\\\d{8}|(?:[2368]|9\\\\d)\\\\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)(\\\\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\", 0, 0, [[\"3888[013-9]\\\\d{5}|(?:29(?:54|66)|3(?:777|865))[2-8]\\\\d{5}|3(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\\\d{5}|(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|473|9(?:[07]2|2[26]|34|46))|3327)[45]\\\\d{5}|(?:2(?:284|302|657|920)|3(?:4(?:8[27]|92)|541|755|878))[2-7]\\\\d{5}|(?:2(?:(?:26|62)2|32[03]|477|9(?:42|83))|3(?:329|4(?:[47]6|62|89)|564))[2-6]\\\\d{5}|(?:(?:11[1-8]|670)\\\\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-7]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-7]|[235][4-6]|84)|5(?:1[2-8]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:[03][45]|[17][2-6]|[58][3-6])))\\\\d{6}|2(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|475|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\\\d{5}|(?:2(?:2(?:57|81)|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|71)|5(?:25|37|4[347]|71)|7(?:18|5[17])))[3-6]\\\\d{5}|(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[03-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[145]|4[13]|5[468]|7[2-5]|8[26])|8(?:2[5-7]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\\\d{5}\", [10]], [\"93888[013-9]\\\\d{5}|9(?:29(?:54|66)|3(?:777|865))[2-8]\\\\d{5}|93(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\\\d{5}|9(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|473|9(?:[07]2|2[26]|34|46))|3327)[45]\\\\d{5}|9(?:2(?:284|302|657|920)|3(?:4(?:8[27]|92)|541|755|878))[2-7]\\\\d{5}|9(?:2(?:(?:26|62)2|32[03]|477|9(?:42|83))|3(?:329|4(?:[47]6|62|89)|564))[2-6]\\\\d{5}|(?:675\\\\d|9(?:11[1-8]\\\\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-7]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-7]|[235][4-6]|84)|5(?:1[2-8]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:[03][45]|[17][2-6]|[58][3-6]))))\\\\d{6}|92(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|475|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\\\d{5}|9(?:2(?:2(?:57|81)|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|71)|5(?:25|37|4[347]|71)|7(?:18|5[17])))[3-6]\\\\d{5}|9(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[03-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[145]|4[13]|5[468]|7[2-5]|8[26])|8(?:2[5-7]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\\\d{5}\"], [\"800\\\\d{7}\", [10]], [\"60[04579]\\\\d{7}\", [10]], 0, 0, [\"810\\\\d{7}\", [10]]]],\n \"AS\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([267]\\\\d{6})$\", \"684$1\", 0, \"684\", [[\"6846(?:22|33|44|55|77|88|9[19])\\\\d{4}\"], [\"684(?:2(?:48|5[2468]|72)|7(?:3[13]|70|82))\\\\d{4}\"], [\"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[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\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\", 0, 0, 0, 0, 0, [[\"1(?:11\\\\d|[2-9]\\\\d{3,11})|(?:316|463|(?:51|66|73)2)\\\\d{3,10}|(?:2(?:1[467]|2[13-8]|5[2357]|6[1-46-8]|7[1-8]|8[124-7]|9[1458])|3(?:1[1-578]|3[23568]|4[5-7]|5[1378]|6[1-38]|8[3-68])|4(?:2[1-8]|35|7[1368]|8[2457])|5(?:2[1-8]|3[357]|4[147]|5[12578]|6[37])|6(?:13|2[1-47]|4[135-8]|5[468])|7(?:2[1-8]|35|4[13478]|5[68]|6[16-8]|7[1-6]|9[45]))\\\\d{4,10}\"], [\"6(?:5[0-3579]|6[013-9]|[7-9]\\\\d)\\\\d{4,10}\", [7, 8, 9, 10, 11, 12, 13]], [\"800\\\\d{6,10}\", [9, 10, 11, 12, 13]], [\"9(?:0[01]|3[019])\\\\d{6,10}\", [9, 10, 11, 12, 13]], 0, 0, 0, 0, [\"5(?:0[1-9]|17|[79]\\\\d)\\\\d{2,10}|7[28]0\\\\d{6,10}\", [5, 6, 7, 8, 9, 10, 11, 12, 13]], [\"8(?:10|2[018])\\\\d{6,10}|828\\\\d{5}\", [8, 9, 10, 11, 12, 13]]]],\n \"AU\": [\"61\", \"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\", \"1(?:[0-79]\\\\d{7,8}|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}\", [5, 6, 7, 8, 9, 10], [[\"(\\\\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, \"0|(183[12])\", 0, 0, 0, [[\"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-7]|3[2-4]|[4-6]\\\\d))|91(?:[0-57-9]\\\\d|6[0135-9])\\\\d)\\\\d{3}|(?:2(?:[0-26-9]\\\\d|3[0-8]|4[02-9]|5[0135-9])|3(?:[0-3589]\\\\d|4[0-578]|6[1-9]|7[0-35-9])|7(?:[013-57-9]\\\\d|2[0-8])|8(?:6[0-8]|[78]\\\\d|9[02-9]))\\\\d{6}\", [9]], [\"4(?:83[0-38]|93[0-4])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-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{3}|45[0-4])\\\\d{3}|13\\\\d{4}\", [6, 8, 10]]], \"0011\"],\n \"AW\": [\"297\", \"00\", \"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[25-9]\"]]], 0, 0, 0, 0, 0, 0, [[\"5(?:2\\\\d|8[1-9])\\\\d{4}\"], [\"(?:290|5[69]\\\\d|6(?:[03]0|22|4[0-2]|[69]\\\\d)|7(?:[34]\\\\d|7[07])|9(?:6[45]|9[4-8]))\\\\d{4}\"], [\"800\\\\d{4}\"], [\"900\\\\d{4}\"], 0, 0, 0, 0, [\"(?:28\\\\d|501)\\\\d{4}\"]]],\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\", [[\"18[1-8]\\\\d{3,6}\", [6, 7, 8, 9]], [\"(?:4[0-8]|50)\\\\d{4,8}\", [6, 7, 8, 9, 10]], [\"800\\\\d{4,6}\", [7, 8, 9]], [\"[67]00\\\\d{5,6}\", [8, 9]], 0, 0, [\"20\\\\d{4,8}|60[12]\\\\d{5,6}|7(?:099\\\\d{4,5}|5[03-9]\\\\d{3,7})|20[2-59]\\\\d\\\\d|(?:606|7(?:0[78]|1|3\\\\d))\\\\d{7}|(?:10|29|3[09]|70[1-5]\\\\d)\\\\d{4,8}\"]], \"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|46\", \"1[28]|2|365(?:[0-46-9]|5[0-35-9])|46\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[13-9]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"(?:222[0-79]\\\\d|365(?:[0-46-9]\\\\d|5[0-35-9]))\\\\d{4}|(?:(?:1[28]|46)\\\\d|2(?:[045]2|1[24]|2[34]|33|6[23]))\\\\d{6}\"], [\"(?:36554|99[2-9]\\\\d\\\\d)\\\\d{4}|(?:[16]0|4[04]|5[015]|7[07])\\\\d{7}\"], [\"88\\\\d{7}\"], [\"900200\\\\d{3}\"]]],\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\", 0, 0, 0, 0, 0, [[\"(?:3(?:[05-79][2-9]|1[4579]|[23][24-9]|4[2-4689]|8[2457-9])|49[2-579]|5(?:0[2-49]|[13][2-9]|[268][2-4679]|4[4689]|5[2-79]|7[2-69]|9[2-4689]))\\\\d{5}\", [8]], [\"6040\\\\d{5}|6(?:03|[1-356]|44|7\\\\d)\\\\d{6}\"], [\"8[08]\\\\d{6}\", [8]], [\"9[0246]\\\\d{6}\", [8]], 0, 0, [\"703[235]0\\\\d{3}|70(?:2[0-5]|3[0146]|[56]0)\\\\d{4}\", [8]], 0, 0, [\"8[12]\\\\d{6}\", [8]]]],\n \"BB\": [\"1\", \"011\", \"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-9]\\\\d{6})$\", \"246$1\", 0, \"246\", [[\"246(?:2(?:2[78]|7[0-4])|4(?:1[024-6]|2\\\\d|3[2-9])|5(?:20|[34]\\\\d|54|7[1-3])|6(?:2\\\\d|38)|7[35]7|9(?:1[89]|63))\\\\d{4}\"], [\"246(?:2(?:[3568]\\\\d|4[0-57-9])|45\\\\d|69[5-7]|8(?:[2-5]\\\\d|83))\\\\d{4}\"], [\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"], [\"(?:246976|900[2-9]\\\\d\\\\d)\\\\d{4}\"], [\"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[12]|33|44|66|77|88)[2-9]\\\\d{6}\"], 0, [\"246(?:292|367|4(?:1[7-9]|3[01]|44|67)|7(?:36|53))\\\\d{4}\"], 0, [\"24631\\\\d{5}\"]]],\n \"BD\": [\"880\", \"00\", \"1\\\\d{9}|2\\\\d{7,8}|88\\\\d{4,6}|(?:8[0-79]|9\\\\d)\\\\d{4,8}|(?:[346]\\\\d|[57])\\\\d{5,8}\", [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(?:28|4[14]|5)|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]\"], \"0$1\"], [\"(\\\\d)(\\\\d{7,8})\", \"$1-$2\", [\"2\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"(?:4(?:31\\\\d\\\\d|423)|5222)\\\\d{3}(?:\\\\d{2})?|8332[6-9]\\\\d\\\\d|(?:3(?:03[56]|224)|4(?:22[25]|653))\\\\d{3,4}|(?:3(?:42[47]|529|823)|4(?:027|525|65(?:28|8))|562|6257|7(?:1(?:5[3-5]|6[12]|7[156]|89)|22[589]56|32|42675|52(?:[25689](?:56|8)|[347]8)|71(?:6[1267]|75|89)|92374)|82(?:2[59]|32)56|9(?:03[23]56|23(?:256|373)|31|5(?:1|2[4589]56)))\\\\d{3}|(?:3(?:02[348]|22[35]|324|422)|4(?:22[67]|32[236-9]|6(?:2[46]|5[57])|953)|5526|6(?:024|6655)|81)\\\\d{4,5}|(?:2(?:7(?:1[0-267]|2[0-289]|3[0-29]|4[01]|5[1-3]|6[013]|7[0178]|91)|8(?:0[125]|1[1-6]|2[0157-9]|3[1-69]|41|6[1-35]|7[1-5]|8[1-8]|9[0-6])|9(?:0[0-2]|1[0-4]|2[568]|3[3-6]|5[5-7]|6[0136-9]|7[0-7]|8[014-9]))|3(?:0(?:2[025-79]|3[2-4])|181|22[12]|32[2356]|824)|4(?:02[09]|22[348]|32[045]|523|6(?:27|54))|666(?:22|53)|7(?:22[57-9]|42[56]|82[35])8|8(?:0[124-9]|2(?:181|2[02-4679]8)|4[12]|[5-7]2)|9(?:[04]2|2(?:2|328)|81))\\\\d{4}|(?:2[45]\\\\d\\\\d|3(?:1(?:2[5-7]|[5-7])|425|822)|4(?:033|1\\\\d|[257]1|332|4(?:2[246]|5[25])|6(?:2[35]|56|62)|8(?:23|54)|92[2-5])|5(?:02[03489]|22[457]|32[35-79]|42[46]|6(?:[18]|53)|724|826)|6(?:023|2(?:2[2-5]|5[3-5]|8)|32[3478]|42[34]|52[47]|6(?:[18]|6(?:2[34]|5[24]))|[78]2[2-5]|92[2-6])|7(?:02|21\\\\d|[3-589]1|6[12]|72[24])|8(?:217|3[12]|[5-7]1)|9[24]1)\\\\d{5}|(?:(?:3[2-8]|5[2-57-9]|6[03-589])1|4[4689][18])\\\\d{5}|[59]1\\\\d{5}\"], [\"(?:1[13-9]\\\\d|644)\\\\d{7}|(?:3[78]|44|66)[02-9]\\\\d{7}\", [10]], [\"80[03]\\\\d{7}\", [10]], 0, 0, 0, 0, 0, [\"96(?:0[469]|1[0-47]|3[389]|6[69]|7[78])\\\\d{6}\", [10]]]],\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\", 0, 0, 0, 0, 0, [[\"80[2-8]\\\\d{5}|(?:1[0-69]|[23][2-8]|4[23]|5\\\\d|6[013-57-9]|71|8[1-79]|9[2-4])\\\\d{6}\", [8]], [\"4[5-9]\\\\d{7}\", [9]], [\"800[1-9]\\\\d{4}\", [8]], [\"(?:70(?:2[0-57]|3[0457]|44|69|7[0579])|90(?:0[0-35-8]|1[36]|2[0-3568]|3[0135689]|4[2-68]|5[1-68]|6[0-378]|7[23568]|9[34679]))\\\\d{4}\", [8]], 0, 0, [\"78(?:0[57]|1[0458]|2[25]|3[15-8]|48|[56]0|7[078])\\\\d{4}\", [8]], 0, 0, [\"7879\\\\d{4}\", [8]]]],\n \"BF\": [\"226\", \"00\", \"[025-7]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[025-7]\"]]], 0, 0, 0, 0, 0, 0, [[\"2(?:0(?:49|5[23]|6[56]|9[016-9])|4(?:4[569]|5[4-6]|6[56]|7[0179])|5(?:[34]\\\\d|50|6[5-7]))\\\\d{4}\"], [\"(?:0[127]|5[1-8]|[67]\\\\d)\\\\d{6}\"]]],\n \"BG\": [\"359\", \"00\", \"[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\", [6, 7, 8, 9], [[\"(\\\\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\", 0, 0, 0, 0, 0, [[\"2\\\\d{5,7}|(?:43[1-6]|70[1-9])\\\\d{4,5}|(?:[36]\\\\d|4[124-7]|[57][1-9]|8[1-6]|9[1-7])\\\\d{5,6}\", [6, 7, 8]], [\"43[07-9]\\\\d{5}|(?:48|8[7-9]\\\\d|9(?:8\\\\d|9[69]))\\\\d{6}\", [8, 9]], [\"800\\\\d{5}\", [8]], [\"90\\\\d{6}\", [8]], 0, 0, 0, 0, 0, [\"700\\\\d{5}\", [8]]]],\n \"BH\": [\"973\", \"00\", \"[136-9]\\\\d{7}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[13679]|8[047]\"]]], 0, 0, 0, 0, 0, 0, [[\"(?:1(?:3[1356]|6[0156]|7\\\\d)\\\\d|6(?:1[16]\\\\d|500|6(?:0\\\\d|3[12]|44|7[7-9]|88)|9[69][69])|7(?:1(?:11|78)|7\\\\d\\\\d))\\\\d{4}\"], [\"(?:3(?:[1-79]\\\\d|8[0-47-9])\\\\d|6(?:3(?:00|33|6[16])|6(?:3[03-9]|[69]\\\\d|7[0-6])))\\\\d{4}\"], [\"80\\\\d{6}\"], [\"(?:87|9[014578])\\\\d{6}\"], 0, 0, 0, 0, 0, [\"84\\\\d{6}\"]]],\n \"BI\": [\"257\", \"00\", \"(?:[267]\\\\d|31)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2367]\"]]], 0, 0, 0, 0, 0, 0, [[\"22\\\\d{6}\"], [\"(?:29|31|6[1289]|7[125-9])\\\\d{6}\"]]],\n \"BJ\": [\"229\", \"00\", \"(?:[2689]\\\\d|51)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[25689]\"]]], 0, 0, 0, 0, 0, 0, [[\"2(?:02|1[037]|2[45]|3[68])\\\\d{5}\"], [\"(?:51|6\\\\d|9[013-9])\\\\d{6}\"], 0, 0, 0, 0, [\"81\\\\d{6}\"], 0, [\"857[58]\\\\d{4}\"]]],\n \"BL\": [\"590\", \"00\", \"(?:590|69\\\\d|976)\\\\d{6}\", [9], 0, \"0\", 0, 0, 0, 0, 0, [[\"590(?:2[7-9]|5[12]|87)\\\\d{4}\"], [\"69(?:0\\\\d\\\\d|1(?:2[29]|3[0-5]))\\\\d{4}\"], 0, 0, 0, 0, 0, 0, [\"976[01]\\\\d{5}\"]]],\n \"BM\": [\"1\", \"011\", \"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-8]\\\\d{6})$\", \"441$1\", 0, \"441\", [[\"441(?:[46]\\\\d\\\\d|5(?:4\\\\d|60|89))\\\\d{4}\"], [\"441(?:[2378]\\\\d|5[0-39])\\\\d{5}\"], [\"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[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\n \"BN\": [\"673\", \"00\", \"[2-578]\\\\d{6}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-578]\"]]], 0, 0, 0, 0, 0, 0, [[\"22[0-7]\\\\d{4}|(?:2[013-9]|[34]\\\\d|5[0-25-9])\\\\d{5}\"], [\"(?:22[89]|[78]\\\\d\\\\d)\\\\d{4}\"], 0, 0, 0, 0, 0, 0, [\"5[34]\\\\d{5}\"]]],\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)?\", 0, 0, 0, [[\"(?:2(?:2\\\\d\\\\d|5(?:11|[258]\\\\d|9[67])|6(?:12|2\\\\d|9[34])|8(?:2[34]|39|62))|3(?:3\\\\d\\\\d|4(?:6\\\\d|8[24])|8(?:25|42|5[257]|86|9[25])|9(?:[27]\\\\d|3[2-4]|4[248]|5[24]|6[2-6]))|4(?:4\\\\d\\\\d|6(?:11|[24689]\\\\d|72)))\\\\d{4}\", [8]], [\"[67]\\\\d{7}\", [8]], [\"8001[07]\\\\d{4}\", [9]]]],\n \"BQ\": [\"599\", \"00\", \"(?:[34]1|7\\\\d)\\\\d{5}\", [7], 0, 0, 0, 0, 0, 0, \"[347]\", [[\"(?:318[023]|41(?:6[023]|70)|7(?:1[578]|2[05]|50)\\\\d)\\\\d{3}\"], [\"(?:31(?:8[14-8]|9[14578])|416[14-9]|7(?:0[01]|7[07]|8\\\\d|9[056])\\\\d)\\\\d{3}\"]]],\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-24679]))\\\\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\", 0, 0, [[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-5]\\\\d{7}\", [10]], [\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])(?:7|9\\\\d)\\\\d{7}\", [10, 11]], [\"800\\\\d{6,7}\", [9, 10]], [\"300\\\\d{6}|[59]00\\\\d{6,7}\", [9, 10]], 0, 0, 0, 0, 0, [\"300\\\\d{7}|[34]00\\\\d{5}|4(?:02|37)0\\\\d{4}\", [8, 10]]]],\n \"BS\": [\"1\", \"011\", \"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([3-8]\\\\d{6})$\", \"242$1\", 0, \"242\", [[\"242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[347]|8[0-4]|9[2-467])|461|502|6(?:0[1-4]|12|2[013]|[45]0|7[67]|8[78]|9[89])|7(?:02|88))\\\\d{4}\"], [\"242(?:3(?:5[79]|7[56]|95)|4(?:[23][1-9]|4[1-35-9]|5[1-8]|6[2-8]|7\\\\d|81)|5(?:2[45]|3[35]|44|5[1-46-9]|65|77)|6[34]6|7(?:27|38)|8(?:0[1-9]|1[02-9]|2\\\\d|[89]9))\\\\d{4}\"], [\"242300\\\\d{4}|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[12]|33|44|66|77|88)[2-9]\\\\d{6}\"], 0, [\"242225\\\\d{4}\"]]],\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\"]]], 0, 0, 0, 0, 0, 0, [[\"(?:2[3-6]|[34][5-7]|5[236]|6[2-46]|7[246]|8[2-4])\\\\d{5}\", [7]], [\"(?:1[67]|77)\\\\d{6}\", [8]]]],\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-79]\"]], [\"(\\\\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\"]]], 0, 0, 0, 0, 0, 0, [[\"(?:2(?:4[0-48]|6[0-24]|9[0578])|3(?:1[0-35-9]|55|[69]\\\\d|7[013])|4(?:6[03]|7[1267]|9[0-5])|5(?:3[0389]|4[0489]|7[1-47]|88|9[0-49])|6(?:2[1-35]|5[149]|8[067]))\\\\d{4}\", [7]], [\"77200\\\\d{3}|(?:321|7(?:[1-6]\\\\d|7[013-9]|8[01]))\\\\d{5}\", [8]], [\"(?:0800|800\\\\d)\\\\d{6}\", [10]], [\"90\\\\d{5}\", [7]], 0, 0, 0, 0, [\"79(?:1(?:[01]\\\\d|20)|2[0-2]\\\\d)\\\\d{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, [[\"(?:1(?:5(?:1[1-5]|[24]\\\\d|6[2-4]|9[1-7])|6(?:[235]\\\\d|4[1-7])|7\\\\d\\\\d)|2(?:1(?:[246]\\\\d|3[0-35-9]|5[1-9])|2(?:[235]\\\\d|4[0-8])|3(?:[26]\\\\d|3[02-79]|4[024-7]|5[03-7])))\\\\d{5}\", [9]], [\"(?:2(?:5[5-79]|9[1-9])|(?:33|44)\\\\d)\\\\d{6}\", [9]], [\"800\\\\d{3,7}|8(?:0[13]|20\\\\d)\\\\d{7}\"], [\"(?:810|902)\\\\d{7}\", [10]], 0, 0, 0, 0, [\"249\\\\d{6}\", [9]]], \"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\"]]], 0, 0, 0, 0, 0, 0, [[\"(?:236|732)\\\\d{4}|[2-578][02]\\\\d{5}\", [7]], [\"6[0-35-7]\\\\d{5}\", [7]], [\"0800\\\\d{7}\", [11]]]],\n \"CA\": [\"1\", \"011\", \"(?:[2-8]\\\\d|90)\\\\d{8}\", [10], 0, \"1\", 0, 0, 0, 0, 0, [[\"(?:2(?:04|[23]6|[48]9|50)|3(?:06|43|6[57])|4(?:03|1[68]|3[178]|50)|5(?:06|1[49]|48|79|8[17])|6(?:04|13|39|47|72)|7(?:0[59]|78|8[02])|8(?:[06]7|19|25|73)|90[25])[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[12]|33|44|66|77|88)|622)[2-9]\\\\d{6}\"], 0, 0, 0, [\"600[2-9]\\\\d{6}\"]]],\n \"CC\": [\"61\", \"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\", \"1(?:[0-79]\\\\d|8[0-24-9])\\\\d{7}|[148]\\\\d{8}|1\\\\d{5,7}\", [6, 7, 8, 9, 10], 0, \"0\", 0, \"0|([59]\\\\d{7})$\", \"8$1\", 0, 0, [[\"8(?:51(?:0(?:02|31|60|89)|118)|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(?:83[0-38]|93[0-4])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-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{3}|45[0-4])\\\\d{3}|13\\\\d{4}\", [6, 8, 10]]], \"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\", 0, 0, 0, 0, 0, [[\"12\\\\d{7}|[1-6]\\\\d{6}\"], [\"88\\\\d{5}|(?:8[0-2459]|9[017-9])\\\\d{7}\"]]],\n \"CF\": [\"236\", \"00\", \"(?:[27]\\\\d{3}|8776)\\\\d{4}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[278]\"]]], 0, 0, 0, 0, 0, 0, [[\"2[12]\\\\d{6}\"], [\"7[0257]\\\\d{6}\"], 0, [\"8776\\\\d{4}\"]]],\n \"CG\": [\"242\", \"00\", \"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"801\"]], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[02]\"]]], 0, 0, 0, 0, 0, 0, [[\"222[1-589]\\\\d{5}\"], [\"026(?:1[0-5]|6[6-9])\\\\d{4}|0(?:[14-6]\\\\d\\\\d|2(?:40|5[5-8]|6[07-9]))\\\\d{5}\"], 0, [\"80(?:0\\\\d\\\\d|11[0-4])\\\\d{4}\"]]],\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\", 0, 0, 0, 0, 0, [[\"(?:2[12467]|3[1-4]|4[134]|5[256]|6[12]|[7-9]1)\\\\d{7}\"], [\"7[35-9]\\\\d{7}\"], [\"800\\\\d{6}\"], [\"90[016]\\\\d{6}\"], [\"878\\\\d{6}\"], 0, [\"5[18]\\\\d{7}\"], [\"74[0248]\\\\d{6}\"], 0, [\"84[0248]\\\\d{6}\"]]],\n \"CI\": [\"225\", \"00\", \"[02]\\\\d{9}|[02-9]\\\\d{7}\", [8, 10], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[03-9]|2(?:[02-4]|1[023578])\", \"[03-9]|2(?:[02-4]|1(?:[02357]|80))\"]], [\"(\\\\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\"]]], 0, 0, 0, 0, 0, 0, [[\"(?:2(?:0[023]|[15]\\\\d{3}|7(?:2(?:0[23]|1[2357]|[23][45]|4[3-5])|3(?:06|1[69]|[2-6]7)))|3(?:0[06]|1[069]|[2-4][07]|5[09]|6[08]))\\\\d{5}|2(?:1[02357]|[23][045]|4[03-5])\\\\d{5}\"], [\"(?:(?:0(?:[15]\\\\d\\\\d|7(?:[04-8][7-9]|9[78]))|[457]\\\\d|6[014-9]|8[4-9]|9[4-8])\\\\d\\\\d|2[0-3]80)\\\\d{4}|0[1-9]\\\\d{6}\"]]],\n \"CK\": [\"682\", \"00\", \"[2-578]\\\\d{4}\", [5], [[\"(\\\\d{2})(\\\\d{3})\", \"$1 $2\", [\"[2-578]\"]]], 0, 0, 0, 0, 0, 0, [[\"(?:2\\\\d|3[13-7]|4[1-5])\\\\d{3}\"], [\"[578]\\\\d{4}\"]]],\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-3]\"], \"($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\"]]], 0, 0, 0, 0, 0, 0, [[\"2(?:1982[0-6]|3314[05-9])\\\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\\\d\\\\d|3(?:0\\\\d|1[0-35-9]|2[1-9]|3[0-29]|40)))|80[1-9]\\\\d\\\\d|9(?:3(?:[0-57-9]\\\\d\\\\d|6(?:0[02-9]|[1-9]\\\\d))|6(?:[0-8]\\\\d\\\\d|9(?:[02-79]\\\\d|1[05-9]))|7[1-9]\\\\d\\\\d|9(?:[03-9]\\\\d\\\\d|1(?:[0235-9]\\\\d|4[0-24-9])|2(?:[0-79]\\\\d|8[0-46-9]))))\\\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\\\d{7}\", [9]], [\"\", [9]], [\"(?:123|8)00\\\\d{6}\", [9, 11]], 0, 0, 0, 0, 0, [\"44\\\\d{7}\", [9]], [\"600\\\\d{7,8}\", [10, 11]]]],\n \"CM\": [\"237\", \"00\", \"(?:[26]\\\\d\\\\d|88)\\\\d{6}\", [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]\"]]], 0, 0, 0, 0, 0, 0, [[\"2(?:22|33)\\\\d{6}\", [9]], [\"(?:24[23]|6[5-9]\\\\d)\\\\d{6}\", [9]], [\"88\\\\d{6}\", [8]]]],\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|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, \"0|(1(?:[12]\\\\d|79)\\\\d\\\\d)\", 0, 0, 0, [[\"(?:10(?:[02-79]\\\\d\\\\d|[18](?:0[1-9]|[1-9]\\\\d))|21(?:[18](?:0[1-9]|[1-9]\\\\d)|[2-79]\\\\d\\\\d))\\\\d{5}|(?:43[35]|754)\\\\d{7,8}|8(?:078\\\\d{7}|51\\\\d{7,8})|(?:10|(?:2|85)1|43[35]|754)(?:100\\\\d\\\\d|95\\\\d{3,4})|(?:2[02-57-9]|3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1\\\\d|2[37]|3[12]|51|7[13-79]|9[15])|7(?:[39]1|5[57]|6[09])|8(?:71|98))(?:[02-8]\\\\d{7}|1(?:0(?:0\\\\d\\\\d(?:\\\\d{3})?|[1-9]\\\\d{5})|[1-9]\\\\d{6})|9(?:[0-46-9]\\\\d{6}|5\\\\d{3}(?:\\\\d(?:\\\\d{2})?)?))|(?:3(?:1[02-9]|35|49|5\\\\d|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|3[46-9]|5[2-9]|6[47-9]|7\\\\d|8[23])|5(?:3[03-9]|4[36]|5[02-9]|6[1-46]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[17]\\\\d|2[248]|3[04-9]|4[3-6]|5[0-3689]|6[2368]|9[02-9])|8(?:1[236-8]|2[5-7]|3\\\\d|5[2-9]|7[02-9]|8[36-8]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:[02-8]\\\\d{6}|1(?:0(?:0\\\\d\\\\d(?:\\\\d{2})?|[1-9]\\\\d{4})|[1-9]\\\\d{5})|9(?:[0-46-9]\\\\d{5}|5\\\\d{3,5}))\", [7, 8, 9, 10, 11]], [\"1740[0-5]\\\\d{6}|1(?:[38]\\\\d|4[57]|5[0-35-9]|6[25-7]|7[0-35-8]|9[0135-9])\\\\d{8}\", [11]], [\"(?:(?:10|21)8|8)00\\\\d{7}\", [10, 12]], [\"16[08]\\\\d{5}\", [8]], 0, 0, 0, 0, 0, [\"400\\\\d{7}|950\\\\d{7,8}|(?:10|2[0-57-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[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))96\\\\d{3,4}\", [7, 8, 9, 10, 11]]], \"00\"],\n \"CO\": [\"57\", \"00(?:4(?:[14]4|56)|[579])\", \"(?:1\\\\d|3)\\\\d{9}|[124-8]\\\\d{7}\", [8, 10, 11], [[\"(\\\\d)(\\\\d{7})\", \"$1 $2\", [\"[14][2-9]|[25-8]\"], \"($1)\"], [\"(\\\\d{3})(\\\\d{7})\", \"$1 $2\", [\"3\"]], [\"(\\\\d)(\\\\d{3})(\\\\d{7})\", \"$1-$2-$3\", [\"1\"], \"0$1\", 0, \"$1 $2 $3\"]], \"0\", 0, \"0([3579]|4(?:[14]4|56))?\", 0, 0, 0, [[\"[124-8][2-9]\\\\d{6}\", [8]], [\"3333(?:0(?:0\\\\d|1[0-5])|[4-9]\\\\d\\\\d)\\\\d{3}|3(?:24[2-6]|3(?:00|3[0-24-9]))\\\\d{6}|3(?:0[0-5]|1\\\\d|2[0-3]|5[01]|70)\\\\d{7}\", [10]], [\"1800\\\\d{7}\", [11]], [\"19(?:0[01]|4[78])\\\\d{7}\", [11]]]],\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))\", 0, 0, 0, [[\"210[7-9]\\\\d{4}|2(?:[024-7]\\\\d|1[1-9])\\\\d{5}\", [8]], [\"(?:3005\\\\d|6500[01])\\\\d{3}|(?:5[07]|6[0-4]|7[0-3]|8[3-9])\\\\d{6}\", [8]], [\"800\\\\d{7}\", [10]], [\"90[059]\\\\d{7}\", [10]], 0, 0, 0, 0, [\"(?:210[0-6]|4\\\\d{3}|5100)\\\\d{4}\", [8]]]],\n \"CU\": [\"53\", \"119\", \"[27]\\\\d{6,7}|[34]\\\\d{5,7}|(?: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\", [\"5\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{7})\", \"$1 $2\", [\"8\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"(?:3[23]|48)\\\\d{4,6}|(?:31|4[36]|8(?:0[25]|78)\\\\d)\\\\d{6}|(?:2[1-4]|4[1257]|7\\\\d)\\\\d{5,6}\"], [\"5\\\\d{7}\", [8]], [\"800\\\\d{7}\", [10]], 0, 0, 0, 0, 0, 0, [\"807\\\\d{7}\", [10]]]],\n \"CV\": [\"238\", \"0\", \"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[2-589]\"]]], 0, 0, 0, 0, 0, 0, [[\"2(?:2[1-7]|3[0-8]|4[12]|5[1256]|6\\\\d|7[1-3]|8[1-5])\\\\d{4}\"], [\"(?:[34][36]|5[1-389]|9\\\\d)\\\\d{5}\"], [\"800\\\\d{4}\"]]],\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]\", [[\"9(?:4(?:3[0-5]|4[14]|6\\\\d)|50\\\\d|7(?:2[014]|3[02-9]|4[4-9]|6[357]|77|8[7-9])|8(?:3[39]|[46]\\\\d|7[01]|8[57-9]))\\\\d{4}\"], [\"953[01]\\\\d{4}|9(?:5[12467]|6[5-9])\\\\d{5}\"], 0, 0, 0, 0, 0, [\"955\\\\d{5}\", [8]], 0, [\"60[0-2]\\\\d{4}\", [7]]]],\n \"CX\": [\"61\", \"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\", \"1(?:[0-79]\\\\d|8[0-24-9])\\\\d{7}|[148]\\\\d{8}|1\\\\d{5,7}\", [6, 7, 8, 9, 10], 0, \"0\", 0, \"0|([59]\\\\d{7})$\", \"8$1\", 0, 0, [[\"8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|235)|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(?:83[0-38]|93[0-4])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-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{3}|45[0-4])\\\\d{3}|13\\\\d{4}\", [6, 8, 10]]], \"0011\"],\n \"CY\": [\"357\", \"00\", \"(?:[279]\\\\d|[58]0)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"[257-9]\"]]], 0, 0, 0, 0, 0, 0, [[\"2[2-6]\\\\d{6}\"], [\"9[4-79]\\\\d{6}\"], [\"800\\\\d{5}\"], [\"90[09]\\\\d{5}\"], [\"700\\\\d{5}\"], 0, [\"(?:50|77)\\\\d{6}\"], 0, 0, [\"80[1-9]\\\\d{5}\"]]],\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{3})\", \"$1 $2 $3 $4\", [\"9\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"9\"]]], 0, 0, 0, 0, 0, 0, [[\"(?:2\\\\d|3[1257-9]|4[16-9]|5[13-9])\\\\d{7}\"], [\"(?:60[1-8]|7(?:0[2-5]|[2379]\\\\d))\\\\d{6}\"], [\"800\\\\d{6}\"], [\"9(?:0[05689]|76)\\\\d{6}\"], [\"70[01]\\\\d{6}\"], 0, [\"9(?:5\\\\d|7[2-4])\\\\d{6}\"], 0, [\"9[17]0\\\\d{6}\"], [\"8[134]\\\\d{7}\"]]],\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(?:[12]\\\\d|3[2-689]|7[1-7])\\\\d{1,8}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}|49(?:[05]\\\\d|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{5})(\\\\d{6})\", \"$1 $2\", [\"15[0568]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{7})\", \"$1 $2\", [\"15[1279]\"], \"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\", 0, 0, 0, 0, 0, [[\"32\\\\d{9,11}|49[3-6]\\\\d{10}|49[0-7]\\\\d{3,9}|(?:[34]0|[68]9)\\\\d{3,13}|(?:2(?:0[1-689]|[1-3569]\\\\d|4[0-8]|7[1-7]|8[0-7])|3(?:[3569]\\\\d|4[0-79]|7[1-7]|8[1-8])|4(?:1[02-9]|[2-48]\\\\d|5[0-6]|6[0-8]|7[0-79])|5(?:0[2-8]|[124-6]\\\\d|[38][0-8]|[79][0-7])|6(?:0[02-9]|[1-358]\\\\d|[47][0-8]|6[1-9])|7(?:0[2-8]|1[1-9]|[27][0-7]|3\\\\d|[4-6][0-8]|8[0-5]|9[013-7])|8(?:0[2-9]|1[0-79]|2\\\\d|3[0-46-9]|4[0-6]|5[013-9]|6[1-8]|7[0-8]|8[0-24-6])|9(?:0[6-9]|[1-4]\\\\d|[589][0-7]|6[0-8]|7[0-467]))\\\\d{3,12}\", [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]], [\"15[0-25-9]\\\\d{8}|1(?:6[023]|7\\\\d)\\\\d{7,8}\", [10, 11]], [\"800\\\\d{7,12}\", [10, 11, 12, 13, 14, 15]], [\"(?:137[7-9]|900(?:[135]|9\\\\d))\\\\d{6}\", [10, 11]], [\"700\\\\d{8}\", [11]], 0, [\"18(?:1\\\\d{5,11}|[2-9]\\\\d{8})\", [8, 9, 10, 11, 12, 13, 14]], [\"16(?:4\\\\d{1,10}|[89]\\\\d{1,11})\", [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]], 0, [\"180\\\\d{5,11}|13(?:7[1-6]\\\\d\\\\d|8)\\\\d{4}\", [7, 8, 9, 10, 11, 12, 13, 14]]]],\n \"DJ\": [\"253\", \"00\", \"(?:2\\\\d|77)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[27]\"]]], 0, 0, 0, 0, 0, 0, [[\"2(?:1[2-5]|7[45])\\\\d{5}\"], [\"77\\\\d{6}\"]]],\n \"DK\": [\"45\", \"00\", \"[2-9]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2-9]\"]]], 0, 0, 0, 0, 0, 0, [[\"(?:[2-7]\\\\d|8[126-9]|9[1-46-9])\\\\d{6}\"], [\"\"], [\"80\\\\d{6}\"], [\"90\\\\d{6}\"]]],\n \"DM\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-7]\\\\d{6})$\", \"767$1\", 0, \"767\", [[\"767(?:2(?:55|66)|4(?:2[01]|4[0-25-9])|50[0-4])\\\\d{4}\"], [\"767(?:2(?:[2-4689]5|7[5-7])|31[5-7]|61[1-8]|70[1-6])\\\\d{4}\"], [\"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[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\n \"DO\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, 0, 0, 0, \"8001|8[024]9\", [[\"8(?:[04]9[2-9]\\\\d\\\\d|29(?:2(?:[0-59]\\\\d|6[04-9]|7[0-27]|8[0237-9])|3(?:[0-35-9]\\\\d|4[7-9])|[45]\\\\d\\\\d|6(?:[0-27-9]\\\\d|[3-5][1-9]|6[0135-8])|7(?:0[013-9]|[1-37]\\\\d|4[1-35689]|5[1-4689]|6[1-57-9]|8[1-79]|9[1-8])|8(?:0[146-9]|1[0-48]|[248]\\\\d|3[1-79]|5[01589]|6[013-68]|7[124-8]|9[0-8])|9(?:[0-24]\\\\d|3[02-46-9]|5[0-79]|60|7[0169]|8[57-9]|9[02-9])))\\\\d{4}\"], [\"8[024]9[2-9]\\\\d{6}\"], [\"8(?:00(?:14|[2-9]\\\\d)|(?:33|44|55|66|77|88)[2-9]\\\\d)\\\\d{5}\"], [\"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[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\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\", 0, 0, 0, 0, 0, [[\"9619\\\\d{5}|(?:1\\\\d|2[013-79]|3[0-8]|4[0135689])\\\\d{6}\"], [\"(?:5(?:4[0-29]|5\\\\d|6[01])|6(?:[569]\\\\d|7[0-6])|7[7-9]\\\\d)\\\\d{6}\", [9]], [\"800\\\\d{6}\", [9]], [\"80[3-689]1\\\\d{5}\", [9]], 0, 0, 0, 0, [\"98[23]\\\\d{6}\", [9]], [\"80[12]1\\\\d{5}\", [9]]]],\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\", 0, 0, 0, 0, 0, [[\"[2-7][2-7]\\\\d{6}\", [8]], [\"964[0-2]\\\\d{5}|9(?:39|[57][89]|6[0-36-9]|[89]\\\\d)\\\\d{6}\", [9]], [\"1800\\\\d{7}|1[78]00\\\\d{6}\", [10, 11]], 0, 0, 0, 0, 0, [\"[2-7]890\\\\d{4}\", [8]]]],\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\"]]], 0, 0, 0, 0, 0, 0, [[\"(?:3[23589]|4[3-8]|6\\\\d|7[1-9]|88)\\\\d{5}\", [7]], [\"5(?:[0-35-9]\\\\d{6}|4(?:[0-57-9]\\\\d{5}|6(?:[0-24-9]\\\\d{4}|3(?:[0-35-9]\\\\d{3}|4000))))|8(?:1(?:0(?:000|[3-9]\\\\d\\\\d)|(?:1(?:0[236]|1\\\\d)|(?:23|[3-79]\\\\d)\\\\d)\\\\d)|2(?:0(?:000|(?:19|[24-7]\\\\d)\\\\d)|(?:(?:[124-6]\\\\d|3[5-9]|8[2-4])\\\\d|7(?:[679]\\\\d|8[13-9]))\\\\d)|[349]\\\\d{4})\\\\d\\\\d|5(?:(?:[02]\\\\d|5[0-478])\\\\d|1(?:[0-8]\\\\d|95)|6(?:4[0-4]|5[1-589]))\\\\d{3}\", [7, 8]], [\"800(?:(?:0\\\\d\\\\d|1)\\\\d|[2-9])\\\\d{3}\"], [\"(?:40\\\\d\\\\d|900)\\\\d{4}\", [7, 8]], [\"70[0-2]\\\\d{5}\", [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\", [\"[189]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"13[23]\\\\d{6}|(?:15|57)\\\\d{6,7}|(?:2[2-4]|3|4[05-8]|5[05]|6[24-689]|8[2468]|9[235-7])\\\\d{7}\", [8, 9]], [\"1[0-25]\\\\d{8}\", [10]], [\"800\\\\d{7}\", [10]], [\"900\\\\d{7}\", [10]]]],\n \"EH\": [\"212\", \"00\", \"[5-8]\\\\d{8}\", [9], 0, \"0\", 0, 0, 0, 0, \"528[89]\", [[\"528[89]\\\\d{5}\"], [\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:0[0-8]|6[1267]|7[0-37]))\\\\d{6}\"], [\"80\\\\d{7}\"], [\"89\\\\d{7}\"], 0, 0, 0, 0, [\"592(?:4[0-2]|93)\\\\d{4}\"]]],\n \"ER\": [\"291\", \"00\", \"[178]\\\\d{6}\", [7], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[178]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"(?:1(?:1[12568]|[24]0|55|6[146])|8\\\\d\\\\d)\\\\d{4}\"], [\"(?:17[1-3]|7\\\\d\\\\d)\\\\d{4}\"]]],\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]\"]]], 0, 0, 0, 0, 0, 0, [[\"96906(?:0[0-8]|1[1-9]|[2-9]\\\\d)\\\\d\\\\d|9(?:69(?:0[0-57-9]|[1-9]\\\\d)|73(?:[0-8]\\\\d|9[1-9]))\\\\d{4}|(?:8(?:[1356]\\\\d|[28][0-8]|[47][1-9])|9(?:[135]\\\\d|[268][0-8]|4[1-9]|7[124-9]))\\\\d{6}\"], [\"(?:590[16]00\\\\d|9(?:6906(?:09|10)|7390\\\\d\\\\d))\\\\d\\\\d|(?:6\\\\d|7[1-48])\\\\d{7}\"], [\"[89]00\\\\d{6}\"], [\"80[367]\\\\d{6}\"], [\"70\\\\d{7}\"], 0, [\"51\\\\d{7}\"], 0, 0, [\"90[12]\\\\d{6}\"]]],\n \"ET\": [\"251\", \"00\", \"(?:11|[2-59]\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[1-59]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"11667[01]\\\\d{3}|(?:11(?:1(?:1[124]|2[2-7]|3[1-5]|5[5-8]|8[6-8])|2(?:13|3[6-8]|5[89]|7[05-9]|8[2-6])|3(?:2[01]|3[0-289]|4[1289]|7[1-4]|87)|4(?:1[69]|3[2-49]|4[0-3]|6[5-8])|5(?:1[578]|44|5[0-4])|6(?:1[78]|2[69]|39|4[5-7]|5[1-5]|6[0-59]|8[015-8]))|2(?:2(?:11[1-9]|22[0-7]|33\\\\d|44[1467]|66[1-68])|5(?:11[124-6]|33[2-8]|44[1467]|55[14]|66[1-3679]|77[124-79]|880))|3(?:3(?:11[0-46-8]|(?:22|55)[0-6]|33[0134689]|44[04]|66[01467])|4(?:44[0-8]|55[0-69]|66[0-3]|77[1-5]))|4(?:6(?:119|22[0-24-7]|33[1-5]|44[13-69]|55[14-689]|660|88[1-4])|7(?:(?:11|22)[1-9]|33[13-7]|44[13-6]|55[1-689]))|5(?:7(?:227|55[05]|(?:66|77)[14-8])|8(?:11[149]|22[013-79]|33[0-68]|44[013-8]|550|66[1-5]|77\\\\d)))\\\\d{4}\"], [\"9\\\\d{8}\"]]],\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)(\\\\d{4,9})\", \"$1 $2\", [\"[2568][1-8]|3(?:0[1-9]|[1-9])|9\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3,7})\", \"$1 $2\", [\"[12]00|[368]|70[07-9]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4,8})\", \"$1 $2\", [\"[1245]|7[135]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{6,10})\", \"$1 $2\", [\"7\"], \"0$1\"]], \"0\", 0, 0, 0, 0, \"1[03-79]|[2-9]\", [[\"(?:1[3-79][1-8]|[235689][1-8]\\\\d)\\\\d{2,6}\", [5, 6, 7, 8, 9]], [\"(?:4[0-8]|50)\\\\d{4,8}\", [6, 7, 8, 9, 10]], [\"800\\\\d{4,6}\", [7, 8, 9]], [\"[67]00\\\\d{5,6}\", [8, 9]], 0, 0, [\"20\\\\d{4,8}|60[12]\\\\d{5,6}|7(?:099\\\\d{4,5}|5[03-9]\\\\d{3,7})|20[2-59]\\\\d\\\\d|(?:606|7(?:0[78]|1|3\\\\d))\\\\d{7}|(?:10|29|3[09]|70[1-5]\\\\d)\\\\d{4,8}\"]], \"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, [[\"603\\\\d{4}|(?:3[0-5]|6[25-7]|8[58])\\\\d{5}\", [7]], [\"(?:[279]\\\\d|45|5[01568]|8[034679])\\\\d{5}\", [7]], [\"0800\\\\d{7}\", [11]]], \"00\"],\n \"FK\": [\"500\", \"00\", \"[2-7]\\\\d{4}\", [5], 0, 0, 0, 0, 0, 0, 0, [[\"[2-47]\\\\d{4}\"], [\"[56]\\\\d{4}\"]]],\n \"FM\": [\"691\", \"00\", \"(?:[39]\\\\d\\\\d|820)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[389]\"]]], 0, 0, 0, 0, 0, 0, [[\"31(?:00[67]|208|309)\\\\d\\\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-6]\\\\d)\\\\d)\\\\d{3}\"], [\"31(?:00[67]|208|309)\\\\d\\\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-7]\\\\d)\\\\d)\\\\d{3}\"]]],\n \"FO\": [\"298\", \"00\", \"[2-9]\\\\d{5}\", [6], [[\"(\\\\d{6})\", \"$1\", [\"[2-9]\"]]], 0, 0, \"(10(?:01|[12]0|88))\", 0, 0, 0, [[\"(?:20|[34]\\\\d|8[19])\\\\d{4}\"], [\"(?:[27][1-9]|5\\\\d|91)\\\\d{4}\"], [\"80[257-9]\\\\d{3}\"], [\"90(?:[13-5][15-7]|2[125-7]|9\\\\d)\\\\d\\\\d\"], 0, 0, 0, 0, [\"(?:6[0-36]|88)\\\\d{4}\"]]],\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\", 0, 0, 0, 0, 0, [[\"(?:[1-35]\\\\d|4[1-9])\\\\d{7}\"], [\"(?:6(?:[0-24-8]\\\\d|3[0-8]|9[589])|7(?:00|[3-9]\\\\d))\\\\d{6}\"], [\"80[0-5]\\\\d{6}\"], [\"836(?:0[0-36-9]|[1-9]\\\\d)\\\\d{4}|8(?:1[2-9]|2[2-47-9]|3[0-57-9]|[569]\\\\d|8[0-35-9])\\\\d{6}\"], 0, 0, [\"80[6-9]\\\\d{6}\"], 0, [\"9\\\\d{8}\"], [\"8(?:1[01]|2[0156]|84)\\\\d{6}\"]]],\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\", [\"11|[67]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"0\"]]], 0, 0, \"0(11\\\\d{6}|6[256]\\\\d{6}|7[47]\\\\d{6})\", \"$1\", 0, 0, [[\"[01]1\\\\d{6}\", [8]], [\"(?:0[2-7]|6[256]|7[47])\\\\d{6}|[2-7]\\\\d{6}\"]]],\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[03])|4(?:[0-5]\\\\d\\\\d|69[7-9])|(?:5[0-26-9]|6[0-4]|[78][0-49])\\\\d\\\\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[02]))|(?: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-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|81|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, \"1|([2-9]\\\\d{6})$\", \"473$1\", 0, \"473\", [[\"473(?:2(?:3[0-2]|69)|3(?:2[89]|86)|4(?:[06]8|3[5-9]|4[0-49]|5[5-79]|73|90)|63[68]|7(?:58|84)|800|938)\\\\d{4}\"], [\"473(?:4(?:0[2-79]|1[04-9]|2[0-5]|58)|5(?:2[01]|3[3-8])|901)\\\\d{4}\"], [\"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[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\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\", 0, 0, 0, 0, 0, [[\"(?:3(?:[256]\\\\d|4[124-9]|7[0-4])|4(?:1\\\\d|2[2-7]|3[1-79]|4[2-8]|7[239]|9[1-7]))\\\\d{6}\"], [\"5(?:0(?:0(?:0\\\\d|50)\\\\d|555[5-9])|(?:111\\\\d|8(?:58[89]|888))\\\\d|(?:2222|3333)[0-4]|52(?:00\\\\d|22[0-4])|75(?:00\\\\d|7(?:7[7-9]|8[01])))\\\\d{3}|(?:5(?:[14]4|5[0157-9]|68|7[0147-9]|9[1-35-9])|790)\\\\d{6}\"], [\"800\\\\d{6}\"], 0, 0, 0, 0, 0, [\"70[67]\\\\d{6}\"]]],\n \"GF\": [\"594\", \"00\", \"(?:[56]94|976)\\\\d{6}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[569]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"594(?:[023]\\\\d|1[01]|4[03-9]|5[6-9]|6[0-3]|80|9[014])\\\\d{4}\"], [\"694(?:[0-249]\\\\d|3[0-48])\\\\d{4}\"], 0, 0, 0, 0, 0, 0, [\"976\\\\d{6}\"]]],\n \"GG\": [\"44\", \"00\", \"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\", [7, 9, 10], 0, \"0\", 0, \"0|([25-9]\\\\d{5})$\", \"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-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|81|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\", 0, 0, 0, 0, 0, [[\"3082[0-5]\\\\d{4}|3(?:0(?:[237]\\\\d|8[01])|[167](?:2[0-6]|7\\\\d|80)|2(?:2[0-5]|7\\\\d|80)|3(?:2[0-3]|7\\\\d|80)|4(?:2[013-9]|3[01]|7\\\\d|80)|5(?:2[0-7]|7\\\\d|80)|8(?:2[0-2]|7\\\\d|80)|9(?:[28]0|7\\\\d))\\\\d{5}\", [9]], [\"(?:2[0346-8]\\\\d|5(?:[0457]\\\\d|6[01]|9[1-6]))\\\\d{6}\", [9]], [\"800\\\\d{5}\", [8]]]],\n \"GI\": [\"350\", \"00\", \"(?:[25]\\\\d\\\\d|606)\\\\d{5}\", [8], [[\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"2\"]]], 0, 0, 0, 0, 0, 0, [[\"21(?:6[24-7]\\\\d|90[0-2])\\\\d{3}|2(?:00|2[25])\\\\d{5}\"], [\"(?:5[146-8]\\\\d|606)\\\\d{5}\"]]],\n \"GL\": [\"299\", \"00\", \"(?:19|[2-689]\\\\d)\\\\d{4}\", [6], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"19|[2-689]\"]]], 0, 0, 0, 0, 0, 0, [[\"(?:19|3[1-7]|6[14689]|8[14-79]|9\\\\d)\\\\d{4}\"], [\"[245]\\\\d{5}\"], [\"80\\\\d{4}\"], 0, 0, 0, 0, 0, [\"3[89]\\\\d{4}\"]]],\n \"GM\": [\"220\", \"00\", \"[2-9]\\\\d{6}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-9]\"]]], 0, 0, 0, 0, 0, 0, [[\"(?:4(?:[23]\\\\d\\\\d|4(?:1[024679]|[6-9]\\\\d))|5(?:5(?:3\\\\d|4[0-7])|6[67]\\\\d|7(?:1[04]|2[035]|3[58]|48))|8\\\\d{3})\\\\d{3}\"], [\"(?:[23679]\\\\d|5[0-389])\\\\d{5}\"]]],\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]\"]]], 0, 0, 0, 0, 0, 0, [[\"3(?:0(?:24|3[12]|4[1-35-7]|5[13]|6[189]|[78]1|9[1478])|1\\\\d\\\\d)\\\\d{4}\", [8]], [\"6[0-356]\\\\d{7}\", [9]], 0, 0, 0, 0, 0, 0, [\"722\\\\d{6}\", [9]]]],\n \"GP\": [\"590\", \"00\", \"(?:590|69\\\\d|976)\\\\d{6}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[569]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"590(?:0[1-68]|1[0-2]|2[0-68]|3[1289]|4[0-24-9]|5[3-579]|6[0189]|7[08]|8[0-689]|9\\\\d)\\\\d{4}\"], [\"69(?:0\\\\d\\\\d|1(?:2[29]|3[0-5]))\\\\d{4}\"], 0, 0, 0, 0, 0, 0, [\"976[01]\\\\d{5}\"]]],\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]\"]]], 0, 0, 0, 0, 0, 0, [[\"33[0-24-9]\\\\d[46]\\\\d{4}|3(?:33|5\\\\d)\\\\d[7-9]\\\\d{4}\"], [\"(?:222|55\\\\d)\\\\d{6}\"], [\"80\\\\d[1-9]\\\\d{5}\"], [\"90\\\\d[1-9]\\\\d{5}\"]]],\n \"GR\": [\"30\", \"00\", \"5005000\\\\d{3}|8\\\\d{9,10}|(?:[269]\\\\d|70)\\\\d{8}\", [10, 11], [[\"(\\\\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})(\\\\d{5})\", \"$1 $2 $3\", [\"8\"]]], 0, 0, 0, 0, 0, 0, [[\"2(?:1\\\\d\\\\d|2(?:2[1-46-9]|[36][1-8]|4[1-7]|5[1-4]|7[1-5]|[89][1-9])|3(?:1\\\\d|2[1-57]|[35][1-3]|4[13]|7[1-7]|8[124-6]|9[1-79])|4(?:1\\\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\\\d|[29][1-4]|3[1-5]|4[124]|5[1-6])|6(?:1\\\\d|[269][1-6]|3[1245]|4[1-7]|5[13-9]|7[14]|8[1-5])|7(?:1\\\\d|2[1-5]|3[1-6]|4[1-7]|5[1-57]|6[135]|9[125-7])|8(?:1\\\\d|2[1-5]|[34][1-4]|9[1-57]))\\\\d{6}\", [10]], [\"68[57-9]\\\\d{7}|(?:69|94)\\\\d{8}\", [10]], [\"800\\\\d{7,8}\"], [\"90[19]\\\\d{7}\", [10]], [\"70\\\\d{8}\", [10]], 0, [\"5005000\\\\d{3}\", [10]], 0, 0, [\"8(?:0[16]|12|[27]5|50)\\\\d{7}\", [10]]]],\n \"GT\": [\"502\", \"00\", \"(?:1\\\\d{3}|[2-7])\\\\d{7}\", [8, 11], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2-7]\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]]], 0, 0, 0, 0, 0, 0, [[\"[267][2-9]\\\\d{6}\", [8]], [\"[3-5]\\\\d{7}\", [8]], [\"18[01]\\\\d{8}\", [11]], [\"19\\\\d{9}\", [11]]]],\n \"GU\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([3-9]\\\\d{6})$\", \"671$1\", 0, \"671\", [[\"671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[0236-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\\\d{4}\"], [\"\"], [\"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[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\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]\"]]], 0, 0, 0, 0, 0, 0, [[\"443\\\\d{6}\", [9]], [\"9(?:5\\\\d|6[569]|77)\\\\d{6}\", [9]], 0, 0, 0, 0, 0, 0, [\"40\\\\d{5}\", [7]]]],\n \"GY\": [\"592\", \"001\", \"(?:862\\\\d|9008)\\\\d{3}|(?:[2-46]\\\\d|77)\\\\d{5}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-46-9]\"]]], 0, 0, 0, 0, 0, 0, [[\"(?:2(?:1[6-9]|2[0-35-9]|3[1-4]|5[3-9]|6\\\\d|7[0-24-79])|3(?:2[25-9]|3\\\\d)|4(?:4[0-24]|5[56])|77[1-57])\\\\d{4}\"], [\"6\\\\d{6}\"], [\"(?:289|862)\\\\d{4}\"], [\"9008\\\\d{3}\"]]],\n \"HK\": [\"852\", \"00(?:30|5[09]|[126-9]?)\", \"8[0-46-9]\\\\d{6,7}|9\\\\d{4}(?:\\\\d(?:\\\\d(?:\\\\d{4})?)?)?|(?:[235-79]\\\\d|46)\\\\d{6}\", [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, [[\"(?:2(?:[13-9]\\\\d|2[013-9])\\\\d|3(?:(?:[1569][0-24-9]|4[0-246-9]|7[0-24-69])\\\\d|8(?:4[0-6]|5[0-5]|9\\\\d))|58(?:0[1-8]|1[2-9]))\\\\d{4}\", [8]], [\"(?:46(?:0[0-7]|1[0-6]|4[0-57-9]|5[0-8]|6[0-4])|5730|6(?:26[013-7]|66[0-3])|70(?:7[1-5]|8[0-4])|848[015-9]|929[03-9])\\\\d{4}|(?:46[23]|5(?:[1-59][0-46-9]|6[0-4689]|7[0-2469])|6(?:0[1-9]|[13-59]\\\\d|[268][0-57-9]|7[0-79])|849|9(?:0[1-9]|1[02-9]|[2358][0-8]|[467]\\\\d))\\\\d{5}\", [8]], [\"800\\\\d{6}\", [9]], [\"900(?:[0-24-9]\\\\d{7}|3\\\\d{1,4})\", [5, 6, 7, 8, 11]], [\"8(?:1[0-4679]\\\\d|2(?:[0-36]\\\\d|7[0-4])|3(?:[034]\\\\d|2[09]|70))\\\\d{4}\", [8]], 0, [\"30(?:0[1-9]|[15-7]\\\\d|2[047]|89)\\\\d{4}\", [8]], [\"7(?:1(?:0[0-38]|1[0-3679]|3[013]|69|9[0136])|2(?:[02389]\\\\d|1[18]|7[27-9])|3(?:[0-38]\\\\d|7[0-369]|9[2357-9])|47\\\\d|5(?:[178]\\\\d|5[0-5])|6(?:0[0-7]|2[236-9]|[35]\\\\d)|7(?:[27]\\\\d|8[7-9])|8(?:[23689]\\\\d|7[1-9])|9(?:[025]\\\\d|6[0-246-8]|7[0-36-9]|8[238]))\\\\d{4}\", [8]]], \"00\"],\n \"HN\": [\"504\", \"00\", \"8\\\\d{10}|[237-9]\\\\d{7}\", [8, 11], [[\"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"[237-9]\"]]], 0, 0, 0, 0, 0, 0, [[\"2(?:2(?:0[0-39]|1[1-36]|[23]\\\\d|4[04-6]|5[57]|6[245]|7[0135689]|8[01346-9]|9[0-2])|4(?:0[78]|2[3-59]|3[13-689]|4[0-68]|5[1-35])|5(?:0[7-9]|16|4[03-5]|5\\\\d|6[014-6]|74|80)|6(?:[056]\\\\d|17|2[07]|3[04]|4[0-378]|[78][0-8]|9[01])|7(?:6[46-9]|7[02-9]|8[034]|91)|8(?:79|8[0-357-9]|9[1-57-9]))\\\\d{4}\", [8]], [\"[37-9]\\\\d{7}\", [8]], [\"8002\\\\d{7}\", [11]]]],\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\", [\"[67]\"], \"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-5]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"1\\\\d{7}|(?:2[0-3]|3[1-5]|4[02-47-9]|5[1-3])\\\\d{6,7}\", [8, 9]], [\"9(?:751\\\\d{5}|8\\\\d{6,7})|9(?:0[1-9]|[1259]\\\\d|7[0679])\\\\d{6}\", [8, 9]], [\"80[01]\\\\d{4,6}\", [7, 8, 9]], [\"6[01459]\\\\d{6}|6[01]\\\\d{4,5}\", [6, 7, 8]], [\"7[45]\\\\d{6}\", [8]], 0, [\"62\\\\d{6,7}|72\\\\d{6}\", [8, 9]]]],\n \"HT\": [\"509\", \"00\", \"[2-489]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"[2-489]\"]]], 0, 0, 0, 0, 0, 0, [[\"2(?:2\\\\d|5[1-5]|81|9[149])\\\\d{5}\"], [\"[34]\\\\d{7}\"], [\"8\\\\d{7}\"], 0, 0, 0, 0, 0, [\"9(?:[67][0-4]|8[0-3589]|9\\\\d)\\\\d{5}\"]]],\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\", 0, 0, 0, 0, 0, [[\"(?:1\\\\d|[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6[23689]|8[2-57-9]|9[2-69])\\\\d{6}\", [8]], [\"(?:[257]0|3[01])\\\\d{7}\", [9]], [\"(?:[48]0\\\\d|6802)\\\\d{5}\"], [\"9[01]\\\\d{6}\", [8]], 0, 0, [\"38\\\\d{7}\", [9]], 0, [\"21\\\\d{7}\", [9]]]],\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\", 0, 0, 0, 0, 0, [[\"2[124]\\\\d{7,8}|619\\\\d{8}|2(?:1(?:14|500)|2\\\\d{3})\\\\d{3}|61\\\\d{5,8}|(?:2(?:[35][1-4]|6[0-8]|7[1-6]|8\\\\d|9[1-8])|3(?:1|[25][1-8]|3[1-68]|4[1-3]|6[1-3568]|7[0-469]|8\\\\d)|4(?:0[1-589]|1[01347-9]|2[0-36-8]|3[0-24-68]|43|5[1-378]|6[1-5]|7[134]|8[1245])|5(?:1[1-35-9]|2[25-8]|3[124-9]|4[1-3589]|5[1-46]|6[1-8])|6(?:[25]\\\\d|3[1-69]|4[1-6])|7(?:02|[125][1-9]|[36]\\\\d|4[1-8]|7[0-36-9])|9(?:0[12]|1[013-8]|2[0-479]|5[125-8]|6[23679]|7[159]|8[01346]))\\\\d{5,8}\", [7, 8, 9, 10, 11]], [\"8[1-35-9]\\\\d{7,10}\", [9, 10, 11, 12]], [\"00[17]803\\\\d{7}|(?:177\\\\d|800)\\\\d{5,7}|001803\\\\d{6}\", [8, 9, 10, 11, 12, 13]], [\"809\\\\d{7}\", [10]], 0, 0, [\"(?:1500|8071\\\\d{3})\\\\d{3}\", [7, 10]], 0, 0, [\"804\\\\d{7}\", [10]]]],\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\", 0, 0, 0, 0, 0, [[\"(?:1\\\\d|21)\\\\d{6,7}|(?:2[24-9]|4(?:0[24]|5\\\\d|7)|5(?:0[45]|1\\\\d|8)|6(?:1\\\\d|[237-9])|9(?:1\\\\d|[35-9]))\\\\d{5}|(?:23|4(?:[1-469]|8\\\\d)|5[23679]|6[4-6]|7[14]|9[04])\\\\d{7}\"], [\"8(?:22|[35-9]\\\\d)\\\\d{6}\", [9]], [\"1800\\\\d{6}\", [10]], [\"15(?:1[2-8]|[2-8]0|9[089])\\\\d{6}\", [10]], [\"700\\\\d{6}\", [9]], 0, [\"818\\\\d{6}\", [9]], 0, [\"76\\\\d{7}\", [9]], [\"18[59]0\\\\d{6}\", [10]]]],\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\", 0, 0, 0, 0, 0, [[\"153\\\\d{8,9}|29[1-9]\\\\d{5}|(?:2[0-8]|[3489]\\\\d)\\\\d{6}\", [8, 11, 12]], [\"5(?:(?:[02368]\\\\d|[19][2-9]|4[1-9])\\\\d|5(?:01|1[79]|2[2-9]|3[0-3]|4[34]|5[015689]|6[6-8]|7[0-267]|8[7-9]|9[1-9]))\\\\d{5}\", [9]], [\"1(?:255|80[019]\\\\d{3})\\\\d{3}\", [7, 10]], [\"1212\\\\d{4}|1(?:200|9(?:0[01]|19))\\\\d{6}\", [8, 10]], 0, 0, [\"1599\\\\d{6}\", [10]], 0, [\"7(?:380|8(?:33|55|77|81))\\\\d{5}|7(?:18|2[23]|3[237]|47|6[58]|7\\\\d|82|9[235-9])\\\\d{6}\", [9]], [\"1700\\\\d{6}\", [10]]]],\n \"IM\": [\"44\", \"00\", \"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\", [10], 0, \"0\", 0, \"0|([5-8]\\\\d{5})$\", \"1624$1\", 0, \"74576|(?:16|7[56])24\", [[\"1624[5-8]\\\\d{5}\"], [\"76245[06]\\\\d{4}|7(?:4576|[59]24\\\\d|624[0-4689])\\\\d{5}\"], [\"808162\\\\d{4}\"], [\"8(?:440[49]06|72299\\\\d)\\\\d{3}|(?:8(?:45|70)|90[0167])624\\\\d{4}\"], [\"70\\\\d{8}\"], 0, [\"3440[49]06\\\\d{3}|(?:3(?:08162|3\\\\d{4}|45624|7(?:0624|2299))|55\\\\d{4})\\\\d{4}\"], 0, [\"56\\\\d{8}\"]]],\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\", 0, 0, 0, 0, 0, [[\"2717(?:[2-7]\\\\d|95)\\\\d{4}|(?:271[0-689]|782[0-6])[2-7]\\\\d{5}|(?:170[24]|2(?:(?:[02][2-79]|90)\\\\d|80[13468])|(?:3(?:23|80)|683|79[1-7])\\\\d|4(?:20[24]|72[2-8])|552[1-7])\\\\d{6}|(?:11|33|4[04]|80)[2-7]\\\\d{7}|(?:342|674|788)(?:[0189][2-7]|[2-7]\\\\d)\\\\d{5}|(?:1(?:2[0-249]|3[0-25]|4[145]|[59][14]|6[014]|7[1257]|8[01346])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568]|9[14])|3(?:26|4[13]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[014-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|2[14]|3[134]|4[47]|5[15]|[67]1)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91))[2-7]\\\\d{6}|(?:1(?:2[35-8]|3[346-9]|4[236-9]|[59][0235-9]|6[235-9]|7[34689]|8[257-9])|2(?:1[134689]|3[24-8]|4[2-8]|5[25689]|6[2-4679]|7[3-79]|8[2-479]|9[235-9])|3(?:01|1[79]|2[1245]|4[5-8]|5[125689]|6[235-7]|7[157-9]|8[2-46-8])|4(?:1[14578]|2[5689]|3[2-467]|5[4-7]|6[35]|73|8[2689]|9[2389])|5(?:[16][146-9]|2[14-8]|3[1346]|4[14-69]|5[46]|7[2-4]|8[2-8]|9[246])|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])|7(?:1[013-9]|2[0235-9]|3[2679]|4[1-35689]|5[2-46-9]|[67][02-9]|8[013-7]|9[089])|8(?:1[1357-9]|2[235-8]|3[03-57-9]|4[0-24-9]|5\\\\d|6[2457-9]|7[1-6]|8[1256]|9[2-4]))\\\\d[2-7]\\\\d{5}\", [10]], [\"(?:61279|7(?:887[02-9]|9(?:313|79[07-9]))|8(?:079[04-9]|(?:84|91)7[02-8]))\\\\d{5}|(?:6(?:12|[2-47]1|5[17]|6[13]|80)[0189]|7(?:1(?:2[0189]|9[0-5])|2(?:[14][017-9]|8[0-59])|3(?:2[5-8]|[34][017-9]|9[016-9])|4(?:1[015-9]|[29][89]|39|8[389])|5(?:[15][017-9]|2[04-9]|9[7-9])|6(?:0[0-47]|1[0-257-9]|2[0-4]|3[19]|5[4589])|70[0289]|88[089]|97[02-8])|8(?:0(?:6[67]|7[02-8])|70[017-9]|84[01489]|91[0-289]))\\\\d{6}|(?:7(?:31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[0189]\\\\d|7[02-8])\\\\d{5}|(?:6(?:[09]\\\\d|1[04679]|2[03689]|3[05-9]|4[0489]|50|6[069]|7[07]|8[7-9])|7(?:0\\\\d|2[0235-79]|3[05-8]|40|5[0346-8]|6[6-9]|7[1-9]|8[0-79]|9[089])|8(?:0[01589]|1[0-57-9]|2[235-9]|3[03-57-9]|[45]\\\\d|6[02457-9]|7[1-69]|8[0-25-9]|9[02-9])|9\\\\d\\\\d)\\\\d{7}|(?:6(?:(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|8[124-6])\\\\d|7(?:[235689]\\\\d|4[0189]))|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-5])|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]|881))[0189]\\\\d{5}\", [10]], [\"000800\\\\d{7}|1(?:600\\\\d{6}|80(?:0\\\\d{4,9}|3\\\\d{9}))\"], [\"186[12]\\\\d{9}\", [13]], 0, 0, [\"140\\\\d{7}\", [10]], 0, 0, [\"1860\\\\d{7}\", [11]]]],\n \"IO\": [\"246\", \"00\", \"3\\\\d{6}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"3\"]]], 0, 0, 0, 0, 0, 0, [[\"37\\\\d{5}\"], [\"38\\\\d{5}\"]]],\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\", 0, 0, 0, 0, 0, [[\"1\\\\d{7}|(?:2[13-5]|3[02367]|4[023]|5[03]|6[026])\\\\d{6,7}\", [8, 9]], [\"7[3-9]\\\\d{8}\", [10]]]],\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\", 0, 0, 0, 0, 0, [[\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])(?:[03-57]\\\\d{7}|[16]\\\\d{3}(?:\\\\d{4})?|[289]\\\\d{3}(?:\\\\d(?:\\\\d{3})?)?)|94(?:000[09]|2(?:121|[2689]0\\\\d)|30[0-2]\\\\d|4(?:111|40\\\\d))\\\\d{4}\", [6, 7, 10]], [\"99(?:5[15]0|888|9(?:0[013]|21|77|88))\\\\d{5}|9(?:0(?:[1-35]\\\\d|4[4-6])|(?:[13]\\\\d|2[0-3])\\\\d|9(?:[0-2]\\\\d|3[01]|4[0145]|81|9[19]))\\\\d{6}\", [10]], 0, 0, 0, 0, [\"96(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19])\", [4, 5]], 0, [\"993[2-9]\\\\d{6}\", [10]]]],\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, [[\"(?:4(?:1[0-24-69]|2[0-7]|[37][0-8]|4[0-245]|5[0-68]|6\\\\d|8[0-36-8])|5(?:05|[156]\\\\d|2[02578]|3[0-579]|4[03-7]|7[0-2578]|8[0-35-9]|9[013-689])|872)\\\\d{4}\", [7]], [\"(?:38[589]\\\\d\\\\d|6(?:1[1-8]|2[0-6]|3[027-9]|4[014679]|5[0159]|6[0-69]|70|8[06-8]|9\\\\d)|7(?:5[057]|[6-9]\\\\d)|8(?:2[0-59]|[3-69]\\\\d|8[28]))\\\\d{4}\"], [\"80[08]\\\\d{4}\", [7]], [\"90(?:0\\\\d|1[5-79]|2[015-79]|3[135-79]|4[125-7]|5[25-79]|7[1-37]|8[0-35-7])\\\\d{3}\", [7]], 0, 0, [\"809\\\\d{4}\", [7]], 0, [\"49[0-24-79]\\\\d{4}\", [7]]], \"00\"],\n \"IT\": [\"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], [[\"(\\\\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[245])\", \"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|[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[4679]|[38]\"]], [\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"0[13-57-9][0159]\"]], [\"(\\\\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[1-9]\\\\d{8}|3[2-9]\\\\d{7}\", [9, 10]], [\"80(?:0\\\\d{3}|3)\\\\d{3}\", [6, 9]], [\"(?:0878\\\\d\\\\d|89(?:2|4[5-9]\\\\d))\\\\d{3}|89[45][0-4]\\\\d\\\\d|(?:1(?:44|6[346])|89(?: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|([0-24-8]\\\\d{5})$\", \"1534$1\", 0, 0, [[\"1534[0-24-8]\\\\d{5}\"], [\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97[7-9]))\\\\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-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|81|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\", [[\"8766060\\\\d{3}|(?:658(?:2(?:[0-8]\\\\d|9[0-46-9])|[3-9]\\\\d\\\\d)|876(?:5(?:02|1[0-468]|2[35]|63)|6(?:0[1-3579]|1[0237-9]|[23]\\\\d|40|5[06]|6[2-589]|7[05]|8[04]|9[4-9])|7(?:0[2-689]|[1-6]\\\\d|8[056]|9[45])|9(?:0[1-8]|1[02378]|[2-8]\\\\d|9[2-468])))\\\\d{4}\"], [\"(?:658295|876(?:2(?:[14-9]\\\\d|2[013-9]|3[7-9])|[348]\\\\d\\\\d|5(?:0[13-9]|1[579]|[2-57-9]\\\\d|6[0-24-9])|6(?:4[89]|6[67])|7(?:0[07]|7\\\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579])))\\\\d{4}\"], [\"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[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\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\", 0, 0, 0, 0, 0, [[\"87(?:000|90[01])\\\\d{3}|(?:2(?:6(?:2[0-35-9]|3[0-578]|4[24-7]|5[0-24-8]|[6-8][023]|9[0-3])|7(?:0[1-79]|10|2[014-7]|3[0-689]|4[019]|5[0-3578]))|32(?:0[1-69]|1[1-35-7]|2[024-7]|3\\\\d|4[0-3]|[5-7][023])|53(?:0[0-3]|[13][023]|2[0-59]|49|5[0-35-9]|6[15]|7[45]|8[1-6]|9[0-36-9])|6(?:2(?:[05]0|22)|3(?:00|33)|4(?:0[0-25]|1[2-7]|2[0569]|[38][07-9]|4[025689]|6[0-589]|7\\\\d|9[0-2])|5(?:[01][056]|2[034]|3[0-57-9]|4[178]|5[0-69]|6[0-35-9]|7[1-379]|8[0-68]|9[0239]))|87(?:20|7[078]|99))\\\\d{4}\", [8]], [\"7(?:[78][0-25-9]|9\\\\d)\\\\d{6}\", [9]], [\"80\\\\d{6}\", [8]], [\"9\\\\d{7}\", [8]], [\"70\\\\d{7}\", [9]], 0, [\"8(?:10|8\\\\d)\\\\d{5}\", [8]], [\"74(?:66|77)\\\\d{5}\", [9]], 0, [\"85\\\\d{6}\", [8]]]],\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|63)|9(?:49|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]|636)|9(?:496|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]|636[457-9])|9(?:496|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[045]|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[27-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])|5(?:2|3[045]|4[0-369]|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])|49|51|6(?:[0-24]|36|5[0-3589]|72|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]))|(?:49|55|83)[29]|(?: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]|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]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|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]\", \"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]|7[015-9]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17|3[015-9]))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|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(?:[019]|4[1-3]|6(?:[0-47-9]|5[01346-9])))|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|829(?:2|66)|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, 0, 0, 0, 0, [[\"(?:1(?:1[235-8]|2[3-6]|3[3-9]|4[2-6]|[58][2-8]|6[2-7]|7[2-9]|9[1-9])|(?:2[2-9]|[36][1-9])\\\\d|4(?:[2-578]\\\\d|6[02-8]|9[2-59])|5(?:[2-589]\\\\d|6[1-9]|7[2-8])|7(?:[25-9]\\\\d|3[4-9]|4[02-9])|8(?:[2679]\\\\d|3[2-9]|4[5-9]|5[1-9]|8[03-9])|9(?:[2-58]\\\\d|[679][1-9]))\\\\d{6}\", [9]], [\"[7-9]0[1-9]\\\\d{7}\", [10]], [\"00(?:(?:37|66)\\\\d{6,13}|(?:777(?:[01]|(?:5|8\\\\d)\\\\d)|882[1245]\\\\d\\\\d)\\\\d\\\\d)|(?:120|800\\\\d)\\\\d{6}\"], [\"990\\\\d{6}\", [9]], [\"60\\\\d{7}\", [9]], 0, [\"570\\\\d{6}\", [9]], [\"20[1-9]\\\\d{7}\", [10]], [\"50[1-9]\\\\d{7}\", [10]]]],\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\", 0, 0, 0, 0, 0, [[\"(?:4[245]|5[1-79]|6[01457-9])\\\\d{5,7}|(?:4[136]|5[08]|62)\\\\d{7}|(?:[24]0|66)\\\\d{6,7}\", [7, 8, 9]], [\"(?:1(?:0[0-6]|1[0-5]|2[014])|7\\\\d\\\\d)\\\\d{6}\", [9]], [\"800[24-8]\\\\d{5,6}\", [9, 10]], [\"900[02-9]\\\\d{5}\", [9]]]],\n \"KG\": [\"996\", \"00\", \"8\\\\d{9}|(?:[235-8]\\\\d|99)\\\\d{7}\", [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\", 0, 0, 0, 0, 0, [[\"312(?:5[0-79]\\\\d|9(?:[0-689]\\\\d|7[0-24-9]))\\\\d{3}|(?:3(?:1(?:2[0-46-8]|3[1-9]|47|[56]\\\\d)|2(?:22|3[0-479]|6[0-7])|4(?:22|5[6-9]|6\\\\d)|5(?:22|3[4-7]|59|6\\\\d)|6(?:22|5[35-7]|6\\\\d)|7(?:22|3[468]|4[1-9]|59|[67]\\\\d)|9(?:22|4[1-8]|6\\\\d))|6(?:09|12|2[2-4])\\\\d)\\\\d{5}\", [9]], [\"312(?:58\\\\d|973)\\\\d{3}|(?:2(?:0[0-35]|2\\\\d)|5[0-24-7]\\\\d|7(?:[07]\\\\d|55)|880|99[05-9])\\\\d{6}\", [9]], [\"800\\\\d{6,7}\"]]],\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\", 0, 0, 0, 0, 0, [[\"23(?:4(?:[2-4]|[56]\\\\d)|[568]\\\\d\\\\d)\\\\d{4}|23[236-9]\\\\d{5}|(?:2[4-6]|3[2-6]|4[2-4]|[5-7][2-5])(?:(?:[237-9]|4[56]|5\\\\d)\\\\d{5}|6\\\\d{5,6})\", [8, 9]], [\"(?:(?:1[28]|3[18]|9[67])\\\\d|6[016-9]|7(?:[07-9]|[16]\\\\d)|8(?:[013-79]|8\\\\d))\\\\d{6}|(?:1\\\\d|9[0-57-9])\\\\d{6}|(?:2[3-6]|3[2-6]|4[2-4]|[5-7][2-5])48\\\\d{5}\", [8, 9]], [\"1800(?:1\\\\d|2[019])\\\\d{4}\", [10]], [\"1900(?:1\\\\d|2[09])\\\\d{4}\", [10]]]],\n \"KI\": [\"686\", \"00\", \"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\", [5, 8], 0, \"0\", 0, 0, 0, 0, 0, [[\"(?:[24]\\\\d|3[1-9]|50|65(?:02[12]|12[56]|22[89]|[3-5]00)|7(?:27\\\\d\\\\d|3100|5(?:02[12]|12[56]|22[89]|[34](?:00|81)|500))|8[0-5])\\\\d{3}\"], [\"(?:63\\\\d{3}|73(?:0[0-5]\\\\d|140))\\\\d{3}|[67]200[01]\\\\d{3}\", [8]], 0, 0, 0, 0, 0, 0, [\"30(?:0[01]\\\\d\\\\d|12(?:11|20))\\\\d\\\\d\", [8]]]],\n \"KM\": [\"269\", \"00\", \"[3478]\\\\d{6}\", [7], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[3478]\"]]], 0, 0, 0, 0, 0, 0, [[\"7[4-7]\\\\d{5}\"], [\"[34]\\\\d{6}\"], 0, [\"8\\\\d{6}\"]]],\n \"KN\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-7]\\\\d{6})$\", \"869$1\", 0, \"869\", [[\"869(?:2(?:29|36)|302|4(?:6[015-9]|70)|56[5-7])\\\\d{4}\"], [\"869(?:48[89]|55[6-8]|66\\\\d|76[02-7])\\\\d{4}\"], [\"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[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\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\", 0, 0, 0, 0, 0, [[\"(?:(?:195|2)\\\\d|3[19]|4[159]|5[37]|6[17]|7[39]|85)\\\\d{6}\"], [\"19[1-3]\\\\d{7}\", [10]]]],\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))?\", 0, 0, 0, [[\"(?:2|3[1-3]|[46][1-4]|5[1-5])[1-9]\\\\d{6,7}|(?:3[1-3]|[46][1-4]|5[1-5])1\\\\d{2,3}\", [5, 6, 8, 9, 10]], [\"1(?:05(?:[0-8]\\\\d|9[0-6])|22[13]\\\\d)\\\\d{4,5}|1(?:0[1-46-9]|[16-9]\\\\d|2[013-9])\\\\d{6,7}\", [9, 10]], [\"00(?:308\\\\d{6,7}|798\\\\d{7,9})|(?:00368|80)\\\\d{7}\", [9, 11, 12, 13, 14]], [\"60[2-9]\\\\d{6}\", [9]], [\"50\\\\d{8,9}\", [10, 11]], 0, [\"1(?:5(?:22|44|66|77|88|99)|6(?:[07]0|44|6[16]|88)|8(?:00|33|55|77|99))\\\\d{4}\", [8]], [\"15\\\\d{7,8}\", [9, 10]], [\"70\\\\d{8}\", [10]]]],\n \"KW\": [\"965\", \"00\", \"(?:18|[2569]\\\\d\\\\d)\\\\d{5}\", [7, 8], [[\"(\\\\d{4})(\\\\d{3,4})\", \"$1 $2\", [\"[169]|2(?:[235]|4[1-35-9])|52\"]], [\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[25]\"]]], 0, 0, 0, 0, 0, 0, [[\"2(?:[23]\\\\d\\\\d|4(?:[1-35-9]\\\\d|44)|5(?:0[034]|[2-46]\\\\d|5[1-3]|7[1-7]))\\\\d{4}\", [8]], [\"(?:5(?:2(?:22|5[25])|88[58])|6(?:222|333|444|70[013-9]|888|93[039])|9(?:11[01]|3(?:00|33)|500))\\\\d{4}|(?:5(?:[05]\\\\d|1[0-7]|6[56])|6(?:0[034679]|5[015-9]|6\\\\d|7[67]|9[069])|9(?:0[09]|22|[4679]\\\\d|55|8[057-9]))\\\\d{5}\", [8]], [\"18\\\\d{5}\", [7]]]],\n \"KY\": [\"1\", \"011\", \"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-9]\\\\d{6})$\", \"345$1\", 0, \"345\", [[\"345(?:2(?:22|3[23]|44|66)|333|444|6(?:23|38|40)|7(?:30|4[35-79]|6[6-9]|77)|8(?:00|1[45]|25|[48]8)|9(?:14|4[035-9]))\\\\d{4}\"], [\"345(?:32[1-9]|42[0-4]|5(?:1[67]|2[5-79]|4[6-9]|50|76)|649|9(?:1[679]|2[2-9]|3[06-9]|90))\\\\d{4}\"], [\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"], [\"(?:345976|900[2-9]\\\\d\\\\d)\\\\d{4}\"], [\"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[12]|33|44|66|77|88)[2-9]\\\\d{6}\"], 0, 0, [\"345849\\\\d{4}\"]]],\n \"KZ\": [\"7\", \"810\", \"33622\\\\d{5}|(?:7\\\\d|80)\\\\d{8}\", [10], 0, \"8\", 0, 0, 0, 0, \"33|7\", [[\"(?:33622|7(?:1(?:0(?:[23]\\\\d|4[0-3]|59|63)|1(?:[23]\\\\d|4[0-79]|59)|2(?:[23]\\\\d|59)|3(?:2\\\\d|3[0-79]|4[0-35-9]|59)|4(?:[24]\\\\d|3[013-9]|5[1-9])|5(?:2\\\\d|3[1-9]|4[0-7]|59)|6(?:[2-4]\\\\d|5[19]|61)|72\\\\d|8(?:[27]\\\\d|3[1-46-9]|4[0-5]))|2(?:1(?:[23]\\\\d|4[46-9]|5[3469])|2(?:2\\\\d|3[0679]|46|5[12679])|3(?:[2-4]\\\\d|5[139])|4(?:2\\\\d|3[1-35-9]|59)|5(?:[23]\\\\d|4[0-246-8]|59|61)|6(?:2\\\\d|3[1-9]|4[0-4]|59)|7(?:[2379]\\\\d|40|5[279])|8(?:[23]\\\\d|4[0-3]|59)|9(?:2\\\\d|3[124578]|59))))\\\\d{5}\"], [\"7(?:0[0-25-8]|47|6[02-4]|7[15-8]|85)\\\\d{7}\"], [\"800\\\\d{7}\"], [\"809\\\\d{7}\"], [\"808\\\\d{7}\"], 0, 0, 0, [\"751\\\\d{7}\"]], \"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\", 0, 0, 0, 0, 0, [[\"(?:2[13]|[35-7][14]|41|8[1468])\\\\d{6}\", [8]], [\"(?:20(?:[239]\\\\d|5[24-9]|7[6-8])|302\\\\d)\\\\d{6}\", [10]], 0, 0, 0, 0, [\"30[013-9]\\\\d{6}\", [9]]]],\n \"LB\": [\"961\", \"00\", \"[7-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\", [\"[7-9]\"]]], \"0\", 0, 0, 0, 0, 0, [[\"(?:(?:[14-69]\\\\d|8[02-9])\\\\d|7(?:[2-57]\\\\d|62|8[0-7]|9[04-9]))\\\\d{4}\", [7]], [\"793(?:[01]\\\\d|2[0-4])\\\\d{3}|(?:(?:3|81)\\\\d|7(?:[01]\\\\d|6[013-9]|8[89]|9[12]))\\\\d{5}\"], 0, [\"9[01]\\\\d{6}\", [8]], 0, 0, 0, 0, 0, [\"80\\\\d{6}\", [8]]]],\n \"LC\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-8]\\\\d{6})$\", \"758$1\", 0, \"758\", [[\"758(?:234|4(?:30|5\\\\d|6[2-9]|8[0-2])|57[0-2]|(?:63|75)8)\\\\d{4}\"], [\"758(?:28[4-7]|384|4(?:6[01]|8[4-9])|5(?:1[89]|20|84)|7(?:1[2-9]|2\\\\d|3[0-3])|812)\\\\d{4}\"], [\"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[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\n \"LI\": [\"423\", \"00\", \"90\\\\d{5}|(?:[2378]|6\\\\d\\\\d)\\\\d{6}\", [7, 9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[237-9]\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"69\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"6\"]]], \"0\", 0, \"0|(1001)\", 0, 0, 0, [[\"(?:2(?:01|1[27]|2[02]|3\\\\d|6[02-578]|96)|3(?:[24]0|33|7[0135-7]|8[048]|9[0269]))\\\\d{4}\", [7]], [\"(?:6(?:4(?:79|[89]\\\\d)|5[0-4]\\\\d|6(?:0\\\\d|10|2[0-26-9]|3[7-9]))\\\\d|7(?:[37-9]\\\\d|42|56))\\\\d{4}\"], [\"80(?:02[28]|9\\\\d\\\\d)\\\\d\\\\d\", [7]], [\"90(?:02[258]|1(?:23|3[14])|66[136])\\\\d\\\\d\", [7]], 0, 0, [\"870(?:28|87)\\\\d\\\\d\", [7]]]],\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\", 0, 0, 0, 0, 0, [[\"(?:12[2-9]|602|8[12]\\\\d|9(?:1\\\\d|22|9[245]))\\\\d{6}|(?:11|2[13-7]|3[1-8]|4[157]|5[12457]|6[35-7])[2-57]\\\\d{6}\"], [\"7(?:[0-25-8]\\\\d|4[01])\\\\d{6}\"], 0, 0, 0, 0, [\"1973\\\\d{5}\"]]],\n \"LR\": [\"231\", \"00\", \"(?:2|33|5\\\\d|77|88)\\\\d{7}|[4-6]\\\\d{6}\", [7, 8, 9], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[4-6]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[3578]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"(?:2\\\\d{3}|33333)\\\\d{4}\", [8, 9]], [\"(?:(?:330|555|(?:77|88)\\\\d)\\\\d|4[67])\\\\d{5}|[56]\\\\d{6}\", [7, 9]], 0, [\"332(?:02|[34]\\\\d)\\\\d{4}\", [9]]]],\n \"LS\": [\"266\", \"00\", \"(?:[256]\\\\d\\\\d|800)\\\\d{5}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2568]\"]]], 0, 0, 0, 0, 0, 0, [[\"2\\\\d{7}\"], [\"[56]\\\\d{7}\"], [\"800[256]\\\\d{4}\"]]],\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]\", 0, 0, 0, [[\"(?:3[1478]|4[124-6]|52)\\\\d{6}\"], [\"6\\\\d{7}\"], [\"80[02]\\\\d{5}\"], [\"9(?:0[0239]|10)\\\\d{5}\"], [\"70[05]\\\\d{5}\"], 0, [\"70[67]\\\\d{5}\"], 0, [\"[89]01\\\\d{5}\"], [\"808\\\\d{5}\"]]],\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)\", 0, 0, 0, [[\"(?:35[013-9]|80[2-9]|90[89])\\\\d{1,8}|(?:2[2-9]|3[0-46-9]|[457]\\\\d|8[13-9]|9[2-579])\\\\d{2,9}\"], [\"6(?:[269][18]|5[158]|7[189]|81)\\\\d{6}\", [9]], [\"800\\\\d{5}\", [8]], [\"90[015]\\\\d{5}\", [8]], 0, 0, 0, 0, [\"20(?:1\\\\d{5}|[2-689]\\\\d{1,7})\", [4, 5, 6, 7, 8, 9, 10]], [\"801\\\\d{5}\", [8]]]],\n \"LV\": [\"371\", \"00\", \"(?:[268]\\\\d|90)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[269]|8[01]\"]]], 0, 0, 0, 0, 0, 0, [[\"6\\\\d{7}\"], [\"2\\\\d{7}\"], [\"80\\\\d{6}\"], [\"90\\\\d{6}\"], 0, 0, 0, 0, 0, [\"81\\\\d{6}\"]]],\n \"LY\": [\"218\", \"00\", \"[2-9]\\\\d{8}\", [9], [[\"(\\\\d{2})(\\\\d{7})\", \"$1-$2\", [\"[2-9]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"(?:2(?:0[56]|[1-6]\\\\d|7[124579]|8[124])|3(?:1\\\\d|2[2356])|4(?:[17]\\\\d|2[1-357]|5[2-4]|8[124])|5(?:[1347]\\\\d|2[1-469]|5[13-5]|8[1-4])|6(?:[1-479]\\\\d|5[2-57]|8[1-5])|7(?:[13]\\\\d|2[13-79])|8(?:[124]\\\\d|5[124]|84))\\\\d{6}\"], [\"9[1-6]\\\\d{7}\"]]],\n \"MA\": [\"212\", \"00\", \"[5-8]\\\\d{8}\", [9], [[\"(\\\\d{5})(\\\\d{4})\", \"$1-$2\", [\"5(?:29|38)\", \"5(?:29|38)[89]\", \"5(?:29|38)[89]0\"], \"0$1\"], [\"(\\\\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-489]|3[5-9]|9)|892\", \"5(?:2(?:[2-49]|8[235-9])|3[5-9]|9)|892\"], \"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(?:29(?:[189][05]|2[29]|3[01])|38[89][05])\\\\d{4}|5(?:2(?:[015-7]\\\\d|2[02-9]|3[0-578]|4[02-46-8]|8[0235-7]|90)|3(?:[0-47]\\\\d|5[02-9]|6[02-8]|80|9[3-9])|(?:4[067]|5[03])\\\\d)\\\\d{5}\"], [\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:0[0-8]|6[1267]|7[0-37]))\\\\d{6}\"], [\"80\\\\d{7}\"], [\"89\\\\d{7}\"], 0, 0, 0, 0, [\"592(?:4[0-2]|93)\\\\d{4}\"]]],\n \"MC\": [\"377\", \"00\", \"870\\\\d{5}|(?:[349]|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\", [\"[39]\"]], [\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4 $5\", [\"6\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"(?:870|9[2-47-9]\\\\d)\\\\d{5}\", [8]], [\"4(?:[46]\\\\d|5[1-9])\\\\d{5}|(?:3|6\\\\d)\\\\d{7}\"], [\"90\\\\d{6}\", [8]]]],\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\", 0, 0, 0, 0, 0, [[\"(?:(?:2[1-9]|3[1-79])\\\\d|5(?:33|5[257]))\\\\d{5}\"], [\"562\\\\d{5}|(?:6\\\\d|7[16-9])\\\\d{6}\"], [\"800\\\\d{5}\"], [\"90[056]\\\\d{5}\"], 0, 0, [\"803\\\\d{5}\"], 0, [\"3[08]\\\\d{6}\"], [\"808\\\\d{5}\"]]],\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\", 0, 0, 0, 0, 0, [[\"(?:20[2-8]|3(?:[0-2][2-7]|3[24-7])|4(?:0[2-467]|1[2467])|5(?:0[2467]|1[24-7]|2[2-467]))\\\\d{5}\", [8]], [\"6(?:[07-9]\\\\d|3[024]|6[0-25])\\\\d{5}\", [8]], [\"80(?:[0-2578]|9\\\\d)\\\\d{5}\"], [\"9(?:4[1568]|5[178])\\\\d{5}\", [8]], 0, 0, [\"77[1-9]\\\\d{5}\", [8]], 0, [\"78[1-49]\\\\d{5}\", [8]]]],\n \"MF\": [\"590\", \"00\", \"(?:590|69\\\\d|976)\\\\d{6}\", [9], 0, \"0\", 0, 0, 0, 0, 0, [[\"590(?:0[079]|[14]3|[27][79]|30|5[0-268]|87)\\\\d{4}\"], [\"69(?:0\\\\d\\\\d|1(?:2[29]|3[0-5]))\\\\d{4}\"], 0, 0, 0, 0, 0, 0, [\"976[01]\\\\d{5}\"]]],\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, \"0|([24-9]\\\\d{6})$\", \"20$1\", 0, 0, [[\"2072[29]\\\\d{4}|20(?:2\\\\d|4[47]|5[3467]|6[279]|7[35]|8[268]|9[245])\\\\d{5}\"], [\"3[2-49]\\\\d{7}\"], 0, 0, 0, 0, 0, 0, [\"22\\\\d{7}\"]]],\n \"MH\": [\"692\", \"011\", \"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[2-6]\"]]], \"1\", 0, 0, 0, 0, 0, [[\"(?:247|528|625)\\\\d{4}\"], [\"(?:(?:23|54)5|329|45[56])\\\\d{4}\"], 0, 0, 0, 0, 0, 0, [\"635\\\\d{4}\"]]],\n \"MK\": [\"389\", \"00\", \"[2-578]\\\\d{7}\", [8], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"2\"], \"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\", 0, 0, 0, 0, 0, [[\"(?:2(?:[23]\\\\d|5[0-24578]|6[01]|82)|3(?:1[3-68]|[23][2-68]|4[23568])|4(?:[23][2-68]|4[3-68]|5[2568]|6[25-8]|7[24-68]|8[4-68]))\\\\d{5}\"], [\"7(?:3555|4(?:60\\\\d|747)|94(?:[01]\\\\d|2[0-4]))\\\\d{3}|7(?:[0-25-8]\\\\d|3[2-4]|42|9[23])\\\\d{5}\"], [\"800\\\\d{5}\"], [\"5[02-9]\\\\d{6}\"], 0, 0, 0, 0, 0, [\"8(?:0[1-9]|[1-9]\\\\d)\\\\d{5}\"]]],\n \"ML\": [\"223\", \"00\", \"[24-9]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[24-9]\"]]], 0, 0, 0, 0, 0, 0, [[\"2(?:07[0-8]|12[67])\\\\d{4}|(?:2(?:02|1[4-689])|4(?:0[0-4]|4[1-39]))\\\\d{5}\"], [\"2(?:0(?:01|79)|17\\\\d)\\\\d{4}|(?:5[01]|[679]\\\\d|8[239])\\\\d{6}\"], [\"80\\\\d{6}\"]]],\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\", 0, 0, 0, 0, 0, [[\"(?:1(?:(?:2\\\\d|3[56]|[89][0-6])\\\\d|4(?:2[2-469]|39|46|6[25]|7[0-3]|83)|6)|2(?:2(?:00|8[34])|4(?:0\\\\d|2[246]|39|46|62|7[0-3]|83)|51\\\\d\\\\d)|4(?:2(?:2\\\\d\\\\d|48[0-3])|3(?:20\\\\d|4(?:70|83)|56)|420\\\\d|5470)|6(?:0(?:[23]|88\\\\d)|(?:124|[56]2\\\\d)\\\\d|247[23]|3(?:20\\\\d|470)|4(?:2[04]\\\\d|47[23])|7(?:(?:3\\\\d|8[01459])\\\\d|4(?:39|60|7[013]))))\\\\d{4}|5(?:2(?:2\\\\d{5,6}|47[023]\\\\d{4})|(?:347[23]|4(?:2(?:1|86)|470)|522\\\\d|6(?:20\\\\d|483)|7(?:20\\\\d|48[0-2])|8(?:20\\\\d|47[02])|9(?:20\\\\d|47[01]))\\\\d{4})|7(?:(?:0470|4(?:25\\\\d|470)|5(?:202|470|96\\\\d))\\\\d{4}|1(?:20\\\\d{4,5}|4(?:70|83)\\\\d{4}))|8(?:1(?:2\\\\d{5,6}|4(?:10|7[01]\\\\d)\\\\d{3})|2(?:2\\\\d{5,6}|(?:320|490\\\\d)\\\\d{3})|(?:3(?:2\\\\d\\\\d|470)|4[24-7]|5(?:2\\\\d|4[1-9]|51)\\\\d|6[23])\\\\d{4})|(?:1[2-6]\\\\d|4(?:2[24-8]|3[2-7]|[46][2-6]|5[3-5])|5(?:[27][2-8]|3[2-68]|4[24-8]|5[23]|6[2-4]|8[24-7]|9[2-7])|6(?:[19]20|42[03-6]|(?:52|7[45])\\\\d)|7(?:[04][24-8]|[15][2-7]|22|3[2-4])|8(?:1[2-689]|2[2-8]|[35]2\\\\d))\\\\d{4}|25\\\\d{5,6}|(?:2[2-9]|6(?:1[2356]|[24][2-6]|3[24-6]|5[2-4]|6[2-8]|7[235-7]|8[245]|9[24])|8(?:3[24]|5[245]))\\\\d{4}\", [6, 7, 8, 9]], [\"(?:17[01]|9(?:2(?:[0-4]|[56]\\\\d\\\\d)|(?:3(?:[0-36]|4\\\\d)|(?:6\\\\d|8[89]|9[4-8])\\\\d|7(?:3|40|[5-9]\\\\d))\\\\d|4(?:(?:[0245]\\\\d|[1379])\\\\d|88)|5[0-6])\\\\d)\\\\d{4}|9[69]1\\\\d{6}|9(?:[68]\\\\d|9[089])\\\\d{5}\", [7, 8, 9, 10]], [\"80080(?:[01][1-9]|2\\\\d)\\\\d{3}\", [10]], 0, 0, 0, 0, 0, [\"1333\\\\d{4}|[12]468\\\\d{4}\", [8]]]],\n \"MN\": [\"976\", \"001\", \"[12]\\\\d{7,9}|[57-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\", [\"[57-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\", 0, 0, 0, 0, 0, [[\"[12]2[1-3]\\\\d{5,6}|7(?:0[0-5]\\\\d|128)\\\\d{4}|(?:[12](?:1|27)|5[368])\\\\d{6}|[12](?:3[2-8]|4[2-68]|5[1-4689])\\\\d{6,7}\"], [\"(?:83[01]|920)\\\\d{5}|(?:5[05]|8[05689]|9[013-9])\\\\d{6}\", [8]], 0, 0, 0, 0, 0, 0, [\"712[0-79]\\\\d{4}|7(?:1[013-9]|[5-8]\\\\d)\\\\d{5}\", [8]]]],\n \"MO\": [\"853\", \"00\", \"(?:28|[68]\\\\d)\\\\d{6}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[268]\"]]], 0, 0, 0, 0, 0, 0, [[\"(?:28[2-9]|8(?:11|[2-57-9]\\\\d))\\\\d{5}\"], [\"6800[0-79]\\\\d{3}|6(?:[235]\\\\d\\\\d|6(?:0[0-5]|[1-9]\\\\d)|8(?:0[1-9]|[14-8]\\\\d|2[5-9]|[39][0-4]))\\\\d{4}\"]]],\n \"MP\": [\"1\", \"011\", \"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-9]\\\\d{6})$\", \"670$1\", 0, \"670\", [[\"670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\\\d{4}\"], [\"\"], [\"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[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\n \"MQ\": [\"596\", \"00\", \"69\\\\d{7}|(?:59|97)6\\\\d{6}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[569]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"596(?:0[0-7]|10|2[7-9]|3[05-9]|4[0-46-8]|[5-7]\\\\d|8[09]|9[4-8])\\\\d{4}\"], [\"69(?:6(?:[0-47-9]\\\\d|5[0-6]|6[0-4])|727)\\\\d{4}\"], 0, 0, 0, 0, 0, 0, [\"976(?:6[1-9]|7[0-367])\\\\d{4}\"]]],\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]\"]]], 0, 0, 0, 0, 0, 0, [[\"(?:25[08]|35\\\\d|45[1-7])\\\\d{5}\"], [\"[2-4][0-46-9]\\\\d{6}\"], [\"800\\\\d{5}\"]]],\n \"MS\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([34]\\\\d{6})$\", \"664$1\", 0, \"664\", [[\"6644(?:1[0-3]|91)\\\\d{4}\"], [\"664(?:3(?:49|9[1-6])|49[2-6])\\\\d{4}\"], [\"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[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\n \"MT\": [\"356\", \"00\", \"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2357-9]\"]]], 0, 0, 0, 0, 0, 0, [[\"2(?:0(?:[19]\\\\d|3[1-4]|6[059])|[1-357]\\\\d\\\\d)\\\\d{4}\"], [\"(?:7(?:210|[79]\\\\d\\\\d)|9(?:[29]\\\\d\\\\d|69[67]|8(?:1[1-3]|89|97)))\\\\d{4}\"], [\"800[3467]\\\\d{4}\"], [\"5(?:0(?:0(?:37|43)|(?:6\\\\d|70|9[0168])\\\\d)|[12]\\\\d0[1-5])\\\\d{3}\"], 0, 0, [\"501\\\\d{5}\"], [\"7117\\\\d{4}\"], [\"3550\\\\d{4}\"]]],\n \"MU\": [\"230\", \"0(?:0|[24-7]0|3[03])\", \"(?:[2-468]|5\\\\d)\\\\d{6}\", [7, 8], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-46]|8[013]\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"5\"]]], 0, 0, 0, 0, 0, 0, [[\"(?:2(?:[0346-8]\\\\d|1[0-7])|4(?:[013568]\\\\d|2[4-7])|54(?:[3-5]\\\\d|71)|6\\\\d\\\\d|8(?:14|3[129]))\\\\d{4}\"], [\"5(?:4(?:2[1-389]|7[1-9])|87[15-8])\\\\d{4}|5(?:2[5-9]|4[3-589]|5[1-9]|7\\\\d|8[0-689]|9[0-8])\\\\d{5}\", [8]], [\"80[0-2]\\\\d{4}\", [7]], [\"30\\\\d{5}\", [7]], 0, 0, 0, 0, [\"3(?:20|9\\\\d)\\\\d{4}\", [7]]], \"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\", [\"[3467]|9[13-9]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[89]\"]]], 0, 0, 0, 0, 0, 0, [[\"(?:3(?:0[0-3]|3[0-59])|6(?:[57][02468]|6[024-68]|8[024689]))\\\\d{4}\", [7]], [\"46[46]\\\\d{4}|(?:7\\\\d|9[13-9])\\\\d{5}\", [7]], [\"800\\\\d{7}\", [10]], [\"900\\\\d{7}\", [10]], 0, 0, [\"4[05]0\\\\d{4}\", [7]]], \"00\"],\n \"MW\": [\"265\", \"00\", \"1\\\\d{6}(?:\\\\d{2})?|(?:[23]1|77|88|99)\\\\d{7}\", [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\", 0, 0, 0, 0, 0, [[\"(?:1[2-9]|21\\\\d\\\\d)\\\\d{5}\"], [\"111\\\\d{6}|(?:31|77|88|99)\\\\d{7}\", [9]]]],\n \"MX\": [\"52\", \"0[09]\", \"(?:1(?:[01467]\\\\d|[2359][1-9]|8[1-79])|[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, [[\"(?:2(?:0[01]|2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-7][1-9]|3[1-8]|8[1-35-9]|9[2-689])|5(?:[56]\\\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))\\\\d{7}\", [10]], [\"(?:1(?:2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-7][1-9]|3[1-8]|8[1-35-9]|9[2-689])|5(?:[56]\\\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))|2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-7][1-9]|3[1-8]|8[1-35-9]|9[2-689])|5(?:[56]\\\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))\\\\d{7}\"], [\"8(?:00|88)\\\\d{7}\", [10]], [\"900\\\\d{7}\", [10]], [\"500\\\\d{7}\", [10]], 0, 0, 0, 0, [\"300\\\\d{7}\", [10]]], \"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])|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[36-8]\"]], [\"(\\\\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\", 0, 0, 0, 0, 0, [[\"(?:3(?:2[0-36-9]|3[0-368]|4[0-278]|5[0-24-8]|6[0-467]|7[1246-9]|8\\\\d|9[0-57])\\\\d|4(?:2[0-689]|[3-79]\\\\d|8[1-35689])|5(?:2[0-589]|[3468]\\\\d|5[0-489]|7[1-9]|9[23])|6(?:2[2-9]|3[1357-9]|[46]\\\\d|5[0-6]|7[0-35-9]|85|9[015-8])|7(?:[2579]\\\\d|3[03-68]|4[0-8]|6[5-9]|8[0-35-9])|8(?:[24][2-8]|3[2-5]|5[2-7]|6[2-589]|7[2-578]|[89][2-9])|9(?:0[57]|13|[25-7]\\\\d|[3489][0-8]))\\\\d{5}\", [8, 9]], [\"1(?:4400|8(?:47|8[27])[0-4])\\\\d{4}|1(?:0(?:[23568]\\\\d|4[0-6]|7[016-9]|9[0-8])|1(?:[1-5]\\\\d\\\\d|6(?:0[5-9]|[1-9]\\\\d)|7(?:[0134]\\\\d|2[2-9]|5[0-6]))|(?:(?:[269]|59)\\\\d|[37][1-9]|4[235-9])\\\\d|8(?:1[23]|[236]\\\\d|4[06]|5[7-9]|7[016-9]|8[01]|9[0-8]))\\\\d{5}\", [9, 10]], [\"1[378]00\\\\d{6}\", [10]], [\"1600\\\\d{6}\", [10]], 0, 0, 0, 0, [\"15(?:4(?:6[0-4]\\\\d|8(?:0[125]|[17]\\\\d|21|3[01]|4[01589]|5[014]|6[02]))|6(?:32[0-6]|78\\\\d))\\\\d{4}\", [10]]]],\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\"]]], 0, 0, 0, 0, 0, 0, [[\"2(?:[1346]\\\\d|5[0-2]|[78][12]|93)\\\\d{5}\", [8]], [\"8[2-79]\\\\d{7}\", [9]], [\"800\\\\d{6}\", [9]]]],\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\", 0, 0, 0, 0, 0, [[\"64426\\\\d{3}|6(?:1(?:2[2-7]|3[01378]|4[0-4])|254|32[0237]|4(?:27|41|5[25])|52[236-8]|626|7(?:2[2-4]|30))\\\\d{4,5}|6(?:1(?:(?:0\\\\d|2[0189]|3[24-69]|4[5-9])\\\\d|17|69|7[014])|2(?:17|5[0-36-8]|69|70)|3(?:17|2[14-689]|34|6[289]|7[01]|81)|4(?:17|2[0-2]|4[06]|5[0137]|69|7[01])|5(?:17|2[0459]|69|7[01])|6(?:17|25|38|42|69|7[01])|7(?:17|2[569]|3[13]|6[89]|7[01]))\\\\d{4}\"], [\"(?:60|8[1245])\\\\d{7}\", [9]], [\"80\\\\d{7}\", [9]], [\"8701\\\\d{5}\", [9]], 0, 0, 0, 0, [\"8(?:3\\\\d\\\\d|86)\\\\d{5}\"]]],\n \"NC\": [\"687\", \"00\", \"[2-57-9]\\\\d{5}\", [6], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1.$2.$3\", [\"[2-57-9]\"]]], 0, 0, 0, 0, 0, 0, [[\"(?:2[03-9]|3[0-5]|4[1-7]|88)\\\\d{4}\"], [\"(?:5[0-4]|[79]\\\\d|8[0-79])\\\\d{4}\"], 0, [\"36\\\\d{4}\"]]],\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[04]\"]]], 0, 0, 0, 0, 0, 0, [[\"2(?:0(?:20|3[1-8]|4[13-5]|5[14]|6[14578]|7[1-578])|1(?:4[145]|5[14]|6[14-68]|7[169]|88))\\\\d{4}\"], [\"(?:23|7[04]|[89]\\\\d)\\\\d{6}\"], [\"08\\\\d{6}\"], [\"09\\\\d{6}\"]]],\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\", 0, 0, [[\"(?:1(?:06|17|28|39)|3[0-2]\\\\d)\\\\d{3}\"], [\"(?:14|3[58])\\\\d{4}\"]]],\n \"NG\": [\"234\", \"009\", \"(?:[124-7]|9\\\\d{3})\\\\d{6}|[1-9]\\\\d{7}|[78]\\\\d{9,13}\", [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-7]|8[2-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[7-9]\"], \"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\", 0, 0, 0, 0, 0, [[\"(?:(?:[1-356]\\\\d|4[02-8]|8[2-9])\\\\d|9(?:0[3-9]|[1-9]\\\\d))\\\\d{5}|7(?:0(?:[013-689]\\\\d|2[0-24-9])\\\\d{3,4}|[1-79]\\\\d{6})|(?:[12]\\\\d|4[147]|5[14579]|6[1578]|7[1-3578])\\\\d{5}\", [7, 8]], [\"(?:702[0-24-9]|8(?:01|19)[01])\\\\d{6}|(?:70[13-689]|8(?:0[2-9]|1[0-8])|9(?:0[1-9]|1[235]))\\\\d{7}\", [10]], [\"800\\\\d{7,11}\", [10, 11, 12, 13, 14]], 0, 0, 0, [\"700\\\\d{7,11}\", [10, 11, 12, 13, 14]]]],\n \"NI\": [\"505\", \"00\", \"(?:1800|[25-8]\\\\d{3})\\\\d{4}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[125-8]\"]]], 0, 0, 0, 0, 0, 0, [[\"2\\\\d{7}\"], [\"(?:5(?:5[0-7]|[78]\\\\d)|6(?:20|3[035]|4[045]|5[05]|77|8[1-9]|9[059])|(?:7[5-8]|8\\\\d)\\\\d)\\\\d{5}\"], [\"1800\\\\d{4}\"]]],\n \"NL\": [\"31\", \"00\", \"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|[89]\\\\d{6,9}|1\\\\d{4,5}\", [5, 6, 7, 8, 9, 10], [[\"(\\\\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-57-9]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"(?:1(?:[035]\\\\d|1[13-578]|6[124-8]|7[24]|8[0-467])|2(?:[0346]\\\\d|2[2-46-9]|5[125]|9[479])|3(?:[03568]\\\\d|1[3-8]|2[01]|4[1-8])|4(?:[0356]\\\\d|1[1-368]|7[58]|8[15-8]|9[23579])|5(?:[0358]\\\\d|[19][1-9]|2[1-57-9]|4[13-8]|6[126]|7[0-3578])|7\\\\d\\\\d)\\\\d{6}\", [9]], [\"6[1-58]\\\\d{7}\", [9]], [\"800\\\\d{4,7}\", [7, 8, 9, 10]], [\"90[069]\\\\d{4,7}\", [7, 8, 9, 10]], 0, 0, [\"140(?:1[035]|2[0346]|3[03568]|4[0356]|5[0358]|8[458])|(?:140(?:1[16-8]|2[259]|3[124]|4[17-9]|5[124679]|7)|8[478]\\\\d{6})\\\\d\", [5, 6, 9]], [\"66\\\\d{7}\", [9]], [\"(?:85|91)\\\\d{7}\", [9]]]],\n \"NO\": [\"47\", \"00\", \"(?:0|[2-9]\\\\d{3})\\\\d{4}\", [5, 8], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"[489]|5[89]\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[235-7]\"]]], 0, 0, 0, 0, 0, \"[02-689]|7[0-8]\", [[\"(?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-4679]|7[0-8])\\\\d{6}\", [8]], [\"(?:4[015-8]|5[89]|9\\\\d)\\\\d{6}\", [8]], [\"80[01]\\\\d{5}\", [8]], [\"82[09]\\\\d{5}\", [8]], [\"880\\\\d{5}\", [8]], 0, [\"(?:0[2-9]|81(?:0(?:0[7-9]|1\\\\d)|5\\\\d\\\\d))\\\\d{3}\"], 0, [\"85[0-5]\\\\d{5}\", [8]], [\"810(?:0[0-6]|[2-8]\\\\d)\\\\d{3}\", [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-579]|6[2-6])\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{7})\", \"$1-$2\", [\"9\"]]], \"0\", 0, 0, 0, 0, 0, [[\"(?:1[0-6]\\\\d|99[02-6])\\\\d{5}|(?:2[13-79]|3[135-8]|4[146-9]|5[135-7]|6[13-9]|7[15-9]|8[1-46-9]|9[1-7])[2-6]\\\\d{5}\", [8]], [\"9(?:6[0-3]|7[245]|8[0-24-68])\\\\d{7}\", [10]], [\"1(?:66001|800\\\\d\\\\d)\\\\d{5}\", [11]]]],\n \"NR\": [\"674\", \"00\", \"(?:444|(?:55|8\\\\d)\\\\d|666)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[4-68]\"]]], 0, 0, 0, 0, 0, 0, [[\"444\\\\d{4}\"], [\"(?:55[3-9]|666|8\\\\d\\\\d)\\\\d{4}\"]]],\n \"NU\": [\"683\", \"00\", \"(?:[47]|888\\\\d)\\\\d{3}\", [4, 7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"8\"]]], 0, 0, 0, 0, 0, 0, [[\"[47]\\\\d{3}\", [4]], [\"888[4-9]\\\\d{3}\", [7]]]],\n \"NZ\": [\"64\", \"0(?:0|161)\", \"[29]\\\\d{7,9}|50\\\\d{5}(?:\\\\d{2,3})?|6[0-35-9]\\\\d{6}|7\\\\d{7,8}|8\\\\d{4,9}|(?:11\\\\d|[34])\\\\d{7}\", [5, 6, 7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{3,8})\", \"$1 $2\", [\"8[1-579]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\", \"$1 $2 $3\", [\"50[036-8]|[89]0\", \"50(?:[0367]|88)|[89]0\"], \"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)|[59]|80\"], \"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|86\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"24099\\\\d{3}|(?:3[2-79]|[49][2-9]|6[235-9]|7[2-57-9])\\\\d{6}\", [8]], [\"2[0-27-9]\\\\d{7,8}|21\\\\d{6}\", [8, 9, 10]], [\"508\\\\d{6,7}|80\\\\d{6,8}\", [8, 9, 10]], [\"(?:11\\\\d{5}|50(?:0[08]|30|66|77|88))\\\\d{3}|90\\\\d{6,8}\", [7, 8, 9, 10]], [\"70\\\\d{7}\", [9]], 0, [\"8(?:1[6-9]|22|3\\\\d|4[045]|5[459]|7[0-3579]|90)\\\\d{2,7}\"], [\"[28]6\\\\d{6,7}\", [8, 9]]], \"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]\"]]], 0, 0, 0, 0, 0, 0, [[\"2[2-6]\\\\d{6}\", [8]], [\"(?:1505|90[1-9]\\\\d)\\\\d{4}|(?:7[1289]|9[1-9])\\\\d{6}\", [8]], [\"8007\\\\d{4,5}|(?:500|800[05])\\\\d{4}\"], [\"900\\\\d{5}\", [8]]]],\n \"PA\": [\"507\", \"00\", \"8\\\\d{9}|[68]\\\\d{7}|[1-57-9]\\\\d{6}\", [7, 8, 10], [[\"(\\\\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\"]]], 0, 0, 0, 0, 0, 0, [[\"(?:1(?:0\\\\d|1[479]|2[37]|3[0137]|4[17]|5[05]|6[58]|7[0167]|8[258]|9[139])|2(?:[0235-79]\\\\d|1[0-7]|4[013-9]|8[026-9])|3(?:[089]\\\\d|1[014-7]|2[0-5]|33|4[0-79]|55|6[068]|7[03-8])|4(?:00|3[0-579]|4\\\\d|7[0-57-9])|5(?:[01]\\\\d|2[0-7]|[56]0|79)|7(?:0[09]|2[0-26-8]|3[03]|4[04]|5[05-9]|6[056]|7[0-24-9]|8[6-9]|90)|8(?:09|2[89]|3\\\\d|4[0-24-689]|5[014]|8[02])|9(?:0[5-9]|1[0135-8]|2[036-9]|3[35-79]|40|5[0457-9]|6[05-9]|7[04-9]|8[35-8]|9\\\\d))\\\\d{4}\", [7]], [\"(?:1[16]1|21[89]|6(?:[02-9]\\\\d|1[0-7])\\\\d|8(?:1[01]|7[23]))\\\\d{4}\", [7, 8]], [\"800\\\\d{4}(?:\\\\d(?:\\\\d{2})?)?\"], [\"(?:8(?:22|55|60|7[78]|86)|9(?:00|81))\\\\d{4}\", [7]]]],\n \"PE\": [\"51\", \"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, [[\"(?:(?:4[34]|5[14])[0-8]\\\\d|7(?:173|3[0-8]\\\\d)|8(?:10[05689]|6(?:0[06-9]|1[6-9]|29)|7(?:0[569]|[56]0)))\\\\d{4}|(?:1[0-8]|4[12]|5[236]|6[1-7]|7[246]|8[2-4])\\\\d{6}\", [8]], [\"9\\\\d{8}\", [9]], [\"800\\\\d{5}\", [8]], [\"805\\\\d{5}\", [8]], [\"80[24]\\\\d{5}\", [8]], 0, 0, 0, 0, [\"801\\\\d{5}\", [8]]], 0, \" Anexo \"],\n \"PF\": [\"689\", \"00\", \"[48]\\\\d{7}|4\\\\d{5}\", [6, 8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"44\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[48]\"]]], 0, 0, 0, 0, 0, 0, [[\"4(?:0[4-689]|9[4-68])\\\\d{5}\", [8]], [\"8[7-9]\\\\d{6}\", [8]], 0, 0, 0, 0, [\"44\\\\d{4}\", [6]], 0, [\"499\\\\d{5}\", [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, [[\"(?:64[1-9]|7730|85[02-46-9])\\\\d{4}|(?:3[0-2]|4[257]|5[34]|77[0-24]|9[78])\\\\d{5}\"], [\"77(?:3[1-9]|[5-9]\\\\d)\\\\d{4}|(?:7[0-689]|8[18])\\\\d{6}\", [8]], [\"180\\\\d{4}\", [7]], 0, 0, 0, 0, [\"27[01]\\\\d{4}\", [7]], [\"2(?:0[0-47]|7[568])\\\\d{4}\", [7]]], \"00\"],\n \"PH\": [\"63\", \"00\", \"1800\\\\d{7,9}|(?:2|[89]\\\\d{4})\\\\d{5}|[2-8]\\\\d{8}|[28]\\\\d{7}\", [6, 8, 9, 10, 11, 12, 13], [[\"(\\\\d)(\\\\d{5})\", \"$1 $2\", [\"2\"], \"(0$1)\"], [\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"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\", 0, 0, 0, 0, 0, [[\"(?:(?:2[3-8]|3[2-68]|4[2-9]|5[2-6]|6[2-58]|7[24578])\\\\d{3}|88(?:22\\\\d\\\\d|42))\\\\d{4}|2\\\\d{5}(?:\\\\d{2})?|8[2-8]\\\\d{7}\", [6, 8, 9, 10]], [\"(?:81[37]|9(?:0[5-9]|1[0-24-9]|2[0-35-9]|[35]\\\\d|4[235-9]|6[0-35-8]|7[1-9]|8[189]|9[4-9]))\\\\d{7}\", [10]], [\"1800\\\\d{7,9}\", [11, 12, 13]]]],\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\", 0, 0, 0, 0, 0, [[\"(?:(?:21|42)[2-9]|58[126])\\\\d{7}|(?:2[25]|4[0146-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\\\\d{6,7}|(?: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]))[2-9]\\\\d{5,6}\", [9, 10]], [\"3(?:[014]\\\\d|2[0-5]|3[0-7]|55|64)\\\\d{7}\", [10]], [\"800\\\\d{5}(?:\\\\d{3})?\", [8, 11]], [\"900\\\\d{5}\", [8]], [\"122\\\\d{6}\", [9]], 0, [\"(?:2(?:[125]|3[2358]|4[2-4]|9[2-8])|4(?:[0-246-9]|5[3479])|5(?:[1-35-7]|4[2-467])|6(?:0[468]|[1-8])|7(?:[14]|2[236])|8(?:[16]|2[2-689]|3[23578]|4[3478]|5[2356])|9(?:1|22|3[27-9]|4[2-6]|6[3569]|9[2-7]))111\\\\d{6}\", [11, 12]]]],\n \"PL\": [\"48\", \"00\", \"6\\\\d{5}(?:\\\\d{2})?|8\\\\d{9}|[1-9]\\\\d{6}(?:\\\\d{2})?\", [6, 7, 8, 9, 10], [[\"(\\\\d{5})\", \"$1\", [\"19\"]], [\"(\\\\d{3})(\\\\d{3})\", \"$1 $2\", [\"11|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\", [\"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\"]]], 0, 0, 0, 0, 0, 0, [[\"47\\\\d{7}|(?: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])(?:[02-9]\\\\d{6}|1(?:[0-8]\\\\d{5}|9\\\\d{3}(?:\\\\d{2})?))\", [7, 9]], [\"(?:45|5[0137]|6[069]|7[2389]|88)\\\\d{7}\", [9]], [\"800\\\\d{6,7}\", [9, 10]], [\"70[01346-8]\\\\d{6}\", [9]], 0, 0, [\"804\\\\d{6}\", [9]], [\"64\\\\d{4,7}\", [6, 7, 8, 9]], [\"39\\\\d{7}\", [9]], [\"801\\\\d{6}\", [9]]]],\n \"PM\": [\"508\", \"00\", \"[45]\\\\d{5}\", [6], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[45]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"(?:4[1-3]|50)\\\\d{4}\"], [\"(?:4[02-4]|5[05])\\\\d{4}\"]]],\n \"PR\": [\"1\", \"011\", \"(?:[589]\\\\d\\\\d|787)\\\\d{7}\", [10], 0, \"1\", 0, 0, 0, 0, \"787|939\", [[\"(?:787|939)[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[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\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\", 0, 0, 0, 0, 0, [[\"(?:22[2-47-9]|42[45]|82[014-68]|92[3569])\\\\d{5}\", [8]], [\"5[69]\\\\d{7}\", [9]], [\"1800\\\\d{6}\", [10]], 0, 0, 0, 0, 0, 0, [\"1700\\\\d{6}\", [10]]]],\n \"PT\": [\"351\", \"00\", \"(?:[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\", [\"[236-9]\"]]], 0, 0, 0, 0, 0, 0, [[\"2(?:[12]\\\\d|[35][1-689]|4[1-59]|6[1-35689]|7[1-9]|8[1-69]|9[1256])\\\\d{6}\"], [\"6[356]9230\\\\d{3}|(?:6[036]93|9(?:[1-36]\\\\d\\\\d|480))\\\\d{5}\"], [\"80[02]\\\\d{6}\"], [\"(?:6(?:0[178]|4[68])\\\\d|76(?:0[1-57]|1[2-47]|2[237]))\\\\d{5}\"], [\"884[0-4689]\\\\d{5}\"], 0, [\"70(?:7\\\\d|8[17])\\\\d{5}\"], 0, [\"30\\\\d{7}\"], [\"80(?:8\\\\d|9[1579])\\\\d{5}\"]]],\n \"PW\": [\"680\", \"01[12]\", \"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-9]\"]]], 0, 0, 0, 0, 0, 0, [[\"(?:2(?:55|77)|345|488|5(?:35|44|87)|6(?:22|54|79)|7(?:33|47)|8(?:24|55|76)|900)\\\\d{4}\"], [\"(?:46[0-5]|6[2-4689]0)\\\\d{4}|(?:45|77|88)\\\\d{5}\"]]],\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-6])\"], \"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\", 0, 0, 0, 0, 0, [[\"(?:[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36])\\\\d{5,7}|(?:2(?:2[4-68]|[4-68]\\\\d|7[15]|9[1-5])|3(?:18|3[167]|4[2357]|51|[67]\\\\d)|4(?:3[12]|5[13]|9[1-47])|5(?:[1-4]\\\\d|5[02-4])|6(?:3[1-3]|44|7[1-8])|7(?:4[0-4]|5\\\\d|6[1-578]|75|8[0-8])|858)\\\\d{5,6}\", [7, 8, 9]], [\"9(?:51|6[129]|[78][1-6]|9[1-5])\\\\d{6}\", [9]], [\"9800\\\\d{5,7}\", [9, 10, 11]], 0, 0, 0, [\"[2-9]0\\\\d{4,7}\", [6, 7, 8, 9]], 0, [\"8700[0-4]\\\\d{4}\", [9]]]],\n \"QA\": [\"974\", \"00\", \"[2-7]\\\\d{7}|(?:2\\\\d\\\\d|800)\\\\d{4}\", [7, 8], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"2[126]|8\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2-7]\"]]], 0, 0, 0, 0, 0, 0, [[\"(?:23|4[04])\\\\d{6}\", [8]], [\"(?:28|[35-7]\\\\d)\\\\d{6}\", [8]], [\"800\\\\d{4}\", [7]], 0, 0, 0, 0, [\"2(?:[12]\\\\d|61)\\\\d{4}\", [7]]]],\n \"RE\": [\"262\", \"00\", \"9769\\\\d{5}|(?:26|[68]\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2689]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, \"26[23]|69|[89]\", [[\"26(?:2\\\\d\\\\d|30[01])\\\\d{4}\"], [\"(?:69(?:2\\\\d\\\\d|3(?:0[0-46]|1[013]|2[0-2]|3[0-39]|4\\\\d|5[05]|6[0-36]|7[0-27]|8[0-8]|9[0-479]))|9769\\\\d)\\\\d{4}\"], [\"80\\\\d{7}\"], [\"89[1-37-9]\\\\d{6}\"], 0, 0, 0, 0, 0, [\"8(?:1[019]|2[0156]|84|90)\\\\d{6}\"]]],\n \"RO\": [\"40\", \"00\", \"(?:[237]\\\\d|[89]0)\\\\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\", [\"[237-9]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"[23][13-6]\\\\d{7}|(?:2(?:19\\\\d|[3-6]\\\\d9)|31\\\\d\\\\d)\\\\d\\\\d\"], [\"7[01]20\\\\d{5}|7(?:0[013-9]|1[01]|[2-7]\\\\d|8[03-8]|9[09])\\\\d{6}\", [9]], [\"800\\\\d{6}\", [9]], [\"90[0136]\\\\d{6}\", [9]], 0, 0, [\"(?:37\\\\d|80[578])\\\\d{6}\", [9]], 0, 0, [\"801\\\\d{6}\", [9]]], 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\", 0, 0, 0, 0, 0, [[\"(?:11[1-9]\\\\d|(?:2[389]|39)(?:0[2-9]|[2-9]\\\\d))\\\\d{3,8}|(?:1[02-9]|2[0-24-7]|3[0-8])[2-9]\\\\d{4,9}\", [7, 8, 9, 10, 11, 12]], [\"6(?:[0-689]|7\\\\d)\\\\d{6,7}\", [8, 9, 10]], [\"800\\\\d{3,9}\"], [\"(?:78\\\\d|90[0169])\\\\d{3,7}\", [6, 7, 8, 9, 10]], 0, 0, [\"7[06]\\\\d{4,10}\"]]],\n \"RU\": [\"7\", \"810\", \"[347-9]\\\\d{9}\", [10], [[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"7(?:1[0-8]|2[1-9])\", \"7(?:1(?:[0-6]2|7|8[27])|2(?:1[23]|[2-9]2))\", \"7(?:1(?:[0-6]2|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\", [\"[3489]\"], \"8 ($1)\", 1]], \"8\", 0, 0, 0, 0, \"3[04-689]|[489]\", [[\"(?:3(?:0[12]|4[1-35-79]|5[1-3]|65|8[1-58]|9[0145])|4(?:01|1[1356]|2[13467]|7[1-5]|8[1-7]|9[1-689])|8(?:1[1-8]|2[01]|3[13-6]|4[0-8]|5[15]|6[1-35-79]|7[1-37-9]))\\\\d{7}\"], [\"9\\\\d{9}\"], [\"80[04]\\\\d{7}\"], [\"80[39]\\\\d{7}\"], [\"808\\\\d{7}\"]], \"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\", [\"[7-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"2\"]]], \"0\", 0, 0, 0, 0, 0, [[\"(?:06|2[23568]\\\\d)\\\\d{6}\"], [\"7[238]\\\\d{7}\", [9]], [\"800\\\\d{6}\", [9]], [\"900\\\\d{6}\", [9]]]],\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\", 0, 0, 0, 0, 0, [[\"1(?:1\\\\d|2[24-8]|3[35-8]|4[3-68]|6[2-5]|7[235-7])\\\\d{6}\", [9]], [\"579[01]\\\\d{5}|5(?:[013-689]\\\\d|7[0-36-8])\\\\d{6}\", [9]], [\"800\\\\d{7}\", [10]], [\"925\\\\d{6}\", [9]], 0, 0, [\"811\\\\d{7}\", [10]], 0, 0, [\"920\\\\d{6}\", [9]]]],\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])\"]]], 0, 0, 0, 0, 0, 0, [[\"(?:1[4-79]|[23]\\\\d|4[0-2]|5[03]|6[0-37])\\\\d{3}\", [5]], [\"48\\\\d{3}|(?:(?:7[1-9]|8[4-9])\\\\d|9(?:1[2-9]|2[013-9]|3[0-2]|[46]\\\\d|5[0-46-9]|7[0-689]|8[0-79]|9[0-8]))\\\\d{4}\"], [\"1[38]\\\\d{3}\", [5]], 0, 0, 0, 0, 0, [\"5[12]\\\\d{3}\", [5]]]],\n \"SC\": [\"248\", \"010|0[0-2]\", \"8000\\\\d{3}|(?:[249]\\\\d|64)\\\\d{5}\", [7], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[246]|9[57]\"]]], 0, 0, 0, 0, 0, 0, [[\"4[2-46]\\\\d{5}\"], [\"2[5-8]\\\\d{5}\"], [\"8000\\\\d{3}\"], 0, 0, 0, 0, 0, [\"971\\\\d{4}|(?:64|95)\\\\d{5}\"]], \"00\"],\n \"SD\": [\"249\", \"00\", \"[19]\\\\d{8}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[19]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"1(?:5\\\\d|8[35-7])\\\\d{6}\"], [\"(?:1[0-2]|9[0-3569])\\\\d{7}\"]]],\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)\"], \"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\", 0, 0, 0, 0, 0, [[\"(?:(?:[12][136]|3[356]|4[0246]|6[03]|8\\\\d)\\\\d|90[1-9])\\\\d{4,6}|(?:1(?:2[0-35]|4[0-4]|5[0-25-9]|7[13-6]|[89]\\\\d)|2(?:2[0-7]|4[0136-8]|5[0138]|7[018]|8[01]|9[0-57])|3(?:0[0-4]|1\\\\d|2[0-25]|4[056]|7[0-2]|8[0-3]|9[023])|4(?:1[013-8]|3[0135]|5[14-79]|7[0-246-9]|8[0156]|9[0-689])|5(?:0[0-6]|[15][0-5]|2[0-68]|3[0-4]|4\\\\d|6[03-5]|7[013]|8[0-79]|9[01])|6(?:1[1-3]|2[0-4]|4[02-57]|5[0-37]|6[0-3]|7[0-2]|8[0247]|9[0-356])|9(?:1[0-68]|2\\\\d|3[02-5]|4[0-3]|5[0-4]|[68][01]|7[0135-8]))\\\\d{5,6}\", [7, 8, 9]], [\"7[02369]\\\\d{7}\", [9]], [\"20\\\\d{4,7}\", [6, 7, 8, 9]], [\"649\\\\d{6}|9(?:00|39|44)[1-8]\\\\d{3,6}\", [7, 8, 9, 10]], [\"75[1-8]\\\\d{6}\", [9]], 0, [\"10[1-8]\\\\d{6}\", [9]], [\"74[02-9]\\\\d{6}\", [9]], 0, [\"77[0-7]\\\\d{6}\", [9]]]],\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-3]|[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\"]]], 0, 0, 0, 0, 0, 0, [[\"662[0-24-9]\\\\d{4}|6(?:[1-578]\\\\d|6[013-57-9]|9[0-35-9])\\\\d{5}\", [8]], [\"(?:8(?:0(?:1\\\\d|2[0147-9]|3[013-7])|[1-8]\\\\d\\\\d|9(?:[0-4]\\\\d|5[0-2]))|9[0-8]\\\\d\\\\d)\\\\d{4}\", [8]], [\"(?:18|8)00\\\\d{7}\", [10, 11]], [\"1900\\\\d{7}\", [11]], 0, 0, [\"7000\\\\d{7}\", [11]], 0, [\"(?:3[12]\\\\d|666)\\\\d{5}\", [8]]]],\n \"SH\": [\"290\", \"00\", \"(?:[256]\\\\d|8)\\\\d{3}\", [4, 5], 0, 0, 0, 0, 0, 0, \"[256]\", [[\"2(?:[0-57-9]\\\\d|6[4-9])\\\\d\\\\d\"], [\"[56]\\\\d{4}\", [5]], 0, 0, 0, 0, 0, 0, [\"262\\\\d\\\\d\", [5]]]],\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, [[\"(?:[1-357][2-8]|4[24-8])\\\\d{6}\", [8]], [\"65(?:1\\\\d|55|[67]0)\\\\d{4}|(?:[37][01]|4[0139]|51|6[489])\\\\d{6}\", [8]], [\"80\\\\d{4,6}\", [6, 7, 8]], [\"89[1-3]\\\\d{2,5}|90\\\\d{4,6}\"], 0, 0, 0, 0, [\"(?:59\\\\d\\\\d|8(?:1(?:[67]\\\\d|8[0-489])|2(?:0\\\\d|2[0-37-9]|8[0-2489])|3[389]\\\\d))\\\\d{4}\", [8]]], \"00\"],\n \"SJ\": [\"47\", \"00\", \"0\\\\d{4}|(?:[4589]\\\\d|79)\\\\d{6}\", [5, 8], 0, 0, 0, 0, 0, 0, \"79\", [[\"79\\\\d{6}\", [8]], [\"(?:4[015-8]|5[89]|9\\\\d)\\\\d{6}\", [8]], [\"80[01]\\\\d{5}\", [8]], [\"82[09]\\\\d{5}\", [8]], [\"880\\\\d{5}\", [8]], 0, [\"(?:0[2-9]|81(?:0(?:0[7-9]|1\\\\d)|5\\\\d\\\\d))\\\\d{3}\"], 0, [\"85[0-5]\\\\d{5}\", [8]], [\"810(?:0[0-6]|[2-8]\\\\d)\\\\d{3}\", [8]]]],\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\", 0, 0, 0, 0, 0, [[\"(?:2(?:16|[2-9]\\\\d{3})|(?:(?:[3-5][1-8]\\\\d|819)\\\\d|601[1-5])\\\\d)\\\\d{4}|(?:2|[3-5][1-8])1[67]\\\\d{3}|[3-5][1-8]16\\\\d\\\\d\"], [\"909[1-9]\\\\d{5}|9(?:0[1-8]|1[0-24-9]|4[03-57-9]|5\\\\d)\\\\d{6}\", [9]], [\"800\\\\d{6}\", [9]], [\"9(?:00|[78]\\\\d)\\\\d{6}\", [9]], 0, 0, [\"96\\\\d{7}\", [9]], [\"9090\\\\d{3}\", [7]], [\"6(?:02|5[0-4]|9[0-6])\\\\d{6}\", [9]], [\"8[5-9]\\\\d{7}\", [9]]]],\n \"SL\": [\"232\", \"00\", \"(?:[2378]\\\\d|66|99)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"[236-9]\"], \"(0$1)\"]], \"0\", 0, 0, 0, 0, 0, [[\"22[2-4][2-9]\\\\d{4}\"], [\"(?:25|3[013-5]|66|7[3-9]|8[08]|99)\\\\d{6}\"]]],\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\", 0, 0, [[\"0549(?:8[0157-9]|9\\\\d)\\\\d{4}\", [10]], [\"6[16]\\\\d{6}\", [8]], 0, [\"7[178]\\\\d{6}\", [8]], 0, 0, 0, 0, [\"5[158]\\\\d{6}\", [8]]]],\n \"SN\": [\"221\", \"00\", \"(?:[378]\\\\d{4}|93330)\\\\d{4}\", [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]\"]]], 0, 0, 0, 0, 0, 0, [[\"3(?:0(?:1[0-2]|80)|282|3(?:8[1-9]|9[3-9])|611)\\\\d{5}\"], [\"7(?:[06-8]\\\\d|21|5[4-7]|90)\\\\d{6}\"], [\"800\\\\d{6}\"], [\"88[4689]\\\\d{6}\"], 0, 0, 0, 0, [\"93330\\\\d{4}|3(?:392|9[01]\\\\d)\\\\d{5}\"], [\"81[02468]\\\\d{6}\"]]],\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\", [\"24|[67]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[3478]|64|90\"]], [\"(\\\\d{2})(\\\\d{5,7})\", \"$1 $2\", [\"1|28|6[1-35-9]|9[2-9]\"]]], \"0\", 0, 0, 0, 0, 0, [[\"(?:1\\\\d|2[0-79]|3[0-46-8]|4[0-7]|5[57-9])\\\\d{5}|(?:[134]\\\\d|8[125])\\\\d{4}\", [6, 7]], [\"28\\\\d{5}|(?:6[1-9]|79)\\\\d{6,7}|(?:15|24|(?:3[59]|4[89]|8[08])\\\\d|60|7[1-8]|9(?:0\\\\d|[2-9]))\\\\d{6}\", [7, 8, 9]]]],\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]\"]]], 0, 0, 0, 0, 0, 0, [[\"(?:2[1-3]|3[0-7]|(?:4|68)\\\\d|5[2-58])\\\\d{4}\"], [\"(?:7[124-7]|8[124-9])\\\\d{5}\", [7]], 0, 0, 0, 0, 0, 0, [\"56\\\\d{4}\", [6]]]],\n \"SS\": [\"211\", \"00\", \"[19]\\\\d{8}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[19]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"1[89]\\\\d{7}\"], [\"(?:12|9[12579])\\\\d{7}\"]]],\n \"ST\": [\"239\", \"00\", \"(?:22|9\\\\d)\\\\d{5}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[29]\"]]], 0, 0, 0, 0, 0, 0, [[\"22\\\\d{5}\"], [\"900[5-9]\\\\d{3}|9(?:0[1-9]|[89]\\\\d)\\\\d{4}\"]]],\n \"SV\": [\"503\", \"00\", \"[267]\\\\d{7}|[89]00\\\\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]\"]]], 0, 0, 0, 0, 0, 0, [[\"2(?:[1-6]\\\\d{3}|[79]90[034]|890[0245])\\\\d{3}\", [8]], [\"66(?:[02-9]\\\\d\\\\d|1(?:[02-9]\\\\d|16))\\\\d{3}|(?:6[0-57-9]|7\\\\d)\\\\d{6}\", [8]], [\"800\\\\d{4}(?:\\\\d{4})?\", [7, 11]], [\"900\\\\d{4}(?:\\\\d{4})?\", [7, 11]]]],\n \"SX\": [\"1\", \"011\", \"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|(5\\\\d{6})$\", \"721$1\", 0, \"721\", [[\"7215(?:4[2-8]|8[239]|9[056])\\\\d{4}\"], [\"7215(?:1[02]|2\\\\d|5[034679]|8[014-8])\\\\d{4}\"], [\"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[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\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\", 0, 0, 0, 0, 0, [[\"21\\\\d{6,7}|(?:1(?:[14]\\\\d|[2356])|2[235]|3(?:[13]\\\\d|4)|4[134]|5[1-3])\\\\d{6}\"], [\"9(?:22|[3-589]\\\\d|6[02-9])\\\\d{6}\", [9]]]],\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\"]]], 0, 0, 0, 0, 0, 0, [[\"[23][2-5]\\\\d{6}\", [8]], [\"7[6-9]\\\\d{6}\", [8]], [\"0800\\\\d{4}\", [8]], [\"900\\\\d{6}\", [9]], 0, 0, 0, 0, [\"70\\\\d{6}\", [8]]]],\n \"TA\": [\"290\", \"00\", \"8\\\\d{3}\", [4], 0, 0, 0, 0, 0, 0, \"8\", [[\"8\\\\d{3}\"]]],\n \"TC\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-479]\\\\d{6})$\", \"649$1\", 0, \"649\", [[\"649(?:266|712|9(?:4\\\\d|50))\\\\d{4}\"], [\"649(?:2(?:3[129]|4[1-79])|3\\\\d\\\\d|4[34][1-3])\\\\d{4}\"], [\"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[12]|33|44|66|77|88)[2-9]\\\\d{6}\"], 0, 0, 0, [\"649(?:71[01]|966)\\\\d{4}\"]]],\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, [[\"22(?:[37-9]0|5[0-5]|6[89])\\\\d{4}\"], [\"(?:6[023568]|77|9\\\\d)\\\\d{6}\"]], \"00\"],\n \"TG\": [\"228\", \"00\", \"[279]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[279]\"]]], 0, 0, 0, 0, 0, 0, [[\"2(?:2[2-7]|3[23]|4[45]|55|6[67]|77)\\\\d{5}\"], [\"(?:7[09]|9[0-36-9])\\\\d{6}\"]]],\n \"TH\": [\"66\", \"00[1-9]\", \"1\\\\d{9}|[1689]\\\\d{8}|[1-57]\\\\d{7}\", [8, 9, 10], [[\"(\\\\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\", 0, 0, 0, 0, 0, [[\"(?:1[0689]|2\\\\d|3[2-9]|4[2-5]|5[2-6]|7[3-7])\\\\d{6}\", [8]], [\"671[0-3]\\\\d{5}|(?:14|6[1-6]|[89]\\\\d)\\\\d{7}\", [9]], [\"1800\\\\d{6}\", [10]], [\"1900\\\\d{6}\", [10]], 0, 0, 0, 0, [\"6[08]\\\\d{7}\", [9]]]],\n \"TJ\": [\"992\", \"810\", \"(?:[02]0|11|[3-57-9]\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{6})(\\\\d)(\\\\d{2})\", \"$1 $2 $3\", [\"331\", \"3317\"], 0, 1], [\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"[34]7|91[78]\"], 0, 1], [\"(\\\\d{4})(\\\\d)(\\\\d{4})\", \"$1 $2 $3\", [\"3\"], 0, 1], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[02457-9]|11\"], 0, 1]], \"8\", 0, 0, 0, 0, 0, [[\"(?:3(?:1[3-5]|2[245]|3[12]|4[24-7]|5[25]|72)|4(?:46|74|87))\\\\d{6}\"], [\"41[18]\\\\d{6}|(?:[024]0|11|5[05]|7[07]|8[08]|9\\\\d)\\\\d{7}\"]], \"8~10\"],\n \"TK\": [\"690\", \"00\", \"[2-47]\\\\d{3,6}\", [4, 5, 6, 7], 0, 0, 0, 0, 0, 0, 0, [[\"(?:2[2-4]|[34]\\\\d)\\\\d{2,5}\"], [\"7[2-4]\\\\d{2,5}\"]]],\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\"]]], 0, 0, 0, 0, 0, 0, [[\"(?:2[1-5]|3[1-9]|4[1-4])\\\\d{5}\", [7]], [\"7[2-8]\\\\d{6}\", [8]], [\"80\\\\d{5}\", [7]], [\"90\\\\d{5}\", [7]], [\"70\\\\d{5}\", [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, [[\"(?:1(?:2\\\\d|3[1-9])|2(?:22|4[0-35-8])|3(?:22|4[03-9])|4(?:22|3[128]|4\\\\d|6[15])|5(?:22|5[7-9]|6[014-689]))\\\\d{5}\"], [\"6\\\\d{7}\"]], \"8~10\"],\n \"TN\": [\"216\", \"00\", \"[2-57-9]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-57-9]\"]]], 0, 0, 0, 0, 0, 0, [[\"81200\\\\d{3}|(?:3[0-2]|7\\\\d)\\\\d{6}\"], [\"3(?:001|[12]40)\\\\d{4}|(?:(?:[259]\\\\d|4[0-7])\\\\d|3(?:1[1-35]|6[0-4]|91))\\\\d{5}\"], [\"8010\\\\d{4}\"], [\"88\\\\d{6}\"], 0, 0, 0, 0, 0, [\"8[12]10\\\\d{4}\"]]],\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]\"]]], 0, 0, 0, 0, 0, 0, [[\"(?:2\\\\d|3[0-8]|4[0-4]|50|6[09]|7[0-24-69]|8[05])\\\\d{3}\", [5]], [\"(?:6(?:[09]\\\\d|3[02]|8[15-9])|(?:7\\\\d|8[46-9])\\\\d|999)\\\\d{4}\", [7]], [\"0800\\\\d{3}\", [7]], [\"55[04]\\\\d{4}\", [7]]]],\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]|616)\", \"5(?:[0-59]|6161)\"], \"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\", 0, 0, 0, 0, 0, [[\"(?:2(?:[13][26]|[28][2468]|[45][268]|[67][246])|3(?:[13][28]|[24-6][2468]|[78][02468]|92)|4(?:[16][246]|[23578][2468]|4[26]))\\\\d{7}\", [10]], [\"56161\\\\d{5}|5(?:0[15-7]|1[06]|24|[34]\\\\d|5[1-59]|9[46])\\\\d{7}\", [10]], [\"8(?:00\\\\d{7}(?:\\\\d{2,3})?|11\\\\d{7})\", [10, 12, 13]], [\"(?:8[89]8|900)\\\\d{7}\", [10]], [\"592(?:21[12]|461)\\\\d{4}\", [10]], 0, [\"444\\\\d{4}\", [7]], [\"512\\\\d{7}\", [10]], [\"850\\\\d{7}\", [10]]]],\n \"TT\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-46-8]\\\\d{6})$\", \"868$1\", 0, \"868\", [[\"868(?:2(?:0[13]|1[89]|[23]\\\\d|4[0-2])|6(?:0[7-9]|1[02-8]|2[1-9]|[3-69]\\\\d|7[0-79])|82[124])\\\\d{4}\"], [\"868(?:2(?:6[3-9]|[7-9]\\\\d)|(?:3\\\\d|4[6-9])\\\\d|6(?:20|78|8\\\\d)|7(?:0[1-9]|1[02-9]|[2-9]\\\\d))\\\\d{4}\"], [\"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[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\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\"]]], 0, 0, 0, 0, 0, 0, [[\"2[02-9]\\\\d{3}\", [5]], [\"(?:7[01]\\\\d|90)\\\\d{4}\", [6, 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, [[\"(?:2[2-8]\\\\d|370|55[01]|7[1-9])\\\\d{6}|4(?:(?:0(?:0[1-9]|[2-48]\\\\d)|1[023]\\\\d)\\\\d{4,5}|(?:[239]\\\\d\\\\d|4(?:0[56]|12|49))\\\\d{5})|6(?:[01]\\\\d{7}|4(?:0[56]|12|24|4[09])\\\\d{4,5})|8(?:(?:2(?:3\\\\d|4[0-269]|[578]0|66)|36[24-9]|90\\\\d\\\\d)\\\\d{4}|4(?:0[56]|12|24|4[09])\\\\d{4,5})|(?:2(?:2(?:0\\\\d\\\\d|4(?:0[68]|[249]0|3[0-467]|5[0-25-9]|6[0235689]))|(?:3(?:[09]\\\\d|1[0-4])|(?:4\\\\d|5[0-49]|6[0-29]|7[0-5])\\\\d)\\\\d)|(?:(?:3[2-9]|5[2-8]|6[0-35-79]|8[7-9])\\\\d\\\\d|4(?:2(?:[089]\\\\d|7[1-9])|(?:3[0-4]|[78]\\\\d|9[01])\\\\d))\\\\d)\\\\d{3}\", [8, 9]], [\"(?:40001[0-2]|9[0-8]\\\\d{4})\\\\d{3}\", [9]], [\"80[0-79]\\\\d{6}|800\\\\d{5}\", [8, 9]], [\"20(?:[013-9]\\\\d\\\\d|2)\\\\d{4}\", [7, 9]], [\"99\\\\d{7}\", [9]], 0, [\"50[0-46-9]\\\\d{6}\", [9]], 0, [\"7010(?:[0-2679]\\\\d|3[0-7]|8[0-5])\\\\d{5}|70\\\\d{8}\", [10, 11]]], 0, \"#\"],\n \"TZ\": [\"255\", \"00[056]\", \"(?:[26-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{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[67]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"2[2-8]\\\\d{7}\"], [\"77[2-9]\\\\d{6}|(?:6[1-9]|7[1-689])\\\\d{7}\"], [\"80[08]\\\\d{6}\"], [\"90\\\\d{7}\"], 0, 0, 0, 0, [\"41\\\\d{7}\"], [\"8(?:40|6[01])\\\\d{6}\"]]],\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{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"4[45][0-5]|5(?:0|6[37])|6(?:[12][018]|[36-8])|7|89|9[1-9]|(?:48|57)[0137-9]\", \"4[45][0-5]|5(?:0|6(?:3[14-7]|7))|6(?:[12][018]|[36-8])|7|89|9[1-9]|(?:48|57)[0137-9]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{5})\", \"$1 $2\", [\"[3-6]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[89]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"(?:3[1-8]|4[13-8]|5[1-7]|6[12459])\\\\d{7}\", [9]], [\"(?:50|6[36-8]|7[1-3]|9[1-9])\\\\d{7}\", [9]], [\"800[1-8]\\\\d{5,6}\"], [\"900[239]\\\\d{5,6}\"], 0, 0, 0, 0, [\"89[1-579]\\\\d{6}\", [9]]], \"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\", 0, 0, 0, 0, 0, [[\"20(?:(?:(?:24|81)0|30[67])\\\\d|6(?:00[0-2]|30[0-4]))\\\\d{3}|(?:20(?:[0147]\\\\d|2[5-9]|32|5[0-4]|6[15-9])|[34]\\\\d{3})\\\\d{5}\"], [\"7260\\\\d{5}|7(?:[0157-9]\\\\d|20|36|4[0-4])\\\\d{6}\"], [\"800[1-3]\\\\d{5}\"], [\"90[1-3]\\\\d{6}\"]]],\n \"US\": [\"1\", \"011\", \"[2-9]\\\\d{9}\", [10], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"($1) $2-$3\", [\"[2-9]\"], 0, 1, \"$1-$2-$3\"]], \"1\", 0, 0, 0, 0, 0, [[\"(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[12]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[0235]|58|6[39]|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[013-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[0179]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[02-59]|8[156])|8(?:0[1-68]|1[02-8]|2[08]|3[0-289]|4[3578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[0179]|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[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\n \"UY\": [\"598\", \"0(?:0|1[3-9]\\\\d)\", \"4\\\\d{9}|[249]\\\\d{7}|(?:[49]\\\\d|80)\\\\d{5}\", [7, 8, 10], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"405|8|90\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"9\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[24]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"4\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"(?:2\\\\d|4[2-7])\\\\d{6}\", [8]], [\"9[1-9]\\\\d{6}\", [8]], [\"(?:4\\\\d{5}|80[05])\\\\d{4}|405\\\\d{4}\", [7, 10]], [\"90[0-8]\\\\d{4}\", [7]]], \"00\", \" int. \"],\n \"UZ\": [\"998\", \"810\", \"55501\\\\d{4}|(?:33|[679]\\\\d|88)\\\\d{7}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[35-9]\"], \"8 $1\"]], \"8\", 0, 0, 0, 0, 0, [[\"(?:6(?:1(?:22|3[124]|4[1-4]|5[1-3578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|6\\\\d\\\\d|7(?:[23]\\\\d|7[69])|9(?:22|4[1-8]|6[135]))|7(?:0(?:5[4-9]|6[0146]|7[124-6]|9[135-8])|(?:1[12]|8\\\\d)\\\\d|2(?:22|3[13-57-9]|4[1-3579]|5[14])|3(?:2\\\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\\\d|3[1-579]|7[1-79])|5(?:22|5[1-9]|6[1457])|6(?:22|3[12457]|4[13-8])|9(?:22|5[1-9])))\\\\d{5}\"], [\"(?:(?:33|88|9[0-57-9])\\\\d{3}|55501|6(?:1(?:2(?:2[01]|98)|35[0-4]|50\\\\d|61[23]|7(?:[01][017]|4\\\\d|55|9[5-9]))|2(?:(?:11|7\\\\d)\\\\d|2(?:[12]1|9[01379])|5(?:[126]\\\\d|3[0-4]))|5(?:19[01]|2(?:27|9[26])|(?:30|59|7\\\\d)\\\\d)|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|(?:3[79]|9[0-3])\\\\d|4(?:56|83)|7(?:[07]\\\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79]))|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\\\d|[39][07])|9(?:0\\\\d|7[079]))|9(?:2(?:1[1267]|3[01]|5\\\\d|7[0-4])|(?:5[67]|7\\\\d)\\\\d|6(?:2[0-26]|8\\\\d)))|7(?:[07]\\\\d{3}|1(?:13[01]|6(?:0[47]|1[67]|66)|71[3-69]|98\\\\d)|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\\\d|7(?:0\\\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|(?:33|9[4-6])\\\\d|5(?:0[0-4]|5[579]|9\\\\d)|7(?:[0-3579]\\\\d|4[0467]|6[67]|8[078]))|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\\\d|9[5-9])|7(?:0\\\\d|1[024589]|2[0-27]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\\\d))|5(?:112|2(?:0\\\\d|2[29]|[49]4)|3[1568]\\\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\\\d|8[78]|9[079]))|6(?:2(?:2[1245]|4[2-4])|39\\\\d|41[179]|5(?:[349]\\\\d|5[0-2])|7(?:0[017]|[13]\\\\d|22|44|55|67|88))|9(?:22[128]|3(?:2[0-4]|7\\\\d)|57[02569]|7(?:2[05-9]|3[37]|4\\\\d|60|7[2579]|87|9[07]))))\\\\d{4}\"]], \"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\", [[\"06698\\\\d{1,6}\"], [\"3[1-9]\\\\d{8}|3[2-9]\\\\d{7}\", [9, 10]], [\"80(?:0\\\\d{3}|3)\\\\d{3}\", [6, 9]], [\"(?:0878\\\\d\\\\d|89(?:2|4[5-9]\\\\d))\\\\d{3}|89[45][0-4]\\\\d\\\\d|(?:1(?:44|6[346])|89(?: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 \"VC\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-7]\\\\d{6})$\", \"784$1\", 0, \"784\", [[\"784(?:266|3(?:6[6-9]|7\\\\d|8[0-6])|4(?:38|5[0-36-8]|8[0-8])|5(?:55|7[0-2]|93)|638|784)\\\\d{4}\"], [\"784(?:4(?:3[0-5]|5[45]|89|9[0-8])|5(?:2[6-9]|3[0-4])|720)\\\\d{4}\"], [\"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[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\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\", 0, 0, 0, 0, 0, [[\"(?:2(?:12|3[457-9]|[467]\\\\d|[58][1-9]|9[1-6])|[4-6]00)\\\\d{7}\"], [\"4(?:1[24-8]|2[46])\\\\d{7}\"], [\"800\\\\d{7}\"], [\"90[01]\\\\d{7}\"], 0, 0, [\"501\\\\d{7}\"]]],\n \"VG\": [\"1\", \"011\", \"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-578]\\\\d{6})$\", \"284$1\", 0, \"284\", [[\"284496[0-5]\\\\d{3}|284(?:229|4(?:22|9[45])|774|8(?:52|6[459]))\\\\d{4}\"], [\"284496[6-9]\\\\d{3}|284(?:245|3(?:0[0-3]|4[0-7]|68|9[34])|4(?:4[0-6]|68|99)|5(?:4[0-7]|68|9[69]))\\\\d{4}\"], [\"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[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\n \"VI\": [\"1\", \"011\", \"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\", [10], 0, \"1\", 0, \"1|([2-9]\\\\d{6})$\", \"340$1\", 0, \"340\", [[\"340(?:2(?:0[12]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\\\d)|884|998)\\\\d{4}\"], [\"\"], [\"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[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\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\", [\"[69]\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[3578]\"], \"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\", 0, 0, 0, 0, 0, [[\"2(?:0[3-9]|1[0-689]|2[0-25-9]|3[2-9]|4[2-8]|5[124-9]|6[0-39]|7[0-7]|8[2-79]|9[0-4679])\\\\d{7}\", [10]], [\"(?:5(?:2[238]|59)|89[689]|99[013-9])\\\\d{6}|(?:3\\\\d|5[689]|7[06-9]|8[1-8]|9[0-8])\\\\d{7}\", [9]], [\"1800\\\\d{4,6}|12(?:0[13]|28)\\\\d{4}\", [8, 9, 10]], [\"1900\\\\d{4,6}\", [8, 9, 10]], 0, 0, [\"(?:[17]99|80\\\\d)\\\\d{4}|69\\\\d{5,6}\", [7, 8]], 0, [\"672\\\\d{6}\", [9]]]],\n \"VU\": [\"678\", \"00\", \"[48]8\\\\d{3}|(?:[23]|[579]\\\\d\\\\d)\\\\d{4}\", [5, 7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[579]\"]]], 0, 0, 0, 0, 0, 0, [[\"(?:38[0-8]|48[4-9])\\\\d\\\\d|(?:2[02-9]|3[4-7]|88)\\\\d{3}\", [5]], [\"(?:5\\\\d|7[013-7])\\\\d{5}\", [7]], 0, 0, 0, 0, [\"(?:3[03]|900\\\\d)\\\\d{3}\"], 0, [\"9(?:0[1-9]|1[01])\\\\d{4}\", [7]]]],\n \"WF\": [\"681\", \"00\", \"(?:[45]0|68|72|8\\\\d)\\\\d{4}\", [6], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[4-8]\"]]], 0, 0, 0, 0, 0, 0, [[\"(?:50|68|72)\\\\d{4}\"], [\"(?:50|68|72|8[23])\\\\d{4}\"]]],\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\"]]], 0, 0, 0, 0, 0, 0, [[\"6[1-9]\\\\d{3}|(?:[2-5]|60)\\\\d{4}\", [5, 6]], [\"(?:7[1-35-7]|8(?:[3-7]|9\\\\d{3}))\\\\d{5}\", [7, 10]], [\"800\\\\d{3}\", [6]]]],\n \"XK\": [\"383\", \"00\", \"[23]\\\\d{7,8}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\", [8, 9], [[\"(\\\\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\", [\"[23]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"(?:2[89]|39)0\\\\d{6}|[23][89]\\\\d{6}\"], [\"4[3-9]\\\\d{6}\", [8]], [\"800\\\\d{5}\", [8]], [\"900\\\\d{5}\", [8]]]],\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-68]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"7\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"78[0-7]\\\\d{4}|17\\\\d{6}|(?:[12][2-68]|3[2358]|4[2-58]|5[2-6]|6[3-58]|7[24-6])\\\\d{5}\", [7, 8]], [\"7[0137]\\\\d{7}\", [9]]]],\n \"YT\": [\"262\", \"00\", \"80\\\\d{7}|(?:26|63)9\\\\d{6}\", [9], 0, \"0\", 0, 0, 0, 0, \"269|63\", [[\"269(?:0[67]|5[0-2]|6\\\\d|[78]0)\\\\d{4}\"], [\"639(?:0[0-79]|1[019]|[267]\\\\d|3[09]|[45]0|9[04-79])\\\\d{4}\"], [\"80\\\\d{7}\"]]],\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\", 0, 0, 0, 0, 0, [[\"(?:2(?:0330|4302)|52087)0\\\\d{3}|(?:1[0-8]|2[1-378]|3[1-69]|4\\\\d|5[1346-8])\\\\d{7}\", [9]], [\"(?:1(?:3492[0-25]|4495[0235]|549(?:20|5[01]))|4[34]492[01])\\\\d{3}|8[1-4]\\\\d{3,7}|(?:2[27]|47|54)4950\\\\d{3}|(?:1(?:049[2-4]|9[12]\\\\d\\\\d)|(?:6\\\\d|7[0-46-9])\\\\d{3}|8(?:5\\\\d{3}|7(?:08[67]|158|28[5-9]|310)))\\\\d{4}|(?:1[6-8]|28|3[2-69]|4[025689]|5[36-8])4920\\\\d{3}|(?:12|[2-5]1)492\\\\d{4}\", [5, 6, 7, 8, 9]], [\"80\\\\d{7}\", [9]], [\"(?:86[2-9]|9[0-2]\\\\d)\\\\d{6}\", [9]], 0, 0, [\"861\\\\d{6,7}\", [9, 10]], 0, [\"87(?:08[0-589]|15[0-79]|28[0-4]|31[1-9])\\\\d{4}|87(?:[02][0-79]|1[0-46-9]|3[02-9]|[4-9]\\\\d)\\\\d{5}\", [9]], [\"860\\\\d{6}\", [9]]]],\n \"ZM\": [\"260\", \"00\", \"(?:63|80)0\\\\d{6}|(?:21|[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\", 0, 0, 0, 0, 0, [[\"21[1-8]\\\\d{6}\"], [\"(?:7[679]|9[5-8])\\\\d{7}\"], [\"800\\\\d{6}\"], 0, 0, 0, 0, 0, [\"630\\\\d{6}\"]]],\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\", 0, 0, 0, 0, 0, [[\"(?:1(?:(?:3\\\\d|9)\\\\d|[4-8])|2(?:(?:(?:0(?:2[014]|5)|(?:2[0157]|31|84|9)\\\\d\\\\d|[56](?:[14]\\\\d\\\\d|20)|7(?:[089]|2[03]|[35]\\\\d\\\\d))\\\\d|4(?:2\\\\d\\\\d|8))\\\\d|1(?:2|[39]\\\\d{4}))|3(?:(?:123|(?:29\\\\d|92)\\\\d)\\\\d\\\\d|7(?:[19]|[56]\\\\d))|5(?:0|1[2-478]|26|[37]2|4(?:2\\\\d{3}|83)|5(?:25\\\\d\\\\d|[78])|[689]\\\\d)|6(?:(?:[16-8]21|28|52[013])\\\\d\\\\d|[39])|8(?:[1349]28|523)\\\\d\\\\d)\\\\d{3}|(?:4\\\\d\\\\d|9[2-9])\\\\d{4,5}|(?:(?:2(?:(?:(?:0|8[146])\\\\d|7[1-7])\\\\d|2(?:[278]\\\\d|92)|58(?:2\\\\d|3))|3(?:[26]|9\\\\d{3})|5(?:4\\\\d|5)\\\\d\\\\d)\\\\d|6(?:(?:(?:[0-246]|[78]\\\\d)\\\\d|37)\\\\d|5[2-8]))\\\\d\\\\d|(?:2(?:[569]\\\\d|8[2-57-9])|3(?:[013-59]\\\\d|8[37])|6[89]8)\\\\d{3}\"], [\"7(?:[17]\\\\d|[38][1-9])\\\\d{6}\", [9]], [\"80(?:[01]\\\\d|20|8[0-8])\\\\d{3}\", [7]], 0, 0, 0, 0, 0, [\"86(?:1[12]|22|30|44|55|77|8[368])\\\\d{6}\", [10]]]]\n },\n \"nonGeographic\": {\n \"800\": [\"800\", 0, \"[1-9]\\\\d{7}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[1-9]\"]]], 0, 0, 0, 0, 0, 0, [0, 0, [\"[1-9]\\\\d{7}\"]]],\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, \"[0-36-9]\\\\d{8}\", [9], [[\"(\\\\d)(\\\\d{3})(\\\\d{5})\", \"$1 $2 $3\", [\"[0-36-9]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"[0-36-9]\\\\d{8}\"]]],\n \"882\": [\"882\", 0, \"[13]\\\\d{6}(?:\\\\d{2,5})?|285\\\\d{9}|[19]\\\\d{7}\", [7, 8, 9, 10, 11, 12], [[\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"16|342\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"[19]\"]], [\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\", \"$1 $2 $3\", [\"3[23]\"]], [\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"34[57]\"]], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"34\"]], [\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\", \"$1 $2 $3\", [\"[1-3]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"3(?:37\\\\d\\\\d|42)\\\\d{4}|3(?:2|47|7\\\\d{3})\\\\d{7}\", [7, 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})|(?:(?:285\\\\d\\\\d|3(?:45|[69]\\\\d{3}))\\\\d|9[89])\\\\d{6}\"]]],\n \"883\": [\"883\", 0, \"51\\\\d{7}(?:\\\\d{3})?\", [9, 12], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"510\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"510\"]], [\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"5\"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, [\"51[013]0\\\\d{8}|5100\\\\d{5}\"]]],\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 `.json.js` 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\nimport metadata from '../metadata.full.json.js';\nexport default metadata;\nexport function withMetadata(func, _arguments) {\n var args = Array.prototype.slice.call(_arguments);\n args.push(metadata);\n return func.apply(this, args);\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\n for (var i = 0; i < 3; i++) {\n var na = Number(pa[i]);\n var nb = Number(pb[i]);\n if (na > nb) return 1;\n if (nb > na) return -1;\n if (!isNaN(na) && isNaN(nb)) return 1;\n if (isNaN(na) && !isNaN(nb)) return -1;\n }\n\n if (a[1] && b[1]) {\n return a[1] > b[1] ? 1 : a[1] < b[1] ? -1 : 0;\n }\n\n return !a[1] && b[1] ? 1 : a[1] && !b[1] ? -1 : 0;\n}","function _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nimport compare from './tools/semver-compare'; // Added \"possibleLengths\" and renamed\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\n\nvar V2 = '1.0.18'; // Added \"idd_prefix\" and \"default_idd_prefix\".\n\nvar V3 = '1.2.0'; // Moved `001` country code to \"nonGeographic\" section of metadata.\n\nvar V4 = '1.7.35';\nvar DEFAULT_EXT_PREFIX = ' ext. ';\nvar CALLING_CODE_REG_EXP = /^\\d+$/;\n/**\r\n * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\r\n */\n\nvar Metadata = /*#__PURE__*/function () {\n function Metadata(metadata) {\n _classCallCheck(this, Metadata);\n\n validateMetadata(metadata);\n this.metadata = metadata;\n setVersion.call(this, metadata);\n }\n\n _createClass(Metadata, [{\n key: \"getCountries\",\n value: function getCountries() {\n return Object.keys(this.metadata.countries).filter(function (_) {\n return _ !== '001';\n });\n }\n }, {\n key: \"getCountryMetadata\",\n value: function getCountryMetadata(countryCode) {\n return this.metadata.countries[countryCode];\n }\n }, {\n key: \"nonGeographic\",\n value: function nonGeographic() {\n if (this.v1 || this.v2 || this.v3) return; // `nonGeographical` was a typo.\n // It's present in metadata generated from `1.7.35` to `1.7.37`.\n\n return this.metadata.nonGeographic || this.metadata.nonGeographical;\n }\n }, {\n key: \"hasCountry\",\n value: function hasCountry(country) {\n return this.getCountryMetadata(country) !== undefined;\n }\n }, {\n key: \"hasCallingCode\",\n value: function hasCallingCode(callingCode) {\n if (this.getCountryCodesForCallingCode(callingCode)) {\n return true;\n }\n\n if (this.nonGeographic()) {\n if (this.nonGeographic()[callingCode]) {\n return true;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return true;\n }\n }\n }\n }, {\n key: \"isNonGeographicCallingCode\",\n value: function isNonGeographicCallingCode(callingCode) {\n if (this.nonGeographic()) {\n return this.nonGeographic()[callingCode] ? true : false;\n } else {\n return this.getCountryCodesForCallingCode(callingCode) ? false : true;\n }\n } // Deprecated.\n\n }, {\n key: \"country\",\n value: function country(countryCode) {\n return this.selectNumberingPlan(countryCode);\n }\n }, {\n key: \"selectNumberingPlan\",\n value: function selectNumberingPlan(countryCode, callingCode) {\n // Supports just passing `callingCode` as the first argument.\n if (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {\n callingCode = countryCode;\n countryCode = null;\n }\n\n if (countryCode && countryCode !== '001') {\n if (!this.hasCountry(countryCode)) {\n throw new Error(\"Unknown country: \".concat(countryCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this);\n } else if (callingCode) {\n if (!this.hasCallingCode(callingCode)) {\n throw new Error(\"Unknown calling code: \".concat(callingCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this);\n } else {\n this.numberingPlan = undefined;\n }\n\n return this;\n }\n }, {\n key: \"getCountryCodesForCallingCode\",\n value: function getCountryCodesForCallingCode(callingCode) {\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes) {\n // Metadata before V4 included \"non-geographic entity\" calling codes\n // inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\n // Now the semantics of `country_calling_codes` has changed:\n // it's specifically for \"countries\" now.\n // Older versions of custom metadata will simply skip parsing\n // \"non-geographic entity\" phone numbers with new versions\n // of this library: it's not considered a bug,\n // because such numbers are extremely rare,\n // and developers extremely rarely use custom metadata.\n if (countryCodes.length === 1 && countryCodes[0].length === 3) {\n return;\n }\n\n return countryCodes;\n }\n }\n }, {\n key: \"getCountryCodeForCallingCode\",\n value: function getCountryCodeForCallingCode(callingCode) {\n var countryCodes = this.getCountryCodesForCallingCode(callingCode);\n\n if (countryCodes) {\n return countryCodes[0];\n }\n }\n }, {\n key: \"getNumberingPlanMetadata\",\n value: function getNumberingPlanMetadata(callingCode) {\n var countryCode = this.getCountryCodeForCallingCode(callingCode);\n\n if (countryCode) {\n return this.getCountryMetadata(countryCode);\n }\n\n if (this.nonGeographic()) {\n var metadata = this.nonGeographic()[callingCode];\n\n if (metadata) {\n return metadata;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return this.metadata.countries['001'];\n }\n }\n } // Deprecated.\n\n }, {\n key: \"countryCallingCode\",\n value: function countryCallingCode() {\n return this.numberingPlan.callingCode();\n } // Deprecated.\n\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n return this.numberingPlan.IDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n return this.numberingPlan.defaultIDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n return this.numberingPlan.nationalNumberPattern();\n } // Deprecated.\n\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n return this.numberingPlan.possibleLengths();\n } // Deprecated.\n\n }, {\n key: \"formats\",\n value: function formats() {\n return this.numberingPlan.formats();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n return this.numberingPlan.nationalPrefixForParsing();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.numberingPlan.nationalPrefixTransformRule();\n } // Deprecated.\n\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.numberingPlan.leadingDigits();\n } // Deprecated.\n\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n return this.numberingPlan.hasTypes();\n } // Deprecated.\n\n }, {\n key: \"type\",\n value: function type(_type) {\n return this.numberingPlan.type(_type);\n } // Deprecated.\n\n }, {\n key: \"ext\",\n value: function ext() {\n return this.numberingPlan.ext();\n }\n }, {\n key: \"countryCallingCodes\",\n value: function countryCallingCodes() {\n if (this.v1) return this.metadata.country_phone_code_to_countries;\n return this.metadata.country_calling_codes;\n } // Deprecated.\n\n }, {\n key: \"chooseCountryByCountryCallingCode\",\n value: function chooseCountryByCountryCallingCode(callingCode) {\n return this.selectNumberingPlan(callingCode);\n }\n }, {\n key: \"hasSelectedNumberingPlan\",\n value: function hasSelectedNumberingPlan() {\n return this.numberingPlan !== undefined;\n }\n }]);\n\n return Metadata;\n}();\n\nexport { Metadata as default };\n\nvar NumberingPlan = /*#__PURE__*/function () {\n function NumberingPlan(metadata, globalMetadataObject) {\n _classCallCheck(this, NumberingPlan);\n\n this.globalMetadataObject = globalMetadataObject;\n this.metadata = metadata;\n setVersion.call(this, globalMetadataObject.metadata);\n }\n\n _createClass(NumberingPlan, [{\n key: \"callingCode\",\n value: function callingCode() {\n return this.metadata[0];\n } // Formatting information for regions which share\n // a country calling code is contained by only one region\n // for performance reasons. For example, for NANPA region\n // (\"North American Numbering Plan Administration\",\n // which includes USA, Canada, Cayman Islands, Bahamas, etc)\n // it will be contained in the metadata for `US`.\n\n }, {\n key: \"getDefaultCountryMetadataForRegion\",\n value: function getDefaultCountryMetadataForRegion() {\n return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode());\n }\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[1];\n }\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[12];\n }\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n if (this.v1 || this.v2) return this.metadata[1];\n return this.metadata[2];\n }\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.v1) return;\n return this.metadata[this.v2 ? 2 : 3];\n }\n }, {\n key: \"_getFormats\",\n value: function _getFormats(metadata) {\n return metadata[this.v1 ? 2 : this.v2 ? 3 : 4];\n } // For countries of the same region (e.g. NANPA)\n // formats are all stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"formats\",\n value: function formats() {\n var _this = this;\n\n var formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || [];\n return formats.map(function (_) {\n return new Format(_, _this);\n });\n }\n }, {\n key: \"nationalPrefix\",\n value: function nationalPrefix() {\n return this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5];\n }\n }, {\n key: \"_getNationalPrefixFormattingRule\",\n value: function _getNationalPrefixFormattingRule(metadata) {\n return metadata[this.v1 ? 4 : this.v2 ? 5 : 6];\n } // For countries of the same region (e.g. NANPA)\n // national prefix formatting rule is stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"_nationalPrefixForParsing\",\n value: function _nationalPrefixForParsing() {\n return this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7];\n }\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n // If `national_prefix_for_parsing` is not set explicitly,\n // then infer it from `national_prefix` (if any)\n return this._nationalPrefixForParsing() || this.nationalPrefix();\n }\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8];\n }\n }, {\n key: \"_getNationalPrefixIsOptionalWhenFormatting\",\n value: function _getNationalPrefixIsOptionalWhenFormatting() {\n return !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9];\n } // For countries of the same region (e.g. NANPA)\n // \"national prefix is optional when formatting\" flag is\n // stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) || this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10];\n }\n }, {\n key: \"types\",\n value: function types() {\n return this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11];\n }\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n // Versions 1.2.0 - 1.2.4: can be `[]`.\n\n /* istanbul ignore next */\n if (this.types() && this.types().length === 0) {\n return false;\n } // Versions <= 1.2.4: can be `undefined`.\n // Version >= 1.2.5: can be `0`.\n\n\n return !!this.types();\n }\n }, {\n key: \"type\",\n value: function type(_type2) {\n if (this.hasTypes() && getType(this.types(), _type2)) {\n return new Type(getType(this.types(), _type2), this);\n }\n }\n }, {\n key: \"ext\",\n value: function ext() {\n if (this.v1 || this.v2) return DEFAULT_EXT_PREFIX;\n return this.metadata[13] || DEFAULT_EXT_PREFIX;\n }\n }]);\n\n return NumberingPlan;\n}();\n\nvar Format = /*#__PURE__*/function () {\n function Format(format, metadata) {\n _classCallCheck(this, Format);\n\n this._format = format;\n this.metadata = metadata;\n }\n\n _createClass(Format, [{\n key: \"pattern\",\n value: function pattern() {\n return this._format[0];\n }\n }, {\n key: \"format\",\n value: function format() {\n return this._format[1];\n }\n }, {\n key: \"leadingDigitsPatterns\",\n value: function leadingDigitsPatterns() {\n return this._format[2] || [];\n }\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._format[3] || this.metadata.nationalPrefixFormattingRule();\n }\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n }\n }, {\n key: \"nationalPrefixIsMandatoryWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\n // National prefix is omitted if there's no national prefix formatting rule\n // set for this country, or when the national prefix formatting rule\n // contains no national prefix itself, or when this rule is set but\n // national prefix is optional for this phone number format\n // (and it is not enforced explicitly)\n return this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n } // Checks whether national prefix formatting rule contains national prefix.\n\n }, {\n key: \"usesNationalPrefix\",\n value: function usesNationalPrefix() {\n return this.nationalPrefixFormattingRule() && // Check that national prefix formatting rule is not a \"dummy\" one.\n !FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule()) // In compressed metadata, `this.nationalPrefixFormattingRule()` is `0`\n // when `national_prefix_formatting_rule` is not present.\n // So, `true` or `false` are returned explicitly here, so that\n // `0` number isn't returned.\n ? true : false;\n }\n }, {\n key: \"internationalFormat\",\n value: function internationalFormat() {\n return this._format[5] || this.format();\n }\n }]);\n\n return Format;\n}();\n/**\r\n * A pattern that is used to determine if the national prefix formatting rule\r\n * has the first group only, i.e., does not start with the national prefix.\r\n * Note that the pattern explicitly allows for unbalanced parentheses.\r\n */\n\n\nvar FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/;\n\nvar Type = /*#__PURE__*/function () {\n function Type(type, metadata) {\n _classCallCheck(this, Type);\n\n this.type = type;\n this.metadata = metadata;\n }\n\n _createClass(Type, [{\n key: \"pattern\",\n value: function pattern() {\n if (this.metadata.v1) return this.type;\n return this.type[0];\n }\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.metadata.v1) return;\n return this.type[1] || this.metadata.possibleLengths();\n }\n }]);\n\n return Type;\n}();\n\nfunction getType(types, type) {\n switch (type) {\n case 'FIXED_LINE':\n return types[0];\n\n case 'MOBILE':\n return types[1];\n\n case 'TOLL_FREE':\n return types[2];\n\n case 'PREMIUM_RATE':\n return types[3];\n\n case 'PERSONAL_NUMBER':\n return types[4];\n\n case 'VOICEMAIL':\n return types[5];\n\n case 'UAN':\n return types[6];\n\n case 'PAGER':\n return types[7];\n\n case 'VOIP':\n return types[8];\n\n case 'SHARED_COST':\n return types[9];\n }\n}\n\nexport function validateMetadata(metadata) {\n if (!metadata) {\n throw new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.');\n } // `country_phone_code_to_countries` was renamed to\n // `country_calling_codes` in `1.0.18`.\n\n\n if (!is_object(metadata) || !is_object(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(is_object(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + type_of(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 is_object = function is_object(_) {\n return _typeof(_) === 'object';\n}; // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\n\nvar type_of = function type_of(_) {\n return _typeof(_);\n};\n/**\r\n * Returns extension prefix for a country.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string?}\r\n * @example\r\n * // Returns \" ext. \"\r\n * getExtPrefix(\"US\")\r\n */\n\n\nexport function getExtPrefix(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).ext();\n }\n\n return DEFAULT_EXT_PREFIX;\n}\n/**\r\n * Returns \"country calling code\" for a country.\r\n * Throws an error if the country doesn't exist or isn't supported by this library.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string}\r\n * @example\r\n * // Returns \"44\"\r\n * getCountryCallingCode(\"GB\")\r\n */\n\nexport function getCountryCallingCode(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).countryCallingCode();\n }\n\n throw new Error(\"Unknown country: \".concat(country));\n}\nexport function isSupportedCountry(country, metadata) {\n // metadata = new Metadata(metadata)\n // return metadata.hasCountry(country)\n return metadata.countries[country] !== undefined;\n}\n\nfunction setVersion(metadata) {\n var version = metadata.version;\n\n if (typeof version === 'number') {\n this.v1 = version === 1;\n this.v2 = version === 2;\n this.v3 = version === 3;\n this.v4 = version === 4;\n } else {\n if (!version) {\n this.v1 = true;\n } else if (compare(version, V3) === -1) {\n this.v2 = true;\n } else if (compare(version, V4) === -1) {\n this.v3 = true;\n } else {\n this.v4 = true;\n }\n }\n} // const ISO_COUNTRY_CODE = /^[A-Z]{2}$/\n// function isCountryCode(countryCode) {\n// \treturn ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode)\n// }","import mergeArrays from './mergeArrays';\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\n if (type === 'FIXED_LINE_OR_MOBILE') {\n // No such country in metadata.\n\n /* istanbul ignore next */\n if (!metadata.type('FIXED_LINE')) {\n // The rare case has been encountered where no fixedLine data is available\n // (true for some non-geographic entities), so we just check mobile.\n return checkNumberLengthForType(nationalNumber, 'MOBILE', metadata);\n }\n\n var mobile_type = metadata.type('MOBILE');\n\n if (mobile_type) {\n // Merge the mobile data in if there was any. \"Concat\" creates a new\n // array, it doesn't edit possible_lengths in place, so we don't need a copy.\n // Note that when adding the possible lengths from mobile, we have\n // to again check they aren't empty since if they are this indicates\n // they are the same as the general desc and should be obtained from there.\n possible_lengths = mergeArrays(possible_lengths, mobile_type.possibleLengths()); // The current list is sorted; we need to merge in the new list and\n // re-sort (duplicates are okay). Sorting isn't so expensive because\n // the lists are very small.\n // if (local_lengths) {\n // \tlocal_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal())\n // } else {\n // \tlocal_lengths = mobile_type.possibleLengthsLocal()\n // }\n }\n } // If the type doesn't exist then return 'INVALID_LENGTH'.\n else if (type && !type_info) {\n return 'INVALID_LENGTH';\n }\n\n var actual_length = nationalNumber.length; // In `libphonenumber-js` all \"local-only\" formats are dropped for simplicity.\n // // This is safe because there is never an overlap beween the possible lengths\n // // and the local-only lengths; this is checked at build time.\n // if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0)\n // {\n // \treturn 'IS_POSSIBLE_LOCAL_ONLY'\n // }\n\n var minimum_length = possible_lengths[0];\n\n if (minimum_length === actual_length) {\n return 'IS_POSSIBLE';\n }\n\n if (minimum_length > actual_length) {\n return 'TOO_SHORT';\n }\n\n if (possible_lengths[possible_lengths.length - 1] < actual_length) {\n return 'TOO_LONG';\n } // We skip the first element since we've already checked it.\n\n\n return possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH';\n}","/**\r\n * Merges two arrays.\r\n * @param {*} a\r\n * @param {*} b\r\n * @return {*}\r\n */\nexport default function mergeArrays(a, b) {\n var merged = a.slice();\n\n for (var _iterator = b, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var element = _ref;\n\n if (a.indexOf(element) < 0) {\n merged.push(element);\n }\n }\n\n return merged.sort(function (a, b) {\n return a - b;\n }); // ES6 version, requires Set polyfill.\n // let merged = new Set(a)\n // for (const element of b) {\n // \tmerged.add(i)\n // }\n // return Array.from(merged).sort((a, b) => a - b)\n}","import Metadata from './metadata';\nimport checkNumberLength from './helpers/checkNumberLength';\nexport default function isPossiblePhoneNumber(input, options, metadata) {\n /* istanbul ignore if */\n if (options === undefined) {\n options = {};\n }\n\n metadata = new Metadata(metadata);\n\n if (options.v2) {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else {\n if (!input.phone) {\n return false;\n }\n\n if (input.country) {\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n }\n }\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}","/**\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}","import Metadata from '../metadata';\nimport matchesEntirely from './matchesEntirely';\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()` returned `{}`\n // meaning that the phone number is not a valid one.\n\n if (!input.country) {\n return;\n }\n\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(input.country, input.countryCallingCode);\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // The following is copy-pasted from the original function:\n // https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\n // Is this national number even valid for this country\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {\n return;\n } // Is it fixed line number\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) {\n // Because duplicate regular expressions are removed\n // to reduce metadata size, if \"mobile\" pattern is \"\"\n // then it means it was removed due to being a duplicate of the fixed-line pattern.\n //\n if (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\n return 'FIXED_LINE_OR_MOBILE';\n } // v1 metadata.\n // Legacy.\n // Deprecated.\n\n\n if (!metadata.type('MOBILE')) {\n return 'FIXED_LINE_OR_MOBILE';\n } // Check if the number happens to qualify as both fixed line and mobile.\n // (no such country in the minimal metadata set)\n\n /* istanbul ignore if */\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\n return 'FIXED_LINE_OR_MOBILE';\n }\n\n return 'FIXED_LINE';\n }\n\n for (var _i = 0, _NON_FIXED_LINE_PHONE = NON_FIXED_LINE_PHONE_TYPES; _i < _NON_FIXED_LINE_PHONE.length; _i++) {\n var type = _NON_FIXED_LINE_PHONE[_i];\n\n if (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\n return type;\n }\n }\n}\nexport function isNumberTypeEqualTo(nationalNumber, type, metadata) {\n type = metadata.type(type);\n\n if (!type || !type.pattern()) {\n return false;\n } // Check if any possible number lengths are present;\n // if so, we use them to avoid checking\n // the validation pattern if they don't match.\n // If they are absent, this means they match\n // the general description, which we have\n // already checked before a specific number type.\n\n\n if (type.possibleLengths() && type.possibleLengths().indexOf(nationalNumber.length) < 0) {\n return false;\n }\n\n return matchesEntirely(nationalNumber, type.pattern());\n}","// 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 + ']+')","import { VALID_PUNCTUATION } from '../constants'; // 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}","import applyInternationalSeparatorStyle from './applyInternationalSeparatorStyle'; // This was originally set to $1 but there are some countries for which the\n// first group is not used in the national pattern (e.g. Argentina) so the $1\n// group does not match correctly. Therefore, we use `\\d`, so that the first\n// group actually used in the pattern will be matched.\n\nexport var FIRST_GROUP_PATTERN = /(\\$\\d)/;\nexport default function formatNationalNumberUsingFormat(number, format, _ref) {\n var useInternationalFormat = _ref.useInternationalFormat,\n withNationalPrefix = _ref.withNationalPrefix,\n carrierCode = _ref.carrierCode,\n metadata = _ref.metadata;\n var formattedNumber = number.replace(new RegExp(format.pattern()), useInternationalFormat ? format.internationalFormat() : // This library doesn't use `domestic_carrier_code_formatting_rule`,\n // because that one is only used when formatting phone numbers\n // for dialing from a mobile phone, and this is not a dialing library.\n // carrierCode && format.domesticCarrierCodeFormattingRule()\n // \t// First, replace the $CC in the formatting rule with the desired carrier code.\n // \t// Then, replace the $FG in the formatting rule with the first group\n // \t// and the carrier code combined in the appropriate way.\n // \t? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode))\n // \t: (\n // \t\twithNationalPrefix && format.nationalPrefixFormattingRule()\n // \t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\n // \t\t\t: format.format()\n // \t)\n withNationalPrefix && format.nationalPrefixFormattingRule() ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) : format.format());\n\n if (useInternationalFormat) {\n return applyInternationalSeparatorStyle(formattedNumber);\n }\n\n return formattedNumber;\n}","import Metadata from '../metadata';\n/**\r\n * Pattern that makes it easy to distinguish whether a region has a single\r\n * international dialing prefix or not. If a region has a single international\r\n * prefix (e.g. 011 in USA), it will be represented as a string that contains\r\n * a sequence of ASCII digits, and possibly a tilde, which signals waiting for\r\n * the tone. If there are multiple available international prefixes in a\r\n * region, they will be represented as a regex string that always contains one\r\n * or more characters that are not ASCII digits or a tilde.\r\n */\n\nvar SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/; // For regions that have multiple IDD prefixes\n// a preferred IDD prefix is returned.\n\nexport default function getIddPrefix(country, callingCode, metadata) {\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n\n if (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\n return countryMetadata.IDDPrefix();\n }\n\n return countryMetadata.defaultIDDPrefix();\n}","import { VALID_DIGITS } from '../../constants'; // The RFC 3966 format for extensions.\n\nvar RFC3966_EXTN_PREFIX = ';ext=';\n/**\r\n * Helper method for constructing regular expressions for parsing. Creates\r\n * an expression that captures up to max_length digits.\r\n * @return {string} RegEx pattern to capture extension digits.\r\n */\n\nvar getExtensionDigitsPattern = function getExtensionDigitsPattern(maxLength) {\n return \"([\".concat(VALID_DIGITS, \"]{1,\").concat(maxLength, \"})\");\n};\n/**\r\n * Helper initialiser method to create the regular-expression pattern to match\r\n * extensions.\r\n * Copy-pasted from Google's `libphonenumber`:\r\n * https://github.com/google/libphonenumber/blob/55b2646ec9393f4d3d6661b9c82ef9e258e8b829/javascript/i18n/phonenumbers/phonenumberutil.js#L759-L766\r\n * @return {string} RegEx pattern to capture extensions.\r\n */\n\n\nexport default function createExtensionPattern(purpose) {\n // We cap the maximum length of an extension based on the ambiguity of the way\n // the extension is prefixed. As per ITU, the officially allowed length for\n // extensions is actually 40, but we don't support this since we haven't seen real\n // examples and this introduces many false interpretations as the extension labels\n // are not standardized.\n\n /** @type {string} */\n var extLimitAfterExplicitLabel = '20';\n /** @type {string} */\n\n var extLimitAfterLikelyLabel = '15';\n /** @type {string} */\n\n var extLimitAfterAmbiguousChar = '9';\n /** @type {string} */\n\n var extLimitWhenNotSure = '6';\n /** @type {string} */\n\n var possibleSeparatorsBetweenNumberAndExtLabel = \"[ \\xA0\\\\t,]*\"; // Optional full stop (.) or colon, followed by zero or more spaces/tabs/commas.\n\n /** @type {string} */\n\n var possibleCharsAfterExtLabel = \"[:\\\\.\\uFF0E]?[ \\xA0\\\\t,-]*\";\n /** @type {string} */\n\n var optionalExtnSuffix = \"#?\"; // Here the extension is called out in more explicit way, i.e mentioning it obvious\n // patterns like \"ext.\".\n\n /** @type {string} */\n\n var explicitExtLabels = \"(?:e?xt(?:ensi(?:o\\u0301?|\\xF3))?n?|\\uFF45?\\uFF58\\uFF54\\uFF4E?|\\u0434\\u043E\\u0431|anexo)\"; // One-character symbols that can be used to indicate an extension, and less\n // commonly used or more ambiguous extension labels.\n\n /** @type {string} */\n\n var ambiguousExtLabels = \"(?:[x\\uFF58#\\uFF03~\\uFF5E]|int|\\uFF49\\uFF4E\\uFF54)\"; // When extension is not separated clearly.\n\n /** @type {string} */\n\n var ambiguousSeparator = \"[- ]+\"; // This is the same as possibleSeparatorsBetweenNumberAndExtLabel, but not matching\n // comma as extension label may have it.\n\n /** @type {string} */\n\n var possibleSeparatorsNumberExtLabelNoComma = \"[ \\xA0\\\\t]*\"; // \",,\" is commonly used for auto dialling the extension when connected. First\n // comma is matched through possibleSeparatorsBetweenNumberAndExtLabel, so we do\n // not repeat it here. Semi-colon works in Iphone and Android also to pop up a\n // button with the extension number following.\n\n /** @type {string} */\n\n var autoDiallingAndExtLabelsFound = \"(?:,{2}|;)\";\n /** @type {string} */\n\n var rfcExtn = RFC3966_EXTN_PREFIX + getExtensionDigitsPattern(extLimitAfterExplicitLabel);\n /** @type {string} */\n\n var explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterExplicitLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix;\n /** @type {string} */\n\n var americanStyleExtnWithSuffix = ambiguousSeparator + getExtensionDigitsPattern(extLimitWhenNotSure) + \"#\";\n /** @type {string} */\n\n var autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterLikelyLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma + \"(?:,)+\" + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix; // The first regular expression covers RFC 3966 format, where the extension is added\n // using \";ext=\". The second more generic where extension is mentioned with explicit\n // labels like \"ext:\". In both the above cases we allow more numbers in extension than\n // any other extension labels. The third one captures when single character extension\n // labels or less commonly used labels are used. In such cases we capture fewer\n // extension digits in order to reduce the chance of falsely interpreting two\n // numbers beside each other as a number + extension. The fourth one covers the\n // special case of American numbers where the extension is written with a hash\n // at the end, such as \"- 503#\". The fifth one is exclusively for extension\n // autodialling formats which are used when dialling and in this case we accept longer\n // extensions. The last one is more liberal on the number of commas that acts as\n // extension labels, so we have a strict cap on the number of digits in such extensions.\n\n return rfcExtn + \"|\" + explicitExtn + \"|\" + ambiguousExtn + \"|\" + americanStyleExtnWithSuffix + \"|\" + autoDiallingExtn + \"|\" + onlyCommasExtn;\n}","import { MIN_LENGTH_FOR_NSN, VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from '../constants';\nimport createExtensionPattern from './extension/createExtensionPattern'; // 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 + ']*';\nexport var VALID_PHONE_NUMBER_WITH_EXTENSION = VALID_PHONE_NUMBER + // Phone number extensions\n'(?:' + createExtensionPattern() + ')?'; // The combined regular expression for valid phone numbers:\n//\n\nvar VALID_PHONE_NUMBER_PATTERN = new RegExp( // Either a short two-digit-only phone number\n'^' + MIN_LENGTH_PHONE_NUMBER_PATTERN + '$' + '|' + // Or a longer fully parsed phone number (min 3 characters)\n'^' + VALID_PHONE_NUMBER_WITH_EXTENSION + '$', 'i'); // Checks to see if the string of characters could possibly be a phone number at\n// all. At the moment, checks to see that the string begins with at least 2\n// digits, ignoring any punctuation commonly found in phone numbers. This method\n// does not require the number to be normalized in advance - but does assume\n// that leading non-number symbols have been removed, such as by the method\n// `extract_possible_number`.\n//\n\nexport default function isViablePhoneNumber(number) {\n return number.length >= MIN_LENGTH_FOR_NSN && VALID_PHONE_NUMBER_PATTERN.test(number);\n}","function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n} // 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\n\n\nimport matchesEntirely from './helpers/matchesEntirely';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat';\nimport Metadata, { getCountryCallingCode } from './metadata';\nimport getIddPrefix from './helpers/getIddPrefix';\nimport { formatRFC3966 } from './helpers/RFC3966';\nvar DEFAULT_OPTIONS = {\n formatExtension: function formatExtension(formattedNumber, extension, metadata) {\n return \"\".concat(formattedNumber).concat(metadata.ext()).concat(extension);\n } // Formats a phone number\n //\n // Example use cases:\n //\n // ```js\n // formatNumber('8005553535', 'RU', 'INTERNATIONAL')\n // formatNumber('8005553535', 'RU', 'INTERNATIONAL', metadata)\n // formatNumber({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL')\n // formatNumber({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', metadata)\n // formatNumber('+78005553535', 'NATIONAL')\n // formatNumber('+78005553535', 'NATIONAL', metadata)\n // ```\n //\n\n};\nexport default function formatNumber(input, format, options, metadata) {\n // Apply default options.\n if (options) {\n options = _objectSpread({}, DEFAULT_OPTIONS, options);\n } else {\n options = DEFAULT_OPTIONS;\n }\n\n metadata = new Metadata(metadata);\n\n if (input.country && input.country !== '001') {\n // Validate `input.country`.\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else if (input.countryCallingCode) {\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else return input.phone || '';\n\n var countryCallingCode = metadata.countryCallingCode();\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // This variable should have been declared inside `case`s\n // but Babel has a bug and it says \"duplicate variable declaration\".\n\n var number;\n\n switch (format) {\n case 'NATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return '';\n }\n\n number = formatNationalNumber(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'INTERNATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return \"+\".concat(countryCallingCode);\n }\n\n number = formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata, options);\n number = \"+\".concat(countryCallingCode, \" \").concat(number);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'E.164':\n // `E.164` doesn't define \"phone number extensions\".\n return \"+\".concat(countryCallingCode).concat(nationalNumber);\n\n case 'RFC3966':\n return formatRFC3966({\n number: \"+\".concat(countryCallingCode).concat(nationalNumber),\n ext: input.ext\n });\n // For reference, here's Google's IDD formatter:\n // https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546\n // Not saying that this IDD formatter replicates it 1:1, but it seems to work.\n // Who would even need to format phone numbers in IDD format anyway?\n\n case 'IDD':\n if (!options.fromCountry) {\n return; // throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\n }\n\n var formattedNumber = formatIDD(nationalNumber, input.carrierCode, countryCallingCode, options.fromCountry, metadata);\n return addExtension(formattedNumber, input.ext, metadata, options.formatExtension);\n\n default:\n throw new Error(\"Unknown \\\"format\\\" argument passed to \\\"formatNumber()\\\": \\\"\".concat(format, \"\\\"\"));\n }\n}\n\nfunction formatNationalNumber(number, carrierCode, formatAs, metadata, options) {\n var format = chooseFormatForNumber(metadata.formats(), number);\n\n if (!format) {\n return number;\n }\n\n return formatNationalNumberUsingFormat(number, format, {\n useInternationalFormat: formatAs === 'INTERNATIONAL',\n withNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && options && options.nationalPrefix === false ? false : true,\n carrierCode: carrierCode,\n metadata: metadata\n });\n}\n\nfunction chooseFormatForNumber(availableFormats, nationalNnumber) {\n for (var _iterator = availableFormats, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var format = _ref; // Validate leading digits\n\n if (format.leadingDigitsPatterns().length > 0) {\n // The last leading_digits_pattern is used here, as it is the most detailed\n var lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1]; // If leading digits don't match then move on to the next phone number format\n\n if (nationalNnumber.search(lastLeadingDigitsPattern) !== 0) {\n continue;\n }\n } // Check that the national number matches the phone number format regular expression\n\n\n if (matchesEntirely(nationalNnumber, format.pattern())) {\n return format;\n }\n }\n}\n\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\n return ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber;\n}\n\nfunction formatIDD(nationalNumber, carrierCode, countryCallingCode, fromCountry, metadata) {\n var fromCountryCallingCode = getCountryCallingCode(fromCountry, metadata.metadata); // When calling within the same country calling code.\n\n if (fromCountryCallingCode === countryCallingCode) {\n var formattedNumber = formatNationalNumber(nationalNumber, carrierCode, 'NATIONAL', metadata); // For NANPA regions, return the national format for these regions\n // but prefix it with the country calling code.\n\n if (countryCallingCode === '1') {\n return countryCallingCode + ' ' + formattedNumber;\n } // If regions share a country calling code, the country calling code need\n // not be dialled. This also applies when dialling within a region, so this\n // if clause covers both these cases. Technically this is the case for\n // dialling from La Reunion to other overseas departments of France (French\n // Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover\n // this edge case for now and for those cases return the version including\n // country calling code. Details here:\n // http://www.petitfute.com/voyage/225-info-pratiques-reunion\n //\n\n\n return formattedNumber;\n }\n\n var iddPrefix = getIddPrefix(fromCountry, undefined, metadata.metadata);\n\n if (iddPrefix) {\n return \"\".concat(iddPrefix, \" \").concat(countryCallingCode, \" \").concat(formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata));\n }\n}","function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\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\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nimport isViablePhoneNumber from './isViablePhoneNumber'; // https://www.ietf.org/rfc/rfc3966.txt\n\n/**\r\n * @param {string} text - Phone URI (RFC 3966).\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\nexport function parseRFC3966(text) {\n var number;\n var ext; // Replace \"tel:\" with \"tel=\" for parsing convenience.\n\n text = text.replace(/^tel:/, 'tel=');\n\n for (var _iterator = text.split(';'), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var part = _ref;\n\n var _part$split = part.split('='),\n _part$split2 = _slicedToArray(_part$split, 2),\n name = _part$split2[0],\n value = _part$split2[1];\n\n switch (name) {\n case 'tel':\n number = value;\n break;\n\n case 'ext':\n ext = value;\n break;\n\n case 'phone-context':\n // Only \"country contexts\" are supported.\n // \"Domain contexts\" are ignored.\n if (value[0] === '+') {\n number = value + number;\n }\n\n break;\n }\n } // If the phone number is not viable, then abort.\n\n\n if (!isViablePhoneNumber(number)) {\n return {};\n }\n\n var result = {\n number: number\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * @param {object} - `{ ?number, ?extension }`.\r\n * @return {string} Phone URI (RFC 3966).\r\n */\n\nexport function formatRFC3966(_ref2) {\n var number = _ref2.number,\n ext = _ref2.ext;\n\n if (!number) {\n return '';\n }\n\n if (number[0] !== '+') {\n throw new Error(\"\\\"formatRFC3966()\\\" expects \\\"number\\\" to be in E.164 format.\");\n }\n\n return \"tel:\".concat(number).concat(ext ? ';ext=' + ext : '');\n}","function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nimport Metadata from './metadata';\nimport isPossibleNumber from './isPossibleNumber_';\nimport isValidNumber from './validate_';\nimport isValidNumberForRegion from './isValidNumberForRegion_';\nimport getNumberType from './helpers/getNumberType';\nimport formatNumber from './format_';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar PhoneNumber = /*#__PURE__*/function () {\n function PhoneNumber(countryCallingCode, nationalNumber, metadata) {\n _classCallCheck(this, PhoneNumber);\n\n if (!countryCallingCode) {\n throw new TypeError('`country` or `countryCallingCode` not passed');\n }\n\n if (!nationalNumber) {\n throw new TypeError('`nationalNumber` not passed');\n }\n\n var _metadata = new Metadata(metadata); // If country code is passed then derive `countryCallingCode` from it.\n // Also store the country code as `.country`.\n\n\n if (isCountryCode(countryCallingCode)) {\n this.country = countryCallingCode;\n\n _metadata.country(countryCallingCode);\n\n countryCallingCode = _metadata.countryCallingCode();\n } else {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (_metadata.isNonGeographicCallingCode(countryCallingCode)) {\n this.country = '001';\n }\n }\n }\n\n this.countryCallingCode = countryCallingCode;\n this.nationalNumber = nationalNumber;\n this.number = '+' + this.countryCallingCode + this.nationalNumber;\n this.metadata = metadata;\n }\n\n _createClass(PhoneNumber, [{\n key: \"isPossible\",\n value: function isPossible() {\n return isPossibleNumber(this, {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"isValid\",\n value: function isValid() {\n return isValidNumber(this, {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"isNonGeographic\",\n value: function isNonGeographic() {\n var metadata = new Metadata(this.metadata);\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 } // // Is just an alias for `this.isValid() && this.country === country`.\n // // https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\n // isValidForRegion(country) {\n // \treturn isValidNumberForRegion(this, country, { v2: true }, this.metadata)\n // }\n\n }, {\n key: \"getType\",\n value: function getType() {\n return getNumberType(this, {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"format\",\n value: function format(_format, options) {\n return formatNumber(this, _format, options ? _objectSpread({}, options, {\n v2: true\n }) : {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"formatNational\",\n value: function formatNational(options) {\n return this.format('NATIONAL', options);\n }\n }, {\n key: \"formatInternational\",\n value: function formatInternational(options) {\n return this.format('INTERNATIONAL', options);\n }\n }, {\n key: \"getURI\",\n value: function getURI(options) {\n return this.format('RFC3966', options);\n }\n }]);\n\n return PhoneNumber;\n}();\n\nexport { PhoneNumber as default };\n\nvar isCountryCode = function isCountryCode(value) {\n return /^[A-Z]{2}$/.test(value);\n};","import Metadata from './metadata';\nimport matchesEntirely from './helpers/matchesEntirely';\nimport getNumberType from './helpers/getNumberType';\n/**\r\n * Checks if a given phone number is valid.\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); // This is just to support `isValidNumber({})`\n // for cases when `parseNumber()` returns `{}`.\n\n if (!input.country) {\n return false;\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\n var national_number = options.v2 ? input.nationalNumber : input.phone;\n return matchesEntirely(national_number, metadata.nationalNumberPattern());\n}","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar AsYouTypeState = /*#__PURE__*/function () {\n function AsYouTypeState(_ref) {\n var _this = this;\n\n var onCountryChange = _ref.onCountryChange,\n onCallingCodeChange = _ref.onCallingCodeChange;\n\n _classCallCheck(this, AsYouTypeState);\n\n _defineProperty(this, \"update\", function (properties) {\n for (var _i = 0, _Object$keys = Object.keys(properties); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n _this[key] = properties[key];\n }\n });\n\n this.onCountryChange = onCountryChange;\n this.onCallingCodeChange = onCallingCodeChange;\n }\n\n _createClass(AsYouTypeState, [{\n key: \"reset\",\n value: function reset(defaultCountry, defaultCallingCode) {\n this.international = false;\n this.IDDPrefix = undefined;\n this.missingPlus = undefined;\n this.callingCode = undefined;\n this.digits = '';\n this.resetNationalSignificantNumber();\n this.initCountryAndCallingCode(defaultCountry, defaultCallingCode);\n }\n }, {\n key: \"resetNationalSignificantNumber\",\n value: function resetNationalSignificantNumber() {\n this.nationalSignificantNumber = this.getNationalDigits();\n this.nationalSignificantNumberMatchesInput = true;\n this.nationalPrefix = undefined;\n this.carrierCode = undefined;\n this.complexPrefixBeforeNationalSignificantNumber = undefined;\n }\n }, {\n key: \"initCountryAndCallingCode\",\n value: function initCountryAndCallingCode(country, callingCode) {\n this.setCountry(country);\n this.setCallingCode(callingCode);\n }\n }, {\n key: \"setCountry\",\n value: function setCountry(country) {\n this.country = country;\n this.onCountryChange(country);\n }\n }, {\n key: \"setCallingCode\",\n value: function setCallingCode(callingCode) {\n this.callingCode = callingCode;\n return this.onCallingCodeChange(this.country, callingCode);\n }\n }, {\n key: \"startInternationalNumber\",\n value: function startInternationalNumber() {\n // Prepend the `+` to parsed input.\n this.international = true; // If a default country was set then reset it\n // because an explicitly international phone\n // number is being entered.\n\n this.initCountryAndCallingCode();\n }\n }, {\n key: \"appendDigits\",\n value: function appendDigits(nextDigits) {\n this.digits += nextDigits;\n }\n }, {\n key: \"appendNationalSignificantNumberDigits\",\n value: function appendNationalSignificantNumberDigits(nextDigits) {\n this.nationalSignificantNumber += nextDigits;\n }\n /**\r\n * Returns the part of `this.digits` that corresponds to the national number.\r\n * Basically, all digits that have been input by the user, except for the\r\n * international prefix and the country calling code part\r\n * (if the number is an international one).\r\n * @return {string}\r\n */\n\n }, {\n key: \"getNationalDigits\",\n value: function getNationalDigits() {\n if (this.international) {\n return this.digits.slice((this.IDDPrefix ? this.IDDPrefix.length : 0) + (this.callingCode ? this.callingCode.length : 0));\n }\n\n return this.digits;\n }\n }, {\n key: \"getDigitsWithoutInternationalPrefix\",\n value: function getDigitsWithoutInternationalPrefix() {\n if (this.international) {\n if (this.IDDPrefix) {\n return this.digits.slice(this.IDDPrefix.length);\n }\n }\n\n return this.digits;\n }\n }]);\n\n return AsYouTypeState;\n}();\n\nexport { AsYouTypeState as default };","// Should be the same as `DIGIT_PLACEHOLDER` in `libphonenumber-metadata-generator`.\nexport var DIGIT_PLACEHOLDER = 'x'; // '\\u2008' (punctuation space)\n\nvar DIGIT_PLACEHOLDER_MATCHER = new RegExp(DIGIT_PLACEHOLDER); // Counts all occurences of a symbol in a string.\n// Unicode-unsafe (because using `.split()`).\n\nexport function countOccurences(symbol, string) {\n var count = 0; // Using `.split('')` to iterate through a string here\n // to avoid requiring `Symbol.iterator` polyfill.\n // `.split('')` is generally not safe for Unicode,\n // but in this particular case for counting brackets it is safe.\n // for (const character of string)\n\n for (var _iterator = string.split(''), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var character = _ref;\n\n if (character === symbol) {\n count++;\n }\n }\n\n return count;\n} // Repeats a string (or a symbol) N times.\n// http://stackoverflow.com/questions/202605/repeat-string-javascript\n\nexport function repeat(string, times) {\n if (times < 1) {\n return '';\n }\n\n var result = '';\n\n while (times > 1) {\n if (times & 1) {\n result += string;\n }\n\n times >>= 1;\n string += string;\n }\n\n return result + string;\n}\nexport function cutAndStripNonPairedParens(string, cutBeforeIndex) {\n if (string[cutBeforeIndex] === ')') {\n cutBeforeIndex++;\n }\n\n return stripNonPairedParens(string.slice(0, cutBeforeIndex));\n}\nexport function closeNonPairedParens(template, cut_before) {\n var retained_template = template.slice(0, cut_before);\n var opening_braces = countOccurences('(', retained_template);\n var closing_braces = countOccurences(')', retained_template);\n var dangling_braces = opening_braces - closing_braces;\n\n while (dangling_braces > 0 && cut_before < template.length) {\n if (template[cut_before] === ')') {\n dangling_braces--;\n }\n\n cut_before++;\n }\n\n return template.slice(0, cut_before);\n}\nexport function stripNonPairedParens(string) {\n var dangling_braces = [];\n var i = 0;\n\n while (i < string.length) {\n if (string[i] === '(') {\n dangling_braces.push(i);\n } else if (string[i] === ')') {\n dangling_braces.pop();\n }\n\n i++;\n }\n\n var start = 0;\n var cleared_string = '';\n dangling_braces.push(string.length);\n\n for (var _i2 = 0, _dangling_braces = dangling_braces; _i2 < _dangling_braces.length; _i2++) {\n var index = _dangling_braces[_i2];\n cleared_string += string.slice(start, index);\n start = index + 1;\n }\n\n return cleared_string;\n}\nexport function populateTemplateWithDigits(template, position, digits) {\n // Using `.split('')` to iterate through a string here\n // to avoid requiring `Symbol.iterator` polyfill.\n // `.split('')` is generally not safe for Unicode,\n // but in this particular case for `digits` it is safe.\n // for (const digit of digits)\n for (var _iterator2 = digits.split(''), _isArray2 = Array.isArray(_iterator2), _i3 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {\n var _ref2;\n\n if (_isArray2) {\n if (_i3 >= _iterator2.length) break;\n _ref2 = _iterator2[_i3++];\n } else {\n _i3 = _iterator2.next();\n if (_i3.done) break;\n _ref2 = _i3.value;\n }\n\n var digit = _ref2; // If there is room for more digits in current `template`,\n // then set the next digit in the `template`,\n // and return the formatted digits so far.\n // If more digits are entered than the current format could handle.\n\n if (template.slice(position + 1).search(DIGIT_PLACEHOLDER_MATCHER) < 0) {\n return;\n }\n\n position = template.search(DIGIT_PLACEHOLDER_MATCHER);\n template = template.replace(DIGIT_PLACEHOLDER_MATCHER, digit);\n }\n\n return [template, position];\n}","// These mappings map a character (key) to a specific digit that should\n// replace it for normalization purposes. Non-European digits that\n// may be used in phone numbers are mapped to a European equivalent.\n//\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n//\nexport var DIGITS = {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n \"\\uFF10\": '0',\n // Fullwidth digit 0\n \"\\uFF11\": '1',\n // Fullwidth digit 1\n \"\\uFF12\": '2',\n // Fullwidth digit 2\n \"\\uFF13\": '3',\n // Fullwidth digit 3\n \"\\uFF14\": '4',\n // Fullwidth digit 4\n \"\\uFF15\": '5',\n // Fullwidth digit 5\n \"\\uFF16\": '6',\n // Fullwidth digit 6\n \"\\uFF17\": '7',\n // Fullwidth digit 7\n \"\\uFF18\": '8',\n // Fullwidth digit 8\n \"\\uFF19\": '9',\n // Fullwidth digit 9\n \"\\u0660\": '0',\n // Arabic-indic digit 0\n \"\\u0661\": '1',\n // Arabic-indic digit 1\n \"\\u0662\": '2',\n // Arabic-indic digit 2\n \"\\u0663\": '3',\n // Arabic-indic digit 3\n \"\\u0664\": '4',\n // Arabic-indic digit 4\n \"\\u0665\": '5',\n // Arabic-indic digit 5\n \"\\u0666\": '6',\n // Arabic-indic digit 6\n \"\\u0667\": '7',\n // Arabic-indic digit 7\n \"\\u0668\": '8',\n // Arabic-indic digit 8\n \"\\u0669\": '9',\n // Arabic-indic digit 9\n \"\\u06F0\": '0',\n // Eastern-Arabic digit 0\n \"\\u06F1\": '1',\n // Eastern-Arabic digit 1\n \"\\u06F2\": '2',\n // Eastern-Arabic digit 2\n \"\\u06F3\": '3',\n // Eastern-Arabic digit 3\n \"\\u06F4\": '4',\n // Eastern-Arabic digit 4\n \"\\u06F5\": '5',\n // Eastern-Arabic digit 5\n \"\\u06F6\": '6',\n // Eastern-Arabic digit 6\n \"\\u06F7\": '7',\n // Eastern-Arabic digit 7\n \"\\u06F8\": '8',\n // Eastern-Arabic digit 8\n \"\\u06F9\": '9' // Eastern-Arabic digit 9\n\n};\nexport function parseDigit(character) {\n return DIGITS[character];\n}\n/**\r\n * Parses phone number digits from a string.\r\n * Drops all punctuation leaving only digits.\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * parseDigits('8 (800) 555')\r\n * // Outputs '8800555'.\r\n * ```\r\n */\n\nexport default function parseDigits(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = string.split(''), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var character = _ref;\n var digit = parseDigit(character);\n\n if (digit) {\n result += digit;\n }\n }\n\n return result;\n}","import checkNumberLength from './helpers/checkNumberLength';\nimport parseDigits from './helpers/parseDigits';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat';\nexport default function formatCompleteNumber(state, format, _ref) {\n var metadata = _ref.metadata,\n shouldTryNationalPrefixFormattingRule = _ref.shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref.getSeparatorAfterNationalPrefix;\n var matcher = new RegExp(\"^(?:\".concat(format.pattern(), \")$\"));\n\n if (matcher.test(state.nationalSignificantNumber)) {\n return formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, {\n metadata: metadata,\n shouldTryNationalPrefixFormattingRule: shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix\n });\n }\n}\nexport function canFormatCompleteNumber(nationalSignificantNumber, metadata) {\n return checkNumberLength(nationalSignificantNumber, metadata) === 'IS_POSSIBLE';\n}\n\nfunction formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, _ref2) {\n var metadata = _ref2.metadata,\n shouldTryNationalPrefixFormattingRule = _ref2.shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref2.getSeparatorAfterNationalPrefix; // `format` has already been checked for `nationalPrefix` requirement.\n\n var nationalSignificantNumber = state.nationalSignificantNumber,\n international = state.international,\n nationalPrefix = state.nationalPrefix,\n carrierCode = state.carrierCode; // Format the number with using `national_prefix_formatting_rule`.\n // If the resulting formatted number is a valid formatted number, then return it.\n //\n // Google's AsYouType formatter is different in a way that it doesn't try\n // to format using the \"national prefix formatting rule\", and instead it\n // simply prepends a national prefix followed by a \" \" character.\n // This code does that too, but as a fallback.\n // The reason is that \"national prefix formatting rule\" may use parentheses,\n // which wouldn't be included has it used the simpler Google's way.\n //\n\n if (shouldTryNationalPrefixFormattingRule(format)) {\n var formattedNumber = formatNationalNumber(state, format, {\n useNationalPrefixFormattingRule: true,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix,\n metadata: metadata\n });\n\n if (formattedNumber) {\n return formattedNumber;\n }\n } // Format the number without using `national_prefix_formatting_rule`.\n\n\n return formatNationalNumber(state, format, {\n useNationalPrefixFormattingRule: false,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix,\n metadata: metadata\n });\n}\n\nfunction formatNationalNumber(state, format, _ref3) {\n var metadata = _ref3.metadata,\n useNationalPrefixFormattingRule = _ref3.useNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref3.getSeparatorAfterNationalPrefix;\n var formattedNationalNumber = formatNationalNumberUsingFormat(state.nationalSignificantNumber, format, {\n carrierCode: state.carrierCode,\n useInternationalFormat: state.international,\n withNationalPrefix: useNationalPrefixFormattingRule,\n metadata: metadata\n });\n\n if (!useNationalPrefixFormattingRule) {\n if (state.nationalPrefix) {\n // If a national prefix was extracted, then just prepend it,\n // followed by a \" \" character.\n formattedNationalNumber = state.nationalPrefix + getSeparatorAfterNationalPrefix(format) + formattedNationalNumber;\n } else if (state.complexPrefixBeforeNationalSignificantNumber) {\n formattedNationalNumber = state.complexPrefixBeforeNationalSignificantNumber + ' ' + formattedNationalNumber;\n }\n }\n\n if (isValidFormattedNationalNumber(formattedNationalNumber, state)) {\n return formattedNationalNumber;\n }\n} // Check that the formatted phone number contains exactly\n// the same digits that have been input by the user.\n// For example, when \"0111523456789\" is input for `AR` country,\n// the extracted `this.nationalSignificantNumber` is \"91123456789\",\n// which means that the national part of `this.digits` isn't simply equal to\n// `this.nationalPrefix` + `this.nationalSignificantNumber`.\n//\n// Also, a `format` can add extra digits to the `this.nationalSignificantNumber`\n// being formatted via `metadata[country].national_prefix_transform_rule`.\n// For example, for `VI` country, it prepends `340` to the national number,\n// and if this check hasn't been implemented, then there would be a bug\n// when `340` \"area coude\" is \"duplicated\" during input for `VI` country:\n// https://github.com/catamphetamine/libphonenumber-js/issues/318\n//\n// So, all these \"gotchas\" are filtered out.\n//\n// In the original Google's code, the comments say:\n// \"Check that we didn't remove nor add any extra digits when we matched\n// this formatting pattern. This usually happens after we entered the last\n// digit during AYTF. Eg: In case of MX, we swallow mobile token (1) when\n// formatted but AYTF should retain all the number entered and not change\n// in order to match a format (of same leading digits and length) display\n// in that way.\"\n// \"If it's the same (i.e entered number and format is same), then it's\n// safe to return this in formatted number as nothing is lost / added.\"\n// Otherwise, don't use this format.\n// https://github.com/google/libphonenumber/commit/3e7c1f04f5e7200f87fb131e6f85c6e99d60f510#diff-9149457fa9f5d608a11bb975c6ef4bc5\n// https://github.com/google/libphonenumber/commit/3ac88c7106e7dcb553bcc794b15f19185928a1c6#diff-2dcb77e833422ee304da348b905cde0b\n//\n\n\nfunction isValidFormattedNationalNumber(formattedNationalNumber, state) {\n return parseDigits(formattedNationalNumber) === state.getNationalDigits();\n}","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport { DIGIT_PLACEHOLDER, countOccurences, repeat, cutAndStripNonPairedParens, closeNonPairedParens, stripNonPairedParens, populateTemplateWithDigits } from './AsYouTypeFormatter.util';\nimport formatCompleteNumber, { canFormatCompleteNumber } from './AsYouTypeFormatter.complete';\nimport parseDigits from './helpers/parseDigits';\nexport { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.util';\nimport { FIRST_GROUP_PATTERN } from './helpers/formatNationalNumberUsingFormat';\nimport { VALID_PUNCTUATION } from './constants';\nimport applyInternationalSeparatorStyle from './helpers/applyInternationalSeparatorStyle'; // Used in phone number format template creation.\n// Could be any digit, I guess.\n\nvar DUMMY_DIGIT = '9'; // I don't know why is it exactly `15`\n\nvar LONGEST_NATIONAL_PHONE_NUMBER_LENGTH = 15; // Create a phone number consisting only of the digit 9 that matches the\n// `number_pattern` by applying the pattern to the \"longest phone number\" string.\n\nvar LONGEST_DUMMY_PHONE_NUMBER = repeat(DUMMY_DIGIT, LONGEST_NATIONAL_PHONE_NUMBER_LENGTH); // A set of characters that, if found in a national prefix formatting rules, are an indicator to\n// us that we should separate the national prefix from the number when formatting.\n\nvar NATIONAL_PREFIX_SEPARATORS_PATTERN = /[- ]/; // Deprecated: Google has removed some formatting pattern related code from their repo.\n// https://github.com/googlei18n/libphonenumber/commit/a395b4fef3caf57c4bc5f082e1152a4d2bd0ba4c\n// \"We no longer have numbers in formatting matching patterns, only \\d.\"\n// Because this library supports generating custom metadata\n// some users may still be using old metadata so the relevant\n// code seems to stay until some next major version update.\n\nvar SUPPORT_LEGACY_FORMATTING_PATTERNS = true; // A pattern that is used to match character classes in regular expressions.\n// An example of a character class is \"[1-4]\".\n\nvar CREATE_CHARACTER_CLASS_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function () {\n return /\\[([^\\[\\]])*\\]/g;\n}; // Any digit in a regular expression that actually denotes a digit. For\n// example, in the regular expression \"80[0-2]\\d{6,10}\", the first 2 digits\n// (8 and 0) are standalone digits, but the rest are not.\n// Two look-aheads are needed because the number following \\\\d could be a\n// two-digit number, since the phone number can be as long as 15 digits.\n\n\nvar CREATE_STANDALONE_DIGIT_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function () {\n return /\\d(?=[^,}][^,}])/g;\n}; // A regular expression that is used to determine if a `format` is\n// suitable to be used in the \"as you type formatter\".\n// A `format` is suitable when the resulting formatted number has\n// the same digits as the user has entered.\n//\n// In the simplest case, that would mean that the format\n// doesn't add any additional digits when formatting a number.\n// Google says that it also shouldn't add \"star\" (`*`) characters,\n// like it does in some Israeli formats.\n// Such basic format would only contain \"valid punctuation\"\n// and \"captured group\" identifiers ($1, $2, etc).\n//\n// An example of a format that adds additional digits:\n//\n// Country: `AR` (Argentina).\n// Format:\n// {\n// \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n// \"leading_digits_patterns\": [\"91\"],\n// \"national_prefix_formatting_rule\": \"0$1\",\n// \"format\": \"$2 15-$3-$4\",\n// \"international_format\": \"$1 $2 $3-$4\"\n// }\n//\n// In the format above, the `format` adds `15` to the digits when formatting a number.\n// A sidenote: this format actually is suitable because `national_prefix_for_parsing`\n// has previously removed `15` from a national number, so re-adding `15` in `format`\n// doesn't actually result in any extra digits added to user's input.\n// But verifying that would be a complex procedure, so the code chooses a simpler path:\n// it simply filters out all `format`s that contain anything but \"captured group\" ids.\n//\n// This regular expression is called `ELIGIBLE_FORMAT_PATTERN` in Google's\n// `libphonenumber` code.\n//\n\n\nvar NON_ALTERING_FORMAT_REG_EXP = new RegExp('^' + '[' + VALID_PUNCTUATION + ']*' + '(\\\\$\\\\d[' + VALID_PUNCTUATION + ']*)+' + '$'); // This is the minimum length of the leading digits of a phone number\n// to guarantee the first \"leading digits pattern\" for a phone number format\n// to be preemptive.\n\nvar MIN_LEADING_DIGITS_LENGTH = 3;\n\nvar AsYouTypeFormatter = /*#__PURE__*/function () {\n function AsYouTypeFormatter(_ref) {\n var _this = this;\n\n var state = _ref.state,\n metadata = _ref.metadata;\n\n _classCallCheck(this, AsYouTypeFormatter);\n\n _defineProperty(this, \"getSeparatorAfterNationalPrefix\", function (format) {\n // `US` metadata doesn't have a `national_prefix_formatting_rule`,\n // so the `if` condition below doesn't apply to `US`,\n // but in reality there shoudl be a separator\n // between a national prefix and a national (significant) number.\n // So `US` national prefix separator is a \"special\" \"hardcoded\" case.\n if (_this.isNANP) {\n return ' ';\n } // If a `format` has a `national_prefix_formatting_rule`\n // and that rule has a separator after a national prefix,\n // then it means that there should be a separator\n // between a national prefix and a national (significant) number.\n\n\n if (format && format.nationalPrefixFormattingRule() && NATIONAL_PREFIX_SEPARATORS_PATTERN.test(format.nationalPrefixFormattingRule())) {\n return ' ';\n } // At this point, there seems to be no clear evidence that\n // there should be a separator between a national prefix\n // and a national (significant) number. So don't insert one.\n\n\n return '';\n });\n\n _defineProperty(this, \"shouldTryNationalPrefixFormattingRule\", function (format, _ref2) {\n var international = _ref2.international,\n nationalPrefix = _ref2.nationalPrefix;\n\n if (format.nationalPrefixFormattingRule()) {\n // In some countries, `national_prefix_formatting_rule` is `($1)`,\n // so it applies even if the user hasn't input a national prefix.\n // `format.usesNationalPrefix()` detects such cases.\n var usesNationalPrefix = format.usesNationalPrefix();\n\n if (usesNationalPrefix && nationalPrefix || !usesNationalPrefix && !international) {\n return true;\n }\n }\n });\n\n this.metadata = metadata;\n this.resetFormat();\n }\n\n _createClass(AsYouTypeFormatter, [{\n key: \"resetFormat\",\n value: function resetFormat() {\n this.chosenFormat = undefined;\n this.template = undefined;\n this.nationalNumberTemplate = undefined;\n this.populatedNationalNumberTemplate = undefined;\n this.populatedNationalNumberTemplatePosition = -1;\n }\n }, {\n key: \"reset\",\n value: function reset(numberingPlan, state) {\n this.resetFormat();\n\n if (numberingPlan) {\n this.isNANP = numberingPlan.callingCode() === '1';\n this.matchingFormats = numberingPlan.formats();\n\n if (state.nationalSignificantNumber) {\n this.narrowDownMatchingFormats(state);\n }\n } else {\n this.isNANP = undefined;\n this.matchingFormats = [];\n }\n }\n }, {\n key: \"format\",\n value: function format(nextDigits, state) {\n var _this2 = this; // See if the phone number digits can be formatted as a complete phone number.\n // If not, use the results from `formatNationalNumberWithNextDigits()`,\n // which formats based on the chosen formatting pattern.\n //\n // Attempting to format complete phone number first is how it's done\n // in Google's `libphonenumber`, so this library just follows it.\n // Google's `libphonenumber` code doesn't explain in detail why does it\n // attempt to format digits as a complete phone number\n // instead of just going with a previoulsy (or newly) chosen `format`:\n //\n // \"Checks to see if there is an exact pattern match for these digits.\n // If so, we should use this instead of any other formatting template\n // whose leadingDigitsPattern also matches the input.\"\n //\n\n\n if (canFormatCompleteNumber(state.nationalSignificantNumber, this.metadata)) {\n for (var _iterator = this.matchingFormats, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref3;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref3 = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref3 = _i.value;\n }\n\n var format = _ref3;\n var formattedCompleteNumber = formatCompleteNumber(state, format, {\n metadata: this.metadata,\n shouldTryNationalPrefixFormattingRule: function shouldTryNationalPrefixFormattingRule(format) {\n return _this2.shouldTryNationalPrefixFormattingRule(format, {\n international: state.international,\n nationalPrefix: state.nationalPrefix\n });\n },\n getSeparatorAfterNationalPrefix: this.getSeparatorAfterNationalPrefix\n });\n\n if (formattedCompleteNumber) {\n this.resetFormat();\n this.chosenFormat = format;\n this.setNationalNumberTemplate(formattedCompleteNumber.replace(/\\d/g, DIGIT_PLACEHOLDER), state);\n this.populatedNationalNumberTemplate = formattedCompleteNumber; // With a new formatting template, the matched position\n // using the old template needs to be reset.\n\n this.populatedNationalNumberTemplatePosition = this.template.lastIndexOf(DIGIT_PLACEHOLDER);\n return formattedCompleteNumber;\n }\n }\n } // Format the digits as a partial (incomplete) phone number\n // using the previously chosen formatting pattern (or a newly chosen one).\n\n\n return this.formatNationalNumberWithNextDigits(nextDigits, state);\n } // Formats the next phone number digits.\n\n }, {\n key: \"formatNationalNumberWithNextDigits\",\n value: function formatNationalNumberWithNextDigits(nextDigits, state) {\n var previouslyChosenFormat = this.chosenFormat; // Choose a format from the list of matching ones.\n\n var newlyChosenFormat = this.chooseFormat(state);\n\n if (newlyChosenFormat) {\n if (newlyChosenFormat === previouslyChosenFormat) {\n // If it can format the next (current) digits\n // using the previously chosen phone number format\n // then return the updated formatted number.\n return this.formatNextNationalNumberDigits(nextDigits);\n } else {\n // If a more appropriate phone number format\n // has been chosen for these \"leading digits\",\n // then re-format the national phone number part\n // using the newly selected format.\n return this.formatNextNationalNumberDigits(state.getNationalDigits());\n }\n }\n }\n }, {\n key: \"narrowDownMatchingFormats\",\n value: function narrowDownMatchingFormats(_ref4) {\n var _this3 = this;\n\n var nationalSignificantNumber = _ref4.nationalSignificantNumber,\n nationalPrefix = _ref4.nationalPrefix,\n international = _ref4.international;\n var leadingDigits = nationalSignificantNumber; // \"leading digits\" pattern list starts with a\n // \"leading digits\" pattern fitting a maximum of 3 leading digits.\n // So, after a user inputs 3 digits of a national (significant) phone number\n // this national (significant) number can already be formatted.\n // The next \"leading digits\" pattern is for 4 leading digits max,\n // and the \"leading digits\" pattern after it is for 5 leading digits max, etc.\n // This implementation is different from Google's\n // in that it searches for a fitting format\n // even if the user has entered less than\n // `MIN_LEADING_DIGITS_LENGTH` digits of a national number.\n // Because some leading digit patterns already match for a single first digit.\n\n var leadingDigitsPatternIndex = leadingDigits.length - MIN_LEADING_DIGITS_LENGTH;\n\n if (leadingDigitsPatternIndex < 0) {\n leadingDigitsPatternIndex = 0;\n }\n\n this.matchingFormats = this.matchingFormats.filter(function (format) {\n return _this3.formatSuits(format, international, nationalPrefix) && _this3.formatMatches(format, leadingDigits, leadingDigitsPatternIndex);\n }); // If there was a phone number format chosen\n // and it no longer holds given the new leading digits then reset it.\n // The test for this `if` condition is marked as:\n // \"Reset a chosen format when it no longer holds given the new leading digits\".\n // To construct a valid test case for this one can find a country\n // in `PhoneNumberMetadata.xml` yielding one format for 3 ``\n // and yielding another format for 4 `` (Australia in this case).\n\n if (this.chosenFormat && this.matchingFormats.indexOf(this.chosenFormat) === -1) {\n this.resetFormat();\n }\n }\n }, {\n key: \"formatSuits\",\n value: function formatSuits(format, international, nationalPrefix) {\n // When a prefix before a national (significant) number is\n // simply a national prefix, then it's parsed as `this.nationalPrefix`.\n // In more complex cases, a prefix before national (significant) number\n // could include a national prefix as well as some \"capturing groups\",\n // and in that case there's no info whether a national prefix has been parsed.\n // If national prefix is not used when formatting a phone number\n // using this format, but a national prefix has been entered by the user,\n // and was extracted, then discard such phone number format.\n // In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n // https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L175-L184\n if (nationalPrefix && !format.usesNationalPrefix() && // !format.domesticCarrierCodeFormattingRule() &&\n !format.nationalPrefixIsOptionalWhenFormattingInNationalFormat()) {\n return false;\n } // If national prefix is mandatory for this phone number format\n // and there're no guarantees that a national prefix is present in user input\n // then discard this phone number format as not suitable.\n // In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n // https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L185-L193\n\n\n if (!international && !nationalPrefix && format.nationalPrefixIsMandatoryWhenFormattingInNationalFormat()) {\n return false;\n }\n\n return true;\n }\n }, {\n key: \"formatMatches\",\n value: function formatMatches(format, leadingDigits, leadingDigitsPatternIndex) {\n var leadingDigitsPatternsCount = format.leadingDigitsPatterns().length; // If this format is not restricted to a certain\n // leading digits pattern then it fits.\n\n if (leadingDigitsPatternsCount === 0) {\n return true;\n } // Start excluding any non-matching formats only when the\n // national number entered so far is at least 3 digits long,\n // otherwise format matching would give false negatives.\n // For example, when the digits entered so far are `2`\n // and the leading digits pattern is `21` –\n // it's quite obvious in this case that the format could be the one\n // but due to the absence of further digits it would give false negative.\n\n\n if (leadingDigits.length < MIN_LEADING_DIGITS_LENGTH) {\n return true;\n } // If at least `MIN_LEADING_DIGITS_LENGTH` digits of a national number are available\n // then format matching starts narrowing down the list of possible formats\n // (only previously matched formats are considered for next digits).\n\n\n leadingDigitsPatternIndex = Math.min(leadingDigitsPatternIndex, leadingDigitsPatternsCount - 1);\n var leadingDigitsPattern = format.leadingDigitsPatterns()[leadingDigitsPatternIndex]; // Brackets are required for `^` to be applied to\n // all or-ed (`|`) parts, not just the first one.\n\n return new RegExp(\"^(\".concat(leadingDigitsPattern, \")\")).test(leadingDigits);\n }\n }, {\n key: \"getFormatFormat\",\n value: function getFormatFormat(format, international) {\n return international ? format.internationalFormat() : format.format();\n }\n }, {\n key: \"chooseFormat\",\n value: function chooseFormat(state) {\n var _this4 = this;\n\n var _loop2 = function _loop2() {\n if (_isArray2) {\n if (_i2 >= _iterator2.length) return \"break\";\n _ref5 = _iterator2[_i2++];\n } else {\n _i2 = _iterator2.next();\n if (_i2.done) return \"break\";\n _ref5 = _i2.value;\n }\n\n var format = _ref5; // If this format is currently being used\n // and is still suitable, then stick to it.\n\n if (_this4.chosenFormat === format) {\n return \"break\";\n } // Sometimes, a formatting rule inserts additional digits in a phone number,\n // and \"as you type\" formatter can't do that: it should only use the digits\n // that the user has input.\n //\n // For example, in Argentina, there's a format for mobile phone numbers:\n //\n // {\n // \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n // \"leading_digits_patterns\": [\"91\"],\n // \"national_prefix_formatting_rule\": \"0$1\",\n // \"format\": \"$2 15-$3-$4\",\n // \"international_format\": \"$1 $2 $3-$4\"\n // }\n //\n // In that format, `international_format` is used instead of `format`\n // because `format` inserts `15` in the formatted number,\n // and `AsYouType` formatter should only use the digits\n // the user has actually input, without adding any extra digits.\n // In this case, it wouldn't make a difference, because the `15`\n // is first stripped when applying `national_prefix_for_parsing`\n // and then re-added when using `format`, so in reality it doesn't\n // add any new digits to the number, but to detect that, the code\n // would have to be more complex: it would have to try formatting\n // the digits using the format and then see if any digits have\n // actually been added or removed, and then, every time a new digit\n // is input, it should re-check whether the chosen format doesn't\n // alter the digits.\n //\n // Google's code doesn't go that far, and so does this library:\n // it simply requires that a `format` doesn't add any additonal\n // digits to user's input.\n //\n // Also, people in general should move from inputting phone numbers\n // in national format (possibly with national prefixes)\n // and use international phone number format instead:\n // it's a logical thing in the modern age of mobile phones,\n // globalization and the internet.\n //\n\n /* istanbul ignore if */\n\n\n if (!NON_ALTERING_FORMAT_REG_EXP.test(_this4.getFormatFormat(format, state.international))) {\n return \"continue\";\n }\n\n if (!_this4.createTemplateForFormat(format, state)) {\n // Remove the format if it can't generate a template.\n _this4.matchingFormats = _this4.matchingFormats.filter(function (_) {\n return _ !== format;\n });\n return \"continue\";\n }\n\n _this4.chosenFormat = format;\n return \"break\";\n }; // When there are multiple available formats, the formatter uses the first\n // format where a formatting template could be created.\n\n\n _loop: for (var _iterator2 = this.matchingFormats.slice(), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {\n var _ref5;\n\n var _ret = _loop2();\n\n switch (_ret) {\n case \"break\":\n break _loop;\n\n case \"continue\":\n continue;\n }\n }\n\n if (!this.chosenFormat) {\n // No format matches the national (significant) phone number.\n this.resetFormat();\n }\n\n return this.chosenFormat;\n }\n }, {\n key: \"createTemplateForFormat\",\n value: function createTemplateForFormat(format, state) {\n // The formatter doesn't format numbers when numberPattern contains '|', e.g.\n // (20|3)\\d{4}. In those cases we quickly return.\n // (Though there's no such format in current metadata)\n\n /* istanbul ignore if */\n if (SUPPORT_LEGACY_FORMATTING_PATTERNS && format.pattern().indexOf('|') >= 0) {\n return;\n } // Get formatting template for this phone number format\n\n\n var template = this.getTemplateForFormat(format, state); // If the national number entered is too long\n // for any phone number format, then abort.\n\n if (template) {\n this.setNationalNumberTemplate(template, state);\n return true;\n }\n }\n }, {\n key: \"getInternationalPrefixBeforeCountryCallingCode\",\n value: function getInternationalPrefixBeforeCountryCallingCode(_ref6, options) {\n var IDDPrefix = _ref6.IDDPrefix,\n missingPlus = _ref6.missingPlus;\n\n if (IDDPrefix) {\n return options && options.spacing === false ? IDDPrefix : IDDPrefix + ' ';\n }\n\n if (missingPlus) {\n return '';\n }\n\n return '+';\n }\n }, {\n key: \"getTemplate\",\n value: function getTemplate(state) {\n if (!this.template) {\n return;\n } // `this.template` holds the template for a \"complete\" phone number.\n // The currently entered phone number is most likely not \"complete\",\n // so trim all non-populated digits.\n\n\n var index = -1;\n var i = 0;\n var internationalPrefix = state.international ? this.getInternationalPrefixBeforeCountryCallingCode(state, {\n spacing: false\n }) : '';\n\n while (i < internationalPrefix.length + state.getDigitsWithoutInternationalPrefix().length) {\n index = this.template.indexOf(DIGIT_PLACEHOLDER, index + 1);\n i++;\n }\n\n return cutAndStripNonPairedParens(this.template, index + 1);\n }\n }, {\n key: \"setNationalNumberTemplate\",\n value: function setNationalNumberTemplate(template, state) {\n this.nationalNumberTemplate = template;\n this.populatedNationalNumberTemplate = template; // With a new formatting template, the matched position\n // using the old template needs to be reset.\n\n this.populatedNationalNumberTemplatePosition = -1; // For convenience, the public `.template` property\n // contains the whole international number\n // if the phone number being input is international:\n // 'x' for the '+' sign, 'x'es for the country phone code,\n // a spacebar and then the template for the formatted national number.\n\n if (state.international) {\n this.template = this.getInternationalPrefixBeforeCountryCallingCode(state).replace(/[\\d\\+]/g, DIGIT_PLACEHOLDER) + repeat(DIGIT_PLACEHOLDER, state.callingCode.length) + ' ' + template;\n } else {\n this.template = template;\n }\n }\n /**\r\n * Generates formatting template for a national phone number,\r\n * optionally containing a national prefix, for a format.\r\n * @param {Format} format\r\n * @param {string} nationalPrefix\r\n * @return {string}\r\n */\n\n }, {\n key: \"getTemplateForFormat\",\n value: function getTemplateForFormat(format, _ref7) {\n var nationalSignificantNumber = _ref7.nationalSignificantNumber,\n international = _ref7.international,\n nationalPrefix = _ref7.nationalPrefix,\n complexPrefixBeforeNationalSignificantNumber = _ref7.complexPrefixBeforeNationalSignificantNumber;\n var pattern = format.pattern();\n /* istanbul ignore else */\n\n if (SUPPORT_LEGACY_FORMATTING_PATTERNS) {\n pattern = pattern // Replace anything in the form of [..] with \\d\n .replace(CREATE_CHARACTER_CLASS_PATTERN(), '\\\\d') // Replace any standalone digit (not the one in `{}`) with \\d\n .replace(CREATE_STANDALONE_DIGIT_PATTERN(), '\\\\d');\n } // Generate a dummy national number (consisting of `9`s)\n // that fits this format's `pattern`.\n //\n // This match will always succeed,\n // because the \"longest dummy phone number\"\n // has enough length to accomodate any possible\n // national phone number format pattern.\n //\n\n\n var digits = LONGEST_DUMMY_PHONE_NUMBER.match(pattern)[0]; // If the national number entered is too long\n // for any phone number format, then abort.\n\n if (nationalSignificantNumber.length > digits.length) {\n return;\n } // Get a formatting template which can be used to efficiently format\n // a partial number where digits are added one by one.\n // Below `strictPattern` is used for the\n // regular expression (with `^` and `$`).\n // This wasn't originally in Google's `libphonenumber`\n // and I guess they don't really need it\n // because they're not using \"templates\" to format phone numbers\n // but I added `strictPattern` after encountering\n // South Korean phone number formatting bug.\n //\n // Non-strict regular expression bug demonstration:\n //\n // this.nationalSignificantNumber : `111111111` (9 digits)\n //\n // pattern : (\\d{2})(\\d{3,4})(\\d{4})\n // format : `$1 $2 $3`\n // digits : `9999999999` (10 digits)\n //\n // '9999999999'.replace(new RegExp(/(\\d{2})(\\d{3,4})(\\d{4})/g), '$1 $2 $3') = \"99 9999 9999\"\n //\n // template : xx xxxx xxxx\n //\n // But the correct template in this case is `xx xxx xxxx`.\n // The template was generated incorrectly because of the\n // `{3,4}` variability in the `pattern`.\n //\n // The fix is, if `this.nationalSignificantNumber` has already sufficient length\n // to satisfy the `pattern` completely then `this.nationalSignificantNumber`\n // is used instead of `digits`.\n\n\n var strictPattern = new RegExp('^' + pattern + '$');\n var nationalNumberDummyDigits = nationalSignificantNumber.replace(/\\d/g, DUMMY_DIGIT); // If `this.nationalSignificantNumber` has already sufficient length\n // to satisfy the `pattern` completely then use it\n // instead of `digits`.\n\n if (strictPattern.test(nationalNumberDummyDigits)) {\n digits = nationalNumberDummyDigits;\n }\n\n var numberFormat = this.getFormatFormat(format, international);\n var nationalPrefixIncludedInTemplate; // If a user did input a national prefix (and that's guaranteed),\n // and if a `format` does have a national prefix formatting rule,\n // then see if that national prefix formatting rule\n // prepends exactly the same national prefix the user has input.\n // If that's the case, then use the `format` with the national prefix formatting rule.\n // Otherwise, use the `format` without the national prefix formatting rule,\n // and prepend a national prefix manually to it.\n\n if (this.shouldTryNationalPrefixFormattingRule(format, {\n international: international,\n nationalPrefix: nationalPrefix\n })) {\n var numberFormatWithNationalPrefix = numberFormat.replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()); // If `national_prefix_formatting_rule` of a `format` simply prepends\n // national prefix at the start of a national (significant) number,\n // then such formatting can be used with `AsYouType` formatter.\n // There seems to be no `else` case: everywhere in metadata,\n // national prefix formatting rule is national prefix + $1,\n // or `($1)`, in which case such format isn't even considered\n // when the user has input a national prefix.\n\n /* istanbul ignore else */\n\n if (parseDigits(format.nationalPrefixFormattingRule()) === (nationalPrefix || '') + parseDigits('$1')) {\n numberFormat = numberFormatWithNationalPrefix;\n nationalPrefixIncludedInTemplate = true; // Replace all digits of the national prefix in the formatting template\n // with `DIGIT_PLACEHOLDER`s.\n\n if (nationalPrefix) {\n var i = nationalPrefix.length;\n\n while (i > 0) {\n numberFormat = numberFormat.replace(/\\d/, DIGIT_PLACEHOLDER);\n i--;\n }\n }\n }\n } // Generate formatting template for this phone number format.\n\n\n var template = digits // Format the dummy phone number according to the format.\n .replace(new RegExp(pattern), numberFormat) // Replace each dummy digit with a DIGIT_PLACEHOLDER.\n .replace(new RegExp(DUMMY_DIGIT, 'g'), DIGIT_PLACEHOLDER); // If a prefix of a national (significant) number is not as simple\n // as just a basic national prefix, then just prepend such prefix\n // before the national (significant) number, optionally spacing\n // the two with a whitespace.\n\n if (!nationalPrefixIncludedInTemplate) {\n if (complexPrefixBeforeNationalSignificantNumber) {\n // Prepend the prefix to the template manually.\n template = repeat(DIGIT_PLACEHOLDER, complexPrefixBeforeNationalSignificantNumber.length) + ' ' + template;\n } else if (nationalPrefix) {\n // Prepend national prefix to the template manually.\n template = repeat(DIGIT_PLACEHOLDER, nationalPrefix.length) + this.getSeparatorAfterNationalPrefix(format) + template;\n }\n }\n\n if (international) {\n template = applyInternationalSeparatorStyle(template);\n }\n\n return template;\n }\n }, {\n key: \"formatNextNationalNumberDigits\",\n value: function formatNextNationalNumberDigits(digits) {\n var result = populateTemplateWithDigits(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition, digits);\n\n if (!result) {\n // Reset the format.\n this.resetFormat();\n return;\n }\n\n this.populatedNationalNumberTemplate = result[0];\n this.populatedNationalNumberTemplatePosition = result[1]; // Return the formatted phone number so far.\n\n return cutAndStripNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1); // The old way which was good for `input-format` but is not so good\n // for `react-phone-number-input`'s default input (`InputBasic`).\n // return closeNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1)\n // \t.replace(new RegExp(DIGIT_PLACEHOLDER, 'g'), ' ')\n }\n }]);\n\n return AsYouTypeFormatter;\n}();\n\nexport { AsYouTypeFormatter as default };","import Metadata from '../metadata';\nimport { VALID_DIGITS } from '../constants';\nvar CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])');\nexport default function stripIddPrefix(number, country, callingCode, metadata) {\n if (!country) {\n return;\n } // Check if the number is IDD-prefixed.\n\n\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n var IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix());\n\n if (number.search(IDDPrefixPattern) !== 0) {\n return;\n } // Strip IDD prefix.\n\n\n number = number.slice(number.match(IDDPrefixPattern)[0].length); // If there're any digits after an IDD prefix,\n // then those digits are a country calling code.\n // Since no country code starts with a `0`,\n // the code below validates that the next digit (if present) is not `0`.\n\n var matchedGroups = number.match(CAPTURING_DIGIT_PATTERN);\n\n if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\n if (matchedGroups[1] === '0') {\n return;\n }\n }\n\n return number;\n}","/**\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? }`.\r\n */\nexport default function extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) {\n if (number && metadata.numberingPlan.nationalPrefixForParsing()) {\n // See METADATA.md for the description of\n // `national_prefix_for_parsing` and `national_prefix_transform_rule`.\n // Attempt to parse the first digits as a national prefix.\n var prefixPattern = new RegExp('^(?:' + metadata.numberingPlan.nationalPrefixForParsing() + ')');\n var prefixMatch = prefixPattern.exec(number);\n\n if (prefixMatch) {\n var nationalNumber;\n var carrierCode; // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n // If a `national_prefix_for_parsing` has any \"capturing groups\"\n // then it means that the national (significant) number is equal to\n // those \"capturing groups\" transformed via `national_prefix_transform_rule`,\n // and nothing could be said about the actual national prefix:\n // what is it and was it even there.\n // If a `national_prefix_for_parsing` doesn't have any \"capturing groups\",\n // then everything it matches is a national prefix.\n // To determine whether `national_prefix_for_parsing` matched any\n // \"capturing groups\", the value of the result of calling `.exec()`\n // is looked at, and if it has non-undefined values where there're\n // \"capturing groups\" in the regular expression, then it means\n // that \"capturing groups\" have been matched.\n // It's not possible to tell whether there'll be any \"capturing gropus\"\n // before the matching process, because a `national_prefix_for_parsing`\n // could exhibit both behaviors.\n\n var capturedGroupsCount = prefixMatch.length - 1;\n var hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount];\n\n if (metadata.nationalPrefixTransformRule() && hasCapturedGroups) {\n nationalNumber = number.replace(prefixPattern, metadata.nationalPrefixTransformRule()); // If there's more than one captured group,\n // then carrier code is the second one.\n\n if (capturedGroupsCount > 1) {\n carrierCode = prefixMatch[1];\n }\n } // If there're no \"capturing groups\",\n // or if there're \"capturing groups\" but no\n // `national_prefix_transform_rule`,\n // then just strip the national prefix from the number,\n // and possibly a carrier code.\n // Seems like there could be more.\n else {\n // `prefixBeforeNationalNumber` is the whole substring matched by\n // the `national_prefix_for_parsing` regular expression.\n // There seem to be no guarantees that it's just a national prefix.\n // For example, if there's a carrier code, it's gonna be a\n // part of `prefixBeforeNationalNumber` too.\n var prefixBeforeNationalNumber = prefixMatch[0];\n nationalNumber = number.slice(prefixBeforeNationalNumber.length); // If there's at least one captured group,\n // then carrier code is the first one.\n\n if (hasCapturedGroups) {\n carrierCode = prefixMatch[1];\n }\n } // Tries to guess whether a national prefix was present in the input.\n // This is not something copy-pasted from Google's library:\n // they don't seem to have an equivalent for that.\n // So this isn't an \"officially approved\" way of doing something like that.\n // But since there seems no other existing method, this library uses it.\n\n\n var nationalPrefix;\n\n if (hasCapturedGroups) {\n var possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1]);\n var possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup); // Example: an Argentinian (AR) phone number `0111523456789`.\n // `prefixMatch[0]` is `01115`, and `$1` is `11`,\n // and the rest of the phone number is `23456789`.\n // The national number is transformed via `9$1` to `91123456789`.\n // National prefix `0` is detected being present at the start.\n // if (possibleNationalPrefix.indexOf(metadata.numberingPlan.nationalPrefix()) === 0) {\n\n if (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) {\n nationalPrefix = metadata.numberingPlan.nationalPrefix();\n }\n } else {\n nationalPrefix = prefixMatch[0];\n }\n\n return {\n nationalNumber: nationalNumber,\n nationalPrefix: nationalPrefix,\n carrierCode: carrierCode\n };\n }\n }\n\n return {\n nationalNumber: number\n };\n}","import extractNationalNumberFromPossiblyIncompleteNumber from './extractNationalNumberFromPossiblyIncompleteNumber';\nimport matchesEntirely from './matchesEntirely';\nimport checkNumberLength from './checkNumberLength';\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 nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode;\n\n if (!shouldExtractNationalPrefix(number, nationalNumber, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n } // If a national prefix has been extracted, check to see\n // if the resultant number isn't too short.\n // Same code in Google's `libphonenumber`:\n // https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3291-L3302\n // For some reason, they do this check right after the `national_number_pattern` check\n // this library does in `shouldExtractNationalPrefix()` function.\n // Why is there a second \"resultant\" number validity check?\n // They don't provide an explanation.\n // This library just copies the behavior.\n\n\n if (number.length !== nationalNumber.length + (carrierCode ? carrierCode.length : 0)) {\n // If not using legacy generated metadata (before version `1.0.18`)\n // then it has \"possible lengths\", so use those to validate the number length.\n if (metadata.possibleLengths()) {\n // \"We require that the NSN remaining after stripping the national prefix and\n // carrier code be long enough to be a possible length for the region.\n // Otherwise, we don't do the stripping, since the original number could be\n // a valid short number.\"\n // https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250\n switch (checkNumberLength(nationalNumber, metadata)) {\n case 'TOO_SHORT':\n case 'INVALID_LENGTH':\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n }\n }\n }\n\n return {\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n} // In some countries, the same digit could be a national prefix\n// or a leading digit of a valid phone number.\n// For example, in Russia, national prefix is `8`,\n// and also `800 555 35 35` is a valid number\n// in which `8` is not a national prefix, but the first digit\n// of a national (significant) number.\n// Same's with Belarus:\n// `82004910060` is a valid national (significant) number,\n// but `2004910060` is not.\n// To support such cases (to prevent the code from always stripping\n// national prefix), a condition is imposed: a national prefix\n// is not extracted when the original number is \"viable\" and the\n// resultant number is not, a \"viable\" national number being the one\n// that matches `national_number_pattern`.\n\nfunction shouldExtractNationalPrefix(number, nationalSignificantNumber, 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(number, metadata.nationalNumberPattern()) && !matchesEntirely(nationalSignificantNumber, metadata.nationalNumberPattern())) {\n return false;\n } // Just \"possible\" number check would be more relaxed, so it's not used.\n // if (isPossibleNumber(number, metadata) &&\n // \t!isPossibleNumber(numberWithNationalPrefixExtracted, metadata)) {\n // \treturn false\n // }\n\n\n return true;\n}","import Metadata from '../metadata';\nimport matchesEntirely from './matchesEntirely';\nimport extractNationalNumber from './extractNationalNumber';\nimport checkNumberLength from './checkNumberLength';\nimport getCountryCallingCode from '../getCountryCallingCode';\n/**\r\n * Sometimes some people incorrectly input international phone numbers\r\n * without the leading `+`. This function corrects such input.\r\n * @param {string} number — Phone number digits.\r\n * @param {string?} country\r\n * @param {string?} callingCode\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`.\r\n */\n\nexport default function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata) {\n var countryCallingCode = country ? getCountryCallingCode(country, metadata) : callingCode;\n\n if (number.indexOf(countryCallingCode) === 0) {\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(country, callingCode);\n var possibleShorterNumber = number.slice(countryCallingCode.length);\n\n var _extractNationalNumbe = extractNationalNumber(possibleShorterNumber, metadata),\n possibleShorterNationalNumber = _extractNationalNumbe.nationalNumber;\n\n var _extractNationalNumbe2 = extractNationalNumber(number, metadata),\n nationalNumber = _extractNationalNumbe2.nationalNumber; // If the number was not valid before but is valid now,\n // or if it was too long before, we consider the number\n // with the country calling code stripped to be a better result\n // and keep that instead.\n // For example, in Germany (+49), `49` is a valid area code,\n // so if a number starts with `49`, it could be both a valid\n // national German number or an international number without\n // a leading `+`.\n\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) && matchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern()) || checkNumberLength(nationalNumber, metadata) === 'TOO_LONG') {\n return {\n countryCallingCode: countryCallingCode,\n number: possibleShorterNumber\n };\n }\n }\n\n return {\n number: number\n };\n}","function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\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\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nimport _extractCountryCallingCode from './helpers/extractCountryCallingCode';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign';\nimport extractNationalNumberFromPossiblyIncompleteNumber from './helpers/extractNationalNumberFromPossiblyIncompleteNumber';\nimport stripIddPrefix from './helpers/stripIddPrefix';\nimport parseDigits from './helpers/parseDigits';\nimport { VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from './constants';\nvar VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART = '[' + VALID_PUNCTUATION + VALID_DIGITS + ']+';\nvar VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN = new RegExp('^' + VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART + '$', 'i');\nvar VALID_FORMATTED_PHONE_NUMBER_PART = '(?:' + '[' + PLUS_CHARS + ']' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*' + '|' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']+' + ')';\nvar AFTER_PHONE_NUMBER_DIGITS_END_PATTERN = new RegExp('[^' + VALID_PUNCTUATION + VALID_DIGITS + ']+' + '.*' + '$'); // Tests whether `national_prefix_for_parsing` could match\n// different national prefixes.\n// Matches anything that's not a digit or a square bracket.\n\nvar COMPLEX_NATIONAL_PREFIX = /[^\\d\\[\\]]/;\n\nvar AsYouTypeParser = /*#__PURE__*/function () {\n function AsYouTypeParser(_ref) {\n var defaultCountry = _ref.defaultCountry,\n defaultCallingCode = _ref.defaultCallingCode,\n metadata = _ref.metadata,\n onNationalSignificantNumberChange = _ref.onNationalSignificantNumberChange;\n\n _classCallCheck(this, AsYouTypeParser);\n\n this.defaultCountry = defaultCountry;\n this.defaultCallingCode = defaultCallingCode;\n this.metadata = metadata;\n this.onNationalSignificantNumberChange = onNationalSignificantNumberChange;\n }\n\n _createClass(AsYouTypeParser, [{\n key: \"input\",\n value: function input(text, state) {\n var _extractFormattedDigi = extractFormattedDigitsAndPlus(text),\n _extractFormattedDigi2 = _slicedToArray(_extractFormattedDigi, 2),\n formattedDigits = _extractFormattedDigi2[0],\n hasPlus = _extractFormattedDigi2[1];\n\n var digits = parseDigits(formattedDigits); // Checks for a special case: just a leading `+` has been entered.\n\n var justLeadingPlus;\n\n if (hasPlus) {\n if (!state.digits) {\n state.startInternationalNumber();\n\n if (!digits) {\n justLeadingPlus = true;\n }\n }\n }\n\n if (digits) {\n this.inputDigits(digits, state);\n }\n\n return {\n digits: digits,\n justLeadingPlus: justLeadingPlus\n };\n }\n /**\r\n * Inputs \"next\" phone number digits.\r\n * @param {string} digits\r\n * @return {string} [formattedNumber] Formatted national phone number (if it can be formatted at this stage). Returning `undefined` means \"don't format the national phone number at this stage\".\r\n */\n\n }, {\n key: \"inputDigits\",\n value: function inputDigits(nextDigits, state) {\n var digits = state.digits;\n var hasReceivedThreeLeadingDigits = digits.length < 3 && digits.length + nextDigits.length >= 3; // Append phone number digits.\n\n state.appendDigits(nextDigits); // Attempt to extract IDD prefix:\n // Some users input their phone number in international format,\n // but in an \"out-of-country\" dialing format instead of using the leading `+`.\n // https://github.com/catamphetamine/libphonenumber-js/issues/185\n // Detect such numbers as soon as there're at least 3 digits.\n // Google's library attempts to extract IDD prefix at 3 digits,\n // so this library just copies that behavior.\n // I guess that's because the most commot IDD prefixes are\n // `00` (Europe) and `011` (US).\n // There exist really long IDD prefixes too:\n // for example, in Australia the default IDD prefix is `0011`,\n // and it could even be as long as `14880011`.\n // An IDD prefix is extracted here, and then every time when\n // there's a new digit and the number couldn't be formatted.\n\n if (hasReceivedThreeLeadingDigits) {\n this.extractIddPrefix(state);\n }\n\n if (this.isWaitingForCountryCallingCode(state)) {\n if (!this.extractCountryCallingCode(state)) {\n return;\n }\n } else {\n state.appendNationalSignificantNumberDigits(nextDigits);\n } // If a phone number is being input in international format,\n // then it's not valid for it to have a national prefix.\n // Still, some people incorrectly input such numbers with a national prefix.\n // In such cases, only attempt to strip a national prefix if the number becomes too long.\n // (but that is done later, not here)\n\n\n if (!state.international) {\n if (!this.hasExtractedNationalSignificantNumber) {\n this.extractNationalSignificantNumber(state.getNationalDigits(), state.update);\n }\n }\n }\n }, {\n key: \"isWaitingForCountryCallingCode\",\n value: function isWaitingForCountryCallingCode(_ref2) {\n var international = _ref2.international,\n callingCode = _ref2.callingCode;\n return international && !callingCode;\n } // Extracts a country calling code from a number\n // being entered in internatonal format.\n\n }, {\n key: \"extractCountryCallingCode\",\n value: function extractCountryCallingCode(state) {\n var _extractCountryCallin = _extractCountryCallingCode('+' + state.getDigitsWithoutInternationalPrefix(), this.defaultCountry, this.defaultCallingCode, this.metadata.metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number;\n\n if (countryCallingCode) {\n state.setCallingCode(countryCallingCode);\n state.update({\n nationalSignificantNumber: number\n });\n return true;\n }\n }\n }, {\n key: \"reset\",\n value: function reset(numberingPlan) {\n if (numberingPlan) {\n this.hasSelectedNumberingPlan = true;\n\n var nationalPrefixForParsing = numberingPlan._nationalPrefixForParsing();\n\n this.couldPossiblyExtractAnotherNationalSignificantNumber = nationalPrefixForParsing && COMPLEX_NATIONAL_PREFIX.test(nationalPrefixForParsing);\n } else {\n this.hasSelectedNumberingPlan = undefined;\n this.couldPossiblyExtractAnotherNationalSignificantNumber = undefined;\n }\n }\n /**\r\n * Extracts a national (significant) number from user input.\r\n * Google's library is different in that it only applies `national_prefix_for_parsing`\r\n * and doesn't apply `national_prefix_transform_rule` after that.\r\n * https://github.com/google/libphonenumber/blob/a3d70b0487875475e6ad659af404943211d26456/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L539\r\n * @return {boolean} [extracted]\r\n */\n\n }, {\n key: \"extractNationalSignificantNumber\",\n value: function extractNationalSignificantNumber(nationalDigits, setState) {\n if (!this.hasSelectedNumberingPlan) {\n return;\n }\n\n var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(nationalDigits, this.metadata),\n nationalPrefix = _extractNationalNumbe.nationalPrefix,\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode;\n\n if (nationalNumber === nationalDigits) {\n return;\n }\n\n this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState);\n return true;\n }\n /**\r\n * In Google's code this function is called \"attempt to extract longer NDD\".\r\n * \"Some national prefixes are a substring of others\", they say.\r\n * @return {boolean} [result] — Returns `true` if extracting a national prefix produced different results from what they were.\r\n */\n\n }, {\n key: \"extractAnotherNationalSignificantNumber\",\n value: function extractAnotherNationalSignificantNumber(nationalDigits, prevNationalSignificantNumber, setState) {\n if (!this.hasExtractedNationalSignificantNumber) {\n return this.extractNationalSignificantNumber(nationalDigits, setState);\n }\n\n if (!this.couldPossiblyExtractAnotherNationalSignificantNumber) {\n return;\n }\n\n var _extractNationalNumbe2 = extractNationalNumberFromPossiblyIncompleteNumber(nationalDigits, this.metadata),\n nationalPrefix = _extractNationalNumbe2.nationalPrefix,\n nationalNumber = _extractNationalNumbe2.nationalNumber,\n carrierCode = _extractNationalNumbe2.carrierCode; // If a national prefix has been extracted previously,\n // then it's always extracted as additional digits are added.\n // That's assuming `extractNationalNumberFromPossiblyIncompleteNumber()`\n // doesn't do anything different from what it currently does.\n // So, just in case, here's this check, though it doesn't occur.\n\n /* istanbul ignore if */\n\n\n if (nationalNumber === prevNationalSignificantNumber) {\n return;\n }\n\n this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState);\n return true;\n }\n }, {\n key: \"onExtractedNationalNumber\",\n value: function onExtractedNationalNumber(nationalPrefix, carrierCode, nationalSignificantNumber, nationalDigits, setState) {\n var complexPrefixBeforeNationalSignificantNumber;\n var nationalSignificantNumberMatchesInput; // This check also works with empty `this.nationalSignificantNumber`.\n\n var nationalSignificantNumberIndex = nationalDigits.lastIndexOf(nationalSignificantNumber); // If the extracted national (significant) number is the\n // last substring of the `digits`, then it means that it hasn't been altered:\n // no digits have been removed from the national (significant) number\n // while applying `national_prefix_transform_rule`.\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n\n if (nationalSignificantNumberIndex >= 0 && nationalSignificantNumberIndex === nationalDigits.length - nationalSignificantNumber.length) {\n nationalSignificantNumberMatchesInput = true; // If a prefix of a national (significant) number is not as simple\n // as just a basic national prefix, then such prefix is stored in\n // `this.complexPrefixBeforeNationalSignificantNumber` property and will be\n // prepended \"as is\" to the national (significant) number to produce\n // a formatted result.\n\n var prefixBeforeNationalNumber = nationalDigits.slice(0, nationalSignificantNumberIndex); // `prefixBeforeNationalNumber` is always non-empty,\n // because `onExtractedNationalNumber()` isn't called\n // when a national (significant) number hasn't been actually \"extracted\":\n // when a national (significant) number is equal to the national part of `digits`,\n // then `onExtractedNationalNumber()` doesn't get called.\n\n if (prefixBeforeNationalNumber !== nationalPrefix) {\n complexPrefixBeforeNationalSignificantNumber = prefixBeforeNationalNumber;\n }\n }\n\n setState({\n nationalPrefix: nationalPrefix,\n carrierCode: carrierCode,\n nationalSignificantNumber: nationalSignificantNumber,\n nationalSignificantNumberMatchesInput: nationalSignificantNumberMatchesInput,\n complexPrefixBeforeNationalSignificantNumber: complexPrefixBeforeNationalSignificantNumber\n }); // `onExtractedNationalNumber()` is only called when\n // the national (significant) number actually did change.\n\n this.hasExtractedNationalSignificantNumber = true;\n this.onNationalSignificantNumberChange();\n }\n }, {\n key: \"reExtractNationalSignificantNumber\",\n value: function reExtractNationalSignificantNumber(state) {\n // Attempt to extract a national prefix.\n //\n // Some people incorrectly input national prefix\n // in an international phone number.\n // For example, some people write British phone numbers as `+44(0)...`.\n //\n // Also, in some rare cases, it is valid for a national prefix\n // to be a part of an international phone number.\n // For example, mobile phone numbers in Mexico are supposed to be\n // dialled internationally using a `1` national prefix,\n // so the national prefix will be part of an international number.\n //\n // Quote from:\n // https://www.mexperience.com/dialing-cell-phones-in-mexico/\n //\n // \"Dialing a Mexican cell phone from abroad\n // When you are calling a cell phone number in Mexico from outside Mexico,\n // it’s necessary to dial an additional “1” after Mexico’s country code\n // (which is “52”) and before the area code.\n // You also ignore the 045, and simply dial the area code and the\n // cell phone’s number.\n //\n // If you don’t add the “1”, you’ll receive a recorded announcement\n // asking you to redial using it.\n //\n // For example, if you are calling from the USA to a cell phone\n // in Mexico City, you would dial +52 – 1 – 55 – 1234 5678.\n // (Note that this is different to calling a land line in Mexico City\n // from abroad, where the number dialed would be +52 – 55 – 1234 5678)\".\n //\n // Google's demo output:\n // https://libphonenumber.appspot.com/phonenumberparser?number=%2b5215512345678&country=MX\n //\n if (this.extractAnotherNationalSignificantNumber(state.getNationalDigits(), state.nationalSignificantNumber, state.update)) {\n return true;\n } // If no format matches the phone number, then it could be\n // \"a really long IDD\" (quote from a comment in Google's library).\n // An IDD prefix is first extracted when the user has entered at least 3 digits,\n // and then here — every time when there's a new digit and the number\n // couldn't be formatted.\n // For example, in Australia the default IDD prefix is `0011`,\n // and it could even be as long as `14880011`.\n //\n // Could also check `!hasReceivedThreeLeadingDigits` here\n // to filter out the case when this check duplicates the one\n // already performed when there're 3 leading digits,\n // but it's not a big deal, and in most cases there\n // will be a suitable `format` when there're 3 leading digits.\n //\n\n\n if (this.extractIddPrefix(state)) {\n this.extractCallingCodeAndNationalSignificantNumber(state);\n return true;\n } // Google's AsYouType formatter supports sort of an \"autocorrection\" feature\n // when it \"autocorrects\" numbers that have been input for a country\n // with that country's calling code.\n // Such \"autocorrection\" feature looks weird, but different people have been requesting it:\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n // https://github.com/catamphetamine/libphonenumber-js/issues/375\n // https://github.com/catamphetamine/libphonenumber-js/issues/316\n\n\n if (this.fixMissingPlus(state)) {\n this.extractCallingCodeAndNationalSignificantNumber(state);\n return true;\n }\n }\n }, {\n key: \"extractIddPrefix\",\n value: function extractIddPrefix(state) {\n // An IDD prefix can't be present in a number written with a `+`.\n // Also, don't re-extract an IDD prefix if has already been extracted.\n var international = state.international,\n IDDPrefix = state.IDDPrefix,\n digits = state.digits,\n nationalSignificantNumber = state.nationalSignificantNumber;\n\n if (international || IDDPrefix) {\n return;\n } // Some users input their phone number in \"out-of-country\"\n // dialing format instead of using the leading `+`.\n // https://github.com/catamphetamine/libphonenumber-js/issues/185\n // Detect such numbers.\n\n\n var numberWithoutIDD = stripIddPrefix(digits, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata);\n\n if (numberWithoutIDD !== undefined && numberWithoutIDD !== digits) {\n // If an IDD prefix was stripped then convert the IDD-prefixed number\n // to international number for subsequent parsing.\n state.update({\n IDDPrefix: digits.slice(0, digits.length - numberWithoutIDD.length)\n });\n this.startInternationalNumber(state);\n return true;\n }\n }\n }, {\n key: \"fixMissingPlus\",\n value: function fixMissingPlus(state) {\n if (!state.international) {\n var _extractCountryCallin2 = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(state.digits, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata),\n newCallingCode = _extractCountryCallin2.countryCallingCode,\n number = _extractCountryCallin2.number;\n\n if (newCallingCode) {\n state.update({\n missingPlus: true\n });\n this.startInternationalNumber(state);\n return true;\n }\n }\n }\n }, {\n key: \"startInternationalNumber\",\n value: function startInternationalNumber(state) {\n state.startInternationalNumber(); // If a national (significant) number has been extracted before, reset it.\n\n if (state.nationalSignificantNumber) {\n state.resetNationalSignificantNumber();\n this.onNationalSignificantNumberChange();\n this.hasExtractedNationalSignificantNumber = undefined;\n }\n }\n }, {\n key: \"extractCallingCodeAndNationalSignificantNumber\",\n value: function extractCallingCodeAndNationalSignificantNumber(state) {\n if (this.extractCountryCallingCode(state)) {\n // `this.extractCallingCode()` is currently called when the number\n // couldn't be formatted during the standard procedure.\n // Normally, the national prefix would be re-extracted\n // for an international number if such number couldn't be formatted,\n // but since it's already not able to be formatted,\n // there won't be yet another retry, so also extract national prefix here.\n this.extractNationalSignificantNumber(state.getNationalDigits(), state.update);\n }\n }\n }]);\n\n return AsYouTypeParser;\n}();\n/**\r\n * Extracts formatted phone number from text (if there's any).\r\n * @param {string} text\r\n * @return {string} [formattedPhoneNumber]\r\n */\n\n\nexport { AsYouTypeParser as default };\n\nfunction extractFormattedPhoneNumber(text) {\n // Attempt to extract a possible number from the string passed in.\n var startsAt = text.search(VALID_FORMATTED_PHONE_NUMBER_PART);\n\n if (startsAt < 0) {\n return;\n } // Trim everything to the left of the phone number.\n\n\n text = text.slice(startsAt); // Trim the `+`.\n\n var hasPlus;\n\n if (text[0] === '+') {\n hasPlus = true;\n text = text.slice('+'.length);\n } // Trim everything to the right of the phone number.\n\n\n text = text.replace(AFTER_PHONE_NUMBER_DIGITS_END_PATTERN, ''); // Re-add the previously trimmed `+`.\n\n if (hasPlus) {\n text = '+' + text;\n }\n\n return text;\n}\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param {string} text\r\n * @return {any[]}\r\n */\n\n\nfunction _extractFormattedDigitsAndPlus(text) {\n // Extract a formatted phone number part from text.\n var extractedNumber = extractFormattedPhoneNumber(text) || ''; // Trim a `+`.\n\n if (extractedNumber[0] === '+') {\n return [extractedNumber.slice('+'.length), true];\n }\n\n return [extractedNumber];\n}\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param {string} text\r\n * @return {any[]}\r\n */\n\n\nexport function extractFormattedDigitsAndPlus(text) {\n var _extractFormattedDigi3 = _extractFormattedDigitsAndPlus(text),\n _extractFormattedDigi4 = _slicedToArray(_extractFormattedDigi3, 2),\n formattedDigits = _extractFormattedDigi4[0],\n hasPlus = _extractFormattedDigi4[1]; // If the extracted phone number part\n // can possibly be a part of some valid phone number\n // then parse phone number characters from a formatted phone number.\n\n\n if (!VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN.test(formattedDigits)) {\n formattedDigits = '';\n }\n\n return [formattedDigits, hasPlus];\n}","import stripIddPrefix from './stripIddPrefix';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './extractCountryCallingCodeFromInternationalNumberWithoutPlusSign';\nimport Metadata from '../metadata';\nimport { MAX_LENGTH_COUNTRY_CODE } from '../constants';\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} `{ 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 } // 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\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 number = '+' + numberWithoutIDD;\n } else {\n // Check to see if the number starts with the country calling code\n // for the default country. If so, we remove the country calling code,\n // and do some checks on the validity of the number before and after.\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n if (country || callingCode) {\n var _extractCountryCallin = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n shorterNumber = _extractCountryCallin.number;\n\n if (countryCallingCode) {\n return {\n countryCallingCode: countryCallingCode,\n number: shorterNumber\n };\n }\n }\n\n return {\n number: number\n };\n }\n } // Fast abortion: country codes do not begin with a '0'\n\n\n if (number[1] === '0') {\n return {};\n }\n\n metadata = new Metadata(metadata); // The thing with country phone codes\n // is that they are orthogonal to each other\n // i.e. there's no such country phone code A\n // for which country phone code B exists\n // where B starts with A.\n // Therefore, while scanning digits,\n // if a valid country code is found,\n // that means that it is the country code.\n //\n\n var i = 2;\n\n while (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\n var _countryCallingCode = number.slice(1, i);\n\n if (metadata.hasCallingCode(_countryCallingCode)) {\n metadata.selectNumberingPlan(_countryCallingCode);\n return {\n countryCallingCode: _countryCallingCode,\n number: number.slice(i)\n };\n }\n\n i++;\n }\n\n return {};\n}","import Metadata from '../metadata';\nimport getNumberType from './getNumberType';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\nexport default function getCountryByCallingCode(callingCode, nationalPhoneNumber, metadata) {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(callingCode)) {\n return '001';\n }\n } // Is always non-empty, because `callingCode` is always valid\n\n\n var possibleCountries = metadata.getCountryCodesForCallingCode(callingCode);\n\n if (!possibleCountries) {\n return;\n } // If there's just one country corresponding to the country code,\n // then just return it, without further phone number digits validation.\n\n\n if (possibleCountries.length === 1) {\n return possibleCountries[0];\n }\n\n return selectCountryFromList(possibleCountries, nationalPhoneNumber, metadata.metadata);\n}\n\nfunction selectCountryFromList(possibleCountries, nationalPhoneNumber, metadata) {\n // Re-create `metadata` because it will be selecting a `country`.\n metadata = new Metadata(metadata);\n\n for (var _iterator = possibleCountries, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var country = _ref;\n metadata.country(country); // Leading digits check would be the simplest one\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 return country;\n }\n }\n}","function _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\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\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nimport Metadata from './metadata';\nimport PhoneNumber from './PhoneNumber';\nimport AsYouTypeState from './AsYouTypeState';\nimport AsYouTypeFormatter, { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter';\nimport AsYouTypeParser, { extractFormattedDigitsAndPlus } from './AsYouTypeParser';\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar AsYouType = /*#__PURE__*/function () {\n /**\r\n * @param {(string|object)?} [optionsOrDefaultCountry] - The default country used for parsing non-international phone numbers. Can also be an `options` object.\r\n * @param {Object} metadata\r\n */\n function AsYouType(optionsOrDefaultCountry, metadata) {\n _classCallCheck(this, AsYouType);\n\n this.metadata = new Metadata(metadata);\n\n var _this$getCountryAndCa = this.getCountryAndCallingCode(optionsOrDefaultCountry),\n _this$getCountryAndCa2 = _slicedToArray(_this$getCountryAndCa, 2),\n defaultCountry = _this$getCountryAndCa2[0],\n defaultCallingCode = _this$getCountryAndCa2[1];\n\n this.defaultCountry = defaultCountry;\n this.defaultCallingCode = defaultCallingCode;\n this.reset();\n }\n\n _createClass(AsYouType, [{\n key: \"getCountryAndCallingCode\",\n value: function getCountryAndCallingCode(optionsOrDefaultCountry) {\n // Set `defaultCountry` and `defaultCallingCode` options.\n var defaultCountry;\n var defaultCallingCode; // Turns out `null` also has type \"object\". Weird.\n\n if (optionsOrDefaultCountry) {\n if (_typeof(optionsOrDefaultCountry) === 'object') {\n defaultCountry = optionsOrDefaultCountry.defaultCountry;\n defaultCallingCode = optionsOrDefaultCountry.defaultCallingCode;\n } else {\n defaultCountry = optionsOrDefaultCountry;\n }\n }\n\n if (defaultCountry && !this.metadata.hasCountry(defaultCountry)) {\n defaultCountry = undefined;\n }\n\n if (defaultCallingCode) {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (this.metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n defaultCountry = '001';\n }\n }\n }\n\n return [defaultCountry, defaultCallingCode];\n }\n /**\r\n * Inputs \"next\" phone number characters.\r\n * @param {string} text\r\n * @return {string} Formatted phone number characters that have been input so far.\r\n */\n\n }, {\n key: \"input\",\n value: function input(text) {\n var _this$parser$input = this.parser.input(text, this.state),\n digits = _this$parser$input.digits,\n justLeadingPlus = _this$parser$input.justLeadingPlus;\n\n if (justLeadingPlus) {\n this.formattedOutput = '+';\n } else if (digits) {\n this.determineTheCountryIfNeeded(); // Match the available formats by the currently available leading digits.\n\n if (this.state.nationalSignificantNumber) {\n this.formatter.narrowDownMatchingFormats(this.state);\n }\n\n var formattedNationalNumber;\n\n if (this.metadata.hasSelectedNumberingPlan()) {\n formattedNationalNumber = this.formatter.format(digits, this.state);\n }\n\n if (formattedNationalNumber === undefined) {\n // See if another national (significant) number could be re-extracted.\n if (this.parser.reExtractNationalSignificantNumber(this.state)) {\n this.determineTheCountryIfNeeded(); // If it could, then re-try formatting the new national (significant) number.\n\n var nationalDigits = this.state.getNationalDigits();\n\n if (nationalDigits) {\n formattedNationalNumber = this.formatter.format(nationalDigits, this.state);\n }\n }\n }\n\n this.formattedOutput = formattedNationalNumber ? this.getFullNumber(formattedNationalNumber) : this.getNonFormattedNumber();\n }\n\n return this.formattedOutput;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n var _this = this;\n\n this.state = new AsYouTypeState({\n onCountryChange: function onCountryChange(country) {\n // Before version `1.6.0`, the official `AsYouType` formatter API\n // included the `.country` property of an `AsYouType` instance.\n // Since that property (along with the others) have been moved to\n // `this.state`, `this.country` property is emulated for compatibility\n // with the old versions.\n _this.country = country;\n },\n onCallingCodeChange: function onCallingCodeChange(country, callingCode) {\n _this.metadata.selectNumberingPlan(country, callingCode);\n\n _this.formatter.reset(_this.metadata.numberingPlan, _this.state);\n\n _this.parser.reset(_this.metadata.numberingPlan);\n }\n });\n this.formatter = new AsYouTypeFormatter({\n state: this.state,\n metadata: this.metadata\n });\n this.parser = new AsYouTypeParser({\n defaultCountry: this.defaultCountry,\n defaultCallingCode: this.defaultCallingCode,\n metadata: this.metadata,\n state: this.state,\n onNationalSignificantNumberChange: function onNationalSignificantNumberChange() {\n _this.determineTheCountryIfNeeded();\n\n _this.formatter.reset(_this.metadata.numberingPlan, _this.state);\n }\n });\n this.state.reset(this.defaultCountry, this.defaultCallingCode);\n this.formattedOutput = '';\n return this;\n }\n /**\r\n * Returns `true` if the phone number is being input in international format.\r\n * In other words, returns `true` if and only if the parsed phone number starts with a `\"+\"`.\r\n * @return {boolean}\r\n */\n\n }, {\n key: \"isInternational\",\n value: function isInternational() {\n return this.state.international;\n }\n /**\r\n * Returns the \"country calling code\" part of the phone number.\r\n * Returns `undefined` if the number is not being input in international format.\r\n * Returns \"country calling code\" for \"non-geographic\" phone numbering plans too.\r\n * @return {string} [callingCode]\r\n */\n\n }, {\n key: \"getCallingCode\",\n value: function getCallingCode() {\n return this.state.callingCode;\n } // A legacy alias.\n\n }, {\n key: \"getCountryCallingCode\",\n value: function getCountryCallingCode() {\n return this.getCallingCode();\n }\n /**\r\n * Returns a two-letter country code of the phone number.\r\n * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n * Returns `undefined` if no phone number has been input yet.\r\n * @return {string} [country]\r\n */\n\n }, {\n key: \"getCountry\",\n value: function getCountry() {\n var _this$state = this.state,\n digits = _this$state.digits,\n country = _this$state.country; // If no digits have been input yet,\n // then `this.country` is the `defaultCountry`.\n // Won't return the `defaultCountry` in such case.\n\n if (!digits) {\n return;\n }\n\n var countryCode = country;\n /* istanbul ignore if */\n\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n // `AsYouType.getCountry()` returns `undefined`\n // for \"non-geographic\" phone numbering plans.\n if (countryCode === '001') {\n countryCode = undefined;\n }\n }\n\n return countryCode;\n }\n }, {\n key: \"determineTheCountryIfNeeded\",\n value: function determineTheCountryIfNeeded() {\n // Suppose a user enters a phone number in international format,\n // and there're several countries corresponding to that country calling code,\n // and a country has been derived from the number, and then\n // a user enters one more digit and the number is no longer\n // valid for the derived country, so the country should be re-derived\n // on every new digit in those cases.\n //\n // If the phone number is being input in national format,\n // then it could be a case when `defaultCountry` wasn't specified\n // when creating `AsYouType` instance, and just `defaultCallingCode` was specified,\n // and that \"calling code\" could correspond to a \"non-geographic entity\",\n // or there could be several countries corresponding to that country calling code.\n // In those cases, `this.country` is `undefined` and should be derived\n // from the number. Again, if country calling code is ambiguous, then\n // `this.country` should be re-derived with each new digit.\n //\n if (!this.state.country || this.isCountryCallingCodeAmbiguous()) {\n this.determineTheCountry();\n }\n } // Prepends `+CountryCode ` in case of an international phone number\n\n }, {\n key: \"getFullNumber\",\n value: function getFullNumber(formattedNationalNumber) {\n var _this2 = this;\n\n if (this.isInternational()) {\n var prefix = function prefix(text) {\n return _this2.formatter.getInternationalPrefixBeforeCountryCallingCode(_this2.state, {\n spacing: text ? true : false\n }) + text;\n };\n\n var callingCode = this.state.callingCode;\n\n if (!callingCode) {\n return prefix(\"\".concat(this.state.getDigitsWithoutInternationalPrefix()));\n }\n\n if (!formattedNationalNumber) {\n return prefix(callingCode);\n }\n\n return prefix(\"\".concat(callingCode, \" \").concat(formattedNationalNumber));\n }\n\n return formattedNationalNumber;\n }\n }, {\n key: \"getNonFormattedNationalNumberWithPrefix\",\n value: function getNonFormattedNationalNumberWithPrefix() {\n var _this$state2 = this.state,\n nationalSignificantNumber = _this$state2.nationalSignificantNumber,\n complexPrefixBeforeNationalSignificantNumber = _this$state2.complexPrefixBeforeNationalSignificantNumber,\n nationalPrefix = _this$state2.nationalPrefix;\n var number = nationalSignificantNumber;\n var prefix = complexPrefixBeforeNationalSignificantNumber || nationalPrefix;\n\n if (prefix) {\n number = prefix + number;\n }\n\n return number;\n }\n }, {\n key: \"getNonFormattedNumber\",\n value: function getNonFormattedNumber() {\n var nationalSignificantNumberMatchesInput = this.state.nationalSignificantNumberMatchesInput;\n return this.getFullNumber(nationalSignificantNumberMatchesInput ? this.getNonFormattedNationalNumberWithPrefix() : this.state.getNationalDigits());\n }\n }, {\n key: \"getNonFormattedTemplate\",\n value: function getNonFormattedTemplate() {\n var number = this.getNonFormattedNumber();\n\n if (number) {\n return number.replace(/[\\+\\d]/g, DIGIT_PLACEHOLDER);\n }\n }\n }, {\n key: \"isCountryCallingCodeAmbiguous\",\n value: function isCountryCallingCodeAmbiguous() {\n var callingCode = this.state.callingCode;\n var countryCodes = this.metadata.getCountryCodesForCallingCode(callingCode);\n return countryCodes && countryCodes.length > 1;\n } // Determines the country of the phone number\n // entered so far based on the country phone code\n // and the national phone number.\n\n }, {\n key: \"determineTheCountry\",\n value: function determineTheCountry() {\n this.state.setCountry(getCountryByCallingCode(this.isInternational() ? this.state.callingCode : this.defaultCallingCode, this.state.nationalSignificantNumber, this.metadata));\n }\n /**\r\n * Returns an instance of `PhoneNumber` class.\r\n * Will return `undefined` if no national (significant) number\r\n * digits have been entered so far, or if no `defaultCountry` has been\r\n * set and the user enters a phone number not in international format.\r\n */\n\n }, {\n key: \"getNumber\",\n value: function getNumber() {\n var _this$state3 = this.state,\n nationalSignificantNumber = _this$state3.nationalSignificantNumber,\n carrierCode = _this$state3.carrierCode;\n\n if (this.isInternational()) {\n if (!this.state.callingCode) {\n return;\n }\n } else {\n if (!this.state.country && !this.defaultCallingCode) {\n return;\n }\n }\n\n if (!nationalSignificantNumber) {\n return;\n }\n\n var countryCode = this.getCountry();\n var callingCode = this.getCountryCallingCode() || this.defaultCallingCode;\n var phoneNumber = new PhoneNumber(countryCode || callingCode, nationalSignificantNumber, this.metadata.metadata);\n\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n } // Phone number extensions are not supported by \"As You Type\" formatter.\n\n\n return phoneNumber;\n }\n /**\r\n * Returns `true` if the phone number is \"possible\".\r\n * Is just a shortcut for `PhoneNumber.isPossible()`.\r\n * @return {boolean}\r\n */\n\n }, {\n key: \"isPossible\",\n value: function isPossible() {\n var phoneNumber = this.getNumber();\n\n if (!phoneNumber) {\n return false;\n }\n\n return phoneNumber.isPossible();\n }\n /**\r\n * Returns `true` if the phone number is \"valid\".\r\n * Is just a shortcut for `PhoneNumber.isValid()`.\r\n * @return {boolean}\r\n */\n\n }, {\n key: \"isValid\",\n value: function isValid() {\n var phoneNumber = this.getNumber();\n\n if (!phoneNumber) {\n return false;\n }\n\n return phoneNumber.isValid();\n }\n /**\r\n * @deprecated\r\n * This method is used in `react-phone-number-input/source/input-control.js`\r\n * in versions before `3.0.16`.\r\n */\n\n }, {\n key: \"getNationalNumber\",\n value: function getNationalNumber() {\n return this.state.nationalSignificantNumber;\n }\n /**\r\n * Returns the phone number characters entered by the user.\r\n * @return {string}\r\n */\n\n }, {\n key: \"getChars\",\n value: function getChars() {\n return (this.state.international ? '+' : '') + this.state.digits;\n }\n /**\r\n * Returns the template for the formatted phone number.\r\n * @return {string}\r\n */\n\n }, {\n key: \"getTemplate\",\n value: function getTemplate() {\n return this.formatter.getTemplate(this.state) || this.getNonFormattedTemplate() || '';\n }\n }]);\n\n return AsYouType;\n}();\n\nexport { AsYouType as default };","import metadata from '../metadata';\nimport { AsYouType as _AsYouType } from '../../core/index';\nexport function AsYouType(country) {\n return _AsYouType.call(this, country, metadata);\n}\nAsYouType.prototype = Object.create(_AsYouType.prototype, {});\nAsYouType.prototype.constructor = AsYouType;","// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n\nimport Rails from \"@rails/ujs\"\n// import \"@hotwired/turbo-rails\"\nimport * as ActiveStorage from \"@rails/activestorage\"\n// import \"channels\"\nimport { AsYouType } from \"libphonenumber-js/max\"\n\nimport \"@oddcamp/cocoon-vanilla-js\";\n\nRails.start()\nActiveStorage.start()\n\n\n// import \"controllers\"\n var initAddressAutocomplete = function (element, country) {\n console.log(\"INIT ADDRESS AUTO COMPLETE\", country)\n let country_code = 'AU';\n\n switch(country) {\n case 'Australia':\n country_code = 'AU';\n break;\n case 'New Zealand':\n country_code = 'NZ';\n break;\n }\n console.log(\"INIT ADDRESS AUTO COMPLETE RESTRUCT\", country_code)\n\n let options = {\n componentRestrictions: { country: country_code },\n types: ['address'],\n };\n\n let address_autocomplete = new google.maps.places.Autocomplete(element, options);\n google.maps.event.clearInstanceListeners(address_autocomplete);\n\n google.maps.event.addListener(\n address_autocomplete, \n 'place_changed', \n function(){fillInAddress.call(address_autocomplete, element)}\n );\n },\n fillInAddress = function(element) {\n // Get the place details from the autocomplete object.\n var place = this.getPlace();\n let country = place.address_components.find(x => x.types[0] == 'country').short_name;\n console.log(\"Found Country\", country);\n let address = {}\n \n switch (country) {\n case \"AU\":\n address = getAUAddressObject(place.address_components);\n break;\n case \"NZ\":\n address = getNZAddressObject(place.address_components);\n break;\n }\n \n let form = element.closest('.address-fields');\n for(const prop in address) {\n let input = form.querySelector(`.${prop}`);\n if (input) {\n input.value = address[prop];\n }\n }\n }\n\n\n\n function getNZAddressObject(address_components) {\n var ShouldBeComponent = {\n unit: [\"subpremise\"],\n street_number: [\"street_number\"],\n street: [\"street_address\", \"route\"],\n suburb: [\"sublocality_level_1\", \"sublocality\"],\n city: [\"locality\"],\n region: [\"administrative_area_level_1\"],\n postal_code: [\"postal_code\"],\n };\n \n var address = {\n unit: \"\",\n street_number: \"\",\n street: \"\",\n street_address: \"\",\n suburb: \"\",\n city: \"\",\n region: \"\",\n postal_code: \"\"\n };\n address_components.forEach(component => {\n for (var shouldBe in ShouldBeComponent) {\n if (ShouldBeComponent[shouldBe].some(x => component.types.includes(x))) {\n //if (ShouldBeComponent[shouldBe].indexOf(component.types[0]) !== -1) {\n address[shouldBe] = component.long_name;\n }\n }\n });\n if (address.unit !== \"\") {\n address.street_address += `${address.unit}/${address.street_number}`\n } else {\n address.street_address += `${address.street_number}`\n }\n address.street_address += ` ${address.street}`\n \n return address;\n }\n \n function getAUAddressObject(address_components) {\n var ShouldBeComponent = {\n unit: [\"subpremise\"],\n street_number: [\"street_number\"],\n street: [\"street_address\", \"route\", \"intersection\"],\n suburb: [\"locality\"],\n region: [\"administrative_area_level_1\"],\n postal_code: [\"postal_code\"]\n };\n \n var address = {\n unit: \"\",\n street_number: \"\",\n street: \"\",\n street_address: \"\",\n suburb: \"\",\n region: \"\",\n postal_code: \"\"\n };\n address_components.forEach(component => {\n for (var shouldBe in ShouldBeComponent) {\n if (ShouldBeComponent[shouldBe].some(x => component.types.includes(x))) {\n //if (ShouldBeComponent[shouldBe].indexOf(component.types[0]) !== -1) {\n address[shouldBe] = shouldBe == \"region\" ? component.short_name : component.long_name;\n }\n }\n });\n if (address.unit !== \"\") {\n address.street_address += `${address.unit}/${address.street_number}`\n } else {\n address.street_address += `${address.street_number}`\n }\n address.street_address += ` ${address.street}`\n \n return address;\n }\n \n const stored_countries = {};\n\n const replaceCountryFields = () => {\n document.querySelectorAll(`select.address-country`).forEach(element => {\n let identifier = element.dataset.identifier;\n\n console.log(\"replacing \", identifier);\n\n if (!stored_countries[identifier] || Object.keys(stored_countries[identifier]).length == 0) {\n stored_countries[identifier] = {};\n document.querySelectorAll(`div[data-identifier='${identifier}']`).forEach(country_fields => {\n stored_countries[identifier][country_fields.dataset.country] = country_fields;\n });\n }\n\n const countries_node = document.getElementById(`${identifier}_countries`);\n let selected_country = (element.value ?? \"Australia\").toLowerCase().replace(/ /g, \"_\");\n console.log(\"with \", selected_country);\n while (countries_node.firstChild) {\n countries_node.removeChild(countries_node.firstChild);\n }\n countries_node.appendChild(stored_countries[identifier][selected_country]);\n });\n }\n\n const decorateOptionalSteps = () => {\n let inputs = Array.from(document.querySelectorAll('input:not([type=hidden]),select,textarea'));\n let nextButton = document.querySelector('.text-submit');\n if (inputs.length == 0) {\n nextButton.innerHTML = \"Submit\";\n }\n else if (inputs.some(x => x.hasAttribute('required'))) {\n nextButton.innerHTML = \"Next\";\n } else {\n nextButton.innerHTML = \"Skip\";\n }\n\n inputs.filter(x => !x.hasAttribute('required')).forEach(element => {\n element.addEventListener(\"keyup\", x => {\n nextButton.innerHTML = \"Next\";\n })\n });\n }\n\n\n let ready = (callback) => {\n if (document.readyState != \"loading\") callback();\n else document.addEventListener(\"DOMContentLoaded\", callback);\n }\n\n function toggle_delivery(checked) {\n if (checked) {\n document.querySelectorAll('*[id^=account_application_postal_address_attributes]')\n .forEach(x => x.disabled = true)\n } else {\n document.querySelectorAll('*[id^=account_application_postal_address_attributes]')\n .forEach(x => x.disabled = false)\n }\n }\n\n ready(() => {\n const otherBusinessNameInnput = document.getElementById(\"other_business_name\");\n const otherBusinessNameRadios = document.getElementsByName(\"account_application[business_name]\");\n\n\n if (otherBusinessNameInnput) {\n otherBusinessNameInnput.addEventListener('change', e => {\n const other = document.getElementById(\"account_application_business_name_other\");\n other.checked = true;\n other.value = e.target.value;\n });\n }\n\n if (otherBusinessNameRadios) {\n console.log(otherBusinessNameRadios)\n const other = document.getElementById(\"other_business_name\");\n\n for (let i = 0; i < otherBusinessNameRadios.length; i++) {\n let item = otherBusinessNameRadios[i];\n\n if (item.id == \"account_application_business_name_other\" && item.checked) {\n other.setAttribute('required','required');\n } else {\n other.removeAttribute('required');\n }\n \n item.addEventListener('change', e => {\n console.log(\"other change\")\n const other = document.getElementById(\"other_business_name\");\n\n if (e.target.id == 'account_application_business_name_other' && e.target.checked) {\n other.setAttribute('required','required');\n } else {\n other.removeAttribute(\"required\");\n }\n });\n }\n\n // if (otherBusinessNameRadio.checked) {\n // const other = document.getElementById(\"other_business_name\");\n // other.setAttribute('required','required');\n\n // } else {\n // other.setAttribute(\"required\");\n // }\n\n \n }\n \n \n\n google.maps.event.addDomListener(window, 'load', function(){\n var inputs=document.querySelectorAll('.address-autocomplete');\n for(var i=0;i i.addEventListener('keyup', (e) => {\n let formattedNumber = new AsYouType('AU').input(e.currentTarget.value);\n i.value = formattedNumber;\n }));\n\n toggle_delivery(true);\n replaceCountryFields();\n decorateOptionalSteps();\n\n let cocoonLinks = document.getElementsByClassName('remove_fields');\n if (cocoonLinks && cocoonLinks.length > 0) {\n console.log(\"found cocoon links\");\n cocoonLinks[0].classList.add('d-none');\n cocoonLinks[0].classList.add('disabled');\n }\n\n document.addEventListener('change', function(event) {\n if (event.target.classList.contains('address-country')) {\n replaceCountryFields();\n\n var inputs=document.querySelectorAll('.address-autocomplete');\n for(var i=0;i