<?php
$area_codes = [015019,
015020,
01511,
01512,
01514,
01515,
01516,
01517,
015180,
015181,
015182,
015183,
015184,
015185,
015186,
015310,
01520,
01521,
01522,
01523,
01525,
01526,
01529,
015510,
015511,
015560,
015561,
015562,
015563,
015564,
015565,
015566,
015567,
015568,
015569,
015630,
015678,
015679,
015700,
015701,
015702,
015703,
015704,
015706,
01573,
01575,
01577,
01578,
01579,
015888,
01590,
0160,
0162,
0163,
0170,
0171,
0172,
0173,
0174,
0175,
0176,
0177,
0178,
0179,
0201,
0202,
0203,
02041,
02043,
02045,
02051,
02052,
02053,
02054,
02056,
02058,
02064,
02065,
02066,
0208,
0209,
02102,
02103,
02104,
0211,
0212,
02129,
02131,
02132,
02133,
02137,
0214,
02150,
02151,
02152,
02153,
02154,
02156,
02157,
02158,
02159,
02161,
02162,
02163,
02164,
02165,
02166,
02171,
02173,
02174,
02175,
02181,
02182,
02183,
02191,
02192,
02193,
02195,
02196,
02202,
02203,
02204,
02205,
02206,
02207,
02208,
0221,
02222,
02223,
02224,
02225,
02226,
02227,
02228,
02232,
02233,
02234,
02235,
02236,
02237,
02238,
02241,
02242,
02243,
02244,
02245,
02246,
02247,
02248,
02251,
02252,
02253,
02254,
02255,
02256,
02257,
02261,
02262,
02263,
02264,
02265,
02266,
02267,
02268,
02269,
02271,
02272,
02273,
02274,
02275,
0228,
02291,
02292,
02293,
02294,
02295,
02296,
02297,
02301,
02302,
02303,
02304,
02305,
02306,
02307,
02308,
02309,
0231,
02323,
02324,
02325,
02327,
02330,
02331,
02332,
02333,
02334,
02335,
02336,
02337,
02338,
02339,
0234,
02351,
02352,
02353,
02354,
02355,
02357,
02358,
02359,
02360,
02361,
02362,
02363,
02364,
02365,
02366,
02367,
02368,
02369,
02371,
02372,
02373,
02374,
02375,
02377,
02378,
02379,
02381,
02382,
02383,
02384,
02385,
02387,
02388,
02389,
02391,
02392,
02393,
02394,
02395,
02401,
02402,
02403,
02404,
02405,
02406,
02407,
02408,
02409,
0241,
02421,
02422,
02423,
02424,
02425,
02426,
02427,
02428,
02429,
02431,
02432,
02433,
02434,
02435,
02436,
02440,
02441,
02443,
02444,
02445,
02446,
02447,
02448,
02449,
02451,
02452,
02453,
02454,
02455,
02456,
02461,
02462,
02463,
02464,
02465,
02471,
02472,
02473,
02474,
02482,
02484,
02485,
02486,
02501,
02502,
02504,
02505,
02506,
02507,
02508,
02509,
0251,
02520,
02521,
02522,
02523,
02524,
02525,
02526,
02527,
02528,
02529,
02532,
02533,
02534,
02535,
02536,
02538,
02541,
02542,
02543,
02545,
02546,
02547,
02548,
02551,
02552,
02553,
02554,
02555,
02556,
02557,
02558,
02561,
02562,
02563,
02564,
02565,
02566,
02567,
02568,
02571,
02572,
02573,
02574,
02575,
02581,
02582,
02583,
02584,
02585,
02586,
02587,
02588,
02590,
02591,
02592,
02593,
02594,
02595,
02596,
02597,
02598,
02599,
02601,
02602,
02603,
02604,
02605,
02606,
02607,
02608,
0261,
02620,
02621,
02622,
02623,
02624,
02625,
02626,
02627,
02628,
02630,
02631,
02632,
02633,
02634,
02635,
02636,
02637,
02638,
02639,
02641,
02642,
02643,
02644,
02645,
02646,
02647,
02651,
02652,
02653,
02654,
02655,
02656,
02657,
02661,
02662,
02663,
02664,
02666,
02667,
02671,
02672,
02673,
02674,
02675,
02676,
02677,
02678,
02680,
02681,
02682,
02683,
02684,
02685,
02686,
02687,
02688,
02689,
02691,
02692,
02693,
02694,
02695,
02696,
02697,
0271,
02721,
02722,
02723,
02724,
02725,
02732,
02733,
02734,
02735,
02736,
02737,
02738,
02739,
02741,
02742,
02743,
02744,
02745,
02747,
02750,
02751,
02752,
02753,
02754,
02755,
02758,
02759,
02761,
02762,
02763,
02764,
02770,
02771,
02772,
02773,
02774,
02775,
02776,
02777,
02778,
02779,
02801,
02802,
02803,
02804,
0281,
02821,
02822,
02823,
02824,
02825,
02826,
02827,
02828,
02831,
02832,
02833,
02834,
02835,
02836,
02837,
02838,
02839,
02841,
02842,
02843,
02844,
02845,
02850,
02851,
02852,
02853,
02855,
02856,
02857,
02858,
02859,
02861,
02862,
02863,
02864,
02865,
02866,
02867,
02871,
02872,
02873,
02874,
02902,
02903,
02904,
02905,
0291,
02921,
02922,
02923,
02924,
02925,
02927,
02928,
02931,
02932,
02933,
02934,
02935,
02937,
02938,
02941,
02942,
02943,
02944,
02945,
02947,
02948,
02951,
02952,
02953,
02954,
02955,
02957,
02958,
02961,
02962,
02963,
02964,
02971,
02972,
02973,
02974,
02975,
02977,
02981,
02982,
02983,
02984,
02985,
02991,
02992,
02993,
02994,
030,
03301,
03302,
03303,
03304,
033051,
033052,
033053,
033054,
033055,
033056,
03306,
03307,
033080,
033082,
033083,
033084,
033085,
033086,
033087,
033088,
033089,
033093,
033094,
0331,
033200,
033201,
033202,
033203,
033204,
033205,
033206,
033207,
033208,
033209,
03321,
03322,
033230,
033231,
033232,
033233,
033234,
033235,
033237,
033238,
033239,
03327,
03328,
03329,
03331,
03332,
033331,
033332,
033333,
033334,
033335,
033336,
033337,
033338,
03334,
03335,
033361,
033362,
033363,
033364,
033365,
033366,
033367,
033368,
033369,
03337,
03338,
033393,
033394,
033395,
033396,
033397,
033398,
03341,
03342,
033432,
033433,
033434,
033435,
033436,
033437,
033438,
033439,
03344,
033451,
033452,
033454,
033456,
033457,
033458,
03346,
033470,
033472,
033473,
033474,
033475,
033476,
033477,
033478,
033479,
0335,
033601,
033602,
033603,
033604,
033605,
033606,
033607,
033608,
033609,
03361,
03362,
033631,
033632,
033633,
033634,
033635,
033636,
033637,
033638,
03364,
033652,
033653,
033654,
033655,
033656,
033657,
03366,
033671,
033672,
033673,
033674,
033675,
033676,
033677,
033678,
033679,
033701,
033702,
033703,
033704,
033708,
03371,
03372,
033731,
033732,
033733,
033734,
033741,
033742,
033743,
033744,
033745,
033746,
033747,
033748,
03375,
033760,
033762,
033763,
033764,
033765,
033766,
033767,
033768,
033769,
03377,
03378,
03379,
03381,
03382,
033830,
033831,
033832,
033833,
033834,
033835,
033836,
033837,
033838,
033839,
033841,
033843,
033844,
033845,
033846,
033847,
033848,
033849,
03385,
03386,
033870,
033872,
033873,
033874,
033875,
033876,
033877,
033878,
03391,
033920,
033921,
033922,
033923,
033924,
033925,
033926,
033927,
033928,
033929,
033931,
033932,
033933,
03394,
03395,
033962,
033963,
033964,
033965,
033966,
033967,
033968,
033969,
033970,
033971,
033972,
033973,
033974,
033975,
033976,
033977,
033978,
033979,
033981,
033982,
033983,
033984,
033986,
033989,
0340,
0341,
034202,
034203,
034204,
034205,
034206,
034207,
034208,
03421,
034221,
034222,
034223,
034224,
03423,
034241,
034242,
034243,
034244,
03425,
034261,
034262,
034263,
034291,
034292,
034293,
034294,
034295,
034296,
034297,
034298,
034299,
03431,
034321,
034322,
034324,
034325,
034327,
034328,
03433,
034341,
034342,
034343,
034344,
034345,
034346,
034347,
034348,
03435,
034361,
034362,
034363,
034364,
03437,
034381,
034382,
034383,
034384,
034385,
034386,
03441,
034422,
034423,
034424,
034425,
034426,
03443,
034441,
034443,
034444,
034445,
034446,
03445,
034461,
034462,
034463,
034464,
034465,
034466,
034467,
03447,
03448,
034491,
034492,
034493,
034494,
034495,
034496,
034497,
034498,
0345,
034600,
034601,
034602,
034603,
034604,
034605,
034606,
034607,
034609,
03461,
03462,
034632,
034633,
034635,
034636,
034637,
034638,
034639,
03464,
034651,
034652,
034653,
034654,
034656,
034658,
034659,
03466,
034671,
034672,
034673,
034691,
034692,
03471,
034721,
034722,
03473,
034741,
034742,
034743,
034745,
034746,
03475,
03476,
034771,
034772,
034773,
034774,
034775,
034776,
034779,
034781,
034782,
034783,
034785,
034901,
034903,
034904,
034905,
034906,
034907,
034909,
03491,
034920,
034921,
034922,
034923,
034924,
034925,
034926,
034927,
034928,
034929,
03493,
03494,
034953,
034954,
034955,
034956,
03496,
034973,
034975,
034976,
034977,
034978,
034979,
03501,
035020,
035021,
035022,
035023,
035024,
035025,
035026,
035027,
035028,
035032,
035033,
03504,
035052,
035053,
035054,
035055,
035056,
035057,
035058,
0351,
035200,
035201,
035202,
035203,
035204,
035205,
035206,
035207,
035208,
035209,
03521,
03522,
03523,
035240,
035241,
035242,
035243,
035244,
035245,
035246,
035247,
035248,
035249,
03525,
035263,
035264,
035265,
035266,
035267,
035268,
03528,
03529,
03531,
035322,
035323,
035324,
035325,
035326,
035327,
035329,
03533,
035341,
035342,
035343,
03535,
035361,
035362,
035363,
035364,
035365,
03537,
035383,
035384,
035385,
035386,
035387,
035388,
035389,
03541,
03542,
035433,
035434,
035435,
035436,
035439,
03544,
035451,
035452,
035453,
035454,
035455,
035456,
03546,
035471,
035472,
035473,
035474,
035475,
035476,
035477,
035478,
0355,
035600,
035601,
035602,
035603,
035604,
035605,
035606,
035607,
035608,
035609,
03561,
03562,
03563,
03564,
035691,
035692,
035693,
035694,
035695,
035696,
035697,
035698,
03571,
035722,
035723,
035724,
035725,
035726,
035727,
035728,
03573,
03574,
035751,
035752,
035753,
035754,
035755,
035756,
03576,
035771,
035772,
035773,
035774,
035775,
03578,
035792,
035793,
035795,
035796,
035797,
03581,
035820,
035822,
035823,
035825,
035826,
035827,
035828,
035829,
03583,
035841,
035842,
035843,
035844,
03585,
03586,
035872,
035873,
035874,
035875,
035876,
035877,
03588,
035891,
035892,
035893,
035894,
035895,
03591,
03592,
035930,
035931,
035932,
035933,
035934,
035935,
035936,
035937,
035938,
035939,
03594,
035951,
035952,
035953,
035954,
035955,
03596,
035971,
035973,
035974,
035975,
03601,
036020,
036021,
036022,
036023,
036024,
036025,
036026,
036027,
036028,
036029,
03603,
036041,
036042,
036043,
03605,
03606,
036071,
036072,
036074,
036075,
036076,
036077,
036081,
036082,
036083,
036084,
036085,
036087,
0361,
036200,
036201,
036202,
036203,
036204,
036205,
036206,
036207,
036208,
036209,
03621,
03622,
03623,
03624,
036252,
036253,
036254,
036255,
036256,
036257,
036258,
036259,
03628,
03629,
03631,
03632,
036330,
036331,
036332,
036333,
036334,
036335,
036336,
036337,
036338,
03634,
03635,
03636,
036370,
036371,
036372,
036373,
036374,
036375,
036376,
036377,
036378,
036379,
03641,
036421,
036422,
036423,
036424,
036425,
036426,
036427,
036428,
03643,
03644,
036450,
036451,
036452,
036453,
036454,
036458,
036459,
036461,
036462,
036463,
036464,
036465,
03647,
036481,
036482,
036483,
036484,
0365,
036601,
036602,
036603,
036604,
036605,
036606,
036607,
036608,
03661,
036621,
036622,
036623,
036624,
036625,
036626,
036628,
03663,
036640,
036642,
036643,
036644,
036645,
036646,
036647,
036648,
036649,
036651,
036652,
036653,
036691,
036692,
036693,
036694,
036695,
036701,
036702,
036703,
036704,
036705,
03671,
03672,
036730,
036731,
036732,
036733,
036734,
036735,
036736,
036737,
036738,
036739,
036741,
036742,
036743,
036744,
03675,
036761,
036762,
036764,
036766,
03677,
036781,
036782,
036783,
036784,
036785,
03679,
03681,
03682,
03683,
036840,
036841,
036842,
036843,
036844,
036845,
036846,
036847,
036848,
036849,
03685,
03686,
036870,
036871,
036873,
036874,
036875,
036878,
03691,
036920,
036921,
036922,
036923,
036924,
036925,
036926,
036927,
036928,
036929,
03693,
036940,
036941,
036943,
036944,
036945,
036946,
036947,
036948,
036949,
03695,
036961,
036962,
036963,
036964,
036965,
036966,
036967,
036968,
036969,
0371,
037200,
037202,
037203,
037204,
037206,
037207,
037208,
037209,
03721,
03722,
03723,
03724,
03725,
03726,
03727,
037291,
037292,
037293,
037294,
037295,
037296,
037297,
037298,
03731,
037320,
037321,
037322,
037323,
037324,
037325,
037326,
037327,
037328,
037329,
03733,
037341,
037342,
037343,
037344,
037346,
037347,
037348,
037349,
03735,
037360,
037361,
037362,
037363,
037364,
037365,
037366,
037367,
037368,
037369,
03737,
037381,
037382,
037383,
037384,
03741,
037421,
037422,
037423,
037430,
037431,
037432,
037433,
037434,
037435,
037436,
037437,
037438,
037439,
03744,
03745,
037462,
037463,
037464,
037465,
037467,
037468,
0375,
037600,
037601,
037602,
037603,
037604,
037605,
037606,
037607,
037608,
037609,
03761,
03762,
03763,
03764,
03765,
03771,
03772,
03773,
03774,
037752,
037754,
037755,
037756,
037757,
0381,
038201,
038202,
038203,
038204,
038205,
038206,
038207,
038208,
038209,
03821,
038220,
038221,
038222,
038223,
038224,
038225,
038226,
038227,
038228,
038229,
038231,
038232,
038233,
038234,
038292,
038293,
038294,
038295,
038296,
038297,
038300,
038301,
038302,
038303,
038304,
038305,
038306,
038307,
038308,
038309,
03831,
038320,
038321,
038322,
038323,
038324,
038325,
038326,
038327,
038328,
038331,
038332,
038333,
038334,
03834,
038351,
038352,
038353,
038354,
038355,
038356,
03836,
038370,
038371,
038372,
038373,
038374,
038375,
038376,
038377,
038378,
038379,
03838,
038391,
038392,
038393,
03841,
038422,
038423,
038424,
038425,
038426,
038427,
038428,
038429,
03843,
03844,
038450,
038451,
038452,
038453,
038454,
038455,
038456,
038457,
038458,
038459,
038461,
038462,
038464,
038466,
03847,
038481,
038482,
038483,
038484,
038485,
038486,
038488,
0385,
03860,
03861,
03863,
03865,
03866,
03867,
03868,
03869,
03871,
038720,
038721,
038722,
038723,
038724,
038725,
038726,
038727,
038728,
038729,
038731,
038732,
038733,
038735,
038736,
038737,
038738,
03874,
038750,
038751,
038752,
038753,
038754,
038755,
038756,
038757,
038758,
038759,
03876,
03877,
038780,
038781,
038782,
038783,
038784,
038785,
038787,
038788,
038789,
038791,
038792,
038793,
038794,
038796,
038797,
03881,
038821,
038822,
038823,
038824,
038825,
038826,
038827,
038828,
03883,
038841,
038842,
038843,
038844,
038845,
038847,
038848,
038850,
038851,
038852,
038853,
038854,
038855,
038856,
038858,
038859,
03886,
038871,
038872,
038873,
038874,
038875,
038876,
039000,
039001,
039002,
039003,
039004,
039005,
039006,
039007,
039008,
039009,
03901,
03902,
039030,
039031,
039032,
039033,
039034,
039035,
039036,
039037,
039038,
039039,
03904,
039050,
039051,
039052,
039053,
039054,
039055,
039056,
039057,
039058,
039059,
039061,
039062,
03907,
039080,
039081,
039082,
039083,
039084,
039085,
039086,
039087,
039088,
039089,
03909,
0391,
039200,
039201,
039202,
039203,
039204,
039205,
039206,
039207,
039208,
039209,
03921,
039221,
039222,
039223,
039224,
039225,
039226,
03923,
039241,
039242,
039243,
039244,
039245,
039246,
039247,
039248,
03925,
039262,
039263,
039264,
039265,
039266,
039267,
039268,
03928,
039291,
039292,
039293,
039294,
039295,
039296,
039297,
039298,
03931,
039320,
039321,
039322,
039323,
039324,
039325,
039327,
039328,
039329,
03933,
039341,
039342,
039343,
039344,
039345,
039346,
039347,
039348,
039349,
03935,
039361,
039362,
039363,
039364,
039365,
039366,
03937,
039382,
039383,
039384,
039386,
039387,
039388,
039389,
039390,
039391,
039392,
039393,
039394,
039395,
039396,
039397,
039398,
039399,
039400,
039401,
039402,
039403,
039404,
039405,
039406,
039407,
039408,
039409,
03941,
039421,
039422,
039423,
039424,
039425,
039426,
039427,
039428,
03943,
03944,
039451,
039452,
039453,
039454,
039455,
039456,
039457,
039458,
039459,
03946,
03947,
039481,
039482,
039483,
039484,
039485,
039487,
039488,
039489,
03949,
0395,
039600,
039601,
039602,
039603,
039604,
039605,
039606,
039607,
039608,
03961,
03962,
03963,
03964,
03965,
03966,
03967,
03968,
03969,
03971,
039721,
039722,
039723,
039724,
039726,
039727,
039728,
03973,
039740,
039741,
039742,
039743,
039744,
039745,
039746,
039747,
039748,
039749,
039751,
039752,
039753,
039754,
03976,
039771,
039772,
039773,
039774,
039775,
039776,
039777,
039778,
039779,
03981,
039820,
039821,
039822,
039823,
039824,
039825,
039826,
039827,
039828,
039829,
039831,
039832,
039833,
03984,
039851,
039852,
039853,
039854,
039855,
039856,
039857,
039858,
039859,
039861,
039862,
039863,
03987,
039881,
039882,
039883,
039884,
039885,
039886,
039887,
039888,
039889,
03991,
039921,
039922,
039923,
039924,
039925,
039926,
039927,
039928,
039929,
039931,
039932,
039933,
039934,
03994,
039951,
039952,
039953,
039954,
039955,
039956,
039957,
039959,
03996,
039971,
039972,
039973,
039975,
039976,
039977,
039978,
03998,
039991,
039992,
039993,
039994,
039995,
039996,
039997,
039998,
039999,
040,
04101,
04102,
04103,
04104,
04105,
04106,
04107,
04108,
04109,
04120,
04121,
04122,
04123,
04124,
04125,
04126,
04127,
04128,
04129,
04131,
04132,
04133,
04134,
04135,
04136,
04137,
04138,
04139,
04140,
04141,
04142,
04143,
04144,
04146,
04148,
04149,
04151,
04152,
04153,
04154,
04155,
04156,
04158,
04159,
04161,
04162,
04163,
04164,
04165,
04166,
04167,
04168,
04169,
04171,
04172,
04173,
04174,
04175,
04176,
04177,
04178,
04179,
04180,
04181,
04182,
04183,
04184,
04185,
04186,
04187,
04188,
04189,
04191,
04192,
04193,
04194,
04195,
04202,
04203,
04204,
04205,
04206,
04207,
04208,
04209,
0421,
04221,
04222,
04223,
04224,
04230,
04231,
04232,
04233,
04234,
04235,
04236,
04237,
04238,
04239,
04240,
04241,
04242,
04243,
04244,
04245,
04246,
04247,
04248,
04249,
04251,
04252,
04253,
04254,
04255,
04256,
04257,
04258,
04260,
04261,
04262,
04263,
04264,
04265,
04266,
04267,
04268,
04269,
04271,
04272,
04273,
04274,
04275,
04276,
04277,
04281,
04282,
04283,
04284,
04285,
04286,
04287,
04288,
04289,
04292,
04293,
04294,
04295,
04296,
04297,
04298,
04302,
04303,
04305,
04307,
04308,
0431,
04320,
04321,
04322,
04323,
04324,
04326,
04327,
04328,
04329,
04330,
04331,
04332,
04333,
04334,
04335,
04336,
04337,
04338,
04339,
04340,
04342,
04343,
04344,
04346,
04347,
04348,
04349,
04351,
04352,
04353,
04354,
04355,
04356,
04357,
04358,
04361,
04362,
04363,
04364,
04365,
04366,
04367,
04371,
04372,
04381,
04382,
04383,
04384,
04385,
04392,
04393,
04394,
04401,
04402,
04403,
04404,
04405,
04406,
04407,
04408,
04409,
0441,
04421,
04422,
04423,
04425,
04426,
04431,
04432,
04433,
04434,
04435,
04441,
04442,
04443,
04444,
04445,
04446,
04447,
04451,
04452,
04453,
04454,
04455,
04456,
04458,
04461,
04462,
04463,
04464,
04465,
04466,
04467,
04468,
04469,
04471,
04472,
04473,
04474,
04475,
04477,
04478,
04479,
04480,
04481,
04482,
04483,
04484,
04485,
04486,
04487,
04488,
04489,
04491,
04492,
04493,
04494,
04495,
04496,
04497,
04498,
04499,
04501,
04502,
04503,
04504,
04505,
04506,
04508,
04509,
0451,
04521,
04522,
04523,
04524,
04525,
04526,
04527,
04528,
04529,
04531,
04532,
04533,
04534,
04535,
04536,
04537,
04539,
04541,
04542,
04543,
04544,
04545,
04546,
04547,
04550,
04551,
04552,
04553,
04554,
04555,
04556,
04557,
04558,
04559,
04561,
04562,
04563,
04564,
04602,
04603,
04604,
04605,
04606,
04607,
04608,
04609,
0461,
04621,
04622,
04623,
04624,
04625,
04626,
04627,
04630,
04631,
04632,
04633,
04634,
04635,
04636,
04637,
04638,
04639,
04641,
04642,
04643,
04644,
04646,
04651,
04661,
04662,
04663,
04664,
04665,
04666,
04667,
04668,
04671,
04672,
04673,
04674,
04681,
04682,
04683,
04684,
04702,
04703,
04704,
04705,
04706,
04707,
04708,
0471,
04721,
04722,
04723,
04724,
04725,
04731,
04732,
04733,
04734,
04735,
04736,
04737,
04740,
04741,
04742,
04743,
04744,
04745,
04746,
04747,
04748,
04749,
04751,
04752,
04753,
04754,
04755,
04756,
04757,
04758,
04761,
04762,
04763,
04764,
04765,
04766,
04767,
04768,
04769,
04770,
04771,
04772,
04773,
04774,
04775,
04776,
04777,
04778,
04779,
04791,
04792,
04793,
04794,
04795,
04796,
04802,
04803,
04804,
04805,
04806,
0481,
04821,
04822,
04823,
04824,
04825,
04826,
04827,
04828,
04829,
04830,
04832,
04833,
04834,
04835,
04836,
04837,
04838,
04839,
04841,
04842,
04843,
04844,
04845,
04846,
04847,
04848,
04849,
04851,
04852,
04853,
04854,
04855,
04856,
04857,
04858,
04859,
04861,
04862,
04863,
04864,
04865,
04871,
04872,
04873,
04874,
04875,
04876,
04877,
04881,
04882,
04883,
04884,
04885,
04892,
04893,
04902,
04903,
0491,
04920,
04921,
04922,
04923,
04924,
04925,
04926,
04927,
04928,
04929,
04931,
04932,
04933,
04934,
04935,
04936,
04938,
04939,
04941,
04942,
04943,
04944,
04945,
04946,
04947,
04948,
04950,
04951,
04952,
04953,
04954,
04955,
04956,
04957,
04958,
04959,
04961,
04962,
04963,
04964,
04965,
04966,
04967,
04968,
04971,
04972,
04973,
04974,
04975,
04976,
04977,
05021,
05022,
05023,
05024,
05025,
05026,
05027,
05028,
05031,
05032,
05033,
05034,
05035,
05036,
05037,
05041,
05042,
05043,
05044,
05045,
05051,
05052,
05053,
05054,
05055,
05056,
05060,
05062,
05063,
05064,
05065,
05066,
05067,
05068,
05069,
05071,
05072,
05073,
05074,
05082,
05083,
05084,
05085,
05086,
05101,
05102,
05103,
05105,
05108,
05109,
0511,
05121,
05123,
05126,
05127,
05128,
05129,
05130,
05131,
05132,
05135,
05136,
05137,
05138,
05139,
05141,
05142,
05143,
05144,
05145,
05146,
05147,
05148,
05149,
05151,
05152,
05153,
05154,
05155,
05156,
05157,
05158,
05159,
05161,
05162,
05163,
05164,
05165,
05166,
05167,
05168,
05171,
05172,
05173,
05174,
05175,
05176,
05177,
05181,
05182,
05183,
05184,
05185,
05186,
05187,
05190,
05191,
05192,
05193,
05194,
05195,
05196,
05197,
05198,
05199,
05201,
05202,
05203,
05204,
05205,
05206,
05207,
05208,
05209,
0521,
05221,
05222,
05223,
05224,
05225,
05226,
05228,
05231,
05232,
05233,
05234,
05235,
05236,
05237,
05238,
05241,
05242,
05244,
05245,
05246,
05247,
05248,
05250,
05251,
05252,
05253,
05254,
05255,
05257,
05258,
05259,
05261,
05262,
05263,
05264,
05265,
05266,
05271,
05272,
05273,
05274,
05275,
05276,
05277,
05278,
05281,
05282,
05283,
05284,
05285,
05286,
05292,
05293,
05294,
05295,
05300,
05301,
05302,
05303,
05304,
05305,
05306,
05307,
05308,
05309,
0531,
05320,
05321,
05322,
05323,
05324,
05325,
05326,
05327,
05328,
05329,
05331,
05332,
05333,
05334,
05335,
05336,
05337,
05339,
05341,
05344,
05345,
05346,
05347,
05351,
05352,
05353,
05354,
05355,
05356,
05357,
05358,
05361,
05362,
05363,
05364,
05365,
05366,
05367,
05368,
05371,
05372,
05373,
05374,
05375,
05376,
05377,
05378,
05379,
05381,
05382,
05383,
05384,
05401,
05402,
05403,
05404,
05405,
05406,
05407,
05409,
0541,
05421,
05422,
05423,
05424,
05425,
05426,
05427,
05428,
05429,
05431,
05432,
05433,
05434,
05435,
05436,
05437,
05438,
05439,
05441,
05442,
05443,
05444,
05445,
05446,
05447,
05448,
05451,
05452,
05453,
05454,
05455,
05456,
05457,
05458,
05459,
05461,
05462,
05464,
05465,
05466,
05467,
05468,
05471,
05472,
05473,
05474,
05475,
05476,
05481,
05482,
05483,
05484,
05485,
05491,
05492,
05493,
05494,
05495,
05502,
05503,
05504,
05505,
05506,
05507,
05508,
05509,
0551,
05520,
05521,
05522,
05523,
05524,
05525,
05527,
05528,
05529,
05531,
05532,
05533,
05534,
05535,
05536,
05541,
05542,
05543,
05544,
05545,
05546,
05551,
05552,
05553,
05554,
05555,
05556,
05561,
05562,
05563,
05564,
05565,
05571,
05572,
05573,
05574,
05582,
05583,
05584,
05585,
05586,
05592,
05593,
05594,
05601,
05602,
05603,
05604,
05605,
05606,
05607,
05608,
05609,
0561,
05621,
05622,
05623,
05624,
05625,
05626,
05631,
05632,
05633,
05634,
05635,
05636,
05641,
05642,
05643,
05644,
05645,
05646,
05647,
05648,
05650,
05651,
05652,
05653,
05654,
05655,
05656,
05657,
05658,
05659,
05661,
05662,
05663,
05664,
05665,
05671,
05672,
05673,
05674,
05675,
05676,
05677,
05681,
05682,
05683,
05684,
05685,
05686,
05691,
05692,
05693,
05694,
05695,
05696,
05702,
05703,
05704,
05705,
05706,
05707,
0571,
05721,
05722,
05723,
05724,
05725,
05726,
05731,
05732,
05733,
05734,
05741,
05742,
05743,
05744,
05745,
05746,
05751,
05752,
05753,
05754,
05755,
05761,
05763,
05764,
05765,
05766,
05767,
05768,
05769,
05771,
05772,
05773,
05774,
05775,
05776,
05777,
05802,
05803,
05804,
05805,
05806,
05807,
05808,
0581,
05820,
05821,
05822,
05823,
05824,
05825,
05826,
05827,
05828,
05829,
05831,
05832,
05833,
05834,
05835,
05836,
05837,
05838,
05839,
05840,
05841,
05842,
05843,
05844,
05845,
05846,
05848,
05849,
05850,
05851,
05852,
05853,
05854,
05855,
05857,
05858,
05859,
05861,
05862,
05863,
05864,
05865,
05872,
05873,
05874,
05875,
05882,
05883,
05901,
05902,
05903,
05904,
05905,
05906,
05907,
05908,
05909,
0591,
05921,
05922,
05923,
05924,
05925,
05926,
05931,
05932,
05933,
05934,
05935,
05936,
05937,
05939,
05941,
05942,
05943,
05944,
05945,
05946,
05947,
05948,
05951,
05952,
05953,
05954,
05955,
05956,
05957,
05961,
05962,
05963,
05964,
05965,
05966,
05971,
05973,
05975,
05976,
05977,
05978,
06002,
06003,
06004,
06007,
06008,
06020,
06021,
06022,
06023,
06024,
06026,
06027,
06028,
06029,
06031,
06032,
06033,
06034,
06035,
06036,
06039,
06041,
06042,
06043,
06044,
06045,
06046,
06047,
06048,
06049,
06050,
06051,
06052,
06053,
06054,
06055,
06056,
06057,
06058,
06059,
06061,
06062,
06063,
06066,
06068,
06071,
06073,
06074,
06078,
06081,
06082,
06083,
06084,
06085,
06086,
06087,
06092,
06093,
06094,
06095,
06096,
06101,
06102,
06103,
06104,
06105,
06106,
06107,
06108,
06109,
0611,
06120,
06122,
06123,
06124,
06126,
06127,
06128,
06129,
06130,
06131,
06132,
06133,
06134,
06135,
06136,
06138,
06139,
06142,
06144,
06145,
06146,
06147,
06150,
06151,
06152,
06154,
06155,
06157,
06158,
06159,
06161,
06162,
06163,
06164,
06165,
06166,
06167,
06171,
06172,
06173,
06174,
06175,
06181,
06182,
06183,
06184,
06185,
06186,
06187,
06188,
06190,
06192,
06195,
06196,
06198,
06201,
06202,
06203,
06204,
06205,
06206,
06207,
06209,
0621,
06220,
06221,
06222,
06223,
06224,
06226,
06227,
06228,
06229,
06231,
06232,
06233,
06234,
06235,
06236,
06237,
06238,
06239,
06241,
06242,
06243,
06244,
06245,
06246,
06247,
06249,
06251,
06252,
06253,
06254,
06255,
06256,
06257,
06258,
06261,
06262,
06263,
06264,
06265,
06266,
06267,
06268,
06269,
06271,
06272,
06274,
06275,
06276,
06281,
06282,
06283,
06284,
06285,
06286,
06287,
06291,
06292,
06293,
06294,
06295,
06296,
06297,
06298,
06301,
06302,
06303,
06304,
06305,
06306,
06307,
06308,
0631,
06321,
06322,
06323,
06324,
06325,
06326,
06327,
06328,
06329,
06331,
06332,
06333,
06334,
06335,
06336,
06337,
06338,
06339,
06340,
06341,
06342,
06343,
06344,
06345,
06346,
06347,
06348,
06349,
06351,
06352,
06353,
06355,
06356,
06357,
06358,
06359,
06361,
06362,
06363,
06364,
06371,
06372,
06373,
06374,
06375,
06381,
06382,
06383,
06384,
06385,
06386,
06387,
06391,
06392,
06393,
06394,
06395,
06396,
06397,
06398,
06400,
06401,
06402,
06403,
06404,
06405,
06406,
06407,
06408,
06409,
0641,
06420,
06421,
06422,
06423,
06424,
06425,
06426,
06427,
06428,
06429,
06430,
06431,
06432,
06433,
06434,
06435,
06436,
06438,
06439,
06440,
06441,
06442,
06443,
06444,
06445,
06446,
06447,
06449,
06451,
06452,
06453,
06454,
06455,
06456,
06457,
06458,
06461,
06462,
06464,
06465,
06466,
06467,
06468,
06471,
06472,
06473,
06474,
06475,
06476,
06477,
06478,
06479,
06482,
06483,
06484,
06485,
06486,
06500,
06501,
06502,
06503,
06504,
06505,
06506,
06507,
06508,
06509,
0651,
06522,
06523,
06524,
06525,
06526,
06527,
06531,
06532,
06533,
06534,
06535,
06536,
06541,
06542,
06543,
06544,
06545,
06550,
06551,
06552,
06553,
06554,
06555,
06556,
06557,
06558,
06559,
06561,
06562,
06563,
06564,
06565,
06566,
06567,
06568,
06569,
06571,
06572,
06573,
06574,
06575,
06578,
06580,
06581,
06582,
06583,
06584,
06585,
06586,
06587,
06588,
06589,
06591,
06592,
06593,
06594,
06595,
06596,
06597,
06599,
0661,
06620,
06621,
06622,
06623,
06624,
06625,
06626,
06627,
06628,
06629,
06630,
06631,
06633,
06634,
06635,
06636,
06637,
06638,
06639,
06641,
06642,
06643,
06644,
06645,
06646,
06647,
06648,
06650,
06651,
06652,
06653,
06654,
06655,
06656,
06657,
06658,
06659,
06660,
06661,
06663,
06664,
06665,
06666,
06667,
06668,
06669,
06670,
06672,
06673,
06674,
06675,
06676,
06677,
06678,
06681,
06682,
06683,
06684,
06691,
06692,
06693,
06694,
06695,
06696,
06697,
06698,
06701,
06703,
06704,
06706,
06707,
06708,
06709,
0671,
06721,
06722,
06723,
06724,
06725,
06726,
06727,
06728,
06731,
06732,
06733,
06734,
06735,
06736,
06737,
06741,
06742,
06743,
06744,
06745,
06746,
06747,
06751,
06752,
06753,
06754,
06755,
06756,
06757,
06758,
06761,
06762,
06763,
06764,
06765,
06766,
06771,
06772,
06773,
06774,
06775,
06776,
06781,
06782,
06783,
06784,
06785,
06786,
06787,
06788,
06789,
06802,
06803,
06804,
06805,
06806,
06809,
0681,
06821,
06824,
06825,
06826,
06827,
06831,
06832,
06833,
06834,
06835,
06836,
06837,
06838,
06841,
06842,
06843,
06844,
06848,
06849,
06851,
06852,
06853,
06854,
06855,
06856,
06857,
06858,
06861,
06864,
06865,
06866,
06867,
06868,
06869,
06871,
06872,
06873,
06874,
06875,
06876,
06881,
06887,
06888,
06893,
06894,
06897,
06898,
069,
07021,
07022,
07023,
07024,
07025,
07026,
07031,
07032,
07033,
07034,
07041,
07042,
07043,
07044,
07045,
07046,
07051,
07052,
07053,
07054,
07055,
07056,
07062,
07063,
07066,
07071,
07072,
07073,
07081,
07082,
07083,
07084,
07085,
0711,
07121,
07122,
07123,
07124,
07125,
07126,
07127,
07128,
07129,
07130,
07131,
07132,
07133,
07134,
07135,
07136,
07138,
07139,
07141,
07142,
07143,
07144,
07145,
07146,
07147,
07148,
07150,
07151,
07152,
07153,
07154,
07156,
07157,
07158,
07159,
07161,
07162,
07163,
07164,
07165,
07166,
07171,
07172,
07173,
07174,
07175,
07176,
07181,
07182,
07183,
07184,
07191,
07192,
07193,
07194,
07195,
07202,
07203,
07204,
0721,
07220,
07221,
07222,
07223,
07224,
07225,
07226,
07227,
07228,
07229,
07231,
07232,
07233,
07234,
07235,
07236,
07237,
07240,
07242,
07243,
07244,
07245,
07246,
07247,
07248,
07249,
07250,
07251,
07252,
07253,
07254,
07255,
07256,
07257,
07258,
07259,
07260,
07261,
07262,
07263,
07264,
07265,
07266,
07267,
07268,
07269,
07271,
07272,
07273,
07274,
07275,
07276,
07277,
07300,
07302,
07303,
07304,
07305,
07306,
07307,
07308,
07309,
0731,
07321,
07322,
07323,
07324,
07325,
07326,
07327,
07328,
07329,
07331,
07332,
07333,
07334,
07335,
07336,
07337,
07340,
07343,
07344,
07345,
07346,
07347,
07348,
07351,
07352,
07353,
07354,
07355,
07356,
07357,
07358,
07361,
07362,
07363,
07364,
07365,
07366,
07367,
07371,
07373,
07374,
07375,
07376,
07381,
07382,
07383,
07384,
07385,
07386,
07387,
07388,
07389,
07391,
07392,
07393,
07394,
07395,
07402,
07403,
07404,
0741,
07420,
07422,
07423,
07424,
07425,
07426,
07427,
07428,
07429,
07431,
07432,
07433,
07434,
07435,
07436,
07440,
07441,
07442,
07443,
07444,
07445,
07446,
07447,
07448,
07449,
07451,
07452,
07453,
07454,
07455,
07456,
07457,
07458,
07459,
07461,
07462,
07463,
07464,
07465,
07466,
07467,
07471,
07472,
07473,
07474,
07475,
07476,
07477,
07478,
07482,
07483,
07484,
07485,
07486,
07502,
07503,
07504,
07505,
07506,
0751,
07520,
07522,
07524,
07525,
07527,
07528,
07529,
07531,
07532,
07533,
07534,
07541,
07542,
07543,
07544,
07545,
07546,
07551,
07552,
07553,
07554,
07555,
07556,
07557,
07558,
07561,
07562,
07563,
07564,
07565,
07566,
07567,
07568,
07569,
07570,
07571,
07572,
07573,
07574,
07575,
07576,
07577,
07578,
07579,
07581,
07582,
07583,
07584,
07585,
07586,
07587,
07602,
0761,
07620,
07621,
07622,
07623,
07624,
07625,
07626,
07627,
07628,
07629,
07631,
07632,
07633,
07634,
07635,
07636,
07641,
07642,
07643,
07644,
07645,
07646,
07651,
07652,
07653,
07654,
07655,
07656,
07657,
07660,
07661,
07662,
07663,
07664,
07665,
07666,
07667,
07668,
07669,
07671,
07672,
07673,
07674,
07675,
07676,
07681,
07682,
07683,
07684,
07685,
07702,
07703,
07704,
07705,
07706,
07707,
07708,
07709,
0771,
07720,
07721,
07722,
07723,
07724,
07725,
07726,
07727,
07728,
07729,
07731,
07732,
07733,
07734,
07735,
07736,
07738,
07739,
07741,
07742,
07743,
07744,
07745,
07746,
07747,
07748,
07751,
07753,
07754,
07755,
07761,
07762,
07763,
07764,
07765,
07771,
07773,
07774,
07775,
07777,
07802,
07803,
07804,
07805,
07806,
07807,
07808,
0781,
07821,
07822,
07823,
07824,
07825,
07826,
07831,
07832,
07833,
07834,
07835,
07836,
07837,
07838,
07839,
07841,
07842,
07843,
07844,
07851,
07852,
07853,
07854,
07903,
07904,
07905,
07906,
07907,
0791,
07930,
07931,
07932,
07933,
07934,
07935,
07936,
07937,
07938,
07939,
07940,
07941,
07942,
07943,
07944,
07945,
07946,
07947,
07948,
07949,
07950,
07951,
07952,
07953,
07954,
07955,
07957,
07958,
07959,
07961,
07962,
07963,
07964,
07965,
07966,
07967,
07971,
07972,
07973,
07974,
07975,
07976,
07977,
08020,
08021,
08022,
08023,
08024,
08025,
08026,
08027,
08028,
08029,
08031,
08032,
08033,
08034,
08035,
08036,
08038,
08039,
08041,
08042,
08043,
08045,
08046,
08051,
08052,
08053,
08054,
08055,
08056,
08057,
08061,
08062,
08063,
08064,
08065,
08066,
08067,
08071,
08072,
08073,
08074,
08075,
08076,
08081,
08082,
08083,
08084,
08085,
08086,
08091,
08092,
08093,
08094,
08095,
08102,
08104,
08105,
08106,
0811,
08121,
08122,
08123,
08124,
08131,
08133,
08134,
08135,
08136,
08137,
08138,
08139,
08141,
08142,
08143,
08144,
08145,
08146,
08151,
08152,
08153,
08157,
08158,
08161,
08165,
08166,
08167,
08168,
08170,
08171,
08176,
08177,
08178,
08179,
08191,
08192,
08193,
08194,
08195,
08196,
08202,
08203,
08204,
08205,
08206,
08207,
08208,
0821,
08221,
08222,
08223,
08224,
08225,
08226,
08230,
08231,
08232,
08233,
08234,
08236,
08237,
08238,
08239,
08241,
08243,
08245,
08246,
08247,
08248,
08249,
08250,
08251,
08252,
08253,
08254,
08257,
08258,
08259,
08261,
08262,
08263,
08265,
08266,
08267,
08268,
08269,
08271,
08272,
08273,
08274,
08276,
08281,
08282,
08283,
08284,
08285,
08291,
08292,
08293,
08294,
08295,
08296,
08302,
08303,
08304,
08306,
0831,
08320,
08321,
08322,
08323,
08324,
08325,
08326,
08327,
08328,
08330,
08331,
08332,
08333,
08334,
08335,
08336,
08337,
08338,
08340,
08341,
08342,
08343,
08344,
08345,
08346,
08347,
08348,
08349,
08361,
08362,
08363,
08364,
08365,
08366,
08367,
08368,
08369,
08370,
08372,
08373,
08374,
08375,
08376,
08377,
08378,
08379,
08380,
08381,
08382,
08383,
08384,
08385,
08386,
08387,
08388,
08389,
08392,
08393,
08394,
08395,
08402,
08403,
08404,
08405,
08406,
08407,
0841,
08421,
08422,
08423,
08424,
08426,
08427,
08431,
08432,
08433,
08434,
08435,
08441,
08442,
08443,
08444,
08445,
08446,
08450,
08452,
08453,
08454,
08456,
08457,
08458,
08459,
08460,
08461,
08462,
08463,
08464,
08465,
08466,
08467,
08468,
08469,
08501,
08502,
08503,
08504,
08505,
08506,
08507,
08509,
0851,
08531,
08532,
08533,
08534,
08535,
08536,
08537,
08538,
08541,
08542,
08543,
08544,
08545,
08546,
08547,
08548,
08549,
08550,
08551,
08552,
08553,
08554,
08555,
08556,
08557,
08558,
08561,
08562,
08563,
08564,
08565,
08571,
08572,
08573,
08574,
08581,
08582,
08583,
08584,
08585,
08586,
08591,
08592,
08593,
0861,
08621,
08622,
08623,
08624,
08628,
08629,
08630,
08631,
08633,
08634,
08635,
08636,
08637,
08638,
08639,
08640,
08641,
08642,
08649,
08650,
08651,
08652,
08654,
08656,
08657,
08661,
08662,
08663,
08664,
08665,
08666,
08667,
08669,
08670,
08671,
08677,
08678,
08679,
08681,
08682,
08683,
08684,
08685,
08686,
08687,
08702,
08703,
08704,
08705,
08706,
08707,
08708,
08709,
0871,
08721,
08722,
08723,
08724,
08725,
08726,
08727,
08728,
08731,
08732,
08733,
08734,
08735,
08741,
08742,
08743,
08744,
08745,
08751,
08752,
08753,
08754,
08756,
08761,
08762,
08764,
08765,
08766,
08771,
08772,
08773,
08774,
08781,
08782,
08783,
08784,
08785,
08801,
08802,
08803,
08805,
08806,
08807,
08808,
08809,
0881,
08821,
08822,
08823,
08824,
08825,
08841,
08845,
08846,
08847,
08851,
08856,
08857,
08858,
08860,
08861,
08862,
08867,
08868,
08869,
089,
0906,
09070,
09071,
09072,
09073,
09074,
09075,
09076,
09077,
09078,
09080,
09081,
09082,
09083,
09084,
09085,
09086,
09087,
09088,
09089,
09090,
09091,
09092,
09093,
09094,
09097,
09099,
09101,
09102,
09103,
09104,
09105,
09106,
09107,
0911,
09120,
09122,
09123,
09126,
09127,
09128,
09129,
09131,
09132,
09133,
09134,
09135,
09141,
09142,
09143,
09144,
09145,
09146,
09147,
09148,
09149,
09151,
09152,
09153,
09154,
09155,
09156,
09157,
09158,
09161,
09162,
09163,
09164,
09165,
09166,
09167,
09170,
09171,
09172,
09173,
09174,
09175,
09176,
09177,
09178,
09179,
09180,
09181,
09182,
09183,
09184,
09185,
09186,
09187,
09188,
09189,
09190,
09191,
09192,
09193,
09194,
09195,
09196,
09197,
09198,
09199,
09201,
09202,
09203,
09204,
09205,
09206,
09207,
09208,
09209,
0921,
09220,
09221,
09222,
09223,
09225,
09227,
09228,
09229,
09231,
09232,
09233,
09234,
09235,
09236,
09238,
09241,
09242,
09243,
09244,
09245,
09246,
09251,
09252,
09253,
09254,
09255,
09256,
09257,
09260,
09261,
09262,
09263,
09264,
09265,
09266,
09267,
09268,
09269,
09270,
09271,
09272,
09273,
09274,
09275,
09276,
09277,
09278,
09279,
09280,
09281,
09282,
09283,
09284,
09285,
09286,
09287,
09288,
09289,
09292,
09293,
09294,
09295,
09302,
09303,
09305,
09306,
09307,
0931,
09321,
09323,
09324,
09325,
09326,
09331,
09332,
09333,
09334,
09335,
09336,
09337,
09338,
09339,
09340,
09341,
09342,
09343,
09344,
09345,
09346,
09347,
09348,
09349,
09350,
09351,
09352,
09353,
09354,
09355,
09356,
09357,
09358,
09359,
09360,
09363,
09364,
09365,
09366,
09367,
09369,
09371,
09372,
09373,
09374,
09375,
09376,
09377,
09378,
09381,
09382,
09383,
09384,
09385,
09386,
09391,
09392,
09393,
09394,
09395,
09396,
09397,
09398,
09401,
09402,
09403,
09404,
09405,
09406,
09407,
09408,
09409,
0941,
09420,
09421,
09422,
09423,
09424,
09426,
09427,
09428,
09429,
09431,
09433,
09434,
09435,
09436,
09438,
09439,
09441,
09442,
09443,
09444,
09445,
09446,
09447,
09448,
09451,
09452,
09453,
09454,
09461,
09462,
09463,
09464,
09465,
09466,
09467,
09468,
09469,
09471,
09472,
09473,
09474,
09480,
09481,
09482,
09484,
09491,
09492,
09493,
09495,
09497,
09498,
09499,
09502,
09503,
09504,
09505,
0951,
09521,
09522,
09523,
09524,
09525,
09526,
09527,
09528,
09529,
09531,
09532,
09533,
09534,
09535,
09536,
09542,
09543,
09544,
09545,
09546,
09547,
09548,
09549,
09551,
09552,
09553,
09554,
09555,
09556,
09560,
09561,
09562,
09563,
09564,
09565,
09566,
09567,
09568,
09569,
09571,
09572,
09573,
09574,
09575,
09576,
09602,
09603,
09604,
09605,
09606,
09607,
09608,
0961,
09621,
09622,
09624,
09625,
09626,
09627,
09628,
09631,
09632,
09633,
09634,
09635,
09636,
09637,
09638,
09639,
09641,
09642,
09643,
09644,
09645,
09646,
09647,
09648,
09651,
09652,
09653,
09654,
09655,
09656,
09657,
09658,
09659,
09661,
09662,
09663,
09664,
09665,
09666,
09671,
09672,
09673,
09674,
09675,
09676,
09677,
09681,
09682,
09683,
09701,
09704,
09708,
0971,
09720,
09721,
09722,
09723,
09724,
09725,
09726,
09727,
09728,
09729,
09732,
09733,
09734,
09735,
09736,
09737,
09738,
09741,
09742,
09744,
09745,
09746,
09747,
09748,
09749,
09761,
09762,
09763,
09764,
09765,
09766,
09771,
09772,
09773,
09774,
09775,
09776,
09777,
09778,
09779,
09802,
09803,
09804,
09805,
0981,
09820,
09822,
09823,
09824,
09825,
09826,
09827,
09828,
09829,
09831,
09832,
09833,
09834,
09835,
09836,
09837,
09841,
09842,
09843,
09844,
09845,
09846,
09847,
09848,
09851,
09852,
09853,
09854,
09855,
09856,
09857,
09861,
09865,
09867,
09868,
09869,
09871,
09872,
09873,
09874,
09875,
09876,
09901,
09903,
09904,
09905,
09906,
09907,
09908,
0991,
09920,
09921,
09922,
09923,
09924,
09925,
09926,
09927,
09928,
09929,
09931,
09932,
09933,
09935,
09936,
09937,
09938,
09941,
09942,
09943,
09944,
09945,
09946,
09947,
09948,
09951,
09952,
09953,
09954,
09955,
09956,
09961,
09962,
09963,
09964,
09965,
09966,
09971,
09972,
09973,
09974,
09975,
09976,
09977,
09978];
function subsetToSubPattern(array $digits): string {
if (count($digits) < 2) {
return implode($digits);
}
$result = [];
$last = null;
foreach ($digits as $d) {
if ($last !== $d - 1) {
unset($ref);
$result[] =& $ref;
}
$ref[] = $d;
$last = $d;
}
return sprintf(
'[%s]',
implode(
array_map(
fn($set) => match(count($set)) {
1 => $set[0],
2 => implode($set),
default => implode('-', [$set[0], end($set)])
},
$result
)
)
);
}
function buildTrie(array $strings) {
$trie = [];
foreach ($strings as $string) {
$node =& $trie;
$len = strlen($string);
for ($i = 0; $i < $len; ++$i) {
$char = $string[$i];
if (!isset($node[$char])) {
$node[$char] = [];
}
$node =& $node[$char];
}
$node['$'] = true;
}
return $trie;
}
function trieToRegex(array $trie): string {
$isTerminal = isset($trie['$']);
unset($trie['$']);
$groups = [];
foreach ($trie as $char => $subTrie) {
$subRegex = trieToRegex($subTrie);
$groups[$subRegex][] = $char;
}
$alternatives = [];
foreach ($groups as $subPattern => $chars) {
sort($chars);
if ($subPattern === '' && count($chars) > 1 && ctype_digit(implode($chars))) {
$prefix = subsetToSubPattern($chars);
} else {
$prefix = count($chars) > 1 ? '(' . implode('|', $chars) . ')' : $chars[0];
}
$alternatives[] = $prefix . $subPattern;
}
if (count($alternatives) > 1) {
$regex = '(' . implode('|', $alternatives) . ')';
} else {
$regex = $alternatives[0] ?? '';
}
if ($isTerminal) {
if ($regex !== '') {
$regex = '(' . $regex . ')?';
}
}
return $regex;
}
$regex = trieToRegex(buildTrie($area_codes));
if (!ctype_digit("$regex")) {
$regex = "($regex)";
}
$regex = "#^$regex$#";
echo "$regex\n";
var_export(
preg_replace($regex, 'validated', $area_codes)
);