Scrutinizer GitHub App not installed

We could not synchronize checks via GitHub's checks API since Scrutinizer's GitHub App is not installed for this repository.

Install GitHub App

Completed
Pull Request — master (#1034)
by Henrique
02:29
created

Tld::validate()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 7
ccs 4
cts 4
cp 1
rs 10
c 0
b 0
f 0
cc 2
nc 2
nop 1
crap 2
1
<?php
2
3
/*
4
 * This file is part of Respect/Validation.
5
 *
6
 * (c) Alexandre Gomes Gaigalas <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the "LICENSE.md"
9
 * file that was distributed with this source code.
10
 */
11
12
declare(strict_types=1);
13
14
namespace Respect\Validation\Rules;
15
16
use function in_array;
17
use function is_scalar;
18
use function mb_strtoupper;
19
20
/**
21
 * Validates whether the input is a top-level domain.
22
 *
23
 * @author Alexandre Gomes Gaigalas <[email protected]>
24
 * @author Bogus <[email protected]>
25
 * @author Henrique Moody <[email protected]>
26
 * @author Paul Karikari <[email protected]>
27
 */
28
final class Tld extends AbstractRule
29
{
30
    /**
31
     * List extracted from http://data.iana.org/TLD/tlds-alpha-by-domain.txt
32
     * Version 2017020700, Last Updated Tue Feb  7 07:07:02 2017 UTC.
33
     *
34
     * @var array
35
     */
36
    private const TLD_LIST = [
37
        'AAA',
38
        'AARP',
39
        'ABARTH',
40
        'ABB',
41
        'ABBOTT',
42
        'ABBVIE',
43
        'ABC',
44
        'ABLE',
45
        'ABOGADO',
46
        'ABUDHABI',
47
        'AC',
48
        'ACADEMY',
49
        'ACCENTURE',
50
        'ACCOUNTANT',
51
        'ACCOUNTANTS',
52
        'ACO',
53
        'ACTIVE',
54
        'ACTOR',
55
        'AD',
56
        'ADAC',
57
        'ADS',
58
        'ADULT',
59
        'AE',
60
        'AEG',
61
        'AERO',
62
        'AETNA',
63
        'AF',
64
        'AFAMILYCOMPANY',
65
        'AFL',
66
        'AG',
67
        'AGAKHAN',
68
        'AGENCY',
69
        'AI',
70
        'AIG',
71
        'AIGO',
72
        'AIRBUS',
73
        'AIRFORCE',
74
        'AIRTEL',
75
        'AKDN',
76
        'AL',
77
        'ALFAROMEO',
78
        'ALIBABA',
79
        'ALIPAY',
80
        'ALLFINANZ',
81
        'ALLSTATE',
82
        'ALLY',
83
        'ALSACE',
84
        'ALSTOM',
85
        'AM',
86
        'AMERICANEXPRESS',
87
        'AMERICANFAMILY',
88
        'AMEX',
89
        'AMFAM',
90
        'AMICA',
91
        'AMSTERDAM',
92
        'ANALYTICS',
93
        'ANDROID',
94
        'ANQUAN',
95
        'ANZ',
96
        'AO',
97
        'AOL',
98
        'APARTMENTS',
99
        'APP',
100
        'APPLE',
101
        'AQ',
102
        'AQUARELLE',
103
        'AR',
104
        'ARAMCO',
105
        'ARCHI',
106
        'ARMY',
107
        'ARPA',
108
        'ART',
109
        'ARTE',
110
        'AS',
111
        'ASDA',
112
        'ASIA',
113
        'ASSOCIATES',
114
        'AT',
115
        'ATHLETA',
116
        'ATTORNEY',
117
        'AU',
118
        'AUCTION',
119
        'AUDI',
120
        'AUDIBLE',
121
        'AUDIO',
122
        'AUSPOST',
123
        'AUTHOR',
124
        'AUTO',
125
        'AUTOS',
126
        'AVIANCA',
127
        'AW',
128
        'AWS',
129
        'AX',
130
        'AXA',
131
        'AZ',
132
        'AZURE',
133
        'BA',
134
        'BABY',
135
        'BAIDU',
136
        'BANAMEX',
137
        'BANANAREPUBLIC',
138
        'BAND',
139
        'BANK',
140
        'BAR',
141
        'BARCELONA',
142
        'BARCLAYCARD',
143
        'BARCLAYS',
144
        'BAREFOOT',
145
        'BARGAINS',
146
        'BASEBALL',
147
        'BASKETBALL',
148
        'BAUHAUS',
149
        'BAYERN',
150
        'BB',
151
        'BBC',
152
        'BBT',
153
        'BBVA',
154
        'BCG',
155
        'BCN',
156
        'BD',
157
        'BE',
158
        'BEATS',
159
        'BEAUTY',
160
        'BEER',
161
        'BENTLEY',
162
        'BERLIN',
163
        'BEST',
164
        'BESTBUY',
165
        'BET',
166
        'BF',
167
        'BG',
168
        'BH',
169
        'BHARTI',
170
        'BI',
171
        'BIBLE',
172
        'BID',
173
        'BIKE',
174
        'BING',
175
        'BINGO',
176
        'BIO',
177
        'BIZ',
178
        'BJ',
179
        'BLACK',
180
        'BLACKFRIDAY',
181
        'BLANCO',
182
        'BLOCKBUSTER',
183
        'BLOG',
184
        'BLOOMBERG',
185
        'BLUE',
186
        'BM',
187
        'BMS',
188
        'BMW',
189
        'BN',
190
        'BNL',
191
        'BNPPARIBAS',
192
        'BO',
193
        'BOATS',
194
        'BOEHRINGER',
195
        'BOFA',
196
        'BOM',
197
        'BOND',
198
        'BOO',
199
        'BOOK',
200
        'BOOKING',
201
        'BOOTS',
202
        'BOSCH',
203
        'BOSTIK',
204
        'BOSTON',
205
        'BOT',
206
        'BOUTIQUE',
207
        'BOX',
208
        'BR',
209
        'BRADESCO',
210
        'BRIDGESTONE',
211
        'BROADWAY',
212
        'BROKER',
213
        'BROTHER',
214
        'BRUSSELS',
215
        'BS',
216
        'BT',
217
        'BUDAPEST',
218
        'BUGATTI',
219
        'BUILD',
220
        'BUILDERS',
221
        'BUSINESS',
222
        'BUY',
223
        'BUZZ',
224
        'BV',
225
        'BW',
226
        'BY',
227
        'BZ',
228
        'BZH',
229
        'CA',
230
        'CAB',
231
        'CAFE',
232
        'CAL',
233
        'CALL',
234
        'CALVINKLEIN',
235
        'CAM',
236
        'CAMERA',
237
        'CAMP',
238
        'CANCERRESEARCH',
239
        'CANON',
240
        'CAPETOWN',
241
        'CAPITAL',
242
        'CAPITALONE',
243
        'CAR',
244
        'CARAVAN',
245
        'CARDS',
246
        'CARE',
247
        'CAREER',
248
        'CAREERS',
249
        'CARS',
250
        'CARTIER',
251
        'CASA',
252
        'CASE',
253
        'CASEIH',
254
        'CASH',
255
        'CASINO',
256
        'CAT',
257
        'CATERING',
258
        'CATHOLIC',
259
        'CBA',
260
        'CBN',
261
        'CBRE',
262
        'CBS',
263
        'CC',
264
        'CD',
265
        'CEB',
266
        'CENTER',
267
        'CEO',
268
        'CERN',
269
        'CF',
270
        'CFA',
271
        'CFD',
272
        'CG',
273
        'CH',
274
        'CHANEL',
275
        'CHANNEL',
276
        'CHASE',
277
        'CHAT',
278
        'CHEAP',
279
        'CHINTAI',
280
        'CHLOE',
281
        'CHRISTMAS',
282
        'CHROME',
283
        'CHRYSLER',
284
        'CHURCH',
285
        'CI',
286
        'CIPRIANI',
287
        'CIRCLE',
288
        'CISCO',
289
        'CITADEL',
290
        'CITI',
291
        'CITIC',
292
        'CITY',
293
        'CITYEATS',
294
        'CK',
295
        'CL',
296
        'CLAIMS',
297
        'CLEANING',
298
        'CLICK',
299
        'CLINIC',
300
        'CLINIQUE',
301
        'CLOTHING',
302
        'CLOUD',
303
        'CLUB',
304
        'CLUBMED',
305
        'CM',
306
        'CN',
307
        'CO',
308
        'COACH',
309
        'CODES',
310
        'COFFEE',
311
        'COLLEGE',
312
        'COLOGNE',
313
        'COM',
314
        'COMCAST',
315
        'COMMBANK',
316
        'COMMUNITY',
317
        'COMPANY',
318
        'COMPARE',
319
        'COMPUTER',
320
        'COMSEC',
321
        'CONDOS',
322
        'CONSTRUCTION',
323
        'CONSULTING',
324
        'CONTACT',
325
        'CONTRACTORS',
326
        'COOKING',
327
        'COOKINGCHANNEL',
328
        'COOL',
329
        'COOP',
330
        'CORSICA',
331
        'COUNTRY',
332
        'COUPON',
333
        'COUPONS',
334
        'COURSES',
335
        'CR',
336
        'CREDIT',
337
        'CREDITCARD',
338
        'CREDITUNION',
339
        'CRICKET',
340
        'CROWN',
341
        'CRS',
342
        'CRUISE',
343
        'CRUISES',
344
        'CSC',
345
        'CU',
346
        'CUISINELLA',
347
        'CV',
348
        'CW',
349
        'CX',
350
        'CY',
351
        'CYMRU',
352
        'CYOU',
353
        'CZ',
354
        'DABUR',
355
        'DAD',
356
        'DANCE',
357
        'DATA',
358
        'DATE',
359
        'DATING',
360
        'DATSUN',
361
        'DAY',
362
        'DCLK',
363
        'DDS',
364
        'DE',
365
        'DEAL',
366
        'DEALER',
367
        'DEALS',
368
        'DEGREE',
369
        'DELIVERY',
370
        'DELL',
371
        'DELOITTE',
372
        'DELTA',
373
        'DEMOCRAT',
374
        'DENTAL',
375
        'DENTIST',
376
        'DESI',
377
        'DESIGN',
378
        'DEV',
379
        'DHL',
380
        'DIAMONDS',
381
        'DIET',
382
        'DIGITAL',
383
        'DIRECT',
384
        'DIRECTORY',
385
        'DISCOUNT',
386
        'DISCOVER',
387
        'DISH',
388
        'DIY',
389
        'DJ',
390
        'DK',
391
        'DM',
392
        'DNP',
393
        'DO',
394
        'DOCS',
395
        'DOCTOR',
396
        'DODGE',
397
        'DOG',
398
        'DOHA',
399
        'DOMAINS',
400
        'DOT',
401
        'DOWNLOAD',
402
        'DRIVE',
403
        'DTV',
404
        'DUBAI',
405
        'DUCK',
406
        'DUNLOP',
407
        'DUNS',
408
        'DUPONT',
409
        'DURBAN',
410
        'DVAG',
411
        'DVR',
412
        'DZ',
413
        'EARTH',
414
        'EAT',
415
        'EC',
416
        'ECO',
417
        'EDEKA',
418
        'EDU',
419
        'EDUCATION',
420
        'EE',
421
        'EG',
422
        'EMAIL',
423
        'EMERCK',
424
        'ENERGY',
425
        'ENGINEER',
426
        'ENGINEERING',
427
        'ENTERPRISES',
428
        'EPOST',
429
        'EPSON',
430
        'EQUIPMENT',
431
        'ER',
432
        'ERICSSON',
433
        'ERNI',
434
        'ES',
435
        'ESQ',
436
        'ESTATE',
437
        'ESURANCE',
438
        'ET',
439
        'EU',
440
        'EUROVISION',
441
        'EUS',
442
        'EVENTS',
443
        'EVERBANK',
444
        'EXCHANGE',
445
        'EXPERT',
446
        'EXPOSED',
447
        'EXPRESS',
448
        'EXTRASPACE',
449
        'FAGE',
450
        'FAIL',
451
        'FAIRWINDS',
452
        'FAITH',
453
        'FAMILY',
454
        'FAN',
455
        'FANS',
456
        'FARM',
457
        'FARMERS',
458
        'FASHION',
459
        'FAST',
460
        'FEDEX',
461
        'FEEDBACK',
462
        'FERRARI',
463
        'FERRERO',
464
        'FI',
465
        'FIAT',
466
        'FIDELITY',
467
        'FIDO',
468
        'FILM',
469
        'FINAL',
470
        'FINANCE',
471
        'FINANCIAL',
472
        'FIRE',
473
        'FIRESTONE',
474
        'FIRMDALE',
475
        'FISH',
476
        'FISHING',
477
        'FIT',
478
        'FITNESS',
479
        'FJ',
480
        'FK',
481
        'FLICKR',
482
        'FLIGHTS',
483
        'FLIR',
484
        'FLORIST',
485
        'FLOWERS',
486
        'FLY',
487
        'FM',
488
        'FO',
489
        'FOO',
490
        'FOOD',
491
        'FOODNETWORK',
492
        'FOOTBALL',
493
        'FORD',
494
        'FOREX',
495
        'FORSALE',
496
        'FORUM',
497
        'FOUNDATION',
498
        'FOX',
499
        'FR',
500
        'FREE',
501
        'FRESENIUS',
502
        'FRL',
503
        'FROGANS',
504
        'FRONTDOOR',
505
        'FRONTIER',
506
        'FTR',
507
        'FUJITSU',
508
        'FUJIXEROX',
509
        'FUN',
510
        'FUND',
511
        'FURNITURE',
512
        'FUTBOL',
513
        'FYI',
514
        'GA',
515
        'GAL',
516
        'GALLERY',
517
        'GALLO',
518
        'GALLUP',
519
        'GAME',
520
        'GAMES',
521
        'GAP',
522
        'GARDEN',
523
        'GB',
524
        'GBIZ',
525
        'GD',
526
        'GDN',
527
        'GE',
528
        'GEA',
529
        'GENT',
530
        'GENTING',
531
        'GEORGE',
532
        'GF',
533
        'GG',
534
        'GGEE',
535
        'GH',
536
        'GI',
537
        'GIFT',
538
        'GIFTS',
539
        'GIVES',
540
        'GIVING',
541
        'GL',
542
        'GLADE',
543
        'GLASS',
544
        'GLE',
545
        'GLOBAL',
546
        'GLOBO',
547
        'GM',
548
        'GMAIL',
549
        'GMBH',
550
        'GMO',
551
        'GMX',
552
        'GN',
553
        'GODADDY',
554
        'GOLD',
555
        'GOLDPOINT',
556
        'GOLF',
557
        'GOO',
558
        'GOODHANDS',
559
        'GOODYEAR',
560
        'GOOG',
561
        'GOOGLE',
562
        'GOP',
563
        'GOT',
564
        'GOV',
565
        'GP',
566
        'GQ',
567
        'GR',
568
        'GRAINGER',
569
        'GRAPHICS',
570
        'GRATIS',
571
        'GREEN',
572
        'GRIPE',
573
        'GROUP',
574
        'GS',
575
        'GT',
576
        'GU',
577
        'GUARDIAN',
578
        'GUCCI',
579
        'GUGE',
580
        'GUIDE',
581
        'GUITARS',
582
        'GURU',
583
        'GW',
584
        'GY',
585
        'HAIR',
586
        'HAMBURG',
587
        'HANGOUT',
588
        'HAUS',
589
        'HBO',
590
        'HDFC',
591
        'HDFCBANK',
592
        'HEALTH',
593
        'HEALTHCARE',
594
        'HELP',
595
        'HELSINKI',
596
        'HERE',
597
        'HERMES',
598
        'HGTV',
599
        'HIPHOP',
600
        'HISAMITSU',
601
        'HITACHI',
602
        'HIV',
603
        'HK',
604
        'HKT',
605
        'HM',
606
        'HN',
607
        'HOCKEY',
608
        'HOLDINGS',
609
        'HOLIDAY',
610
        'HOMEDEPOT',
611
        'HOMEGOODS',
612
        'HOMES',
613
        'HOMESENSE',
614
        'HONDA',
615
        'HONEYWELL',
616
        'HORSE',
617
        'HOSPITAL',
618
        'HOST',
619
        'HOSTING',
620
        'HOT',
621
        'HOTELES',
622
        'HOTMAIL',
623
        'HOUSE',
624
        'HOW',
625
        'HR',
626
        'HSBC',
627
        'HT',
628
        'HTC',
629
        'HU',
630
        'HUGHES',
631
        'HYATT',
632
        'HYUNDAI',
633
        'IBM',
634
        'ICBC',
635
        'ICE',
636
        'ICU',
637
        'ID',
638
        'IE',
639
        'IEEE',
640
        'IFM',
641
        'IKANO',
642
        'IL',
643
        'IM',
644
        'IMAMAT',
645
        'IMDB',
646
        'IMMO',
647
        'IMMOBILIEN',
648
        'IN',
649
        'INDUSTRIES',
650
        'INFINITI',
651
        'INFO',
652
        'ING',
653
        'INK',
654
        'INSTITUTE',
655
        'INSURANCE',
656
        'INSURE',
657
        'INT',
658
        'INTEL',
659
        'INTERNATIONAL',
660
        'INTUIT',
661
        'INVESTMENTS',
662
        'IO',
663
        'IPIRANGA',
664
        'IQ',
665
        'IR',
666
        'IRISH',
667
        'IS',
668
        'ISELECT',
669
        'ISMAILI',
670
        'IST',
671
        'ISTANBUL',
672
        'IT',
673
        'ITAU',
674
        'ITV',
675
        'IVECO',
676
        'IWC',
677
        'JAGUAR',
678
        'JAVA',
679
        'JCB',
680
        'JCP',
681
        'JE',
682
        'JEEP',
683
        'JETZT',
684
        'JEWELRY',
685
        'JIO',
686
        'JLC',
687
        'JLL',
688
        'JM',
689
        'JMP',
690
        'JNJ',
691
        'JO',
692
        'JOBS',
693
        'JOBURG',
694
        'JOT',
695
        'JOY',
696
        'JP',
697
        'JPMORGAN',
698
        'JPRS',
699
        'JUEGOS',
700
        'JUNIPER',
701
        'KAUFEN',
702
        'KDDI',
703
        'KE',
704
        'KERRYHOTELS',
705
        'KERRYLOGISTICS',
706
        'KERRYPROPERTIES',
707
        'KFH',
708
        'KG',
709
        'KH',
710
        'KI',
711
        'KIA',
712
        'KIM',
713
        'KINDER',
714
        'KINDLE',
715
        'KITCHEN',
716
        'KIWI',
717
        'KM',
718
        'KN',
719
        'KOELN',
720
        'KOMATSU',
721
        'KOSHER',
722
        'KP',
723
        'KPMG',
724
        'KPN',
725
        'KR',
726
        'KRD',
727
        'KRED',
728
        'KUOKGROUP',
729
        'KW',
730
        'KY',
731
        'KYOTO',
732
        'KZ',
733
        'LA',
734
        'LACAIXA',
735
        'LADBROKES',
736
        'LAMBORGHINI',
737
        'LAMER',
738
        'LANCASTER',
739
        'LANCIA',
740
        'LANCOME',
741
        'LAND',
742
        'LANDROVER',
743
        'LANXESS',
744
        'LASALLE',
745
        'LAT',
746
        'LATINO',
747
        'LATROBE',
748
        'LAW',
749
        'LAWYER',
750
        'LB',
751
        'LC',
752
        'LDS',
753
        'LEASE',
754
        'LECLERC',
755
        'LEFRAK',
756
        'LEGAL',
757
        'LEGO',
758
        'LEXUS',
759
        'LGBT',
760
        'LI',
761
        'LIAISON',
762
        'LIDL',
763
        'LIFE',
764
        'LIFEINSURANCE',
765
        'LIFESTYLE',
766
        'LIGHTING',
767
        'LIKE',
768
        'LILLY',
769
        'LIMITED',
770
        'LIMO',
771
        'LINCOLN',
772
        'LINDE',
773
        'LINK',
774
        'LIPSY',
775
        'LIVE',
776
        'LIVING',
777
        'LIXIL',
778
        'LK',
779
        'LOAN',
780
        'LOANS',
781
        'LOCKER',
782
        'LOCUS',
783
        'LOFT',
784
        'LOL',
785
        'LONDON',
786
        'LOTTE',
787
        'LOTTO',
788
        'LOVE',
789
        'LPL',
790
        'LPLFINANCIAL',
791
        'LR',
792
        'LS',
793
        'LT',
794
        'LTD',
795
        'LTDA',
796
        'LU',
797
        'LUNDBECK',
798
        'LUPIN',
799
        'LUXE',
800
        'LUXURY',
801
        'LV',
802
        'LY',
803
        'MA',
804
        'MACYS',
805
        'MADRID',
806
        'MAIF',
807
        'MAISON',
808
        'MAKEUP',
809
        'MAN',
810
        'MANAGEMENT',
811
        'MANGO',
812
        'MARKET',
813
        'MARKETING',
814
        'MARKETS',
815
        'MARRIOTT',
816
        'MARSHALLS',
817
        'MASERATI',
818
        'MATTEL',
819
        'MBA',
820
        'MC',
821
        'MCD',
822
        'MCDONALDS',
823
        'MCKINSEY',
824
        'MD',
825
        'ME',
826
        'MED',
827
        'MEDIA',
828
        'MEET',
829
        'MELBOURNE',
830
        'MEME',
831
        'MEMORIAL',
832
        'MEN',
833
        'MENU',
834
        'MEO',
835
        'METLIFE',
836
        'MG',
837
        'MH',
838
        'MIAMI',
839
        'MICROSOFT',
840
        'MIL',
841
        'MINI',
842
        'MINT',
843
        'MIT',
844
        'MITSUBISHI',
845
        'MK',
846
        'ML',
847
        'MLB',
848
        'MLS',
849
        'MM',
850
        'MMA',
851
        'MN',
852
        'MO',
853
        'MOBI',
854
        'MOBILE',
855
        'MOBILY',
856
        'MODA',
857
        'MOE',
858
        'MOI',
859
        'MOM',
860
        'MONASH',
861
        'MONEY',
862
        'MONSTER',
863
        'MONTBLANC',
864
        'MOPAR',
865
        'MORMON',
866
        'MORTGAGE',
867
        'MOSCOW',
868
        'MOTO',
869
        'MOTORCYCLES',
870
        'MOV',
871
        'MOVIE',
872
        'MOVISTAR',
873
        'MP',
874
        'MQ',
875
        'MR',
876
        'MS',
877
        'MSD',
878
        'MT',
879
        'MTN',
880
        'MTPC',
881
        'MTR',
882
        'MU',
883
        'MUSEUM',
884
        'MUTUAL',
885
        'MV',
886
        'MW',
887
        'MX',
888
        'MY',
889
        'MZ',
890
        'NA',
891
        'NAB',
892
        'NADEX',
893
        'NAGOYA',
894
        'NAME',
895
        'NATIONWIDE',
896
        'NATURA',
897
        'NAVY',
898
        'NBA',
899
        'NC',
900
        'NE',
901
        'NEC',
902
        'NET',
903
        'NETBANK',
904
        'NETFLIX',
905
        'NETWORK',
906
        'NEUSTAR',
907
        'NEW',
908
        'NEWHOLLAND',
909
        'NEWS',
910
        'NEXT',
911
        'NEXTDIRECT',
912
        'NEXUS',
913
        'NF',
914
        'NFL',
915
        'NG',
916
        'NGO',
917
        'NHK',
918
        'NI',
919
        'NICO',
920
        'NIKE',
921
        'NIKON',
922
        'NINJA',
923
        'NISSAN',
924
        'NISSAY',
925
        'NL',
926
        'NO',
927
        'NOKIA',
928
        'NORTHWESTERNMUTUAL',
929
        'NORTON',
930
        'NOW',
931
        'NOWRUZ',
932
        'NOWTV',
933
        'NP',
934
        'NR',
935
        'NRA',
936
        'NRW',
937
        'NTT',
938
        'NU',
939
        'NYC',
940
        'NZ',
941
        'OBI',
942
        'OBSERVER',
943
        'OFF',
944
        'OFFICE',
945
        'OKINAWA',
946
        'OLAYAN',
947
        'OLAYANGROUP',
948
        'OLDNAVY',
949
        'OLLO',
950
        'OM',
951
        'OMEGA',
952
        'ONE',
953
        'ONG',
954
        'ONL',
955
        'ONLINE',
956
        'ONYOURSIDE',
957
        'OOO',
958
        'OPEN',
959
        'ORACLE',
960
        'ORANGE',
961
        'ORG',
962
        'ORGANIC',
963
        'ORIENTEXPRESS',
964
        'ORIGINS',
965
        'OSAKA',
966
        'OTSUKA',
967
        'OTT',
968
        'OVH',
969
        'PA',
970
        'PAGE',
971
        'PAMPEREDCHEF',
972
        'PANASONIC',
973
        'PANERAI',
974
        'PARIS',
975
        'PARS',
976
        'PARTNERS',
977
        'PARTS',
978
        'PARTY',
979
        'PASSAGENS',
980
        'PAY',
981
        'PCCW',
982
        'PE',
983
        'PET',
984
        'PF',
985
        'PFIZER',
986
        'PG',
987
        'PH',
988
        'PHARMACY',
989
        'PHILIPS',
990
        'PHONE',
991
        'PHOTO',
992
        'PHOTOGRAPHY',
993
        'PHOTOS',
994
        'PHYSIO',
995
        'PIAGET',
996
        'PICS',
997
        'PICTET',
998
        'PICTURES',
999
        'PID',
1000
        'PIN',
1001
        'PING',
1002
        'PINK',
1003
        'PIONEER',
1004
        'PIZZA',
1005
        'PK',
1006
        'PL',
1007
        'PLACE',
1008
        'PLAY',
1009
        'PLAYSTATION',
1010
        'PLUMBING',
1011
        'PLUS',
1012
        'PM',
1013
        'PN',
1014
        'PNC',
1015
        'POHL',
1016
        'POKER',
1017
        'POLITIE',
1018
        'PORN',
1019
        'POST',
1020
        'PR',
1021
        'PRAMERICA',
1022
        'PRAXI',
1023
        'PRESS',
1024
        'PRIME',
1025
        'PRO',
1026
        'PROD',
1027
        'PRODUCTIONS',
1028
        'PROF',
1029
        'PROGRESSIVE',
1030
        'PROMO',
1031
        'PROPERTIES',
1032
        'PROPERTY',
1033
        'PROTECTION',
1034
        'PRU',
1035
        'PRUDENTIAL',
1036
        'PS',
1037
        'PT',
1038
        'PUB',
1039
        'PW',
1040
        'PWC',
1041
        'PY',
1042
        'QA',
1043
        'QPON',
1044
        'QUEBEC',
1045
        'QUEST',
1046
        'QVC',
1047
        'RACING',
1048
        'RADIO',
1049
        'RAID',
1050
        'RE',
1051
        'READ',
1052
        'REALESTATE',
1053
        'REALTOR',
1054
        'REALTY',
1055
        'RECIPES',
1056
        'RED',
1057
        'REDSTONE',
1058
        'REDUMBRELLA',
1059
        'REHAB',
1060
        'REISE',
1061
        'REISEN',
1062
        'REIT',
1063
        'RELIANCE',
1064
        'REN',
1065
        'RENT',
1066
        'RENTALS',
1067
        'REPAIR',
1068
        'REPORT',
1069
        'REPUBLICAN',
1070
        'REST',
1071
        'RESTAURANT',
1072
        'REVIEW',
1073
        'REVIEWS',
1074
        'REXROTH',
1075
        'RICH',
1076
        'RICHARDLI',
1077
        'RICOH',
1078
        'RIGHTATHOME',
1079
        'RIL',
1080
        'RIO',
1081
        'RIP',
1082
        'RMIT',
1083
        'RO',
1084
        'ROCHER',
1085
        'ROCKS',
1086
        'RODEO',
1087
        'ROGERS',
1088
        'ROOM',
1089
        'RS',
1090
        'RSVP',
1091
        'RU',
1092
        'RUHR',
1093
        'RUN',
1094
        'RW',
1095
        'RWE',
1096
        'RYUKYU',
1097
        'SA',
1098
        'SAARLAND',
1099
        'SAFE',
1100
        'SAFETY',
1101
        'SAKURA',
1102
        'SALE',
1103
        'SALON',
1104
        'SAMSCLUB',
1105
        'SAMSUNG',
1106
        'SANDVIK',
1107
        'SANDVIKCOROMANT',
1108
        'SANOFI',
1109
        'SAP',
1110
        'SAPO',
1111
        'SARL',
1112
        'SAS',
1113
        'SAVE',
1114
        'SAXO',
1115
        'SB',
1116
        'SBI',
1117
        'SBS',
1118
        'SC',
1119
        'SCA',
1120
        'SCB',
1121
        'SCHAEFFLER',
1122
        'SCHMIDT',
1123
        'SCHOLARSHIPS',
1124
        'SCHOOL',
1125
        'SCHULE',
1126
        'SCHWARZ',
1127
        'SCIENCE',
1128
        'SCJOHNSON',
1129
        'SCOR',
1130
        'SCOT',
1131
        'SD',
1132
        'SE',
1133
        'SEAT',
1134
        'SECURE',
1135
        'SECURITY',
1136
        'SEEK',
1137
        'SELECT',
1138
        'SENER',
1139
        'SERVICES',
1140
        'SES',
1141
        'SEVEN',
1142
        'SEW',
1143
        'SEX',
1144
        'SEXY',
1145
        'SFR',
1146
        'SG',
1147
        'SH',
1148
        'SHANGRILA',
1149
        'SHARP',
1150
        'SHAW',
1151
        'SHELL',
1152
        'SHIA',
1153
        'SHIKSHA',
1154
        'SHOES',
1155
        'SHOP',
1156
        'SHOPPING',
1157
        'SHOUJI',
1158
        'SHOW',
1159
        'SHOWTIME',
1160
        'SHRIRAM',
1161
        'SI',
1162
        'SILK',
1163
        'SINA',
1164
        'SINGLES',
1165
        'SITE',
1166
        'SJ',
1167
        'SK',
1168
        'SKI',
1169
        'SKIN',
1170
        'SKY',
1171
        'SKYPE',
1172
        'SL',
1173
        'SLING',
1174
        'SM',
1175
        'SMART',
1176
        'SMILE',
1177
        'SN',
1178
        'SNCF',
1179
        'SO',
1180
        'SOCCER',
1181
        'SOCIAL',
1182
        'SOFTBANK',
1183
        'SOFTWARE',
1184
        'SOHU',
1185
        'SOLAR',
1186
        'SOLUTIONS',
1187
        'SONG',
1188
        'SONY',
1189
        'SOY',
1190
        'SPACE',
1191
        'SPIEGEL',
1192
        'SPOT',
1193
        'SPREADBETTING',
1194
        'SR',
1195
        'SRL',
1196
        'SRT',
1197
        'ST',
1198
        'STADA',
1199
        'STAPLES',
1200
        'STAR',
1201
        'STARHUB',
1202
        'STATEBANK',
1203
        'STATEFARM',
1204
        'STATOIL',
1205
        'STC',
1206
        'STCGROUP',
1207
        'STOCKHOLM',
1208
        'STORAGE',
1209
        'STORE',
1210
        'STREAM',
1211
        'STUDIO',
1212
        'STUDY',
1213
        'STYLE',
1214
        'SU',
1215
        'SUCKS',
1216
        'SUPPLIES',
1217
        'SUPPLY',
1218
        'SUPPORT',
1219
        'SURF',
1220
        'SURGERY',
1221
        'SUZUKI',
1222
        'SV',
1223
        'SWATCH',
1224
        'SWIFTCOVER',
1225
        'SWISS',
1226
        'SX',
1227
        'SY',
1228
        'SYDNEY',
1229
        'SYMANTEC',
1230
        'SYSTEMS',
1231
        'SZ',
1232
        'TAB',
1233
        'TAIPEI',
1234
        'TALK',
1235
        'TAOBAO',
1236
        'TARGET',
1237
        'TATAMOTORS',
1238
        'TATAR',
1239
        'TATTOO',
1240
        'TAX',
1241
        'TAXI',
1242
        'TC',
1243
        'TCI',
1244
        'TD',
1245
        'TDK',
1246
        'TEAM',
1247
        'TECH',
1248
        'TECHNOLOGY',
1249
        'TEL',
1250
        'TELECITY',
1251
        'TELEFONICA',
1252
        'TEMASEK',
1253
        'TENNIS',
1254
        'TEVA',
1255
        'TF',
1256
        'TG',
1257
        'TH',
1258
        'THD',
1259
        'THEATER',
1260
        'THEATRE',
1261
        'TIAA',
1262
        'TICKETS',
1263
        'TIENDA',
1264
        'TIFFANY',
1265
        'TIPS',
1266
        'TIRES',
1267
        'TIROL',
1268
        'TJ',
1269
        'TJMAXX',
1270
        'TJX',
1271
        'TK',
1272
        'TKMAXX',
1273
        'TL',
1274
        'TM',
1275
        'TMALL',
1276
        'TN',
1277
        'TO',
1278
        'TODAY',
1279
        'TOKYO',
1280
        'TOOLS',
1281
        'TOP',
1282
        'TORAY',
1283
        'TOSHIBA',
1284
        'TOTAL',
1285
        'TOURS',
1286
        'TOWN',
1287
        'TOYOTA',
1288
        'TOYS',
1289
        'TR',
1290
        'TRADE',
1291
        'TRADING',
1292
        'TRAINING',
1293
        'TRAVEL',
1294
        'TRAVELCHANNEL',
1295
        'TRAVELERS',
1296
        'TRAVELERSINSURANCE',
1297
        'TRUST',
1298
        'TRV',
1299
        'TT',
1300
        'TUBE',
1301
        'TUI',
1302
        'TUNES',
1303
        'TUSHU',
1304
        'TV',
1305
        'TVS',
1306
        'TW',
1307
        'TZ',
1308
        'UA',
1309
        'UBANK',
1310
        'UBS',
1311
        'UCONNECT',
1312
        'UG',
1313
        'UK',
1314
        'UNICOM',
1315
        'UNIVERSITY',
1316
        'UNO',
1317
        'UOL',
1318
        'UPS',
1319
        'US',
1320
        'UY',
1321
        'UZ',
1322
        'VA',
1323
        'VACATIONS',
1324
        'VANA',
1325
        'VANGUARD',
1326
        'VC',
1327
        'VE',
1328
        'VEGAS',
1329
        'VENTURES',
1330
        'VERISIGN',
1331
        'VERSICHERUNG',
1332
        'VET',
1333
        'VG',
1334
        'VI',
1335
        'VIAJES',
1336
        'VIDEO',
1337
        'VIG',
1338
        'VIKING',
1339
        'VILLAS',
1340
        'VIN',
1341
        'VIP',
1342
        'VIRGIN',
1343
        'VISA',
1344
        'VISION',
1345
        'VISTA',
1346
        'VISTAPRINT',
1347
        'VIVA',
1348
        'VIVO',
1349
        'VLAANDEREN',
1350
        'VN',
1351
        'VODKA',
1352
        'VOLKSWAGEN',
1353
        'VOLVO',
1354
        'VOTE',
1355
        'VOTING',
1356
        'VOTO',
1357
        'VOYAGE',
1358
        'VU',
1359
        'VUELOS',
1360
        'WALES',
1361
        'WALMART',
1362
        'WALTER',
1363
        'WANG',
1364
        'WANGGOU',
1365
        'WARMAN',
1366
        'WATCH',
1367
        'WATCHES',
1368
        'WEATHER',
1369
        'WEATHERCHANNEL',
1370
        'WEBCAM',
1371
        'WEBER',
1372
        'WEBSITE',
1373
        'WED',
1374
        'WEDDING',
1375
        'WEIBO',
1376
        'WEIR',
1377
        'WF',
1378
        'WHOSWHO',
1379
        'WIEN',
1380
        'WIKI',
1381
        'WILLIAMHILL',
1382
        'WIN',
1383
        'WINDOWS',
1384
        'WINE',
1385
        'WINNERS',
1386
        'WME',
1387
        'WOLTERSKLUWER',
1388
        'WOODSIDE',
1389
        'WORK',
1390
        'WORKS',
1391
        'WORLD',
1392
        'WOW',
1393
        'WS',
1394
        'WTC',
1395
        'WTF',
1396
        'XBOX',
1397
        'XEROX',
1398
        'XFINITY',
1399
        'XIHUAN',
1400
        'XIN',
1401
        'XN--11B4C3D',
1402
        'XN--1CK2E1B',
1403
        'XN--1QQW23A',
1404
        'XN--30RR7Y',
1405
        'XN--3BST00M',
1406
        'XN--3DS443G',
1407
        'XN--3E0B707E',
1408
        'XN--3OQ18VL8PN36A',
1409
        'XN--3PXU8K',
1410
        'XN--42C2D9A',
1411
        'XN--45BRJ9C',
1412
        'XN--45Q11C',
1413
        'XN--4GBRIM',
1414
        'XN--54B7FTA0CC',
1415
        'XN--55QW42G',
1416
        'XN--55QX5D',
1417
        'XN--5SU34J936BGSG',
1418
        'XN--5TZM5G',
1419
        'XN--6FRZ82G',
1420
        'XN--6QQ986B3XL',
1421
        'XN--80ADXHKS',
1422
        'XN--80AO21A',
1423
        'XN--80AQECDR1A',
1424
        'XN--80ASEHDB',
1425
        'XN--80ASWG',
1426
        'XN--8Y0A063A',
1427
        'XN--90A3AC',
1428
        'XN--90AE',
1429
        'XN--90AIS',
1430
        'XN--9DBQ2A',
1431
        'XN--9ET52U',
1432
        'XN--9KRT00A',
1433
        'XN--B4W605FERD',
1434
        'XN--BCK1B9A5DRE4C',
1435
        'XN--C1AVG',
1436
        'XN--C2BR7G',
1437
        'XN--CCK2B3B',
1438
        'XN--CG4BKI',
1439
        'XN--CLCHC0EA0B2G2A9GCD',
1440
        'XN--CZR694B',
1441
        'XN--CZRS0T',
1442
        'XN--CZRU2D',
1443
        'XN--D1ACJ3B',
1444
        'XN--D1ALF',
1445
        'XN--E1A4C',
1446
        'XN--ECKVDTC9D',
1447
        'XN--EFVY88H',
1448
        'XN--ESTV75G',
1449
        'XN--FCT429K',
1450
        'XN--FHBEI',
1451
        'XN--FIQ228C5HS',
1452
        'XN--FIQ64B',
1453
        'XN--FIQS8S',
1454
        'XN--FIQZ9S',
1455
        'XN--FJQ720A',
1456
        'XN--FLW351E',
1457
        'XN--FPCRJ9C3D',
1458
        'XN--FZC2C9E2C',
1459
        'XN--FZYS8D69UVGM',
1460
        'XN--G2XX48C',
1461
        'XN--GCKR3F0F',
1462
        'XN--GECRJ9C',
1463
        'XN--GK3AT1E',
1464
        'XN--H2BRJ9C',
1465
        'XN--HXT814E',
1466
        'XN--I1B6B1A6A2E',
1467
        'XN--IMR513N',
1468
        'XN--IO0A7I',
1469
        'XN--J1AEF',
1470
        'XN--J1AMH',
1471
        'XN--J6W193G',
1472
        'XN--JLQ61U9W7B',
1473
        'XN--JVR189M',
1474
        'XN--KCRX77D1X4A',
1475
        'XN--KPRW13D',
1476
        'XN--KPRY57D',
1477
        'XN--KPU716F',
1478
        'XN--KPUT3I',
1479
        'XN--L1ACC',
1480
        'XN--LGBBAT1AD8J',
1481
        'XN--MGB9AWBF',
1482
        'XN--MGBA3A3EJT',
1483
        'XN--MGBA3A4F16A',
1484
        'XN--MGBA7C0BBN0A',
1485
        'XN--MGBAAM7A8H',
1486
        'XN--MGBAB2BD',
1487
        'XN--MGBAYH7GPA',
1488
        'XN--MGBB9FBPOB',
1489
        'XN--MGBBH1A71E',
1490
        'XN--MGBC0A9AZCG',
1491
        'XN--MGBCA7DZDO',
1492
        'XN--MGBERP4A5D4AR',
1493
        'XN--MGBI4ECEXP',
1494
        'XN--MGBPL2FH',
1495
        'XN--MGBT3DHD',
1496
        'XN--MGBTX2B',
1497
        'XN--MGBX4CD0AB',
1498
        'XN--MIX891F',
1499
        'XN--MK1BU44C',
1500
        'XN--MXTQ1M',
1501
        'XN--NGBC5AZD',
1502
        'XN--NGBE9E0A',
1503
        'XN--NODE',
1504
        'XN--NQV7F',
1505
        'XN--NQV7FS00EMA',
1506
        'XN--NYQY26A',
1507
        'XN--O3CW4H',
1508
        'XN--OGBPF8FL',
1509
        'XN--P1ACF',
1510
        'XN--P1AI',
1511
        'XN--PBT977C',
1512
        'XN--PGBS0DH',
1513
        'XN--PSSY2U',
1514
        'XN--Q9JYB4C',
1515
        'XN--QCKA1PMC',
1516
        'XN--QXAM',
1517
        'XN--RHQV96G',
1518
        'XN--ROVU88B',
1519
        'XN--S9BRJ9C',
1520
        'XN--SES554G',
1521
        'XN--T60B56A',
1522
        'XN--TCKWE',
1523
        'XN--TIQ49XQYJ',
1524
        'XN--UNUP4Y',
1525
        'XN--VERMGENSBERATER-CTB',
1526
        'XN--VERMGENSBERATUNG-PWB',
1527
        'XN--VHQUV',
1528
        'XN--VUQ861B',
1529
        'XN--W4R85EL8FHU5DNRA',
1530
        'XN--W4RS40L',
1531
        'XN--WGBH1C',
1532
        'XN--WGBL6A',
1533
        'XN--XHQ521B',
1534
        'XN--XKC2AL3HYE2A',
1535
        'XN--XKC2DL3A5EE0H',
1536
        'XN--Y9A3AQ',
1537
        'XN--YFRO4I67O',
1538
        'XN--YGBI2AMMX',
1539
        'XN--ZFR164B',
1540
        'XPERIA',
1541
        'XXX',
1542
        'XYZ',
1543
        'YACHTS',
1544
        'YAHOO',
1545
        'YAMAXUN',
1546
        'YANDEX',
1547
        'YE',
1548
        'YODOBASHI',
1549
        'YOGA',
1550
        'YOKOHAMA',
1551
        'YOU',
1552
        'YOUTUBE',
1553
        'YT',
1554
        'YUN',
1555
        'ZA',
1556
        'ZAPPOS',
1557
        'ZARA',
1558
        'ZERO',
1559
        'ZIP',
1560
        'ZIPPO',
1561
        'ZM',
1562
        'ZONE',
1563
        'ZUERICH',
1564
        'ZW',
1565
    ];
1566
1567
    /**
1568
     * {@inheritdoc}
1569
     */
1570 14
    public function validate($input): bool
1571
    {
1572 14
        if (!is_scalar($input)) {
1573 2
            return false;
1574
        }
1575
1576 12
        return in_array(mb_strtoupper((string) $input), self::TLD_LIST);
1577
    }
1578
}
1579