floere/phony

View on GitHub
lib/phony/countries/germany.rb

Summary

Maintainability
F
1 wk
Test Coverage
# frozen_string_literal: true

# Germany uses a variable-length ndc code, thus we use a separate file to not let countries.rb explode.
#
# Note: Germany uses a variable ndc format from length 2 to 5.
#
ndcs2 = [
'10',  # Call-By-Call
'11',  # formerly Value Added Services
'13',  # Voting and Lottery Numbers
'30',  # Berlin
'32',  # Non Geographical Numbers
'40',  # Hamburg
'69',  # Frankfurt am Main
'89',  # München
]
ndcs3 = [
'201', # Essen
'202', # Wuppertal
'203', # Duisburg
'208', # Mühlheim an der Ruhr
'209', # Gelsenkirchen
'211', # Düsseldorf
'212', # Solingen
'214', # Leverkusen
'221', # Köln
'228', # Bonn
'231', # Dortmund
'234', # Bochum
'241', # Aachen
'251', # Münster
'261', # Koblenz
'271', # Siegen
'281', # Wesel
'291', # Meschede
'310', # Test Number Long Distance
'311', # Test Number Local
'335', # Frankfurt (Oder)
'340', # Dessau
'341', # Leipzig
'345', # Halle (Saale)
'351', # Dresden
'355', # Cottbus
'361', # Erfurt
'365', # Gera
'371', # Chemnitz
'375', # Zwickau
'381', # Rostock
'385', # Schwerin
'391', # Magdeburg
'395', # Neubrandenburg
'421', # Bremen
'431', # Kiel
'441', # Oldenburg
'461', # Flensburg
'471', # Bremerhaven
'481', # Heide
'491', # Leer
'511', # Hannover
'521', # Bielefeld
'531', # Braunschweig
'541', # Osnabrück
'551', # Göttingen
'561', # Kassel
'571', # Minden
'581', # Uelzen
'591', # Lingen (Ems)
'611', # Wiesbaden
'621', # Mannheim / Ludwigshafen
'631', # Kaiserslautern
'641', # Gießen
'651', # Trier
'661', # Fulda
'671', # Bad Kreuznach
'681', # Saarbrücken
'711', # Stuttgart
'721', # Karlsruhe
'731', # Ulm
'741', # Rottweil
'751', # Ravensburg
'761', # Freiburg im Breisgau
'771', # Donaueschingen
'781', # Offenburg
'791', # Schwäbisch Hall
'811', # Hallbergmoos
'821', # Augsburg
'831', # Kempten
'841', # Ingolstadt
'851', # Passau
'861', # Traunstein
'871', # Landshut
'881', # Weilheim in Oberbayern
'902', # Replacement for 0137/0138
'906', # Donauwörth
'911', # Nürnberg
'921', # Bayreuth
'931', # Würzburg
'941', # Regensburg
'951', # Bamberg
'961', # Weiden
'971', # Bad Kissingen
'981', # Ansbach
'991', # Deggendorf
]
# 4-digit NDCs from now on.
#
ndcs4 = [
'2041',
'2043',
'2045',
'2051',
'2052',
'2053',
'2054',
'2056',
'2058',
'2064',
'2065',
'2066',
'2102',
'2103',
'2104',
'2129',
'2131',
'2132',
'2133',
'2137',
'2150',
'2151',
'2152',
'2153',
'2154',
'2156',
'2157',
'2158',
'2159',
'2161',
'2162',
'2163',
'2164',
'2165',
'2166',
'2171',
'2173',
'2174',
'2175',
'2181',
'2182',
'2183',
'2191',
'2192',
'2193',
'2195',
'2196',
'2202',
'2203',
'2204',
'2205',
'2206',
'2207',
'2208',
'2222',
'2223',
'2224',
'2225',
'2226',
'2227',
'2228',
'2232',
'2233',
'2234',
'2235',
'2236',
'2237',
'2238',
'2241',
'2242',
'2243',
'2244',
'2245',
'2246',
'2247',
'2248',
'2251',
'2252',
'2253',
'2254',
'2255',
'2256',
'2257',
'2261',
'2262',
'2263',
'2264',
'2265',
'2266',
'2267',
'2268',
'2269',
'2271',
'2272',
'2273',
'2274',
'2275',
'2291',
'2292',
'2293',
'2294',
'2295',
'2296',
'2297',
'2301',
'2302',
'2303',
'2304',
'2305',
'2306',
'2307',
'2308',
'2309',
'2323',
'2324',
'2325',
'2327',
'2330',
'2331',
'2332',
'2333',
'2334',
'2335',
'2336',
'2337',
'2338',
'2339',
'2351',
'2352',
'2353',
'2354',
'2355',
'2357',
'2358',
'2359',
'2360',
'2361',
'2362',
'2363',
'2364',
'2365',
'2366',
'2367',
'2368',
'2369',
'2371',
'2372',
'2373',
'2374',
'2375',
'2377',
'2378',
'2379',
'2381',
'2382',
'2383',
'2384',
'2385',
'2387',
'2388',
'2389',
'2391',
'2392',
'2393',
'2394',
'2395',
'2401',
'2402',
'2403',
'2404',
'2405',
'2406',
'2407',
'2408',
'2409',
'2421',
'2422',
'2423',
'2424',
'2425',
'2426',
'2427',
'2428',
'2429',
'2431',
'2432',
'2433',
'2434',
'2435',
'2436',
'2440',
'2441',
'2443',
'2444',
'2445',
'2446',
'2447',
'2448',
'2449',
'2451',
'2452',
'2453',
'2454',
'2455',
'2456',
'2461',
'2462',
'2463',
'2464',
'2465',
'2471',
'2472',
'2473',
'2474',
'2482',
'2484',
'2485',
'2486',
'2501',
'2502',
'2504',
'2505',
'2506',
'2507',
'2508',
'2509',
'2520',
'2521',
'2522',
'2523',
'2524',
'2525',
'2526',
'2527',
'2528',
'2529',
'2532',
'2533',
'2534',
'2535',
'2536',
'2538',
'2541',
'2542',
'2543',
'2545',
'2546',
'2547',
'2548',
'2551',
'2552',
'2553',
'2554',
'2555',
'2556',
'2557',
'2558',
'2561',
'2562',
'2563',
'2564',
'2565',
'2566',
'2567',
'2568',
'2571',
'2572',
'2573',
'2574',
'2575',
'2581',
'2582',
'2583',
'2584',
'2585',
'2586',
'2587',
'2588',
'2590',
'2591',
'2592',
'2593',
'2594',
'2595',
'2596',
'2597',
'2598',
'2599',
'2601',
'2602',
'2603',
'2604',
'2605',
'2606',
'2607',
'2608',
'2620',
'2621',
'2622',
'2623',
'2624',
'2625',
'2626',
'2627',
'2628',
'2630',
'2631',
'2632',
'2633',
'2634',
'2635',
'2636',
'2637',
'2638',
'2639',
'2641',
'2642',
'2643',
'2644',
'2645',
'2646',
'2647',
'2651',
'2652',
'2653',
'2654',
'2655',
'2656',
'2657',
'2661',
'2662',
'2663',
'2664',
'2666',
'2667',
'2671',
'2672',
'2673',
'2674',
'2675',
'2676',
'2677',
'2678',
'2680',
'2681',
'2682',
'2683',
'2684',
'2685',
'2686',
'2687',
'2688',
'2689',
'2691',
'2692',
'2693',
'2694',
'2695',
'2696',
'2697',
'2721',
'2722',
'2723',
'2724',
'2725',
'2732',
'2733',
'2734',
'2735',
'2736',
'2737',
'2738',
'2739',
'2741',
'2742',
'2743',
'2744',
'2745',
'2747',
'2750',
'2751',
'2752',
'2753',
'2754',
'2755',
'2758',
'2759',
'2761',
'2762',
'2763',
'2764',
'2770',
'2771',
'2772',
'2773',
'2774',
'2775',
'2776',
'2777',
'2778',
'2779',
'2801',
'2802',
'2803',
'2804',
'2821',
'2822',
'2823',
'2824',
'2825',
'2826',
'2827',
'2828',
'2831',
'2832',
'2833',
'2834',
'2835',
'2836',
'2837',
'2838',
'2839',
'2841',
'2842',
'2843',
'2844',
'2845',
'2850',
'2851',
'2852',
'2853',
'2855',
'2856',
'2857',
'2858',
'2859',
'2861',
'2862',
'2863',
'2864',
'2865',
'2866',
'2867',
'2871',
'2872',
'2873',
'2874',
'2902',
'2903',
'2904',
'2905',
'2921',
'2922',
'2923',
'2924',
'2925',
'2927',
'2928',
'2931',
'2932',
'2933',
'2934',
'2935',
'2937',
'2938',
'2941',
'2942',
'2943',
'2944',
'2945',
'2947',
'2948',
'2951',
'2952',
'2953',
'2954',
'2955',
'2957',
'2958',
'2961',
'2962',
'2963',
'2964',
'2971',
'2972',
'2973',
'2974',
'2975',
'2977',
'2981',
'2982',
'2983',
'2984',
'2985',
'2991',
'2992',
'2993',
'2994',
'3301',
'3302',
'3303',
'3304',
'3306',
'3307',
'3321',
'3322',
'3327',
'3328',
'3329',
'3331',
'3332',
'3334',
'3335',
'3337',
'3338',
'3341',
'3342',
'3344',
'3346',
'3361',
'3362',
'3364',
'3366',
'3371',
'3372',
'3375',
'3377',
'3378',
'3379',
'3381',
'3382',
'3385',
'3386',
'3391',
'3394',
'3395',
'3421',
'3423',
'3425',
'3431',
'3433',
'3435',
'3437',
'3441',
'3443',
'3445',
'3447',
'3448',
'3461',
'3462',
'3464',
'3466',
'3471',
'3473',
'3475',
'3476',
'3491',
'3493',
'3494',
'3496',
'3501',
'3504',
'3521',
'3522',
'3523',
'3525',
'3528',
'3529',
'3531',
'3533',
'3535',
'3537',
'3541',
'3542',
'3544',
'3546',
'3561',
'3562',
'3563',
'3564',
'3571',
'3573',
'3574',
'3576',
'3578',
'3581',
'3583',
'3585',
'3586',
'3588',
'3591',
'3592',
'3594',
'3596',
'3601',
'3603',
'3605',
'3606',
'3621',
'3622',
'3623',
'3624',
'3628',
'3629',
'3631',
'3632',
'3634',
'3635',
'3636',
'3641',
'3643',
'3644',
'3647',
'3661',
'3663',
'3671',
'3672',
'3675',
'3677',
'3679',
'3681',
'3682',
'3683',
'3685',
'3686',
'3691',
'3693',
'3695',
'3721',
'3722',
'3723',
'3724',
'3725',
'3726',
'3727',
'3731',
'3733',
'3735',
'3737',
'3741',
'3744',
'3745',
'3761',
'3762',
'3763',
'3764',
'3765',
'3771',
'3772',
'3773',
'3774',
'3821',
'3831',
'3834',
'3836',
'3838',
'3841',
'3843',
'3844',
'3847',
'3860',
'3861',
'3863',
'3865',
'3866',
'3867',
'3868',
'3869',
'3871',
'3874',
'3876',
'3877',
'3881',
'3883',
'3886',
'3901',
'3902',
'3904',
'3907',
'3909',
'3921',
'3923',
'3925',
'3928',
'3931',
'3933',
'3935',
'3937',
'3941',
'3943',
'3944',
'3946',
'3947',
'3949',
'3961',
'3962',
'3963',
'3964',
'3965',
'3966',
'3967',
'3968',
'3969',
'3971',
'3973',
'3976',
'3981',
'3984',
'3987',
'3991',
'3994',
'3996',
'3998',
'4101',
'4102',
'4103',
'4104',
'4105',
'4106',
'4107',
'4108',
'4109',
'4120',
'4121',
'4122',
'4123',
'4124',
'4125',
'4126',
'4127',
'4128',
'4129',
'4131',
'4132',
'4133',
'4134',
'4135',
'4136',
'4137',
'4138',
'4139',
'4140',
'4141',
'4142',
'4143',
'4144',
'4146',
'4148',
'4149',
'4151',
'4152',
'4153',
'4154',
'4155',
'4156',
'4158',
'4159',
'4161',
'4162',
'4163',
'4164',
'4165',
'4166',
'4167',
'4168',
'4169',
'4171',
'4172',
'4173',
'4174',
'4175',
'4176',
'4177',
'4178',
'4179',
'4180',
'4181',
'4182',
'4183',
'4184',
'4185',
'4186',
'4187',
'4188',
'4189',
'4191',
'4192',
'4193',
'4194',
'4195',
'4202',
'4203',
'4204',
'4205',
'4206',
'4207',
'4208',
'4209',
'4221',
'4222',
'4223',
'4224',
'4230',
'4231',
'4232',
'4233',
'4234',
'4235',
'4236',
'4237',
'4238',
'4239',
'4240',
'4241',
'4242',
'4243',
'4244',
'4245',
'4246',
'4247',
'4248',
'4249',
'4251',
'4252',
'4253',
'4254',
'4255',
'4256',
'4257',
'4258',
'4260',
'4261',
'4262',
'4263',
'4264',
'4265',
'4266',
'4267',
'4268',
'4269',
'4271',
'4272',
'4273',
'4274',
'4275',
'4276',
'4277',
'4281',
'4282',
'4283',
'4284',
'4285',
'4286',
'4287',
'4288',
'4289',
'4292',
'4293',
'4294',
'4295',
'4296',
'4297',
'4298',
'4302',
'4303',
'4305',
'4307',
'4308',
'4320',
'4321',
'4322',
'4323',
'4324',
'4326',
'4327',
'4328',
'4329',
'4330',
'4331',
'4332',
'4333',
'4334',
'4335',
'4336',
'4337',
'4338',
'4339',
'4340',
'4342',
'4343',
'4344',
'4346',
'4347',
'4348',
'4349',
'4351',
'4352',
'4353',
'4354',
'4355',
'4356',
'4357',
'4358',
'4361',
'4362',
'4363',
'4364',
'4365',
'4366',
'4367',
'4371',
'4372',
'4381',
'4382',
'4383',
'4384',
'4385',
'4392',
'4393',
'4394',
'4401',
'4402',
'4403',
'4404',
'4405',
'4406',
'4407',
'4408',
'4409',
'4421',
'4422',
'4423',
'4425',
'4426',
'4431',
'4432',
'4433',
'4434',
'4435',
'4441',
'4442',
'4443',
'4444',
'4445',
'4446',
'4447',
'4451',
'4452',
'4453',
'4454',
'4455',
'4456',
'4458',
'4461',
'4462',
'4463',
'4464',
'4465',
'4466',
'4467',
'4468',
'4469',
'4471',
'4472',
'4473',
'4474',
'4475',
'4477',
'4478',
'4479',
'4480',
'4481',
'4482',
'4483',
'4484',
'4485',
'4486',
'4487',
'4488',
'4489',
'4491',
'4492',
'4493',
'4494',
'4495',
'4496',
'4497',
'4498',
'4499',
'4501',
'4502',
'4503',
'4504',
'4505',
'4506',
'4508',
'4509',
'4521',
'4522',
'4523',
'4524',
'4525',
'4526',
'4527',
'4528',
'4529',
'4531',
'4532',
'4533',
'4534',
'4535',
'4536',
'4537',
'4539',
'4541',
'4542',
'4543',
'4544',
'4545',
'4546',
'4547',
'4550',
'4551',
'4552',
'4553',
'4554',
'4555',
'4556',
'4557',
'4558',
'4559',
'4561',
'4562',
'4563',
'4564',
'4602',
'4603',
'4604',
'4605',
'4606',
'4607',
'4608',
'4609',
'4621',
'4622',
'4623',
'4624',
'4625',
'4626',
'4627',
'4630',
'4631',
'4632',
'4633',
'4634',
'4635',
'4636',
'4637',
'4638',
'4639',
'4641',
'4642',
'4643',
'4644',
'4646',
'4651',
'4661',
'4662',
'4663',
'4664',
'4665',
'4666',
'4667',
'4668',
'4671',
'4672',
'4673',
'4674',
'4681',
'4682',
'4683',
'4684',
'4702',
'4703',
'4704',
'4705',
'4706',
'4707',
'4708',
'4721',
'4722',
'4723',
'4724',
'4725',
'4731',
'4732',
'4733',
'4734',
'4735',
'4736',
'4737',
'4740',
'4741',
'4742',
'4743',
'4744',
'4745',
'4746',
'4747',
'4748',
'4749',
'4751',
'4752',
'4753',
'4754',
'4755',
'4756',
'4757',
'4758',
'4761',
'4762',
'4763',
'4764',
'4765',
'4766',
'4767',
'4768',
'4769',
'4770',
'4771',
'4772',
'4773',
'4774',
'4775',
'4776',
'4777',
'4778',
'4779',
'4791',
'4792',
'4793',
'4794',
'4795',
'4796',
'4802',
'4803',
'4804',
'4805',
'4806',
'4821',
'4822',
'4823',
'4824',
'4825',
'4826',
'4827',
'4828',
'4829',
'4830',
'4832',
'4833',
'4834',
'4835',
'4836',
'4837',
'4838',
'4839',
'4841',
'4842',
'4843',
'4844',
'4845',
'4846',
'4847',
'4848',
'4849',
'4851',
'4852',
'4853',
'4854',
'4855',
'4856',
'4857',
'4858',
'4859',
'4861',
'4862',
'4863',
'4864',
'4865',
'4871',
'4872',
'4873',
'4874',
'4875',
'4876',
'4877',
'4881',
'4882',
'4883',
'4884',
'4885',
'4892',
'4893',
'4902',
'4903',
'4920',
'4921',
'4922',
'4923',
'4924',
'4925',
'4926',
'4927',
'4928',
'4929',
'4931',
'4932',
'4933',
'4934',
'4935',
'4936',
'4938',
'4939',
'4941',
'4942',
'4943',
'4944',
'4945',
'4946',
'4947',
'4948',
'4950',
'4951',
'4952',
'4953',
'4954',
'4955',
'4956',
'4957',
'4958',
'4959',
'4961',
'4962',
'4963',
'4964',
'4965',
'4966',
'4967',
'4968',
'4971',
'4972',
'4973',
'4974',
'4975',
'4976',
'4977',
'5021',
'5022',
'5023',
'5024',
'5025',
'5026',
'5027',
'5028',
'5031',
'5032',
'5033',
'5034',
'5035',
'5036',
'5037',
'5041',
'5042',
'5043',
'5044',
'5045',
'5051',
'5052',
'5053',
'5054',
'5055',
'5056',
'5060',
'5062',
'5063',
'5064',
'5065',
'5066',
'5067',
'5068',
'5069',
'5071',
'5072',
'5073',
'5074',
'5082',
'5083',
'5084',
'5085',
'5086',
'5101',
'5102',
'5103',
'5105',
'5108',
'5109',
'5121',
'5123',
'5126',
'5127',
'5128',
'5129',
'5130',
'5131',
'5132',
'5135',
'5136',
'5137',
'5138',
'5139',
'5141',
'5142',
'5143',
'5144',
'5145',
'5146',
'5147',
'5148',
'5149',
'5151',
'5152',
'5153',
'5154',
'5155',
'5156',
'5157',
'5158',
'5159',
'5161',
'5162',
'5163',
'5164',
'5165',
'5166',
'5167',
'5168',
'5171',
'5172',
'5173',
'5174',
'5175',
'5176',
'5177',
'5181',
'5182',
'5183',
'5184',
'5185',
'5186',
'5187',
'5190',
'5191',
'5192',
'5193',
'5194',
'5195',
'5196',
'5197',
'5198',
'5199',
'5201',
'5202',
'5203',
'5204',
'5205',
'5206',
'5207',
'5208',
'5209',
'5221',
'5222',
'5223',
'5224',
'5225',
'5226',
'5228',
'5231',
'5232',
'5233',
'5234',
'5235',
'5236',
'5237',
'5238',
'5241',
'5242',
'5244',
'5245',
'5246',
'5247',
'5248',
'5250',
'5251',
'5252',
'5253',
'5254',
'5255',
'5257',
'5258',
'5259',
'5261',
'5262',
'5263',
'5264',
'5265',
'5266',
'5271',
'5272',
'5273',
'5274',
'5275',
'5276',
'5277',
'5278',
'5281',
'5282',
'5283',
'5284',
'5285',
'5286',
'5292',
'5293',
'5294',
'5295',
'5300',
'5301',
'5302',
'5303',
'5304',
'5305',
'5306',
'5307',
'5308',
'5309',
'5320',
'5321',
'5322',
'5323',
'5324',
'5325',
'5326',
'5327',
'5328',
'5329',
'5331',
'5332',
'5333',
'5334',
'5335',
'5336',
'5337',
'5339',
'5341',
'5344',
'5345',
'5346',
'5347',
'5351',
'5352',
'5353',
'5354',
'5355',
'5356',
'5357',
'5358',
'5361',
'5362',
'5363',
'5364',
'5365',
'5366',
'5367',
'5368',
'5371',
'5372',
'5373',
'5374',
'5375',
'5376',
'5377',
'5378',
'5379',
'5381',
'5382',
'5383',
'5384',
'5401',
'5402',
'5403',
'5404',
'5405',
'5406',
'5407',
'5409',
'5421',
'5422',
'5423',
'5424',
'5425',
'5426',
'5427',
'5428',
'5429',
'5431',
'5432',
'5433',
'5434',
'5435',
'5436',
'5437',
'5438',
'5439',
'5441',
'5442',
'5443',
'5444',
'5445',
'5446',
'5447',
'5448',
'5451',
'5452',
'5453',
'5454',
'5455',
'5456',
'5457',
'5458',
'5459',
'5461',
'5462',
'5464',
'5465',
'5466',
'5467',
'5468',
'5471',
'5472',
'5473',
'5474',
'5475',
'5476',
'5481',
'5482',
'5483',
'5484',
'5485',
'5491',
'5492',
'5493',
'5494',
'5495',
'5502',
'5503',
'5504',
'5505',
'5506',
'5507',
'5508',
'5509',
'5520',
'5521',
'5522',
'5523',
'5524',
'5525',
'5527',
'5528',
'5529',
'5531',
'5532',
'5533',
'5534',
'5535',
'5536',
'5541',
'5542',
'5543',
'5544',
'5545',
'5546',
'5551',
'5552',
'5553',
'5554',
'5555',
'5556',
'5561',
'5562',
'5563',
'5564',
'5565',
'5571',
'5572',
'5573',
'5574',
'5582',
'5583',
'5584',
'5585',
'5586',
'5592',
'5593',
'5594',
'5601',
'5602',
'5603',
'5604',
'5605',
'5606',
'5607',
'5608',
'5609',
'5621',
'5622',
'5623',
'5624',
'5625',
'5626',
'5631',
'5632',
'5633',
'5634',
'5635',
'5636',
'5641',
'5642',
'5643',
'5644',
'5645',
'5646',
'5647',
'5648',
'5650',
'5651',
'5652',
'5653',
'5654',
'5655',
'5656',
'5657',
'5658',
'5659',
'5661',
'5662',
'5663',
'5664',
'5665',
'5671',
'5672',
'5673',
'5674',
'5675',
'5676',
'5677',
'5681',
'5682',
'5683',
'5684',
'5685',
'5686',
'5691',
'5692',
'5693',
'5694',
'5695',
'5696',
'5702',
'5703',
'5704',
'5705',
'5706',
'5707',
'5721',
'5722',
'5723',
'5724',
'5725',
'5726',
'5731',
'5732',
'5733',
'5734',
'5741',
'5742',
'5743',
'5744',
'5745',
'5746',
'5751',
'5752',
'5753',
'5754',
'5755',
'5761',
'5763',
'5764',
'5765',
'5766',
'5767',
'5768',
'5769',
'5771',
'5772',
'5773',
'5774',
'5775',
'5776',
'5777',
'5802',
'5803',
'5804',
'5805',
'5806',
'5807',
'5808',
'5820',
'5821',
'5822',
'5823',
'5824',
'5825',
'5826',
'5827',
'5828',
'5829',
'5831',
'5832',
'5833',
'5834',
'5835',
'5836',
'5837',
'5838',
'5839',
'5840',
'5841',
'5842',
'5843',
'5844',
'5845',
'5846',
'5848',
'5849',
'5850',
'5851',
'5852',
'5853',
'5854',
'5855',
'5857',
'5858',
'5859',
'5861',
'5862',
'5863',
'5864',
'5865',
'5872',
'5873',
'5874',
'5875',
'5882',
'5883',
'5901',
'5902',
'5903',
'5904',
'5905',
'5906',
'5907',
'5908',
'5909',
'5921',
'5922',
'5923',
'5924',
'5925',
'5926',
'5931',
'5932',
'5933',
'5934',
'5935',
'5936',
'5937',
'5939',
'5941',
'5942',
'5943',
'5944',
'5945',
'5946',
'5947',
'5948',
'5951',
'5952',
'5953',
'5954',
'5955',
'5956',
'5957',
'5961',
'5962',
'5963',
'5964',
'5965',
'5966',
'5971',
'5973',
'5975',
'5976',
'5977',
'5978',
'6002',
'6003',
'6004',
'6007',
'6008',
'6020',
'6021',
'6022',
'6023',
'6024',
'6026',
'6027',
'6028',
'6029',
'6031',
'6032',
'6033',
'6034',
'6035',
'6036',
'6039',
'6041',
'6042',
'6043',
'6044',
'6045',
'6046',
'6047',
'6048',
'6049',
'6050',
'6051',
'6052',
'6053',
'6054',
'6055',
'6056',
'6057',
'6058',
'6059',
'6061',
'6062',
'6063',
'6066',
'6068',
'6071',
'6073',
'6074',
'6078',
'6081',
'6082',
'6083',
'6084',
'6085',
'6086',
'6087',
'6092',
'6093',
'6094',
'6095',
'6096',
'6101',
'6102',
'6103',
'6104',
'6105',
'6106',
'6107',
'6108',
'6109',
'6120',
'6122',
'6123',
'6124',
'6126',
'6127',
'6128',
'6129',
'6130',
'6131',
'6132',
'6133',
'6134',
'6135',
'6136',
'6138',
'6139',
'6142',
'6144',
'6145',
'6146',
'6147',
'6150',
'6151',
'6152',
'6154',
'6155',
'6157',
'6158',
'6159',
'6161',
'6162',
'6163',
'6164',
'6165',
'6166',
'6167',
'6171',
'6172',
'6173',
'6174',
'6175',
'6181',
'6182',
'6183',
'6184',
'6185',
'6186',
'6187',
'6188',
'6190',
'6192',
'6195',
'6196',
'6198',
'6201',
'6202',
'6203',
'6204',
'6205',
'6206',
'6207',
'6209',
'6220',
'6221',
'6222',
'6223',
'6224',
'6226',
'6227',
'6228',
'6229',
'6231',
'6232',
'6233',
'6234',
'6235',
'6236',
'6237',
'6238',
'6239',
'6241',
'6242',
'6243',
'6244',
'6245',
'6246',
'6247',
'6249',
'6251',
'6252',
'6253',
'6254',
'6255',
'6256',
'6257',
'6258',
'6261',
'6262',
'6263',
'6264',
'6265',
'6266',
'6267',
'6268',
'6269',
'6271',
'6272',
'6274',
'6275',
'6276',
'6281',
'6282',
'6283',
'6284',
'6285',
'6286',
'6287',
'6291',
'6292',
'6293',
'6294',
'6295',
'6296',
'6297',
'6298',
'6301',
'6302',
'6303',
'6304',
'6305',
'6306',
'6307',
'6308',
'6321',
'6322',
'6323',
'6324',
'6325',
'6326',
'6327',
'6328',
'6329',
'6331',
'6332',
'6333',
'6334',
'6335',
'6336',
'6337',
'6338',
'6339',
'6340',
'6341',
'6342',
'6343',
'6344',
'6345',
'6346',
'6347',
'6348',
'6349',
'6351',
'6352',
'6353',
'6355',
'6356',
'6357',
'6358',
'6359',
'6361',
'6362',
'6363',
'6364',
'6371',
'6372',
'6373',
'6374',
'6375',
'6381',
'6382',
'6383',
'6384',
'6385',
'6386',
'6387',
'6391',
'6392',
'6393',
'6394',
'6395',
'6396',
'6397',
'6398',
'6400',
'6401',
'6402',
'6403',
'6404',
'6405',
'6406',
'6407',
'6408',
'6409',
'6420',
'6421',
'6422',
'6423',
'6424',
'6425',
'6426',
'6427',
'6428',
'6429',
'6430',
'6431',
'6432',
'6433',
'6434',
'6435',
'6436',
'6438',
'6439',
'6440',
'6441',
'6442',
'6443',
'6444',
'6445',
'6446',
'6447',
'6449',
'6451',
'6452',
'6453',
'6454',
'6455',
'6456',
'6457',
'6458',
'6461',
'6462',
'6464',
'6465',
'6466',
'6467',
'6468',
'6471',
'6472',
'6473',
'6474',
'6475',
'6476',
'6477',
'6478',
'6479',
'6482',
'6483',
'6484',
'6485',
'6486',
'6500',
'6501',
'6502',
'6503',
'6504',
'6505',
'6506',
'6507',
'6508',
'6509',
'6522',
'6523',
'6524',
'6525',
'6526',
'6527',
'6531',
'6532',
'6533',
'6534',
'6535',
'6536',
'6541',
'6542',
'6543',
'6544',
'6545',
'6550',
'6551',
'6552',
'6553',
'6554',
'6555',
'6556',
'6557',
'6558',
'6559',
'6561',
'6562',
'6563',
'6564',
'6565',
'6566',
'6567',
'6568',
'6569',
'6571',
'6572',
'6573',
'6574',
'6575',
'6578',
'6580',
'6581',
'6582',
'6583',
'6584',
'6585',
'6586',
'6587',
'6588',
'6589',
'6591',
'6592',
'6593',
'6594',
'6595',
'6596',
'6597',
'6599',
'6620',
'6621',
'6622',
'6623',
'6624',
'6625',
'6626',
'6627',
'6628',
'6629',
'6630',
'6631',
'6633',
'6634',
'6635',
'6636',
'6637',
'6638',
'6639',
'6641',
'6642',
'6643',
'6644',
'6645',
'6646',
'6647',
'6648',
'6650',
'6651',
'6652',
'6653',
'6654',
'6655',
'6656',
'6657',
'6658',
'6659',
'6660',
'6661',
'6663',
'6664',
'6665',
'6666',
'6667',
'6668',
'6669',
'6670',
'6672',
'6673',
'6674',
'6675',
'6676',
'6677',
'6678',
'6681',
'6682',
'6683',
'6684',
'6691',
'6692',
'6693',
'6694',
'6695',
'6696',
'6697',
'6698',
'6701',
'6703',
'6704',
'6706',
'6707',
'6708',
'6709',
'6721',
'6722',
'6723',
'6724',
'6725',
'6726',
'6727',
'6728',
'6731',
'6732',
'6733',
'6734',
'6735',
'6736',
'6737',
'6741',
'6742',
'6743',
'6744',
'6745',
'6746',
'6747',
'6751',
'6752',
'6753',
'6754',
'6755',
'6756',
'6757',
'6758',
'6761',
'6762',
'6763',
'6764',
'6765',
'6766',
'6771',
'6772',
'6773',
'6774',
'6775',
'6776',
'6781',
'6782',
'6783',
'6784',
'6785',
'6786',
'6787',
'6788',
'6789',
'6802',
'6803',
'6804',
'6805',
'6806',
'6809',
'6821',
'6824',
'6825',
'6826',
'6827',
'6831',
'6832',
'6833',
'6834',
'6835',
'6836',
'6837',
'6838',
'6841',
'6842',
'6843',
'6844',
'6848',
'6849',
'6851',
'6852',
'6853',
'6854',
'6855',
'6856',
'6857',
'6858',
'6861',
'6864',
'6865',
'6866',
'6867',
'6868',
'6869',
'6871',
'6872',
'6873',
'6874',
'6875',
'6876',
'6881',
'6887',
'6888',
'6893',
'6894',
'6897',
'6898',
'7021',
'7022',
'7023',
'7024',
'7025',
'7026',
'7031',
'7032',
'7033',
'7034',
'7041',
'7042',
'7043',
'7044',
'7045',
'7046',
'7051',
'7052',
'7053',
'7054',
'7055',
'7056',
'7062',
'7063',
'7066',
'7071',
'7072',
'7073',
'7081',
'7082',
'7083',
'7084',
'7085',
'7121',
'7122',
'7123',
'7124',
'7125',
'7126',
'7127',
'7128',
'7129',
'7130',
'7131',
'7132',
'7133',
'7134',
'7135',
'7136',
'7138',
'7139',
'7141',
'7142',
'7143',
'7144',
'7145',
'7146',
'7147',
'7148',
'7150',
'7151',
'7152',
'7153',
'7154',
'7156',
'7157',
'7158',
'7159',
'7161',
'7162',
'7163',
'7164',
'7165',
'7166',
'7171',
'7172',
'7173',
'7174',
'7175',
'7176',
'7181',
'7182',
'7183',
'7184',
'7191',
'7192',
'7193',
'7194',
'7195',
'7202',
'7203',
'7204',
'7220',
'7221',
'7222',
'7223',
'7224',
'7225',
'7226',
'7227',
'7228',
'7229',
'7231',
'7232',
'7233',
'7234',
'7235',
'7236',
'7237',
'7240',
'7242',
'7243',
'7244',
'7245',
'7246',
'7247',
'7248',
'7249',
'7250',
'7251',
'7252',
'7253',
'7254',
'7255',
'7256',
'7257',
'7258',
'7259',
'7260',
'7261',
'7262',
'7263',
'7264',
'7265',
'7266',
'7267',
'7268',
'7269',
'7271',
'7272',
'7273',
'7274',
'7275',
'7276',
'7277',
'7300',
'7302',
'7303',
'7304',
'7305',
'7306',
'7307',
'7308',
'7309',
'7321',
'7322',
'7323',
'7324',
'7325',
'7326',
'7327',
'7328',
'7329',
'7331',
'7332',
'7333',
'7334',
'7335',
'7336',
'7337',
'7340',
'7343',
'7344',
'7345',
'7346',
'7347',
'7348',
'7351',
'7352',
'7353',
'7354',
'7355',
'7356',
'7357',
'7358',
'7361',
'7362',
'7363',
'7364',
'7365',
'7366',
'7367',
'7371',
'7373',
'7374',
'7375',
'7376',
'7381',
'7382',
'7383',
'7384',
'7385',
'7386',
'7387',
'7388',
'7389',
'7391',
'7392',
'7393',
'7394',
'7395',
'7402',
'7403',
'7404',
'7420',
'7422',
'7423',
'7424',
'7425',
'7426',
'7427',
'7428',
'7429',
'7431',
'7432',
'7433',
'7434',
'7435',
'7436',
'7440',
'7441',
'7442',
'7443',
'7444',
'7445',
'7446',
'7447',
'7448',
'7449',
'7451',
'7452',
'7453',
'7454',
'7455',
'7456',
'7457',
'7458',
'7459',
'7461',
'7462',
'7463',
'7464',
'7465',
'7466',
'7467',
'7471',
'7472',
'7473',
'7474',
'7475',
'7476',
'7477',
'7478',
'7482',
'7483',
'7484',
'7485',
'7486',
'7502',
'7503',
'7504',
'7505',
'7506',
'7520',
'7522',
'7524',
'7525',
'7527',
'7528',
'7529',
'7531',
'7532',
'7533',
'7534',
'7541',
'7542',
'7543',
'7544',
'7545',
'7546',
'7551',
'7552',
'7553',
'7554',
'7555',
'7556',
'7557',
'7558',
'7561',
'7562',
'7563',
'7564',
'7565',
'7566',
'7567',
'7568',
'7569',
'7570',
'7571',
'7572',
'7573',
'7574',
'7575',
'7576',
'7577',
'7578',
'7579',
'7581',
'7582',
'7583',
'7584',
'7585',
'7586',
'7587',
'7602',
'7620',
'7621',
'7622',
'7623',
'7624',
'7625',
'7626',
'7627',
'7628',
'7629',
'7631',
'7632',
'7633',
'7634',
'7635',
'7636',
'7641',
'7642',
'7643',
'7644',
'7645',
'7646',
'7651',
'7652',
'7653',
'7654',
'7655',
'7656',
'7657',
'7660',
'7661',
'7662',
'7663',
'7664',
'7665',
'7666',
'7667',
'7668',
'7669',
'7671',
'7672',
'7673',
'7674',
'7675',
'7676',
'7681',
'7682',
'7683',
'7684',
'7685',
'7702',
'7703',
'7704',
'7705',
'7706',
'7707',
'7708',
'7709',
'7720',
'7721',
'7722',
'7723',
'7724',
'7725',
'7726',
'7727',
'7728',
'7729',
'7731',
'7732',
'7733',
'7734',
'7735',
'7736',
'7738',
'7739',
'7741',
'7742',
'7743',
'7744',
'7745',
'7746',
'7747',
'7748',
'7751',
'7753',
'7754',
'7755',
'7761',
'7762',
'7763',
'7764',
'7765',
'7771',
'7773',
'7774',
'7775',
'7777',
'7802',
'7803',
'7804',
'7805',
'7806',
'7807',
'7808',
'7821',
'7822',
'7823',
'7824',
'7825',
'7826',
'7831',
'7832',
'7833',
'7834',
'7835',
'7836',
'7837',
'7838',
'7839',
'7841',
'7842',
'7843',
'7844',
'7851',
'7852',
'7853',
'7854',
'7903',
'7904',
'7905',
'7906',
'7907',
'7930',
'7931',
'7932',
'7933',
'7934',
'7935',
'7936',
'7937',
'7938',
'7939',
'7940',
'7941',
'7942',
'7943',
'7944',
'7945',
'7946',
'7947',
'7948',
'7949',
'7950',
'7951',
'7952',
'7953',
'7954',
'7955',
'7957',
'7958',
'7959',
'7961',
'7962',
'7963',
'7964',
'7965',
'7966',
'7967',
'7971',
'7972',
'7973',
'7974',
'7975',
'7976',
'7977',
'8020',
'8021',
'8022',
'8023',
'8024',
'8025',
'8026',
'8027',
'8028',
'8029',
'8031',
'8032',
'8033',
'8034',
'8035',
'8036',
'8038',
'8039',
'8041',
'8042',
'8043',
'8045',
'8046',
'8051',
'8052',
'8053',
'8054',
'8055',
'8056',
'8057',
'8061',
'8062',
'8063',
'8064',
'8065',
'8066',
'8067',
'8071',
'8072',
'8073',
'8074',
'8075',
'8076',
'8081',
'8082',
'8083',
'8084',
'8085',
'8086',
'8091',
'8092',
'8093',
'8094',
'8095',
'8102',
'8104',
'8105',
'8106',
'8121',
'8122',
'8123',
'8124',
'8131',
'8133',
'8134',
'8135',
'8136',
'8137',
'8138',
'8139',
'8141',
'8142',
'8143',
'8144',
'8145',
'8146',
'8151',
'8152',
'8153',
'8157',
'8158',
'8161',
'8165',
'8166',
'8167',
'8168',
'8170',
'8171',
'8176',
'8177',
'8178',
'8179',
'8191',
'8192',
'8193',
'8194',
'8195',
'8196',
'8202',
'8203',
'8204',
'8205',
'8206',
'8207',
'8208',
'8221',
'8222',
'8223',
'8224',
'8225',
'8226',
'8230',
'8231',
'8232',
'8233',
'8234',
'8236',
'8237',
'8238',
'8239',
'8241',
'8243',
'8245',
'8246',
'8247',
'8248',
'8249',
'8250',
'8251',
'8252',
'8253',
'8254',
'8257',
'8258',
'8259',
'8261',
'8262',
'8263',
'8265',
'8266',
'8267',
'8268',
'8269',
'8271',
'8272',
'8273',
'8274',
'8276',
'8281',
'8282',
'8283',
'8284',
'8285',
'8291',
'8292',
'8293',
'8294',
'8295',
'8296',
'8302',
'8303',
'8304',
'8306',
'8320',
'8321',
'8322',
'8323',
'8324',
'8325',
'8326',
'8327',
'8328',
'8330',
'8331',
'8332',
'8333',
'8334',
'8335',
'8336',
'8337',
'8338',
'8340',
'8341',
'8342',
'8343',
'8344',
'8345',
'8346',
'8347',
'8348',
'8349',
'8361',
'8362',
'8363',
'8364',
'8365',
'8366',
'8367',
'8368',
'8369',
'8370',
'8372',
'8373',
'8374',
'8375',
'8376',
'8377',
'8378',
'8379',
'8380',
'8381',
'8382',
'8383',
'8384',
'8385',
'8386',
'8387',
'8388',
'8389',
'8392',
'8393',
'8394',
'8395',
'8402',
'8403',
'8404',
'8405',
'8406',
'8407',
'8421',
'8422',
'8423',
'8424',
'8426',
'8427',
'8431',
'8432',
'8433',
'8434',
'8435',
'8441',
'8442',
'8443',
'8444',
'8445',
'8446',
'8450',
'8452',
'8453',
'8454',
'8456',
'8457',
'8458',
'8459',
'8460',
'8461',
'8462',
'8463',
'8464',
'8465',
'8466',
'8467',
'8468',
'8469',
'8501',
'8502',
'8503',
'8504',
'8505',
'8506',
'8507',
'8509',
'8531',
'8532',
'8533',
'8534',
'8535',
'8536',
'8537',
'8538',
'8541',
'8542',
'8543',
'8544',
'8545',
'8546',
'8547',
'8548',
'8549',
'8550',
'8551',
'8552',
'8553',
'8554',
'8555',
'8556',
'8557',
'8558',
'8561',
'8562',
'8563',
'8564',
'8565',
'8571',
'8572',
'8573',
'8574',
'8581',
'8582',
'8583',
'8584',
'8585',
'8586',
'8591',
'8592',
'8593',
'8621',
'8622',
'8623',
'8624',
'8628',
'8629',
'8630',
'8631',
'8633',
'8634',
'8635',
'8636',
'8637',
'8638',
'8639',
'8640',
'8641',
'8642',
'8649',
'8650',
'8651',
'8652',
'8654',
'8656',
'8657',
'8661',
'8662',
'8663',
'8664',
'8665',
'8666',
'8667',
'8669',
'8670',
'8671',
'8677',
'8678',
'8679',
'8681',
'8682',
'8683',
'8684',
'8685',
'8686',
'8687',
'8702',
'8703',
'8704',
'8705',
'8706',
'8707',
'8708',
'8709',
'8721',
'8722',
'8723',
'8724',
'8725',
'8726',
'8727',
'8728',
'8731',
'8732',
'8733',
'8734',
'8735',
'8741',
'8742',
'8743',
'8744',
'8745',
'8751',
'8752',
'8753',
'8754',
'8756',
'8761',
'8762',
'8764',
'8765',
'8766',
'8771',
'8772',
'8773',
'8774',
'8781',
'8782',
'8783',
'8784',
'8785',
'8801',
'8802',
'8803',
'8805',
'8806',
'8807',
'8808',
'8809',
'8821',
'8822',
'8823',
'8824',
'8825',
'8841',
'8845',
'8846',
'8847',
'8851',
'8856',
'8857',
'8858',
'8860',
'8861',
'8862',
'8867',
'8868',
'8869',
'9070',
'9071',
'9072',
'9073',
'9074',
'9075',
'9076',
'9077',
'9078',
'9080',
'9081',
'9082',
'9083',
'9084',
'9085',
'9086',
'9087',
'9088',
'9089',
'9090',
'9091',
'9092',
'9093',
'9094',
'9097',
'9099',
'9101',
'9102',
'9103',
'9104',
'9105',
'9106',
'9107',
'9120',
'9122',
'9123',
'9126',
'9127',
'9128',
'9129',
'9131',
'9132',
'9133',
'9134',
'9135',
'9141',
'9142',
'9143',
'9144',
'9145',
'9146',
'9147',
'9148',
'9149',
'9151',
'9152',
'9153',
'9154',
'9155',
'9156',
'9157',
'9158',
'9161',
'9162',
'9163',
'9164',
'9165',
'9166',
'9167',
'9170',
'9171',
'9172',
'9173',
'9174',
'9175',
'9176',
'9177',
'9178',
'9179',
'9180',
'9181',
'9182',
'9183',
'9184',
'9185',
'9186',
'9187',
'9188',
'9189',
'9190',
'9191',
'9192',
'9193',
'9194',
'9195',
'9196',
'9197',
'9198',
'9199',
'9201',
'9202',
'9203',
'9204',
'9205',
'9206',
'9207',
'9208',
'9209',
'9220',
'9221',
'9222',
'9223',
'9225',
'9227',
'9228',
'9229',
'9231',
'9232',
'9233',
'9234',
'9235',
'9236',
'9238',
'9241',
'9242',
'9243',
'9244',
'9245',
'9246',
'9251',
'9252',
'9253',
'9254',
'9255',
'9256',
'9257',
'9260',
'9261',
'9262',
'9263',
'9264',
'9265',
'9266',
'9267',
'9268',
'9269',
'9270',
'9271',
'9272',
'9273',
'9274',
'9275',
'9276',
'9277',
'9278',
'9279',
'9280',
'9281',
'9282',
'9283',
'9284',
'9285',
'9286',
'9287',
'9288',
'9289',
'9292',
'9293',
'9294',
'9295',
'9302',
'9303',
'9305',
'9306',
'9307',
'9321',
'9323',
'9324',
'9325',
'9326',
'9331',
'9332',
'9333',
'9334',
'9335',
'9336',
'9337',
'9338',
'9339',
'9340',
'9341',
'9342',
'9343',
'9344',
'9345',
'9346',
'9347',
'9348',
'9349',
'9350',
'9351',
'9352',
'9353',
'9354',
'9355',
'9356',
'9357',
'9358',
'9359',
'9360',
'9363',
'9364',
'9365',
'9366',
'9367',
'9369',
'9371',
'9372',
'9373',
'9374',
'9375',
'9376',
'9377',
'9378',
'9381',
'9382',
'9383',
'9384',
'9385',
'9386',
'9391',
'9392',
'9393',
'9394',
'9395',
'9396',
'9397',
'9398',
'9401',
'9402',
'9403',
'9404',
'9405',
'9406',
'9407',
'9408',
'9409',
'9420',
'9421',
'9422',
'9423',
'9424',
'9426',
'9427',
'9428',
'9429',
'9431',
'9433',
'9434',
'9435',
'9436',
'9438',
'9439',
'9441',
'9442',
'9443',
'9444',
'9445',
'9446',
'9447',
'9448',
'9451',
'9452',
'9453',
'9454',
'9461',
'9462',
'9463',
'9464',
'9465',
'9466',
'9467',
'9468',
'9469',
'9471',
'9472',
'9473',
'9474',
'9480',
'9481',
'9482',
'9484',
'9491',
'9492',
'9493',
'9495',
'9497',
'9498',
'9499',
'9502',
'9503',
'9504',
'9505',
'9521',
'9522',
'9523',
'9524',
'9525',
'9526',
'9527',
'9528',
'9529',
'9531',
'9532',
'9533',
'9534',
'9535',
'9536',
'9542',
'9543',
'9544',
'9545',
'9546',
'9547',
'9548',
'9549',
'9551',
'9552',
'9553',
'9554',
'9555',
'9556',
'9560',
'9561',
'9562',
'9563',
'9564',
'9565',
'9566',
'9567',
'9568',
'9569',
'9571',
'9572',
'9573',
'9574',
'9575',
'9576',
'9602',
'9603',
'9604',
'9605',
'9606',
'9607',
'9608',
'9621',
'9622',
'9624',
'9625',
'9626',
'9627',
'9628',
'9631',
'9632',
'9633',
'9634',
'9635',
'9636',
'9637',
'9638',
'9639',
'9641',
'9642',
'9643',
'9644',
'9645',
'9646',
'9647',
'9648',
'9651',
'9652',
'9653',
'9654',
'9655',
'9656',
'9657',
'9658',
'9659',
'9661',
'9662',
'9663',
'9664',
'9665',
'9666',
'9671',
'9672',
'9673',
'9674',
'9675',
'9676',
'9677',
'9681',
'9682',
'9683',
'9701',
'9704',
'9708',
'9720',
'9721',
'9722',
'9723',
'9724',
'9725',
'9726',
'9727',
'9728',
'9729',
'9732',
'9733',
'9734',
'9735',
'9736',
'9737',
'9738',
'9741',
'9742',
'9744',
'9745',
'9746',
'9747',
'9748',
'9749',
'9761',
'9762',
'9763',
'9764',
'9765',
'9766',
'9771',
'9772',
'9773',
'9774',
'9775',
'9776',
'9777',
'9778',
'9779',
'9802',
'9803',
'9804',
'9805',
'9820',
'9822',
'9823',
'9824',
'9825',
'9826',
'9827',
'9828',
'9829',
'9831',
'9832',
'9833',
'9834',
'9835',
'9836',
'9837',
'9841',
'9842',
'9843',
'9844',
'9845',
'9846',
'9847',
'9848',
'9851',
'9852',
'9853',
'9854',
'9855',
'9856',
'9857',
'9861',
'9865',
'9867',
'9868',
'9869',
'9871',
'9872',
'9873',
'9874',
'9875',
'9876',
'9901',
'9903',
'9904',
'9905',
'9906',
'9907',
'9908',
'9920',
'9921',
'9922',
'9923',
'9924',
'9925',
'9926',
'9927',
'9928',
'9929',
'9931',
'9932',
'9933',
'9935',
'9936',
'9937',
'9938',
'9941',
'9942',
'9943',
'9944',
'9945',
'9946',
'9947',
'9948',
'9951',
'9952',
'9953',
'9954',
'9955',
'9956',
'9961',
'9962',
'9963',
'9964',
'9965',
'9966',
'9971',
'9972',
'9973',
'9974',
'9975',
'9976',
'9977',
'9978',
]
mobile_3digits = [
'150', # Group3G/Quam
'151', # T-Mobile
'152', # Vodafone
'155', # E-Plus
'156', # Mobilcom
'157', # E-Plus
'159', # O2
'160', # T-Mobile
'161', # C-Netz
'162', # Vodafone
'163', # E-Plus
'164', # Cityruf
'165', # Quix
'166', # Telmi
'168', # Scall
'169', # Cityruf, Scall, Skyper (e*cityruf, e*message, e*skyper)
'170', # T-Mobile
'171', # T-Mobile
'172', # Vodafone
'173', # Vodafone
'174', # Vodafone
'175', # T-Mobile
'176', # O2 Germany
'177', # E-Plus
'178', # E-Plus
'179', # O2 Germany
]

