ソースを参照

phone extension + metadata

Robin Herbots 12 年 前
コミット
1efbd8b1d7

+ 1 - 1
build.properties

@@ -7,7 +7,7 @@ distdir = dist
 
 build.major = 2
 build.minor = 3
-build.revision = 47
+build.revision = 48
 
 target = jquery.inputmask.bundle.js
 target.min = jquery.inputmask.bundle.min.js

+ 1 - 1
component.json

@@ -1,6 +1,6 @@
 {
     "name": "jquery.inputmask",
-    "version": "2.3.47",
+    "version": "2.3.48",
     "main": "./dist/jquery.inputmask.bundle.js",
     "dependencies": {
         "jquery": ">=1.5"

BIN
dist/jQuery.InputMask.2.3.47.nupkg


BIN
dist/jQuery.InputMask.2.3.48.nupkg


+ 64 - 46
dist/jquery.inputmask.bundle.js

@@ -3,7 +3,7 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2013 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 2.3.47
+* Version: 2.3.48
 */
 
 (function ($) {
@@ -513,7 +513,8 @@
 
             function maskScope(masksets, activeMasksetIndex) {
                 var isRTL = false,
-                    valueOnFocus = getActiveBuffer().join('');
+                    valueOnFocus = getActiveBuffer().join(''),
+                    $el;
 
                 //maskset helperfunctions
                 function getActiveMaskSet() {
@@ -623,27 +624,33 @@
                             var maskPos = pos;
                             var lvp = getActiveMaskSet()['lastValidPosition'],
                                 rsltValid;
-                            if (lvp == actualLVP && (maskPos - actualLVP) > 1) {
-                                for (var i = lvp == -1 ? 0 : lvp; i < maskPos; i++) {
-                                    rsltValid = _isValid(i, getActiveMaskSet(), actualBuffer[i], true);
-                                    if (rsltValid === false) {
-                                        break;
-                                    } else {
-                                        setBufferElement(getActiveBuffer(), i, actualBuffer[i], true);
-                                        if (rsltValid === true) {
-                                            rsltValid = { "pos": i }; //always take a possible corrected maskposition into account
+                            if (lvp == actualLVP) {
+                                if ((maskPos - actualLVP) > 1) {
+                                    for (var i = lvp == -1 ? 0 : lvp; i < maskPos; i++) {
+                                        rsltValid = _isValid(i, getActiveMaskSet(), actualBuffer[i], true);
+                                        if (rsltValid === false) {
+                                            break;
+                                        } else {
+                                            setBufferElement(getActiveBuffer(), i, actualBuffer[i], true);
+                                            if (rsltValid === true) {
+                                                rsltValid = { "pos": i }; //always take a possible corrected maskposition into account
+                                            }
+                                            var newValidPosition = rsltValid.pos || i;
+                                            if (getActiveMaskSet()['lastValidPosition'] < newValidPosition)
+                                                getActiveMaskSet()['lastValidPosition'] = newValidPosition; //set new position from isValid
                                         }
-                                        var newValidPosition = rsltValid.pos || i;
-                                        if (getActiveMaskSet()['lastValidPosition'] < newValidPosition)
-                                            getActiveMaskSet()['lastValidPosition'] = newValidPosition; //set new position from isValid
                                     }
                                 }
-                            }
-
-                            if (!isMask(maskPos) && !_isValid(maskPos, getActiveMaskSet(), c, strict)) {
-                                maskPos = seekNext(pos);
-                                maskForwards.push(activeMasksetIndex);
-                                //console.log('maskforwards ' + activeMasksetIndex);
+                                //does the input match on a further position?
+                                if (!isMask(maskPos) && !_isValid(maskPos, getActiveMaskSet(), c, strict)) {
+                                    var maxForward = seekNext(maskPos) - maskPos;
+                                    for (var fw = 0; fw < maxForward; fw++) {
+                                        if (_isValid(++maskPos, getActiveMaskSet(), c, strict) !== false)
+                                            break;
+                                    }
+                                    maskForwards.push(activeMasksetIndex);
+                                    //console.log('maskforward ' + activeMasksetIndex + " pos " + pos + " maskPos " + maskPos);
+                                }
                             }
 
                             if (getActiveMaskSet()['lastValidPosition'] >= actualLVP || activeMasksetIndex == currentActiveMasksetIndex) {
@@ -692,6 +699,7 @@
                         clearBuffer(getActiveBuffer(), seekNext(highestValid["lastValidPosition"]), getMaskLength());
                         getActiveMaskSet()["writeOutBuffer"] = true;
                     }
+                    $el.data('_inputmask')['activeMasksetIndex'] = activeMasksetIndex; //store the activeMasksetIndex
                 }
 
                 function isMask(pos) {
@@ -942,11 +950,11 @@
                 }
 
                 this.mask = function (el) {
-                    var $input = $(el);
-                    if (!$input.is(":input")) return;
+                    $el = $(el);
+                    if (!$el.is(":input")) return;
 
                     //store tests & original buffer in the input element - used to get the unmasked value
-                    $input.data('_inputmask', {
+                    $el.data('_inputmask', {
                         'masksets': masksets,
                         'activeMasksetIndex': activeMasksetIndex,
                         'opts': opts,
@@ -955,16 +963,16 @@
 
                     //show tooltip
                     if (opts.showTooltip) {
-                        $input.prop("title", getActiveMaskSet()["mask"]);
+                        $el.prop("title", getActiveMaskSet()["mask"]);
                     }
 
                     //correct greedy setting if needed
                     getActiveMaskSet()['greedy'] = getActiveMaskSet()['greedy'] ? getActiveMaskSet()['greedy'] : getActiveMaskSet()['repeat'] == 0;
 
                     //handle maxlength attribute
-                    if ($input.attr("maxLength") != null) //only when the attribute is set
+                    if ($el.attr("maxLength") != null) //only when the attribute is set
                     {
-                        var maxLength = $input.prop('maxLength');
+                        var maxLength = $el.prop('maxLength');
                         if (maxLength > -1) { //handle *-repeat
                             $.each(masksets, function (ndx, ms) {
                                 if (typeof (ms) == "object") {
@@ -979,7 +987,7 @@
                             if (getActiveMaskSet()['greedy'] == false) {
                                 getActiveMaskSet()['repeat'] = Math.round(maxLength / getActiveBufferTemplate().length);
                             }
-                            $input.prop('maxLength', getMaskLength() * 2);
+                            $el.prop('maxLength', getMaskLength() * 2);
                         }
                     }
 
@@ -991,24 +999,24 @@
 
                     if (opts.numericInput) opts.isNumeric = opts.numericInput;
                     if (el.dir == "rtl" || (opts.numericInput && opts.rightAlignNumerics) || (opts.isNumeric && opts.rightAlignNumerics))
-                        $input.css("text-align", "right");
+                        $el.css("text-align", "right");
 
                     if (el.dir == "rtl" || opts.numericInput) {
                         el.dir = "ltr";
-                        $input.removeAttr("dir");
-                        var inputData = $input.data('_inputmask');
+                        $el.removeAttr("dir");
+                        var inputData = $el.data('_inputmask');
                         inputData['isRTL'] = true;
-                        $input.data('_inputmask', inputData);
+                        $el.data('_inputmask', inputData);
                         isRTL = true;
                     }
 
                     //unbind all events - to make sure that no other mask will interfere when re-masking
-                    $input.unbind(".inputmask");
-                    $input.removeClass('focus.inputmask');
+                    $el.unbind(".inputmask");
+                    $el.removeClass('focus.inputmask');
                     //bind events
-                    $input.closest('form').bind("submit", function () { //trigger change on submit if any
+                    $el.closest('form').bind("submit", function () { //trigger change on submit if any
                         if (valueOnFocus != getActiveBuffer().join('')) {
-                            $input.change();
+                            $el.change();
                         }
                     }).bind('reset', function () {
                         $.each(masksets, function (ndx, ms) {
@@ -1018,7 +1026,7 @@
                             }
                         });
                     });
-                    $input.bind("mouseenter.inputmask", function () {
+                    $el.bind("mouseenter.inputmask", function () {
                         var $input = $(this), input = this;
                         if (!$input.hasClass('focus.inputmask') && opts.showMaskOnHover) {
                             if (input._valueGet() != getActiveBuffer().join('')) {
@@ -1141,7 +1149,7 @@
                     } catch (e) {
                     }
                     if (activeElement === el) { //position the caret when in focus
-                        $input.addClass('focus.inputmask');
+                        $el.addClass('focus.inputmask');
                         caret(el, seekNext(getActiveMaskSet()["lastValidPosition"]));
                     } else if (opts.clearMaskOnLostFocus) {
                         if (getActiveBuffer().join('') == getActiveBufferTemplate().join('')) {
@@ -1341,7 +1349,7 @@
                     function keydownEvent(e) {
                         //Safari 5.1.x - modal dialog fires keypress twice workaround
                         skipKeyPressEvent = false;
-                        var input = this, k = e.keyCode, pos = caret(input);
+                        var input = this, $input = $(input), k = e.keyCode, pos = caret(input);
 
                         //backspace, delete, and escape get special treatment
                         if (k == opts.keyCode.BACKSPACE || k == opts.keyCode.DELETE || (iphone && k == 127) || (e.ctrlKey && k == 88)) { //backspace/delete
@@ -1430,7 +1438,7 @@
                             determineActiveMasksetIndex();
                             writeBuffer(input, getActiveBuffer(), getActiveMaskSet()["p"]);
                             if (input._valueGet() == getActiveBufferTemplate().join(''))
-                                $(input).trigger('cleared');
+                               $input.trigger('cleared');
 
                             if (opts.showTooltip) { //update tooltip
                                 $input.prop("title", getActiveMaskSet()["mask"]);
@@ -1671,7 +1679,7 @@ Input Mask plugin extensions
 http://github.com/RobinHerbots/jquery.inputmask
 Copyright (c) 2010 - 2013 Robin Herbots
 Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-Version: 2.3.47
+Version: 2.3.48
 
 Optional extensions on the jquery.inputmask base
 */
@@ -1773,7 +1781,7 @@ Input Mask plugin extensions
 http://github.com/RobinHerbots/jquery.inputmask
 Copyright (c) 2010 - 2012 Robin Herbots
 Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-Version: 2.3.47
+Version: 2.3.48
 
 Optional extensions on the jquery.inputmask base
 */
@@ -2250,7 +2258,7 @@ Input Mask plugin extensions
 http://github.com/RobinHerbots/jquery.inputmask
 Copyright (c) 2010 - 2013 Robin Herbots
 Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-Version: 2.3.47
+Version: 2.3.48
 
 Optional extensions on the jquery.inputmask base
 */
@@ -2419,7 +2427,7 @@ Input Mask plugin extensions
 http://github.com/RobinHerbots/jquery.inputmask
 Copyright (c) 2010 - 2013 Robin Herbots
 Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-Version: 2.3.47
+Version: 2.3.48
 
 Regex extensions on the jquery.inputmask base
 Allows for using regular expressions as a mask
@@ -2589,13 +2597,23 @@ Input Mask plugin extensions
 http://github.com/RobinHerbots/jquery.inputmask
 Copyright (c) 2010 - 2013 Robin Herbots
 Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-Version: 2.3.47
+Version: 2.3.48
+
+Phone extension based on https://github.com/andr-04/inputmask-multi
+When using this extension make sure you specify the correct url to get the masks
+
+ $(selector).inputmask("phone", {
+                url: "Scripts/jquery.inputmask/phone-codes/phone-codes.json", 
+                onKeyValidation: function () { //show some metadata in the console
+                    console.log($(this).inputmask("getmetadata")["name_en"]);
+                } 
+  });
+
 
-Phone extension based on https://github.com/andr-04/inputmask-multi - DO NOT USE YET!!  in TEST
 */
 $.extend($.inputmask.defaults.aliases, {
     'phone': {
-        url: "phone-codes.json",
+        url: "phone-codes/phone-codes.json",
         mask: function (opts) {
             opts.definitions = {
                 'p': {

ファイルの差分が大きいため隠しています
+ 62 - 62
dist/jquery.inputmask.bundle.min.js


ファイルの差分が大きいため隠しています
+ 46 - 46
dist/min/jquery.inputmask.js


+ 1 - 1
dist/min/jquery.inputmask.phone.extensions.js

@@ -1 +1 @@
-$.extend($.inputmask.defaults.aliases,{phone:{url:"phone-codes.json",mask:function(a){a.definitions={p:{validator:function(){return!1},cardinality:1},"#":{validator:"[0-9]",cardinality:1}};var b=[];$.ajax({url:a.url,async:!1,dataType:"json",success:function(a){b=a}});b.splice(0,0,"+p(ppp)ppp-pppp");return b}}});
+$.extend($.inputmask.defaults.aliases,{phone:{url:"phone-codes/phone-codes.json",mask:function(a){a.definitions={p:{validator:function(){return!1},cardinality:1},"#":{validator:"[0-9]",cardinality:1}};var b=[];$.ajax({url:a.url,async:!1,dataType:"json",success:function(a){b=a}});b.splice(0,0,"+p(ppp)ppp-pppp");return b}}});

+ 1 - 1
jquery.inputmask.jquery.json

@@ -8,7 +8,7 @@
 		"inputmask",
 		"mask"
     ],
-    "version": "2.3.47",
+    "version": "2.3.48",
     "author": {
         "name": "Robin Herbots",
         "url": "http://github.com/RobinHerbots/jquery.inputmask"

+ 46 - 38
js/jquery.inputmask.js

@@ -513,7 +513,8 @@
 
             function maskScope(masksets, activeMasksetIndex) {
                 var isRTL = false,
-                    valueOnFocus = getActiveBuffer().join('');
+                    valueOnFocus = getActiveBuffer().join(''),
+                    $el;
 
                 //maskset helperfunctions
                 function getActiveMaskSet() {
@@ -623,27 +624,33 @@
                             var maskPos = pos;
                             var lvp = getActiveMaskSet()['lastValidPosition'],
                                 rsltValid;
-                            if (lvp == actualLVP && (maskPos - actualLVP) > 1) {
-                                for (var i = lvp == -1 ? 0 : lvp; i < maskPos; i++) {
-                                    rsltValid = _isValid(i, getActiveMaskSet(), actualBuffer[i], true);
-                                    if (rsltValid === false) {
-                                        break;
-                                    } else {
-                                        setBufferElement(getActiveBuffer(), i, actualBuffer[i], true);
-                                        if (rsltValid === true) {
-                                            rsltValid = { "pos": i }; //always take a possible corrected maskposition into account
+                            if (lvp == actualLVP) {
+                                if ((maskPos - actualLVP) > 1) {
+                                    for (var i = lvp == -1 ? 0 : lvp; i < maskPos; i++) {
+                                        rsltValid = _isValid(i, getActiveMaskSet(), actualBuffer[i], true);
+                                        if (rsltValid === false) {
+                                            break;
+                                        } else {
+                                            setBufferElement(getActiveBuffer(), i, actualBuffer[i], true);
+                                            if (rsltValid === true) {
+                                                rsltValid = { "pos": i }; //always take a possible corrected maskposition into account
+                                            }
+                                            var newValidPosition = rsltValid.pos || i;
+                                            if (getActiveMaskSet()['lastValidPosition'] < newValidPosition)
+                                                getActiveMaskSet()['lastValidPosition'] = newValidPosition; //set new position from isValid
                                         }
-                                        var newValidPosition = rsltValid.pos || i;
-                                        if (getActiveMaskSet()['lastValidPosition'] < newValidPosition)
-                                            getActiveMaskSet()['lastValidPosition'] = newValidPosition; //set new position from isValid
                                     }
                                 }
-                            }
-
-                            if (!isMask(maskPos) && !_isValid(maskPos, getActiveMaskSet(), c, strict)) {
-                                maskPos = seekNext(pos);
-                                maskForwards.push(activeMasksetIndex);
-                                //console.log('maskforwards ' + activeMasksetIndex);
+                                //does the input match on a further position?
+                                if (!isMask(maskPos) && !_isValid(maskPos, getActiveMaskSet(), c, strict)) {
+                                    var maxForward = seekNext(maskPos) - maskPos;
+                                    for (var fw = 0; fw < maxForward; fw++) {
+                                        if (_isValid(++maskPos, getActiveMaskSet(), c, strict) !== false)
+                                            break;
+                                    }
+                                    maskForwards.push(activeMasksetIndex);
+                                    //console.log('maskforward ' + activeMasksetIndex + " pos " + pos + " maskPos " + maskPos);
+                                }
                             }
 
                             if (getActiveMaskSet()['lastValidPosition'] >= actualLVP || activeMasksetIndex == currentActiveMasksetIndex) {
@@ -692,6 +699,7 @@
                         clearBuffer(getActiveBuffer(), seekNext(highestValid["lastValidPosition"]), getMaskLength());
                         getActiveMaskSet()["writeOutBuffer"] = true;
                     }
+                    $el.data('_inputmask')['activeMasksetIndex'] = activeMasksetIndex; //store the activeMasksetIndex
                 }
 
                 function isMask(pos) {
@@ -942,11 +950,11 @@
                 }
 
                 this.mask = function (el) {
-                    var $input = $(el);
-                    if (!$input.is(":input")) return;
+                    $el = $(el);
+                    if (!$el.is(":input")) return;
 
                     //store tests & original buffer in the input element - used to get the unmasked value
-                    $input.data('_inputmask', {
+                    $el.data('_inputmask', {
                         'masksets': masksets,
                         'activeMasksetIndex': activeMasksetIndex,
                         'opts': opts,
@@ -955,16 +963,16 @@
 
                     //show tooltip
                     if (opts.showTooltip) {
-                        $input.prop("title", getActiveMaskSet()["mask"]);
+                        $el.prop("title", getActiveMaskSet()["mask"]);
                     }
 
                     //correct greedy setting if needed
                     getActiveMaskSet()['greedy'] = getActiveMaskSet()['greedy'] ? getActiveMaskSet()['greedy'] : getActiveMaskSet()['repeat'] == 0;
 
                     //handle maxlength attribute
-                    if ($input.attr("maxLength") != null) //only when the attribute is set
+                    if ($el.attr("maxLength") != null) //only when the attribute is set
                     {
-                        var maxLength = $input.prop('maxLength');
+                        var maxLength = $el.prop('maxLength');
                         if (maxLength > -1) { //handle *-repeat
                             $.each(masksets, function (ndx, ms) {
                                 if (typeof (ms) == "object") {
@@ -979,7 +987,7 @@
                             if (getActiveMaskSet()['greedy'] == false) {
                                 getActiveMaskSet()['repeat'] = Math.round(maxLength / getActiveBufferTemplate().length);
                             }
-                            $input.prop('maxLength', getMaskLength() * 2);
+                            $el.prop('maxLength', getMaskLength() * 2);
                         }
                     }
 
@@ -991,24 +999,24 @@
 
                     if (opts.numericInput) opts.isNumeric = opts.numericInput;
                     if (el.dir == "rtl" || (opts.numericInput && opts.rightAlignNumerics) || (opts.isNumeric && opts.rightAlignNumerics))
-                        $input.css("text-align", "right");
+                        $el.css("text-align", "right");
 
                     if (el.dir == "rtl" || opts.numericInput) {
                         el.dir = "ltr";
-                        $input.removeAttr("dir");
-                        var inputData = $input.data('_inputmask');
+                        $el.removeAttr("dir");
+                        var inputData = $el.data('_inputmask');
                         inputData['isRTL'] = true;
-                        $input.data('_inputmask', inputData);
+                        $el.data('_inputmask', inputData);
                         isRTL = true;
                     }
 
                     //unbind all events - to make sure that no other mask will interfere when re-masking
-                    $input.unbind(".inputmask");
-                    $input.removeClass('focus.inputmask');
+                    $el.unbind(".inputmask");
+                    $el.removeClass('focus.inputmask');
                     //bind events
-                    $input.closest('form').bind("submit", function () { //trigger change on submit if any
+                    $el.closest('form').bind("submit", function () { //trigger change on submit if any
                         if (valueOnFocus != getActiveBuffer().join('')) {
-                            $input.change();
+                            $el.change();
                         }
                     }).bind('reset', function () {
                         $.each(masksets, function (ndx, ms) {
@@ -1018,7 +1026,7 @@
                             }
                         });
                     });
-                    $input.bind("mouseenter.inputmask", function () {
+                    $el.bind("mouseenter.inputmask", function () {
                         var $input = $(this), input = this;
                         if (!$input.hasClass('focus.inputmask') && opts.showMaskOnHover) {
                             if (input._valueGet() != getActiveBuffer().join('')) {
@@ -1141,7 +1149,7 @@
                     } catch (e) {
                     }
                     if (activeElement === el) { //position the caret when in focus
-                        $input.addClass('focus.inputmask');
+                        $el.addClass('focus.inputmask');
                         caret(el, seekNext(getActiveMaskSet()["lastValidPosition"]));
                     } else if (opts.clearMaskOnLostFocus) {
                         if (getActiveBuffer().join('') == getActiveBufferTemplate().join('')) {
@@ -1341,7 +1349,7 @@
                     function keydownEvent(e) {
                         //Safari 5.1.x - modal dialog fires keypress twice workaround
                         skipKeyPressEvent = false;
-                        var input = this, k = e.keyCode, pos = caret(input);
+                        var input = this, $input = $(input), k = e.keyCode, pos = caret(input);
 
                         //backspace, delete, and escape get special treatment
                         if (k == opts.keyCode.BACKSPACE || k == opts.keyCode.DELETE || (iphone && k == 127) || (e.ctrlKey && k == 88)) { //backspace/delete
@@ -1430,7 +1438,7 @@
                             determineActiveMasksetIndex();
                             writeBuffer(input, getActiveBuffer(), getActiveMaskSet()["p"]);
                             if (input._valueGet() == getActiveBufferTemplate().join(''))
-                                $(input).trigger('cleared');
+                               $input.trigger('cleared');
 
                             if (opts.showTooltip) { //update tooltip
                                 $input.prop("title", getActiveMaskSet()["mask"]);

+ 12 - 2
js/jquery.inputmask.phone.extensions.js

@@ -5,11 +5,21 @@ Copyright (c) 2010 - 2013 Robin Herbots
 Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
 Version: 0.0.0
 
-Phone extension based on https://github.com/andr-04/inputmask-multi - DO NOT USE YET!!  in TEST
+Phone extension based on https://github.com/andr-04/inputmask-multi
+When using this extension make sure you specify the correct url to get the masks
+
+ $(selector).inputmask("phone", {
+                url: "Scripts/jquery.inputmask/phone-codes/phone-codes.json", 
+                onKeyValidation: function () { //show some metadata in the console
+                    console.log($(this).inputmask("getmetadata")["name_en"]);
+                } 
+  });
+
+
 */
 $.extend($.inputmask.defaults.aliases, {
     'phone': {
-        url: "phone-codes.json",
+        url: "phone-codes/phone-codes.json",
         mask: function (opts) {
             opts.definitions = {
                 'p': {

js/phone-codes.json → js/phone-codes/phone-codes.json


ファイルの差分が大きいため隠しています
+ 2403 - 0
js/phone-codes/phones-ru.json


+ 322 - 0
js/phone-codes/phones-us.json

@@ -0,0 +1,322 @@
+[
+	{ "mask": "+1(201)###-####", "cc": "US", "name_en": "USA", "desc_en": "New Jersey", "name_ru": "США", "desc_ru": "Нью-Джерси" },
+	{ "mask": "+1(202)###-####", "cc": "US", "name_en": "USA", "desc_en": "District of Columbia", "name_ru": "США", "desc_ru": "Округ Колумбия" },
+	{ "mask": "+1(203)###-####", "cc": "US", "name_en": "USA", "desc_en": "Connecticut", "name_ru": "США", "desc_ru": "Коннектикут" },
+	{ "mask": "+1(204)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Manitoba", "name_ru": "Канада", "desc_ru": "Манитоба" },
+	{ "mask": "+1(205)###-####", "cc": "US", "name_en": "USA", "desc_en": "Alabama", "name_ru": "США", "desc_ru": "Алабама" },
+	{ "mask": "+1(206)###-####", "cc": "US", "name_en": "USA", "desc_en": "Washington", "name_ru": "США", "desc_ru": "Вашингтон" },
+	{ "mask": "+1(207)###-####", "cc": "US", "name_en": "USA", "desc_en": "Maine", "name_ru": "США", "desc_ru": "Мэн" },
+	{ "mask": "+1(208)###-####", "cc": "US", "name_en": "USA", "desc_en": "Idaho", "name_ru": "США", "desc_ru": "Айдахо" },
+	{ "mask": "+1(209)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(210)###-####", "cc": "US", "name_en": "USA", "desc_en": "Texas", "name_ru": "США", "desc_ru": "Техас" },
+	{ "mask": "+1(212)###-####", "cc": "US", "name_en": "USA", "desc_en": "New York", "name_ru": "США", "desc_ru": "Нью-Йорк" },
+	{ "mask": "+1(213)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(214)###-####", "cc": "US", "name_en": "USA", "desc_en": "Texas", "name_ru": "США", "desc_ru": "Техас" },
+	{ "mask": "+1(215)###-####", "cc": "US", "name_en": "USA", "desc_en": "Pennsylvania", "name_ru": "США", "desc_ru": "Пенсильвания" },
+	{ "mask": "+1(216)###-####", "cc": "US", "name_en": "USA", "desc_en": "Ohio", "name_ru": "США", "desc_ru": "Огайо" },
+	{ "mask": "+1(217)###-####", "cc": "US", "name_en": "USA", "desc_en": "Illinois", "name_ru": "США", "desc_ru": "Иллинойс" },
+	{ "mask": "+1(218)###-####", "cc": "US", "name_en": "USA", "desc_en": "Minnesota", "name_ru": "США", "desc_ru": "Миннесота" },
+	{ "mask": "+1(219)###-####", "cc": "US", "name_en": "USA", "desc_en": "Indiana", "name_ru": "США", "desc_ru": "Индиана" },
+	{ "mask": "+1(224)###-####", "cc": "US", "name_en": "USA", "desc_en": "Illinois", "name_ru": "США", "desc_ru": "Иллинойс" },
+	{ "mask": "+1(225)###-####", "cc": "US", "name_en": "USA", "desc_en": "Louisiana", "name_ru": "США", "desc_ru": "Луизиана" },
+	{ "mask": "+1(226)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Ontario", "name_ru": "Канада", "desc_ru": "Онтарио" },
+	{ "mask": "+1(228)###-####", "cc": "US", "name_en": "USA", "desc_en": "Mississippi", "name_ru": "США", "desc_ru": "Миссисипи" },
+	{ "mask": "+1(229)###-####", "cc": "US", "name_en": "USA", "desc_en": "Georgia", "name_ru": "США", "desc_ru": "Джорджия" },
+	{ "mask": "+1(231)###-####", "cc": "US", "name_en": "USA", "desc_en": "Michigan", "name_ru": "США", "desc_ru": "Мичиган" },
+	{ "mask": "+1(234)###-####", "cc": "US", "name_en": "USA", "desc_en": "Ohio", "name_ru": "США", "desc_ru": "Огайо" },
+	{ "mask": "+1(239)###-####", "cc": "US", "name_en": "USA", "desc_en": "Florida", "name_ru": "США", "desc_ru": "Флорида" },
+	{ "mask": "+1(240)###-####", "cc": "US", "name_en": "USA", "desc_en": "Maryland", "name_ru": "США", "desc_ru": "Мэриленд" },
+	{ "mask": "+1(248)###-####", "cc": "US", "name_en": "USA", "desc_en": "Michigan", "name_ru": "США", "desc_ru": "Мичиган" },
+	{ "mask": "+1(249)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Ontario", "name_ru": "Канада", "desc_ru": "Онтарио" },
+	{ "mask": "+1(250)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "British Columbia", "name_ru": "Канада", "desc_ru": "Британская Колумбия" },
+	{ "mask": "+1(251)###-####", "cc": "US", "name_en": "USA", "desc_en": "Alabama", "name_ru": "США", "desc_ru": "Алабама" },
+	{ "mask": "+1(252)###-####", "cc": "US", "name_en": "USA", "desc_en": "North Carolina", "name_ru": "США", "desc_ru": "Северная Каролина" },
+	{ "mask": "+1(253)###-####", "cc": "US", "name_en": "USA", "desc_en": "Washington", "name_ru": "США", "desc_ru": "Вашингтон" },
+	{ "mask": "+1(254)###-####", "cc": "US", "name_en": "USA", "desc_en": "Texas", "name_ru": "США", "desc_ru": "Техас" },
+	{ "mask": "+1(256)###-####", "cc": "US", "name_en": "USA", "desc_en": "Alabama", "name_ru": "США", "desc_ru": "Алабама" },
+	{ "mask": "+1(260)###-####", "cc": "US", "name_en": "USA", "desc_en": "Indiana", "name_ru": "США", "desc_ru": "Индиана" },
+	{ "mask": "+1(262)###-####", "cc": "US", "name_en": "USA", "desc_en": "Wisconsin", "name_ru": "США", "desc_ru": "Висконсин" },
+	{ "mask": "+1(267)###-####", "cc": "US", "name_en": "USA", "desc_en": "Pennsylvania", "name_ru": "США", "desc_ru": "Пенсильвания" },
+	{ "mask": "+1(269)###-####", "cc": "US", "name_en": "USA", "desc_en": "Michigan", "name_ru": "США", "desc_ru": "Мичиган" },
+	{ "mask": "+1(270)###-####", "cc": "US", "name_en": "USA", "desc_en": "Kentucky", "name_ru": "США", "desc_ru": "Кентукки" },
+	{ "mask": "+1(276)###-####", "cc": "US", "name_en": "USA", "desc_en": "Virginia", "name_ru": "США", "desc_ru": "Виргиния" },
+	{ "mask": "+1(281)###-####", "cc": "US", "name_en": "USA", "desc_en": "Texas", "name_ru": "США", "desc_ru": "Техас" },
+	{ "mask": "+1(289)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Ontario", "name_ru": "Канада", "desc_ru": "Онтарио" },
+	{ "mask": "+1(301)###-####", "cc": "US", "name_en": "USA", "desc_en": "Maryland", "name_ru": "США", "desc_ru": "Мэриленд" },
+	{ "mask": "+1(302)###-####", "cc": "US", "name_en": "USA", "desc_en": "Delaware", "name_ru": "США", "desc_ru": "Делавэр" },
+	{ "mask": "+1(303)###-####", "cc": "US", "name_en": "USA", "desc_en": "Colorado", "name_ru": "США", "desc_ru": "Колорадо" },
+	{ "mask": "+1(304)###-####", "cc": "US", "name_en": "USA", "desc_en": "West Virginia", "name_ru": "США", "desc_ru": "Западная Виргиния" },
+	{ "mask": "+1(305)###-####", "cc": "US", "name_en": "USA", "desc_en": "Florida", "name_ru": "США", "desc_ru": "Флорида" },
+	{ "mask": "+1(306)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Saskatchewan", "name_ru": "Канада", "desc_ru": "Саскачеван" },
+	{ "mask": "+1(307)###-####", "cc": "US", "name_en": "USA", "desc_en": "Wyoming", "name_ru": "США", "desc_ru": "Вайоминг" },
+	{ "mask": "+1(308)###-####", "cc": "US", "name_en": "USA", "desc_en": "Nebraska", "name_ru": "США", "desc_ru": "Небраска" },
+	{ "mask": "+1(309)###-####", "cc": "US", "name_en": "USA", "desc_en": "Illinois", "name_ru": "США", "desc_ru": "Иллинойс" },
+	{ "mask": "+1(310)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(312)###-####", "cc": "US", "name_en": "USA", "desc_en": "Illinois", "name_ru": "США", "desc_ru": "Иллинойс" },
+	{ "mask": "+1(313)###-####", "cc": "US", "name_en": "USA", "desc_en": "Michigan", "name_ru": "США", "desc_ru": "Мичиган" },
+	{ "mask": "+1(314)###-####", "cc": "US", "name_en": "USA", "desc_en": "Missouri", "name_ru": "США", "desc_ru": "Миссури" },
+	{ "mask": "+1(315)###-####", "cc": "US", "name_en": "USA", "desc_en": "New York", "name_ru": "США", "desc_ru": "Нью-Йорк" },
+	{ "mask": "+1(316)###-####", "cc": "US", "name_en": "USA", "desc_en": "Kansas", "name_ru": "США", "desc_ru": "Канзас" },
+	{ "mask": "+1(317)###-####", "cc": "US", "name_en": "USA", "desc_en": "Indiana", "name_ru": "США", "desc_ru": "Индиана" },
+	{ "mask": "+1(318)###-####", "cc": "US", "name_en": "USA", "desc_en": "Louisiana", "name_ru": "США", "desc_ru": "Луизиана" },
+	{ "mask": "+1(319)###-####", "cc": "US", "name_en": "USA", "desc_en": "Iowa", "name_ru": "США", "desc_ru": "Айова" },
+	{ "mask": "+1(320)###-####", "cc": "US", "name_en": "USA", "desc_en": "Minnesota", "name_ru": "США", "desc_ru": "Миннесота" },
+	{ "mask": "+1(321)###-####", "cc": "US", "name_en": "USA", "desc_en": "Florida", "name_ru": "США", "desc_ru": "Флорида" },
+	{ "mask": "+1(323)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(325)###-####", "cc": "US", "name_en": "USA", "desc_en": "Texas", "name_ru": "США", "desc_ru": "Техас" },
+	{ "mask": "+1(330)###-####", "cc": "US", "name_en": "USA", "desc_en": "Ohio", "name_ru": "США", "desc_ru": "Огайо" },
+	{ "mask": "+1(331)###-####", "cc": "US", "name_en": "USA", "desc_en": "Illinois", "name_ru": "США", "desc_ru": "Иллинойс" },
+	{ "mask": "+1(334)###-####", "cc": "US", "name_en": "USA", "desc_en": "Alabama", "name_ru": "США", "desc_ru": "Алабама" },
+	{ "mask": "+1(336)###-####", "cc": "US", "name_en": "USA", "desc_en": "North Carolina", "name_ru": "США", "desc_ru": "Северная Каролина" },
+	{ "mask": "+1(337)###-####", "cc": "US", "name_en": "USA", "desc_en": "Louisiana", "name_ru": "США", "desc_ru": "Луизиана" },
+	{ "mask": "+1(339)###-####", "cc": "US", "name_en": "USA", "desc_en": "Massachusetts", "name_ru": "США", "desc_ru": "Массачусетс" },
+	{ "mask": "+1(343)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Ontario", "name_ru": "Канада", "desc_ru": "Онтарио" },
+	{ "mask": "+1(347)###-####", "cc": "US", "name_en": "USA", "desc_en": "New York", "name_ru": "США", "desc_ru": "Нью-Йорк" },
+	{ "mask": "+1(351)###-####", "cc": "US", "name_en": "USA", "desc_en": "Massachusetts", "name_ru": "США", "desc_ru": "Массачусетс" },
+	{ "mask": "+1(352)###-####", "cc": "US", "name_en": "USA", "desc_en": "Florida", "name_ru": "США", "desc_ru": "Флорида" },
+	{ "mask": "+1(360)###-####", "cc": "US", "name_en": "USA", "desc_en": "Washington", "name_ru": "США", "desc_ru": "Вашингтон" },
+	{ "mask": "+1(361)###-####", "cc": "US", "name_en": "USA", "desc_en": "Texas", "name_ru": "США", "desc_ru": "Техас" },
+	{ "mask": "+1(385)###-####", "cc": "US", "name_en": "USA", "desc_en": "Utah", "name_ru": "США", "desc_ru": "Юта" },
+	{ "mask": "+1(386)###-####", "cc": "US", "name_en": "USA", "desc_en": "Florida", "name_ru": "США", "desc_ru": "Флорида" },
+	{ "mask": "+1(401)###-####", "cc": "US", "name_en": "USA", "desc_en": "Rhode Island", "name_ru": "США", "desc_ru": "Род-Айленд" },
+	{ "mask": "+1(402)###-####", "cc": "US", "name_en": "USA", "desc_en": "Nebraska", "name_ru": "США", "desc_ru": "Небраска" },
+	{ "mask": "+1(403)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Alberta", "name_ru": "Канада", "desc_ru": "Альберта" },
+	{ "mask": "+1(404)###-####", "cc": "US", "name_en": "USA", "desc_en": "Georgia", "name_ru": "США", "desc_ru": "Джорджия" },
+	{ "mask": "+1(405)###-####", "cc": "US", "name_en": "USA", "desc_en": "Oklahoma", "name_ru": "США", "desc_ru": "Оклахома" },
+	{ "mask": "+1(406)###-####", "cc": "US", "name_en": "USA", "desc_en": "Montana", "name_ru": "США", "desc_ru": "Монтана" },
+	{ "mask": "+1(407)###-####", "cc": "US", "name_en": "USA", "desc_en": "Florida", "name_ru": "США", "desc_ru": "Флорида" },
+	{ "mask": "+1(408)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(409)###-####", "cc": "US", "name_en": "USA", "desc_en": "Texas", "name_ru": "США", "desc_ru": "Техас" },
+	{ "mask": "+1(410)###-####", "cc": "US", "name_en": "USA", "desc_en": "Maryland", "name_ru": "США", "desc_ru": "Мэриленд" },
+	{ "mask": "+1(412)###-####", "cc": "US", "name_en": "USA", "desc_en": "Pennsylvania", "name_ru": "США", "desc_ru": "Пенсильвания" },
+	{ "mask": "+1(413)###-####", "cc": "US", "name_en": "USA", "desc_en": "Massachusetts", "name_ru": "США", "desc_ru": "Массачусетс" },
+	{ "mask": "+1(414)###-####", "cc": "US", "name_en": "USA", "desc_en": "Wisconsin", "name_ru": "США", "desc_ru": "Висконсин" },
+	{ "mask": "+1(415)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(416)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Ontario", "name_ru": "Канада", "desc_ru": "Онтарио" },
+	{ "mask": "+1(417)###-####", "cc": "US", "name_en": "USA", "desc_en": "Missouri", "name_ru": "США", "desc_ru": "Миссури" },
+	{ "mask": "+1(418)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Québec", "name_ru": "Канада", "desc_ru": "Квебек" },
+	{ "mask": "+1(419)###-####", "cc": "US", "name_en": "USA", "desc_en": "Ohio", "name_ru": "США", "desc_ru": "Огайо" },
+	{ "mask": "+1(423)###-####", "cc": "US", "name_en": "USA", "desc_en": "Tennessee", "name_ru": "США", "desc_ru": "Теннесси" },
+	{ "mask": "+1(424)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(425)###-####", "cc": "US", "name_en": "USA", "desc_en": "Washington", "name_ru": "США", "desc_ru": "Вашингтон" },
+	{ "mask": "+1(430)###-####", "cc": "US", "name_en": "USA", "desc_en": "Texas", "name_ru": "США", "desc_ru": "Техас" },
+	{ "mask": "+1(432)###-####", "cc": "US", "name_en": "USA", "desc_en": "Texas", "name_ru": "США", "desc_ru": "Техас" },
+	{ "mask": "+1(434)###-####", "cc": "US", "name_en": "USA", "desc_en": "Virginia", "name_ru": "США", "desc_ru": "Виргиния" },
+	{ "mask": "+1(435)###-####", "cc": "US", "name_en": "USA", "desc_en": "Utah", "name_ru": "США", "desc_ru": "Юта" },
+	{ "mask": "+1(438)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Québec", "name_ru": "Канада", "desc_ru": "Квебек" },
+	{ "mask": "+1(440)###-####", "cc": "US", "name_en": "USA", "desc_en": "Ohio", "name_ru": "США", "desc_ru": "Огайо" },
+	{ "mask": "+1(442)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(443)###-####", "cc": "US", "name_en": "USA", "desc_en": "Maryland", "name_ru": "США", "desc_ru": "Мэриленд" },
+	{ "mask": "+1(450)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Québec", "name_ru": "Канада", "desc_ru": "Квебек" },
+	{ "mask": "+1(458)###-####", "cc": "US", "name_en": "USA", "desc_en": "Oregon", "name_ru": "США", "desc_ru": "Орегон" },
+	{ "mask": "+1(469)###-####", "cc": "US", "name_en": "USA", "desc_en": "Texas", "name_ru": "США", "desc_ru": "Техас" },
+	{ "mask": "+1(475)###-####", "cc": "US", "name_en": "USA", "desc_en": "Connecticut", "name_ru": "США", "desc_ru": "Коннектикут" },
+	{ "mask": "+1(478)###-####", "cc": "US", "name_en": "USA", "desc_en": "Georgia", "name_ru": "США", "desc_ru": "Джорджия" },
+	{ "mask": "+1(479)###-####", "cc": "US", "name_en": "USA", "desc_en": "Arkansas", "name_ru": "США", "desc_ru": "Арканзас" },
+	{ "mask": "+1(480)###-####", "cc": "US", "name_en": "USA", "desc_en": "Arizona", "name_ru": "США", "desc_ru": "Аризона" },
+	{ "mask": "+1(484)###-####", "cc": "US", "name_en": "USA", "desc_en": "Pennsylvania", "name_ru": "США", "desc_ru": "Пенсильвания" },
+	{ "mask": "+1(501)###-####", "cc": "US", "name_en": "USA", "desc_en": "Arkansas", "name_ru": "США", "desc_ru": "Арканзас" },
+	{ "mask": "+1(502)###-####", "cc": "US", "name_en": "USA", "desc_en": "Kentucky", "name_ru": "США", "desc_ru": "Кентукки" },
+	{ "mask": "+1(503)###-####", "cc": "US", "name_en": "USA", "desc_en": "Oregon", "name_ru": "США", "desc_ru": "Орегон" },
+	{ "mask": "+1(504)###-####", "cc": "US", "name_en": "USA", "desc_en": "Louisiana", "name_ru": "США", "desc_ru": "Луизиана" },
+	{ "mask": "+1(505)###-####", "cc": "US", "name_en": "USA", "desc_en": "New Mexico", "name_ru": "США", "desc_ru": "Нью-Мексико" },
+	{ "mask": "+1(506)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "New Brunswick", "name_ru": "Канада", "desc_ru": "Нью-Брансуик" },
+	{ "mask": "+1(507)###-####", "cc": "US", "name_en": "USA", "desc_en": "Minnesota", "name_ru": "США", "desc_ru": "Миннесота" },
+	{ "mask": "+1(508)###-####", "cc": "US", "name_en": "USA", "desc_en": "Massachusetts", "name_ru": "США", "desc_ru": "Массачусетс" },
+	{ "mask": "+1(509)###-####", "cc": "US", "name_en": "USA", "desc_en": "Washington", "name_ru": "США", "desc_ru": "Вашингтон" },
+	{ "mask": "+1(510)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(512)###-####", "cc": "US", "name_en": "USA", "desc_en": "Texas", "name_ru": "США", "desc_ru": "Техас" },
+	{ "mask": "+1(513)###-####", "cc": "US", "name_en": "USA", "desc_en": "Ohio", "name_ru": "США", "desc_ru": "Огайо" },
+	{ "mask": "+1(514)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Québec", "name_ru": "Канада", "desc_ru": "Квебек" },
+	{ "mask": "+1(515)###-####", "cc": "US", "name_en": "USA", "desc_en": "Iowa", "name_ru": "США", "desc_ru": "Айова" },
+	{ "mask": "+1(516)###-####", "cc": "US", "name_en": "USA", "desc_en": "New York", "name_ru": "США", "desc_ru": "Нью-Йорк" },
+	{ "mask": "+1(517)###-####", "cc": "US", "name_en": "USA", "desc_en": "Michigan", "name_ru": "США", "desc_ru": "Мичиган" },
+	{ "mask": "+1(518)###-####", "cc": "US", "name_en": "USA", "desc_en": "New York", "name_ru": "США", "desc_ru": "Нью-Йорк" },
+	{ "mask": "+1(519)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Ontario", "name_ru": "Канада", "desc_ru": "Онтарио" },
+	{ "mask": "+1(520)###-####", "cc": "US", "name_en": "USA", "desc_en": "Arizona", "name_ru": "США", "desc_ru": "Аризона" },
+	{ "mask": "+1(530)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(531)###-####", "cc": "US", "name_en": "USA", "desc_en": "Nebraska", "name_ru": "США", "desc_ru": "Небраска" },
+	{ "mask": "+1(534)###-####", "cc": "US", "name_en": "USA", "desc_en": "Wisconsin", "name_ru": "США", "desc_ru": "Висконсин" },
+	{ "mask": "+1(539)###-####", "cc": "US", "name_en": "USA", "desc_en": "Oklahoma", "name_ru": "США", "desc_ru": "Оклахома" },
+	{ "mask": "+1(540)###-####", "cc": "US", "name_en": "USA", "desc_en": "Virginia", "name_ru": "США", "desc_ru": "Виргиния" },
+	{ "mask": "+1(541)###-####", "cc": "US", "name_en": "USA", "desc_en": "Oregon", "name_ru": "США", "desc_ru": "Орегон" },
+	{ "mask": "+1(551)###-####", "cc": "US", "name_en": "USA", "desc_en": "New Jersey", "name_ru": "США", "desc_ru": "Нью-Джерси" },
+	{ "mask": "+1(559)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(561)###-####", "cc": "US", "name_en": "USA", "desc_en": "Florida", "name_ru": "США", "desc_ru": "Флорида" },
+	{ "mask": "+1(562)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(563)###-####", "cc": "US", "name_en": "USA", "desc_en": "Iowa", "name_ru": "США", "desc_ru": "Айова" },
+	{ "mask": "+1(567)###-####", "cc": "US", "name_en": "USA", "desc_en": "Ohio", "name_ru": "США", "desc_ru": "Огайо" },
+	{ "mask": "+1(570)###-####", "cc": "US", "name_en": "USA", "desc_en": "Pennsylvania", "name_ru": "США", "desc_ru": "Пенсильвания" },
+	{ "mask": "+1(571)###-####", "cc": "US", "name_en": "USA", "desc_en": "Virginia", "name_ru": "США", "desc_ru": "Виргиния" },
+	{ "mask": "+1(573)###-####", "cc": "US", "name_en": "USA", "desc_en": "Missouri", "name_ru": "США", "desc_ru": "Миссури" },
+	{ "mask": "+1(574)###-####", "cc": "US", "name_en": "USA", "desc_en": "Indiana", "name_ru": "США", "desc_ru": "Индиана" },
+	{ "mask": "+1(575)###-####", "cc": "US", "name_en": "USA", "desc_en": "New Mexico", "name_ru": "США", "desc_ru": "Нью-Мексико" },
+	{ "mask": "+1(579)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Québec", "name_ru": "Канада", "desc_ru": "Квебек" },
+	{ "mask": "+1(580)###-####", "cc": "US", "name_en": "USA", "desc_en": "Oklahoma", "name_ru": "США", "desc_ru": "Оклахома" },
+	{ "mask": "+1(581)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Québec", "name_ru": "Канада", "desc_ru": "Квебек" },
+	{ "mask": "+1(586)###-####", "cc": "US", "name_en": "USA", "desc_en": "Michigan", "name_ru": "США", "desc_ru": "Мичиган" },
+	{ "mask": "+1(587)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Alberta", "name_ru": "Канада", "desc_ru": "Альберта" },
+	{ "mask": "+1(601)###-####", "cc": "US", "name_en": "USA", "desc_en": "Mississippi", "name_ru": "США", "desc_ru": "Миссисипи" },
+	{ "mask": "+1(603)###-####", "cc": "US", "name_en": "USA", "desc_en": "New Hampshire", "name_ru": "США", "desc_ru": "Нью-Гэмпшир" },
+	{ "mask": "+1(604)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "British Columbia", "name_ru": "Канада", "desc_ru": "Британская Колумбия" },
+	{ "mask": "+1(605)###-####", "cc": "US", "name_en": "USA", "desc_en": "South Dakota", "name_ru": "США", "desc_ru": "Южная Дакота" },
+	{ "mask": "+1(606)###-####", "cc": "US", "name_en": "USA", "desc_en": "Kentucky", "name_ru": "США", "desc_ru": "Кентукки" },
+	{ "mask": "+1(607)###-####", "cc": "US", "name_en": "USA", "desc_en": "New York", "name_ru": "США", "desc_ru": "Нью-Йорк" },
+	{ "mask": "+1(608)###-####", "cc": "US", "name_en": "USA", "desc_en": "Wisconsin", "name_ru": "США", "desc_ru": "Висконсин" },
+	{ "mask": "+1(609)###-####", "cc": "US", "name_en": "USA", "desc_en": "New Jersey", "name_ru": "США", "desc_ru": "Нью-Джерси" },
+	{ "mask": "+1(610)###-####", "cc": "US", "name_en": "USA", "desc_en": "Pennsylvania", "name_ru": "США", "desc_ru": "Пенсильвания" },
+	{ "mask": "+1(612)###-####", "cc": "US", "name_en": "USA", "desc_en": "Minnesota", "name_ru": "США", "desc_ru": "Миннесота" },
+	{ "mask": "+1(613)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Ontario", "name_ru": "Канада", "desc_ru": "Онтарио" },
+	{ "mask": "+1(614)###-####", "cc": "US", "name_en": "USA", "desc_en": "Ohio", "name_ru": "США", "desc_ru": "Огайо" },
+	{ "mask": "+1(615)###-####", "cc": "US", "name_en": "USA", "desc_en": "Tennessee", "name_ru": "США", "desc_ru": "Теннесси" },
+	{ "mask": "+1(616)###-####", "cc": "US", "name_en": "USA", "desc_en": "Michigan", "name_ru": "США", "desc_ru": "Мичиган" },
+	{ "mask": "+1(617)###-####", "cc": "US", "name_en": "USA", "desc_en": "Massachusetts", "name_ru": "США", "desc_ru": "Массачусетс" },
+	{ "mask": "+1(618)###-####", "cc": "US", "name_en": "USA", "desc_en": "Illinois", "name_ru": "США", "desc_ru": "Иллинойс" },
+	{ "mask": "+1(619)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(620)###-####", "cc": "US", "name_en": "USA", "desc_en": "Kansas", "name_ru": "США", "desc_ru": "Канзас" },
+	{ "mask": "+1(623)###-####", "cc": "US", "name_en": "USA", "desc_en": "Arizona", "name_ru": "США", "desc_ru": "Аризона" },
+	{ "mask": "+1(626)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(630)###-####", "cc": "US", "name_en": "USA", "desc_en": "Illinois", "name_ru": "США", "desc_ru": "Иллинойс" },
+	{ "mask": "+1(631)###-####", "cc": "US", "name_en": "USA", "desc_en": "New York", "name_ru": "США", "desc_ru": "Нью-Йорк" },
+	{ "mask": "+1(636)###-####", "cc": "US", "name_en": "USA", "desc_en": "Missouri", "name_ru": "США", "desc_ru": "Миссури" },
+	{ "mask": "+1(641)###-####", "cc": "US", "name_en": "USA", "desc_en": "Iowa", "name_ru": "США", "desc_ru": "Айова" },
+	{ "mask": "+1(646)###-####", "cc": "US", "name_en": "USA", "desc_en": "New York", "name_ru": "США", "desc_ru": "Нью-Йорк" },
+	{ "mask": "+1(647)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Ontario", "name_ru": "Канада", "desc_ru": "Онтарио" },
+	{ "mask": "+1(650)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(651)###-####", "cc": "US", "name_en": "USA", "desc_en": "Minnesota", "name_ru": "США", "desc_ru": "Миннесота" },
+	{ "mask": "+1(657)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(660)###-####", "cc": "US", "name_en": "USA", "desc_en": "Missouri", "name_ru": "США", "desc_ru": "Миссури" },
+	{ "mask": "+1(661)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(662)###-####", "cc": "US", "name_en": "USA", "desc_en": "Mississippi", "name_ru": "США", "desc_ru": "Миссисипи" },
+	{ "mask": "+1(665)###-####", "cc": "US", "name_en": "USA", "desc_en": "Arizona", "name_ru": "США", "desc_ru": "Аризона" },
+	{ "mask": "+1(678)###-####", "cc": "US", "name_en": "USA", "desc_en": "Georgia", "name_ru": "США", "desc_ru": "Джорджия" },
+	{ "mask": "+1(681)###-####", "cc": "US", "name_en": "USA", "desc_en": "West Virginia", "name_ru": "США", "desc_ru": "Западная Виргиния" },
+	{ "mask": "+1(682)###-####", "cc": "US", "name_en": "USA", "desc_en": "Texas", "name_ru": "США", "desc_ru": "Техас" },
+	{ "mask": "+1(701)###-####", "cc": "US", "name_en": "USA", "desc_en": "North Dakota", "name_ru": "США", "desc_ru": "Северная Дакота" },
+	{ "mask": "+1(702)###-####", "cc": "US", "name_en": "USA", "desc_en": "Nevada", "name_ru": "США", "desc_ru": "Невада" },
+	{ "mask": "+1(703)###-####", "cc": "US", "name_en": "USA", "desc_en": "Virginia", "name_ru": "США", "desc_ru": "Виргиния" },
+	{ "mask": "+1(704)###-####", "cc": "US", "name_en": "USA", "desc_en": "North Carolina", "name_ru": "США", "desc_ru": "Северная Каролина" },
+	{ "mask": "+1(705)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Ontario", "name_ru": "Канада", "desc_ru": "Онтарио" },
+	{ "mask": "+1(706)###-####", "cc": "US", "name_en": "USA", "desc_en": "Georgia", "name_ru": "США", "desc_ru": "Джорджия" },
+	{ "mask": "+1(707)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(708)###-####", "cc": "US", "name_en": "USA", "desc_en": "Illinois", "name_ru": "США", "desc_ru": "Иллинойс" },
+	{ "mask": "+1(709)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Newfoundland and Labrador", "name_ru": "Канада", "desc_ru": "Ньюфаундленд и Лабрадор" },
+	{ "mask": "+1(712)###-####", "cc": "US", "name_en": "USA", "desc_en": "Iowa", "name_ru": "США", "desc_ru": "Айова" },
+	{ "mask": "+1(713)###-####", "cc": "US", "name_en": "USA", "desc_en": "Texas", "name_ru": "США", "desc_ru": "Техас" },
+	{ "mask": "+1(714)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(715)###-####", "cc": "US", "name_en": "USA", "desc_en": "Wisconsin", "name_ru": "США", "desc_ru": "Висконсин" },
+	{ "mask": "+1(716)###-####", "cc": "US", "name_en": "USA", "desc_en": "New York", "name_ru": "США", "desc_ru": "Нью-Йорк" },
+	{ "mask": "+1(717)###-####", "cc": "US", "name_en": "USA", "desc_en": "Pennsylvania", "name_ru": "США", "desc_ru": "Пенсильвания" },
+	{ "mask": "+1(718)###-####", "cc": "US", "name_en": "USA", "desc_en": "New York", "name_ru": "США", "desc_ru": "Нью-Йорк" },
+	{ "mask": "+1(719)###-####", "cc": "US", "name_en": "USA", "desc_en": "Colorado", "name_ru": "США", "desc_ru": "Колорадо" },
+	{ "mask": "+1(720)###-####", "cc": "US", "name_en": "USA", "desc_en": "Colorado", "name_ru": "США", "desc_ru": "Колорадо" },
+	{ "mask": "+1(724)###-####", "cc": "US", "name_en": "USA", "desc_en": "Pennsylvania", "name_ru": "США", "desc_ru": "Пенсильвания" },
+	{ "mask": "+1(727)###-####", "cc": "US", "name_en": "USA", "desc_en": "Florida", "name_ru": "США", "desc_ru": "Флорида" },
+	{ "mask": "+1(731)###-####", "cc": "US", "name_en": "USA", "desc_en": "Tennessee", "name_ru": "США", "desc_ru": "Теннесси" },
+	{ "mask": "+1(732)###-####", "cc": "US", "name_en": "USA", "desc_en": "New Jersey", "name_ru": "США", "desc_ru": "Нью-Джерси" },
+	{ "mask": "+1(734)###-####", "cc": "US", "name_en": "USA", "desc_en": "Michigan", "name_ru": "США", "desc_ru": "Мичиган" },
+	{ "mask": "+1(740)###-####", "cc": "US", "name_en": "USA", "desc_en": "Ohio", "name_ru": "США", "desc_ru": "Огайо" },
+	{ "mask": "+1(747)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(754)###-####", "cc": "US", "name_en": "USA", "desc_en": "Florida", "name_ru": "США", "desc_ru": "Флорида" },
+	{ "mask": "+1(757)###-####", "cc": "US", "name_en": "USA", "desc_en": "Virginia", "name_ru": "США", "desc_ru": "Виргиния" },
+	{ "mask": "+1(760)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(762)###-####", "cc": "US", "name_en": "USA", "desc_en": "Georgia", "name_ru": "США", "desc_ru": "Джорджия" },
+	{ "mask": "+1(763)###-####", "cc": "US", "name_en": "USA", "desc_en": "Minnesota", "name_ru": "США", "desc_ru": "Миннесота" },
+	{ "mask": "+1(765)###-####", "cc": "US", "name_en": "USA", "desc_en": "Indiana", "name_ru": "США", "desc_ru": "Индиана" },
+	{ "mask": "+1(769)###-####", "cc": "US", "name_en": "USA", "desc_en": "Mississippi", "name_ru": "США", "desc_ru": "Миссисипи" },
+	{ "mask": "+1(770)###-####", "cc": "US", "name_en": "USA", "desc_en": "Georgia", "name_ru": "США", "desc_ru": "Джорджия" },
+	{ "mask": "+1(772)###-####", "cc": "US", "name_en": "USA", "desc_en": "Florida", "name_ru": "США", "desc_ru": "Флорида" },
+	{ "mask": "+1(773)###-####", "cc": "US", "name_en": "USA", "desc_en": "Illinois", "name_ru": "США", "desc_ru": "Иллинойс" },
+	{ "mask": "+1(774)###-####", "cc": "US", "name_en": "USA", "desc_en": "Massachusetts", "name_ru": "США", "desc_ru": "Массачусетс" },
+	{ "mask": "+1(775)###-####", "cc": "US", "name_en": "USA", "desc_en": "Nevada", "name_ru": "США", "desc_ru": "Невада" },
+	{ "mask": "+1(778)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "British Columbia", "name_ru": "Канада", "desc_ru": "Британская Колумбия" },
+	{ "mask": "+1(779)###-####", "cc": "US", "name_en": "USA", "desc_en": "Illinois", "name_ru": "США", "desc_ru": "Иллинойс" },
+	{ "mask": "+1(780)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Alberta", "name_ru": "Канада", "desc_ru": "Альберта" },
+	{ "mask": "+1(781)###-####", "cc": "US", "name_en": "USA", "desc_en": "Massachusetts", "name_ru": "США", "desc_ru": "Массачусетс" },
+	{ "mask": "+1(785)###-####", "cc": "US", "name_en": "USA", "desc_en": "Kansas", "name_ru": "США", "desc_ru": "Канзас" },
+	{ "mask": "+1(786)###-####", "cc": "US", "name_en": "USA", "desc_en": "Florida", "name_ru": "США", "desc_ru": "Флорида" },
+	{ "mask": "+1(801)###-####", "cc": "US", "name_en": "USA", "desc_en": "Utah", "name_ru": "США", "desc_ru": "Юта" },
+	{ "mask": "+1(802)###-####", "cc": "US", "name_en": "USA", "desc_en": "Vermont", "name_ru": "США", "desc_ru": "Вермонт" },
+	{ "mask": "+1(803)###-####", "cc": "US", "name_en": "USA", "desc_en": "South Carolina", "name_ru": "США", "desc_ru": "Южная Каролина" },
+	{ "mask": "+1(804)###-####", "cc": "US", "name_en": "USA", "desc_en": "Virginia", "name_ru": "США", "desc_ru": "Виргиния" },
+	{ "mask": "+1(805)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(806)###-####", "cc": "US", "name_en": "USA", "desc_en": "Texas", "name_ru": "США", "desc_ru": "Техас" },
+	{ "mask": "+1(807)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Ontario", "name_ru": "Канада", "desc_ru": "Онтарио" },
+	{ "mask": "+1(808)###-####", "cc": "US", "name_en": "USA", "desc_en": "Hawaii", "name_ru": "США", "desc_ru": "Гавайи" },
+	{ "mask": "+1(810)###-####", "cc": "US", "name_en": "USA", "desc_en": "Michigan", "name_ru": "США", "desc_ru": "Мичиган" },
+	{ "mask": "+1(812)###-####", "cc": "US", "name_en": "USA", "desc_en": "Indiana", "name_ru": "США", "desc_ru": "Индиана" },
+	{ "mask": "+1(813)###-####", "cc": "US", "name_en": "USA", "desc_en": "Florida", "name_ru": "США", "desc_ru": "Флорида" },
+	{ "mask": "+1(814)###-####", "cc": "US", "name_en": "USA", "desc_en": "Pennsylvania", "name_ru": "США", "desc_ru": "Пенсильвания" },
+	{ "mask": "+1(815)###-####", "cc": "US", "name_en": "USA", "desc_en": "Illinois", "name_ru": "США", "desc_ru": "Иллинойс" },
+	{ "mask": "+1(816)###-####", "cc": "US", "name_en": "USA", "desc_en": "Missouri", "name_ru": "США", "desc_ru": "Миссури" },
+	{ "mask": "+1(817)###-####", "cc": "US", "name_en": "USA", "desc_en": "Texas", "name_ru": "США", "desc_ru": "Техас" },
+	{ "mask": "+1(818)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(819)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Québec", "name_ru": "Канада", "desc_ru": "Квебек" },
+	{ "mask": "+1(828)###-####", "cc": "US", "name_en": "USA", "desc_en": "North Carolina", "name_ru": "США", "desc_ru": "Северная Каролина" },
+	{ "mask": "+1(830)###-####", "cc": "US", "name_en": "USA", "desc_en": "Texas", "name_ru": "США", "desc_ru": "Техас" },
+	{ "mask": "+1(831)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(832)###-####", "cc": "US", "name_en": "USA", "desc_en": "Texas", "name_ru": "США", "desc_ru": "Техас" },
+	{ "mask": "+1(843)###-####", "cc": "US", "name_en": "USA", "desc_en": "South Carolina", "name_ru": "США", "desc_ru": "Южная Каролина" },
+	{ "mask": "+1(845)###-####", "cc": "US", "name_en": "USA", "desc_en": "New York", "name_ru": "США", "desc_ru": "Нью-Йорк" },
+	{ "mask": "+1(847)###-####", "cc": "US", "name_en": "USA", "desc_en": "Illinois", "name_ru": "США", "desc_ru": "Иллинойс" },
+	{ "mask": "+1(848)###-####", "cc": "US", "name_en": "USA", "desc_en": "New Jersey", "name_ru": "США", "desc_ru": "Нью-Джерси" },
+	{ "mask": "+1(850)###-####", "cc": "US", "name_en": "USA", "desc_en": "Florida", "name_ru": "США", "desc_ru": "Флорида" },
+	{ "mask": "+1(856)###-####", "cc": "US", "name_en": "USA", "desc_en": "New Jersey", "name_ru": "США", "desc_ru": "Нью-Джерси" },
+	{ "mask": "+1(857)###-####", "cc": "US", "name_en": "USA", "desc_en": "Massachusetts", "name_ru": "США", "desc_ru": "Массачусетс" },
+	{ "mask": "+1(858)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(859)###-####", "cc": "US", "name_en": "USA", "desc_en": "Kentucky", "name_ru": "США", "desc_ru": "Кентукки" },
+	{ "mask": "+1(860)###-####", "cc": "US", "name_en": "USA", "desc_en": "Connecticut", "name_ru": "США", "desc_ru": "Коннектикут" },
+	{ "mask": "+1(862)###-####", "cc": "US", "name_en": "USA", "desc_en": "New Jersey", "name_ru": "США", "desc_ru": "Нью-Джерси" },
+	{ "mask": "+1(863)###-####", "cc": "US", "name_en": "USA", "desc_en": "Florida", "name_ru": "США", "desc_ru": "Флорида" },
+	{ "mask": "+1(864)###-####", "cc": "US", "name_en": "USA", "desc_en": "South Carolina", "name_ru": "США", "desc_ru": "Южная Каролина" },
+	{ "mask": "+1(865)###-####", "cc": "US", "name_en": "USA", "desc_en": "Tennessee", "name_ru": "США", "desc_ru": "Теннесси" },
+	{ "mask": "+1(867)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Nunavut", "name_ru": "Канада", "desc_ru": "Нунавут" },
+	{ "mask": "+1(867)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Northwest Territories", "name_ru": "Канада", "desc_ru": "Северо-Западные территории" },
+	{ "mask": "+1(867)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Yukon", "name_ru": "Канада", "desc_ru": "Юкон" },
+	{ "mask": "+1(870)###-####", "cc": "US", "name_en": "USA", "desc_en": "Arkansas", "name_ru": "США", "desc_ru": "Арканзас" },
+	{ "mask": "+1(872)###-####", "cc": "US", "name_en": "USA", "desc_en": "Illinois", "name_ru": "США", "desc_ru": "Иллинойс" },
+	{ "mask": "+1(878)###-####", "cc": "US", "name_en": "USA", "desc_en": "Pennsylvania", "name_ru": "США", "desc_ru": "Пенсильвания" },
+	{ "mask": "+1(901)###-####", "cc": "US", "name_en": "USA", "desc_en": "Tennessee", "name_ru": "США", "desc_ru": "Теннесси" },
+	{ "mask": "+1(902)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Nova Scotia", "name_ru": "Канада", "desc_ru": "Новая Шотландия" },
+	{ "mask": "+1(902)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Prince Edward Island", "name_ru": "Канада", "desc_ru": "Остров Принца Эдуарда" },
+	{ "mask": "+1(903)###-####", "cc": "US", "name_en": "USA", "desc_en": "Texas", "name_ru": "США", "desc_ru": "Техас" },
+	{ "mask": "+1(904)###-####", "cc": "US", "name_en": "USA", "desc_en": "Florida", "name_ru": "США", "desc_ru": "Флорида" },
+	{ "mask": "+1(905)###-####", "cc": "CA", "name_en": "Canada", "desc_en": "Ontario", "name_ru": "Канада", "desc_ru": "Онтарио" },
+	{ "mask": "+1(906)###-####", "cc": "US", "name_en": "USA", "desc_en": "Michigan", "name_ru": "США", "desc_ru": "Мичиган" },
+	{ "mask": "+1(907)###-####", "cc": "US", "name_en": "USA", "desc_en": "Alaska", "name_ru": "США", "desc_ru": "Аляска" },
+	{ "mask": "+1(908)###-####", "cc": "US", "name_en": "USA", "desc_en": "New Jersey", "name_ru": "США", "desc_ru": "Нью-Джерси" },
+	{ "mask": "+1(909)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(910)###-####", "cc": "US", "name_en": "USA", "desc_en": "North Carolina", "name_ru": "США", "desc_ru": "Северная Каролина" },
+	{ "mask": "+1(912)###-####", "cc": "US", "name_en": "USA", "desc_en": "Georgia", "name_ru": "США", "desc_ru": "Джорджия" },
+	{ "mask": "+1(913)###-####", "cc": "US", "name_en": "USA", "desc_en": "Kansas", "name_ru": "США", "desc_ru": "Канзас" },
+	{ "mask": "+1(914)###-####", "cc": "US", "name_en": "USA", "desc_en": "New York", "name_ru": "США", "desc_ru": "Нью-Йорк" },
+	{ "mask": "+1(915)###-####", "cc": "US", "name_en": "USA", "desc_en": "Texas", "name_ru": "США", "desc_ru": "Техас" },
+	{ "mask": "+1(916)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(917)###-####", "cc": "US", "name_en": "USA", "desc_en": "New York", "name_ru": "США", "desc_ru": "Нью-Йорк" },
+	{ "mask": "+1(918)###-####", "cc": "US", "name_en": "USA", "desc_en": "Oklahoma", "name_ru": "США", "desc_ru": "Оклахома" },
+	{ "mask": "+1(919)###-####", "cc": "US", "name_en": "USA", "desc_en": "North Carolina", "name_ru": "США", "desc_ru": "Северная Каролина" },
+	{ "mask": "+1(920)###-####", "cc": "US", "name_en": "USA", "desc_en": "Wisconsin", "name_ru": "США", "desc_ru": "Висконсин" },
+	{ "mask": "+1(925)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(928)###-####", "cc": "US", "name_en": "USA", "desc_en": "Arizona", "name_ru": "США", "desc_ru": "Аризона" },
+	{ "mask": "+1(931)###-####", "cc": "US", "name_en": "USA", "desc_en": "Tennessee", "name_ru": "США", "desc_ru": "Теннесси" },
+	{ "mask": "+1(936)###-####", "cc": "US", "name_en": "USA", "desc_en": "Texas", "name_ru": "США", "desc_ru": "Техас" },
+	{ "mask": "+1(937)###-####", "cc": "US", "name_en": "USA", "desc_en": "Ohio", "name_ru": "США", "desc_ru": "Огайо" },
+	{ "mask": "+1(938)###-####", "cc": "US", "name_en": "USA", "desc_en": "Alabama", "name_ru": "США", "desc_ru": "Алабама" },
+	{ "mask": "+1(940)###-####", "cc": "US", "name_en": "USA", "desc_en": "Texas", "name_ru": "США", "desc_ru": "Техас" },
+	{ "mask": "+1(941)###-####", "cc": "US", "name_en": "USA", "desc_en": "Florida", "name_ru": "США", "desc_ru": "Флорида" },
+	{ "mask": "+1(947)###-####", "cc": "US", "name_en": "USA", "desc_en": "Michigan", "name_ru": "США", "desc_ru": "Мичиган" },
+	{ "mask": "+1(949)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(951)###-####", "cc": "US", "name_en": "USA", "desc_en": "California", "name_ru": "США", "desc_ru": "Калифорния" },
+	{ "mask": "+1(952)###-####", "cc": "US", "name_en": "USA", "desc_en": "Minnesota", "name_ru": "США", "desc_ru": "Миннесота" },
+	{ "mask": "+1(954)###-####", "cc": "US", "name_en": "USA", "desc_en": "Florida", "name_ru": "США", "desc_ru": "Флорида" },
+	{ "mask": "+1(956)###-####", "cc": "US", "name_en": "USA", "desc_en": "Texas", "name_ru": "США", "desc_ru": "Техас" },
+	{ "mask": "+1(970)###-####", "cc": "US", "name_en": "USA", "desc_en": "Colorado", "name_ru": "США", "desc_ru": "Колорадо" },
+	{ "mask": "+1(971)###-####", "cc": "US", "name_en": "USA", "desc_en": "Oregon", "name_ru": "США", "desc_ru": "Орегон" },
+	{ "mask": "+1(972)###-####", "cc": "US", "name_en": "USA", "desc_en": "Texas", "name_ru": "США", "desc_ru": "Техас" },
+	{ "mask": "+1(973)###-####", "cc": "US", "name_en": "USA", "desc_en": "New Jersey", "name_ru": "США", "desc_ru": "Нью-Джерси" },
+	{ "mask": "+1(978)###-####", "cc": "US", "name_en": "USA", "desc_en": "Massachusetts", "name_ru": "США", "desc_ru": "Массачусетс" },
+	{ "mask": "+1(979)###-####", "cc": "US", "name_en": "USA", "desc_en": "Texas", "name_ru": "США", "desc_ru": "Техас" },
+	{ "mask": "+1(980)###-####", "cc": "US", "name_en": "USA", "desc_en": "North Carolina", "name_ru": "США", "desc_ru": "Северная Каролина" },
+	{ "mask": "+1(985)###-####", "cc": "US", "name_en": "USA", "desc_en": "Louisiana", "name_ru": "США", "desc_ru": "Луизиана" },
+	{ "mask": "+1(989)###-####", "cc": "US", "name_en": "USA", "desc_en": "Michigan", "name_ru": "США", "desc_ru": "Мичиган" }
+]