File Coverage

blib/lib/Number/Phone/StubCountry/KZ.pm
Criterion Covered Total %
statement 20 20 100.0
branch 3 4 75.0
condition n/a
subroutine 5 5 100.0
pod 1 1 100.0
total 29 30 96.6


line stmt bran cond sub pod time code
1             # automatically generated file, don't edit
2              
3              
4              
5             # Copyright 2023 David Cantrell, derived from data from libphonenumber
6             # http://code.google.com/p/libphonenumber/
7             #
8             # Licensed under the Apache License, Version 2.0 (the "License");
9             # you may not use this file except in compliance with the License.
10             # You may obtain a copy of the License at
11             #
12             # http://www.apache.org/licenses/LICENSE-2.0
13             #
14             # Unless required by applicable law or agreed to in writing, software
15             # distributed under the License is distributed on an "AS IS" BASIS,
16             # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17             # See the License for the specific language governing permissions and
18             # limitations under the License.
19             package Number::Phone::StubCountry::KZ;
20 4     4   2479 use base qw(Number::Phone::StubCountry);
  4         21  
  4         473  
21              
22 4     4   31 use strict;
  4         12  
  4         94  
23 4     4   24 use warnings;
  4         9  
  4         114  
24 4     4   27 use utf8;
  4         12  
  4         34  