mobile_4digits = [
'1520', # Vodafone
'1521', # Lycamobile
'1522', # Vodafone
'1523', # Vodafone
'1570', # vistream
'1577', # E-Plus
'1672', # Dolphin Telecom
]

service = [
'12',  # Innovative Services
'130',
'180', #
'181', # IVPNs
'182', # Closed User Group
'183', # Closed User Group
'184', # Closed User Group
'185', # Closed User Group
'186', # Closed User Group
'187', # Closed User Group
'189', # Closed User Group
'190', # former Premium Rate Services
'191', # Online Services
'192', # Online Services
'193', # Online Services
'194', # Online Services
'199', # Network-Internal Traffic Control
'700',
'701',
'800',
'801',
'901',
'902',
'1371',
'1372',
'1373',
'1374',
'1375',
'1376',
'1377',
'1378',
'1379',
'1801',
'1802',
'1803',
'1804',
'1805',
'1888',
'1987',
'1988',
'1989',
'9001',
'9003',
'9005',
'9009',
]

# Note:
# http://en.wikipedia.org/wiki/Telephone_numbers_in_Germany
# http://www.itu.int/dms_pub/itu-t/oth/02/02/T02020000510001PDFE.pdf
# "Numbers assigned in the past, which are generally grandfathered, may be as short as five digits."
#
# http://www.bundesnetzagentur.de/cln_1422/DE/Sachgebiete/Telekommunikation/Unternehmen_Institutionen/Nummerierung/Rufnummern/Rufnummern_node.html
#
# TODO Define lower end of last part correctly.
#
Phony.define do
   country '49',
     trunk('0', normalize: true) |
     one_of(*service)        >> split(3,1..9) |
     one_of(*mobile_4digits) >> split(3,4) |
     one_of(*mobile_3digits) >> split(4,3..4) |
     one_of(*ndcs2)          >> split(3,1..10) |
     one_of(*ndcs3)          >> split(3,1..9) |
     one_of(*ndcs4)          >> split(3,0..8) |
     fixed(5)                >> split(3,0..7)
end