25             our $VERSION = 1.20230307181421;
26              
27             my $formatters = [];
28              
29             my $validators = {
30             'fixed_line' => '
31             (?:
32             33622|
33             7(?:
34             1(?:
35             0(?:
36             [23]\\d|
37             4[0-3]|
38             59|
39             63
40             )|
41             1(?:
42             [23]\\d|
43             4[0-79]|
44             59
45             )|
46             2(?:
47             [23]\\d|
48             59
49             )|
50             3(?:
51             2\\d|
52             3[0-79]|
53             4[0-35-9]|
54             59
55             )|
56             4(?:
57             [24]\\d|
58             3[013-9]|
59             5[1-9]|
60             97
61             )|
62             5(?:
63             2\\d|
64             3[1-9]|
65             4[0-7]|
66             59
67             )|
68             6(?:
69             [2-4]\\d|
70             5[19]|
71             61
72             )|
73             72\\d|
74             8(?:
75             [27]\\d|
76             3[1-46-9]|
77             4[0-5]|
78             59
79             )
80             )|
81             2(?:
82             1(?:
83             [23]\\d|
84             4[46-9]|
85             5[3469]
86             )|
87             2(?:
88             2\\d|
89             3[0679]|
90             46|
91             5[12679]
92             )|
93             3(?:
94             [2-4]\\d|
95             5[139]
96             )|
97             4(?:
98             2\\d|
99             3[1-35-9]|
100             59
101             )|
102             5(?:
103             [23]\\d|
104             4[0-8]|
105             59|
106             61
107             )|
108             6(?:
109             2\\d|
110             3[1-9]|
111             4[0-4]|
112             59
113             )|
114             7(?:
115             [2379]\\d|
116             40|
117             5[279]
118             )|
119             8(?:
120             [23]\\d|
121             4[0-3]|
122             59
123             )|
124             9(?:
125             2\\d|
126             3[124578]|
127             59
128             )
129             )
130             )
131             )\\d{5}
132             ',
133             'geographic' => '
134             (?:
135             33622|
136             7(?:
137             1(?:
138             0(?:
139             [23]\\d|
140             4[0-3]|
141             59|
142             63
143             )|
144             1(?:
145             [23]\\d|
146             4[0-79]|
147             59
148             )|
149             2(?:
150             [23]\\d|
151             59
152             )|
153             3(?:
154             2\\d|
155             3[0-79]|
156             4[0-35-9]|
157             59
158             )|
159             4(?:
160             [24]\\d|
161             3[013-9]|
162             5[1-9]|
163             97
164             )|
165             5(?:
166             2\\d|
167             3[1-9]|
168             4[0-7]|
169             59
170             )|
171             6(?:
172             [2-4]\\d|
173             5[19]|
174             61
175             )|
176             72\\d|
177             8(?:
178             [27]\\d|
179             3[1-46-9]|
180             4[0-5]|
181             59
182             )
183             )|
184             2(?:
185             1(?:
186             [23]\\d|
187             4[46-9]|
188             5[3469]
189             )|
190             2(?:
191             2\\d|
192             3[0679]|
193             46|
194             5[12679]
195             )|
196             3(?:
197             [2-4]\\d|
198             5[139]
199             )|
200             4(?:
201             2\\d|
202             3[1-35-9]|
203             59
204             )|
205             5(?:
206             [23]\\d|
207             4[0-8]|
208             59|
209             61
210             )|
211             6(?:
212             2\\d|
213             3[1-9]|
214             4[0-4]|
215             59
216             )|
217             7(?:
218             [2379]\\d|
219             40|
220             5[279]
221             )|
222             8(?:
223             [23]\\d|
224             4[0-3]|
225             59
226             )|
227             9(?:
228             2\\d|
229             3[124578]|
230             59
231             )
232             )
233             )
234             )\\d{5}
235             ',
236             'mobile' => '
237             7(?:
238             0[0-25-8]|
239             47|
240             6[0-4]|
241             7[15-8]|
242             85
243             )\\d{7}
244             ',
245             'pager' => '',
246             'personal_number' => '808\\d{7}',
247             'specialrate' => '(809\\d{7})',
248             'toll_free' => '
249             8(?:
250             00|
251             108\\d{3}
252             )\\d{7}
253             ',
254             'voip' => '751\\d{7}'
255             };
256             my %areanames = ();
257             $areanames{ru} = {"771547", "Жамбылский\ р\-н",
258             "771036", "Балхаш",
259             "772752", "Илийский\ р\-н",
260             "772432", "Шиелийский\ р\-н",
261             "771647", "Есильский\ р\-н",
262             "771648", "Жаркаинский\ р\-н",
263             "7499", "г\.\ Москва",
264             "7394", "Республика\ Тыва",
265             "771452", "Карасуский\ р\-н",
266             "771042", "Акой",
267             "77102", "Жезказган",
268             "771235", "Макатский\ р\-н",
269             "7301", "Республика\ Бурятия",
270             "7851", "Астраханская\ обл\.",
271             "772149", "Осакаровский\ р\-н",
272             "772725", "Отеген\-Батыр",
273             "771431", "Рудный",
274             "772839", "Саркандский\ р\-н",
275             "771034", "Улытауский\ р\-н",
276             "771445", "Алтынсаринский\ р\-н",
277             "7342", "Пермский\ край",
278             "771837", "Аксуский\ р\-н",
279             "771838", "Майский\ р\-он",
280             "7498", "Московская\ обл\.",
281             "7712303", "Тензиз",
282             "771433", "Лисаковск",
283             "7872", "Республика\ Дагестан",
284             "771147", "Акжаикский\ р\-н",
285             "772236", "Бескарагайский\ р\-н",
286             "772778", "Уйгурский\ р\-н",
287             "77224", "Эмельтау",
288             "772777", "Райымбекский\ р\-н",
289             "7821", "Республика\ Коми",
290             "7855", "Республика\ Татарстан",
291             "771339", "Айтекебийский\ р\-н",
292             "771430", "Аркалык",
293             "772338", "Уланский\ р\-н",
294             "772337", "Серебрянск",
295             "77222", "Семипалатинск",
296             "7382", "Томская\ обл\.",
297             "7842", "Ульяновская\ обл\.",
298             "771649", "Жаксынский\ р\-н",
299             "772548", "Шаян",
300             "77245", "Кызылординская\ область",
301             "772547", "Ленгер",
302             "77273", "Алма\-Ата",
303             "7861", "Краснодарский\ край",
304             "772937", "Каракиянский\ р\-н",
305             "772938", "Тупкараганский\ р\-н",
306             "771234", "Индерский\ р\-н",
307             "77187", "Экибастуз",
308             "7833", "Кировская\ обл\.",
309             "7816", "Новгородская\ обл\.",
310             "7471", "Курская\ обл\.",
311             "7481", "Смоленская\ обл\.",
312             "77145834", "Красногорск",
313             "771446", "Узункольский\ р\-н",
314             "7815", "Мурманская\ обл\.",
315             "7865", "Ставропольский\ край",
316             "771149", "Акжаикский\ р\-н",
317             "772779", "Райымбекский\ р\-н",
318             "771839", "Лебяжинский\ р\-н",
319             "772431", "Жалагашский\ р\-н",
320             "772838", "Коксуский\ р\-н",
321             "772837", "Алакольский\ р\-н",
322             "772433", "Аральский\ р\-н",
323             "736", "Республика\ Крым",
324             "772148", "Осакаровский\ р\-н",
325             "771236", "Махамбетский\ р\-н",
326             "771040", "Жайрем\ \(ГОК\)",
327             "772147", "Каркаралинский\ р\-н",
328             "7866", "Республика\ Кабардино\-Балкарская",
329             "771043", "Жайрем\ \(поселок\)",
330             "771453", "Аулиекольский\ р\-н",
331             "772256", "Алгабас",
332             "7811", "Псковская\ обл\.",
333             "7351", "Челябинская\ обл\.",
334             "7486", "Орловская\ обл\.",
335             "772339", "Курчумский\ р\-н",
336             "7475", "Тамбовская\ обл\.",
337             "7485", "Ярославская\ обл\.",
338             "771337", "Алгинский\ р\-н",
339             "7493", "Ивановская\ обл\.",
340             "771035", "Улытауский\ р\-н",
341             "771451", "Сарыкольский\ р\-н",
342             "771041", "Актау\,\ Жезказган",
343             "77122", "Атырау",
344             "771444", "Узункольский\ р\-н",
345             "772353", "Бородулихинский\ р\-н",
346             "77152", "Петропавловск",
347             "772154", "Бухар\-Жырауский\ р\-н",
348             "771330", "Хромтауский\ р\-н",
349             "772831", "Панфиловский\ р\-н",
350             "771439", "Джангильдинский\ р\-н",
351             "771542", "Уалихановский\ р\-н",
352             "7472", "Белгородская\ обл\.",
353             "772757", "Акший",
354             "7482", "Тверская\ обл\.",
355             "772437", "Кармакшинский\ р\-н",
356             "771642", "Егиндыкольский\ р\-н",
357             "772438", "Казалинский\ р\-н",
358             "7820", "Вологодская\ обл\.",
359             "772833", "Алакольский\ р\-н",
360             "772344", "Тарбагатайский\ р\-н",
361             "772351", "Бородулихинский\ р\-н",
362             "77162", "Кокшетау",
363             "77106", "Сатпаев",
364             "771457", "Джангильдинский\ р\-н",
365             "771458", "Костанайская\ область",
366             "771536", "Тайыншинский\ р\-н",
367             "7381", "Омская\ обл\.",
368             "771345", "Байганинский\ р\-н",
369             "7841", "Пензенская\ обл\.",
370             "772830", "Алакольский\ р\-н",
371             "771331", "Мартукский\ р\-н",
372             "771333", "Мугалжарский\ р\-н",
373             "7421", "Хабаровский\ край",
374             "771134", "Сырымский\ р\-н",
375             "740", "Калининградская\ обл\.",
376             "771636", "Щучинский\ р\-н",
377             "771844", "Иртышский\ р\-н",
378             "7862", "Краснодарский\ край",
379             "7812", "г\.\ Санкт\-Петербург",
380             "7352", "Курганская\ обл\.",
381             "772931", "Мангистауский\ р\-н",
382             "772156", "Шахтинск",
383             "772641", "Таласский\ р\-н",
384             "772543", "Аксумбе",
385             "772635", "Жуалынский\ р\-н",
386             "771832", "Иртышский\ р\-н",
387             "772535", "Шардара",
388             "772541", "Мырзакент",
389             "772643", "Шуский\ р\-н",
390             "77112", "Уральск",
391             "771142", "Акжаикский\ р\-н",
392             "772346", "Тарбагатайский\ р\-н",
393             "772772", "Капчагай",
394             "771534", "Шал\ Акына\ р\-н",
395             "7846", "Самарская\ обл\.",
396             "77135", "Актюбинская\ область",
397             "772640", "Мойынкумский\ р\-н",
398             "772540", "Арыс",
399             "771136", "Акжаикский\ р\-н",
400             "772332", "Шемонаихинский\ р\-н",
401             "7426", "Еврейская\ автономная\ обл\.",
402             "7845", "Саратовская\ обл\.",
403             "7385", "Алтайский\ край",
404             "77252", "Шымкент",
405             "771141", "Жангалинский\ р\-н",
406             "772771", "Карасайский\ р\-н",
407             "771135", "Жанибекский\ р\-н",
408             "7302", "Забайкальский\ край",
409             "772439", "Аральский\ р\-н",
410             "772330", "Зыряновский\ р\-н",
411             "771831", "Железинский\ р\-н",
412             "771845", "Павлодар",
413             "772542", "Асыката",
414             "7717", "Астана",
415             "7494", "Костромская\ обл\.",
416             "771438", "Амангельдинский\ р\-н",
417             "771437", "Камыстинский\ р\-н",
418             "772642", "Мойынкумский\ р\-н",
419             "772759", "Алматинская\ область",
420             "771833", "Качирский\ р\-н",
421             "772932", "Бейнеуский\ р\-н",
422             "772773", "Балхашский\ р\-н",
423             "771143", "Теректинский\ р\-н",
424             "77262", "Тараз",
425             "772770", "Жамбылский\ р\-н",
426             "771140", "Бокейординский\ р\-н",
427             "7712302", "Тенгизшевройл",
428             "772536", "Кентау",
429             "772345", "Жарминский\ р\-н",
430             "772331", "Глубоковский\ р\-н",
431             "7345", "Тюменская\ обл\.",
432             "7346", "Ханты\ \-\ Мансийский\ \-\ Югра\ АО",
433             "772333", "Кокпектинский\ р\-н",
434             "7411", "Республика\ Саха\ \/Якутия\/",
435             "772636", "Кордай",
436             "771459", "Костанайская\ область",
437             "77279", "Алматы",
438             "7834", "Республика\ Мордовия",
439             "771543", "Есильский\ р\-н",
440             "771641", "Астраханский\ р\-н",
441             "771635", "Жаксынский\ р\-н",
442             "77185", "Шалдай",
443             "771535", "Габита\ Мусрепова\ р\-н",
444             "772832", "Аксуский\ р\-н",
445             "77212", "Караганда",
446             "771643", "Атбасарский\ р\-н",
447             "77272956", "Талгар",
448             "771541", "Мамлютский\ р\-н",
449             "771346", "Темирский\ р\-н",
450             "772534", "Жетысай",
451             "7415", "Камчатский\ край",
452             "77149", "Костанай",
453             "771640", "Сандыктауский\ р\-н",
454             "771540", "Уалихановский\ р\-н",
455             "771332", "Уилский\ р\-н",
456             "7341", "Республика\ Удмуртская",
457             "7416", "Амурская\ обл\.",
458             "772634", "Жанатас",
459             "7871", "Республика\ Чеченская",
460             "7427", "Чукотский\ АО",
461             "771443", "Мендыкаринский\ р\-н",
462             "771138", "Казталовский\ р\-н",
463             "7491", "Рязанская\ обл\.",
464             "7835", "Чувашская\ Республика\ \-\ Чувашия",
465             "771137", "Чингирлауский\ р\-н",
466             "7813", "Ленинградская\ обл\.",
467             "7353", "Оренбургская\ обл\.",
468             "7836", "Республика\ Марий\ Эл",
469             "7847", "Республика\ Калмыкия",
470             "771441", "Карабалыкский\ р\-н",
471             "771435", "Житикаринский\ р\-н",
472             "771454", "Наурзумский\ р\-н",
473             "733", "Байконыр",
474             "772347", "Жарминский\ р\-н",
475             "772348", "Кокпектинский\ р\-н",
476             "77272983", "Каскелен",
477             "771349", "Шалкарский\ р\-н",
478             "771440", "Амангельдинский\ р\-н",
479             "77125", "Атырауская\ область",
480             "771638", "Аккольский\ р\-н",
481             "7496", "г\.\ Москва",
482             "771637", "Коргалжынский\ р\-н",
483             "772539", "Казыгурт",
484             "772251", "Курчатов",
485             "77242", "Кызылорда",
486             "771456", "Качар",
487             "7473", "Воронежская\ обл\.",
488             "772639", "Сарысуский\ р\-н",
489             "7483", "Брянская\ обл\.",
490             "7495", "Московская\ обл\.",
491             "771538", "Кызылжарский\ р\-н",
492             "771230", "Атырауская\ область",
493             "7831", "Нижегородская\ обл\.",
494             "771537", "Тимирязевский\ р\-н",
495             "771233", "Курмангазинский\ р\-н",
496             "772436", "Сырдарьинский\ р\-н",
497             "7863", "Ростовская\ обл\.",
498             "771032", "Каражал",
499             "771231", "Исатайский\ р\-н",
500             "7869", "г\.\ Севастополь",
501             "771030", "Жана\-Аркинский\ р\-н",
502             "772137", "Сарань",
503             "772138", "Бухар\-Жырауский\ р\-н",
504             "772252", "Абайский\ р\-н",
505             "771139", "Таскалинский\ р\-н",
506             "772435", "Жанакорганский\ р\-н",
507             "772159", "Карагандинская\ область",
508             "771232", "Атырауская\ область",
509             "771348", "Шалкарский\ р\-н",
510             "771347", "Айтекебийский\ р\-н",
511             "7424", "Сахалинская\ обл\.",
512             "771434", "Денисовский\ р\-н",
513             "771455", "Костанайский\ р\-н",
514             "771031", "Шетский\ р\-н",
515             "7818", "Архангельская\ обл\.",
516             "771033", "Шетский\ р\-н",
517             "7384", "Кемеровская\ обл\.",
518             "7844", "Волгоградская\ обл\.",
519             "772637", "Байзакский\ р\-н",
520             "771442", "Федоровский\ р\-н",
521             "77274", "Карасайский\ р\-н",
522             "772638", "Шуский\ р\-н",
523             "771539", "Кызылжарский\ р\-н",
524             "7877", "Республика\ Адыгея",
525             "7347", "Республика\ Башкортостан",
526             "77142", "Костанай",
527             "771639", "Енбекшилдерский\ р\-н",
528             "772537", "Сарыагаш",
529             "772538", "имени\ Турара\ Рыскулова",
530             "772230", "Урджарский\ р\-н",
531             "77272", "Алма\-Ата",
532             "771436", "Тарановский\ р\-н",
533             "7390", "Республика\ Хакасия",
534             "772545", "Икан",
535             "771842", "Майский\ р\-он",
536             "7873", "Республика\ Ингушетия",
537             "772633", "Жамбылский\ р\-н",
538             "7343", "Свердловская\ обл",
539             "772531", "Аксукент",
540             "771132", "Теректинский\ р\-н",
541             "77182", "Павлодар",
542             "772336", "Риддер",
543             "772935", "Каракиянский\ р\-н",
544             "772533", "Туркестан",
545             "772631", "Турара\ Рыскулова\ р\-н",
546             "771146", "Акжаикский\ р\-н",
547             "772530", "Темирлановка",
548             "772237", "Аязог",
549             "772342", "Катон\-Карагайский\ р\-н",
550             "772776", "Енбекшиказахский\ р\-н",
551             "771836", "Щербактинский\ р\-н",
552             "77232", "Усть\-Каменогорск",
553             "771651", "Целиноградский\ р\-н",
554             "771644", "Аршалынский\ р\-н",
555             "771544", "Жамбылский\ р\-н",
556             "771239", "Макатский\ р\-н",
557             "7484", "Калужская\ обл\.",
558             "7474", "Липецкая\ обл\.",
559             "771632", "Зерендинский\ р\-н",
560             "772843", "Лепсы",
561             "772334", "Уланский\ р\-н",
562             "7413", "Магаданская\ обл\.",
563             "772131", "Абайский\ р\-н",
564             "772841", "Аксуский\ р\-н",
565             "771449", "Тарановский\ р\-н",
566             "771340", "Хобдинский\ р\-н",
567             "772835", "Текели",
568             "771532", "Аккайынский\ р\-н",
569             "771343", "Иргизский\ р\-н",
570             "772774", "Талгарский\ р\-н",
571             "771144", "Казталовский\ р\-н",
572             "771646", "Буландинский\ р\-н",
573             "771834", "Успенский\ р\-н",
574             "7388", "Республика\ Алтай",
575             "7814", "Республика\ Карелия",
576             "7848", "Самарская\ обл\.",
577             "771546", "Акжарский\ р\-н",
578             "771037", "Актогайский\ р\-н",
579             "771038", "Сыры\-Шаган",
580             "771335", "Шалкарский\ р\-н",
581             "771341", "Хобдинский\ р\-н",
582             "772840", "Кербулакский\ р\-н",
583             "772842", "Кербулакский\ р\-н",
584             "771545", "Жамбылский\ р\-н",
585             "771531", "Магжана\ Жумабаева\ р\-н",
586             "7391", "Красноярский\ край",
587             "771633", "Ерейментауский\ р\-н",
588             "772132", "Нуринский\ р\-н",
589             "771336", "Хромтауский\ р\-н",
590             "77282", "Талдыкорган",
591             "772257", "Шульбинск",
592             "7487", "Тульская\ обл\.",
593             "771631", "Шортандинский\ р\-н",
594             "771533", "Айыртауский\ р\-н",
595             "771645", "Степногорск",
596             "771237", "Жылыойский\ р\-н",
597             "7867", "Республика\ Северная\ Осетия\ \-\ Алания",
598             "772146", "Каркаралинск",
599             "7492", "Владимирская\ обл\.",
600             "771238", "Кзылкогинский\ р\-н",
601             "77213", "Темиртау",
602             "772934", "Жанаозен",
603             "771342", "Каргалинский\ р\-н",
604             "7878", "Республика\ Карачаево\-Черкесская",
605             "77132", "Актобе\/Актюбинск",
606             "772836", "Ескельдинский\ р\-н",
607             "772644", "Таласский\ р\-н",
608             "772544", "Шаульдер",
609             "772239", "Урджарский\ р\-н",
610             "771630", "Боровое",
611             "772632", "Меркенский\ р\-н",
612             "771447", "Карабалыкский\ р\-н",
613             "771448", "Карасуский\ р\-н",
614             "77292", "Актау",
615             "771843", "Майский\ р\-н",
616             "771334", "Мугалжарский\ р\-н",
617             "7423", "Приморский\ край",
618             "771133", "Бурлинский\ р\-н",
619             "7843", "Республика\ Татарстан",
620             "7395", "Иркутская\ обл\.",
621             "772775", "Енбекшиказахский\ р\-н",
622             "771131", "Зеленовский\ р\-н",
623             "7383", "Новосибирская\ обл\.",
624             "771145", "Каратобинский\ р\-н",
625             "772340", "Зайсанский\ р\-н",
626             "771841", "Актогайский\ р\-н",
627             "772532", "Абая",
628             "7817", "Вологодская\ обл\.",
629             "772343", "Курчумский\ р\-н",
630             "772144", "Нуринский\ р\-н",
631             "7349", "Ямало\-Ненецкий\ АО",
632             "7879", "Ставропольский\ край",
633             "771039", "Приозерск",
634             "772834", "Каратальский\ р\-н",
635             "772546", "Шолаккорган",
636             "771130", "Зеленовский\ р\-н",
637             "772335", "Зыряновск",
638             "772341", "Катон\-Карагайский\ р\-н",
639             "771840", "Баянаульский\ р\-н",
640             "772153", "Абайский\ р\-н",};
641             $areanames{en} = {"772835", "Tekeli",
642             "771532", "Smirnovo",
643             "772841", "Kapal",
644             "771340", "Khobdinsky\ District",
645             "771449", "Taranovskoye",
646             "772131", "Abai",
647             "7413", "Magadan",
648             "772334", "Tavricheskoye",
649             "772843", "Lepsy",
650             "771632", "Zerenda",
651             "772840", "Saryozek",
652             "771341", "Khobda",
653             "771335", "Shalkar",
654             "771037", "Aktogai",
655             "771546", "Talshik",
656             "7848", "Tolyatti",
657             "771038", "Shashubai",
658             "7814", "Republic\ of\ Karelia",
659             "7388", "Republic\ of\ Altai",
660             "771834", "Uspenka",
661             "771646", "Makinsk",
662             "771144", "Kaztalovka",
663             "772774", "Talgar",
664             "771343", "Irgiz",
665             "772533", "Turkestan",
666             "772631", "Kulan",
667             "772935", "Zhetybai",
668             "77182", "Pavlodar",
669             "772336", "Ridder",
670             "771132", "Fyodorovka",
671             "7343", "Ekaterinburg",
672             "772633", "Asa",
673             "772531", "Aksukent",
674             "772545", "Ikan",
675             "7873", "Ingushi\ Republic",
676             "771842", "Koktobe",
677             "7474", "Lipetsk",
678             "7484", "Kaluga",
679             "771239", "Makat",
680             "771544", "Presnovka",
681             "771644", "Arshaly",
682             "771836", "Sharbakty",
683             "77232", "Ust\-Kamenogorsk",
684             "771651", "Kabanbai\ Batyr",
685             "772342", "Katon\-Karagai",
686             "772776", "Shelek",
687             "772530", "Temirlanovka",
688             "771146", "Akzhaiksky\ District",
689             "772237", "Ayagoz",
690             "772532", "Abai",
691             "7817", "Vologda",
692             "771841", "Aktogai",
693             "772340", "Zaisan",
694             "771145", "Karatobe\ District",
695             "7383", "Novosibirsk",
696             "772775", "Esik",
697             "771131", "Darinskoye",
698             "7395", "Irkutsk",
699             "7843", "Republic\ of\ Tatarstan",
700             "771133", "Aksai",
701             "7423", "Primorie\ territory",
702             "771334", "Emba",
703             "77292", "Aktau",
704             "771843", "Maisky\ District",
705             "771447", "Karabalyksky\ District",
706             "772632", "Merke",
707             "771448", "Oktyabrskoye",
708             "772341", "Ulken\ Naryn",
709             "771840", "Bayanaul",
710             "772153", "Topar",
711             "772335", "Zyryanovsk",
712             "771130", "Peremetnoye",
713             "772546", "Sholakkorgan",
714             "7879", "Mineranye\ Vody",
715             "772834", "Ushtobe",
716             "771039", "Priozersk",
717             "7349", "Yamalo\-Nenets\ Autonomous\ District",
718             "772144", "Kiyevka",
719             "772343", "Terekty",
720             "771645", "Stepnogorsk",
721             "771631", "Shortandy",
722             "771533", "Saumalkol",
723             "7487", "Tula",
724             "772257", "Shulbinsk",
725             "771336", "Khromtau",
726             "77282", "Taldykorgan",
727             "772132", "Nurinsky\ District",
728             "7391", "Krasnoyarsk\ Territory",
729             "771531", "Bulayevo",
730             "771633", "Ereimentau",
731             "772842", "Kogaly",
732             "771545", "Zhambylsky\ District",
733             "771630", "Burabay",
734             "772239", "Makanchi",
735             "772544", "Shaulder",
736             "772644", "Karatau",
737             "77132", "Aktobe\/Kargalinskoye",
738             "772836", "Karabulak",
739             "77213", "Aktau\/Temirtau",
740             "772934", "Zhanaozen",
741             "7878", "Karachayevo\-Cherkessian\ Republic",
742             "771342", "Badamsha",
743             "7867", "Republic\ of\ North\ Ossetia",
744             "771237", "Kulsary",
745             "772146", "Karkaralinsk",
746             "7492", "Vladimir",
747             "771238", "Miyaly",
748             "771230", "Atyrau\ Region",
749             "7495", "Moscow",
750             "771538", "Beskol",
751             "771537", "Timiryazevo",
752             "7831", "Nizhni\ Novgorod",
753             "771456", "Kachar",
754             "772639", "Saudakent",
755             "7483", "Bryansk",
756             "7473", "Voronezh",
757             "77242", "Kyzylorda",
758             "772251", "Kurchatov",
759             "772539", "Kazygurt",
760             "771638", "Akkol",
761             "7496", "Moscow",
762             "771637", "Korgalzhyn",
763             "771231", "Akkystau",
764             "771032", "Karazhal",
765             "772436", "Terenozek",
766             "7863", "Rostov",
767             "771233", "Ganyushkino",
768             "771435", "Zhitikara",
769             "771454", "Karamendy",
770             "733", "Baikonur",
771             "771441", "Karabalyk",
772             "7847", "Republic\ of\ Kalmykia",
773             "7353", "Orenburg",
774             "7813", "Leningrad\ region",
775             "7836", "Republic\ of\ Marij\ El",
776             "7491", "Ryazan",
777             "771138", "Zhalpaktal",
778             "771137", "Chingirlau",
779             "7835", "Chuvashi\ Republic",
780             "771443", "Borovskoi",
781             "7427", "Chukotka\ Autonomous\ District",
782             "771349", "Shalkarsky\ District",
783             "771440", "Amangeldy",
784             "77125", "Atyrau\ Region",
785             "77272983", "Kaskelen",
786             "772347", "Kalbatau",
787             "772348", "Kokpekty",
788             "772537", "Saryagash",
789             "772230", "Urdzhar",
790             "772538", "Turara\ Ryskulova",
791             "771639", "Stepnyak",
792             "7347", "Republic\ of\ Bashkortostan",
793             "77142", "Kostanai",
794             "7877", "Republic\ of\ Adygeya",
795             "771539", "Beskol",
796             "771442", "Fyodorovka",
797             "772637", "Sarykemer",
798             "772638", "Tole\ bi",
799             "77274", "Karassaisky\ District",
800             "7390", "Republic\ of\ Khakassia",
801             "771436", "Taranovskoye",
802             "77272", "Almaty",
803             "772435", "Zhanakorgan",
804             "772252", "Karaul",
805             "771139", "Taskala",
806             "772137", "Saran",
807             "771030", "Atasu",
808             "772138", "Gabidena\ Mustafina",
809             "7869", "Sevastopol",
810             "7844", "Volgograd",
811             "7384", "Kemerovo",
812             "771033", "Agadyr",
813             "7818", "Arkhangelsk",
814             "771031", "Aksu\-Ayuly",
815             "771434", "Denisovka",
816             "771455", "Zatobolsk",
817             "7424", "Sakhalin\ Region",
818             "771348", "Shalkarsky\ District",
819             "771347", "Aitekebisky\ District",
820             "772159", "Karaganda\ Region",
821             "771232", "Atyrau\ Region",
822             "772346", "Aksuat",
823             "772772", "Kapchagai",
824             "771142", "Taipak",
825             "772541", "Myrzakent",
826             "77112", "Uralsk",
827             "772643", "Shu",
828             "771832", "Irtyshsk",
829             "772535", "Shardara",
830             "772635", "Bauyrzhan\ Mamyshuly",
831             "772641", "Akkol",
832             "772543", "Aqsumbe",
833             "7352", "Kurgan",
834             "7812", "St\ Petersburg",
835             "772156", "Shakhtinsk",
836             "772931", "Shetpe",
837             "7385", "Altai\ Territory",
838             "7426", "Jewish\ Autonomous\ Region",
839             "7845", "Saratov",
840             "772332", "Shemonaikha",
841             "771136", "Chapayev",
842             "772540", "Arys",
843             "772640", "Moiynkumsky\ District",
844             "77135", "Aktobe\ Region",
845             "7846", "Samara",
846             "771534", "Sergeyevka",
847             "77106", "Satpaev",
848             "772351", "Borodulikha",
849             "77162", "Kokshetau\/Krasni\ Yar",
850             "772344", "Akzhar",
851             "772833", "Usharal",
852             "7820", "Cherepovets",
853             "771642", "Egendykol",
854             "772437", "Zhosaly",
855             "772438", "Aiteke\ bi",
856             "771542", "Kishkenekol",
857             "7482", "Tver",
858             "7472", "Belgorod",
859             "772757", "Akshi",
860             "771439", "Torgai",
861             "771330", "Khromtau\ District",
862             "772831", "Zharkent",
863             "772154", "Botakara",
864             "772353", "Novaya\ Shulba",
865             "77152", "Petropavlovsk",
866             "7862", "Sochi",
867             "771844", "Irtyshsky\ District",
868             "771636", "Shuchinsk",
869             "740", "Kaliningrad",
870             "771134", "Zhympity",
871             "771333", "Kandyagash",
872             "7421", "Khabarovsk\ Territory",
873             "772830", "Alakolsky\ District",
874             "771331", "Martuk",
875             "7841", "Penza",
876             "771345", "Karauylkeldy",
877             "7381", "Omsk",
878             "771536", "Taiynsha",
879             "771457", "Dzhangildinsky\ District",
880             "771458", "Kostanai\ Region",
881             "771346", "Shubarkuduk",
882             "77212", "Karaganda",
883             "771643", "Atbasar",
884             "77272956", "Talgar",
885             "771541", "Mamlutka",
886             "771535", "Novoishimski",
887             "772832", "Zhansugurov",
888             "771635", "Zhaksy",
889             "77185", "Shaldai",
890             "771543", "Yavlenka",
891             "771641", "Astrakhanka",
892             "7834", "Republic\ of\ Mordovia",
893             "77279", "Almaty",
894             "7871", "Chechen\ Republic",
895             "772634", "Zhanatas",
896             "7416", "Amur\ Region",
897             "7341", "Udmurtian\ Republic",
898             "771332", "Uil",
899             "771540", "Kishkenekol",
900             "771640", "Balkashino",
901             "77149", "Kostanai",
902             "7415", "Kamchatka\ Region",
903             "772534", "Zhetysai",
904             "771143", "Akzhaik",
905             "77262", "Taraz",
906             "772932", "Beineu",
907             "772773", "Bakanas",
908             "772759", "Almaty\ Region",
909             "771833", "Terenkol",
910             "7494", "Kostroma",
911             "771438", "Amangeldy",
912             "7717", "Astana",
913             "772642", "Moiynkum",
914             "771437", "Kamysty",
915             "771845", "Pavlodar\ Area",
916             "772542", "Asykata",
917             "771831", "Zhelezinka",
918             "772330", "Zyryanovsky\ District",
919             "772439", "Aralsky\ District",
920             "7302", "Chita",
921             "772771", "Kaskelen",
922             "771135", "Zhanibek",
923             "77252", "Shymkent",
924             "771141", "Zhangala",
925             "772636", "Kordai",
926             "771459", "Kostanai\ Region",
927             "7346", "Surgut",
928             "772333", "Samarskoye",
929             "7411", "Republic\ of\ Sakha",
930             "772331", "Glubokoye",
931             "7345", "Tyumen",
932             "772345", "Shar",
933             "7712302", "Tengizshevroil",
934             "772536", "Kentau",
935             "771140", "Saikhin",
936             "772770", "Uzynagash",
937             "77224", "Barshatas",
938             "772778", "Chundzha",
939             "772777", "Kegen",
940             "771147", "Akzhaiksky\ District",
941             "772236", "Beskaragai",
942             "7712303", "Tengizs",
943             "7872", "Republic\ of\ Daghestan",
944             "771433", "Lisakovsk",
945             "771837", "Aksu",
946             "7342", "Perm",
947             "7498", "Moscow",
948             "771838", "Koktobe",
949             "771445", "Ubaganskoye",
950             "771034", "Zhezdy",
951             "771431", "Rudny",
952             "772839", "Sarkand",
953             "772149", "Osakarovka",
954             "772725", "Otegen\ Batyra",
955             "77222", "Semey",
956             "772338", "Bozanbai\/Molodezhnyi",
957             "772337", "Serebryansk",
958             "771339", "Komsomolskoye",
959             "771430", "Arkalyk",
960             "7821", "Komi\ Republic",
961             "7855", "Naberezhnye\ Chelny",
962             "7394", "Republic\ of\ Tuva",
963             "7499", "Moscow",
964             "771647", "Esil",
965             "772432", "Shiyeli",
966             "771648", "Derzhavinsk",
967             "771036", "Balkhash",
968             "771547", "Zhambylsky\ District",
969             "772752", "Otegen\ Batyra",
970             "7851", "Astrakhan",
971             "7301", "Republic\ of\ Buryatia",
972             "771235", "Dossor",
973             "77102", "Zhezkazgan",
974             "771042", "Zharyk",
975             "771452", "Karasu",
976             "7866", "Kabardino\-Balkarian\ Republic",
977             "772148", "Molodezhnoye",
978             "771236", "Makhambet",
979             "772147", "Egindybulak",
980             "771040", "Zhairem\ \(GOK\)",
981             "736", "Simferopol",
982             "772433", "Aralsk",
983             "772838", "Balpyk\ bi",
984             "772837", "Kabanbai",
985             "772431", "Zhalagash",
986             "771839", "Akku",
987             "772779", "Narynkol",
988             "7865", "Stavropol\ territory",
989             "771149", "Zelenovsky\ District",
990             "77122", "Atyrau",
991             "771444", "Uzunkol",
992             "771041", "Aktau\,\ Zhezkazgan",
993             "771451", "Sarykol",
994             "771035", "Ulytau",
995             "771337", "Alga",
996             "7485", "Yaroslavl",
997             "7475", "Tambov",
998             "772339", "Kurchum",
999             "7486", "Orel",
1000             "772256", "Kainar",
1001             "7351", "Chelyabinsk",
1002             "7811", "Pskov",
1003             "771453", "Auliekol",
1004             "771043", "Zhairem",
1005             "771234", "Indernborski",
1006             "77187", "Ekibastuz",
1007             "772937", "Kuryk",
1008             "772938", "Fort\ Shevchenko",
1009             "7861", "Krasnodar\ Territory",
1010             "77273", "Almaty",
1011             "772548", "Shayan",
1012             "772547", "Lenger",
1013             "77245", "Kyzylorda\ Region",
1014             "771649", "Zhaksynsky\ District",
1015             "7842", "Ulyanovsk",
1016             "7382", "Tomsk",
1017             "7815", "Murmansk",
1018             "771446", "Uzunkolsky\ District",
1019             "7481", "Smolensk",
1020             "7471", "Kursk",
1021             "77145834", "Krasnogorsk",
1022             "7833", "Kirov",
1023             "7816", "Veliky\ Novgorod",};
1024              
1025             sub new {
1026 20     20 1 113 my $class = shift;
1027 20         118 my $number = shift;
1028 20         138 $number =~ s/(^\+7|\D)//g;
1029 20         123 my $self = bless({ country_code => '7', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
1030 20 100       124 return $self if ($self->is_valid());
1031 4         25 $number =~ s/^(?:8)//;
1032 4         67 $self = bless({ country_code => '7', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
1033 4 50       22 return $self->is_valid() ? $self : undef;
1034             }
1035             1;