jdk/src/share/classes/sun/net/RegisteredDomain.java
author juh
Wed, 10 Jul 2013 18:01:22 -0700 (2013-07-11)
changeset 18800 e7fa560afcfb
parent 11125 99b115114fa3
permissions -rw-r--r--
8020318: Fix doclint issues in java.net Reviewed-by: darcy, khazra
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9775
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
     1
/*
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
     2
 * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
     4
 *
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
     7
 * published by the Free Software Foundation.  Oracle designates this
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
     8
 * particular file as subject to the "Classpath" exception as provided
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
     9
 * by Oracle in the LICENSE file that accompanied this code.
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    10
 *
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    11
 * This code is distributed in the hope that it will be useful, but WITHOUT
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    13
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    14
 * version 2 for more details (a copy is included in the LICENSE file that
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    15
 * accompanied this code).
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    16
 *
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    17
 * You should have received a copy of the GNU General Public License version
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    18
 * 2 along with this work; if not, write to the Free Software Foundation,
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    19
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    20
 *
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    21
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    22
 * or visit www.oracle.com if you need additional information or have any
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    23
 * questions.
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    24
 */
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    25
package sun.net;
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    26
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    27
import java.util.Arrays;
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    28
import java.util.HashMap;
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    29
import java.util.HashSet;
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    30
import java.util.List;
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    31
import java.util.Map;
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    32
import java.util.Set;
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    33
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    34
/*
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    35
 * The naming tables listed below were gathered from publicly available data such as
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    36
 * the subdomain registration websites listed for each top-level domain by the Internet
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    37
 * Assigned Numbers Authority and the website of the Internet Corporation for Assigned Names
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    38
 * and Numbers as well as Wikipedia.
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    39
 */
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    40
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    41
public class RegisteredDomain {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    42
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    43
// XX.AA
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    44
private static Set<String> top1Set = new HashSet<String>(Arrays.asList("asia", "biz", "cat", "coop",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    45
        "edu", "info", "gov", "jobs", "travel", "am", "aq", "ax", "cc", "cf", "cg", "ch", "cv", "cz",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    46
        "de", "dj", "dk", "fm", "fo", "ga", "gd", "gf", "gl", "gm", "gq", "gs", "gw", "hm",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    47
        "li", "lu", "md", "mh", "mil", "mobi", "mq", "ms", "ms", "ne", "nl", "nu", "si",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    48
        "sm", "sr", "su", "tc", "td", "tf", "tg", "tk", "tm", "tv", "va", "vg",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    49
        /* ae */ "xn--mgbaam7a8h",      /* cn s */      "xn--fiqs8s",        /* cn t */ "xn--fiqz9s",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    50
        /* eg */ "xn--wgbh1c",          /* hk */        "xn--j6w193g",       /* jo */   "xn--mgbayh7gpa",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    51
        /* lk */ "xn--fzc2c9e2c",       /* ps */        "xn--ygbi2ammx",     /* ru */   "xn--p1ai",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    52
        /* qa */ "xn--wgbl6a",          /* sa */        "xn--mgberp4a5d4ar", /* sg */   "xn--yfro4i67o",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    53
        /* th */ "xn--o3cw4h",          /* tn */        "xn--pgbs0dh",       /* tw s */ "xn--kpry57d",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    54
        /* tw */ "xn--kprw13d",         /* sg tamil */  "xn--clchc0ea0b2g2a9gcd"));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    55
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    56
// common pattern: XX.AA or XX.GOV.AA
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    57
private static Set<String> top2Set = new HashSet<String>(Arrays.asList("as", "bf", "cd", "cx",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    58
        "ie", "lt", "mr", "tl"));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    59
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    60
// common pattern: XX.AA or XX.COM.AA or XX.EDU.AA or XX.NET.AA or XX.ORG.AA or XX.GOV.AA
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    61
private static Set<String> top4Set = new HashSet<String>(Arrays.asList("af", "bm", "bs", "bt",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    62
        "bz", "dm", "ky", "lb", "lr", "mo", "sc", "sl", "ws"));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    63
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    64
// AA or less than 3 other XX.BB.AA possible matches
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    65
private static Set<String> top3Set = new HashSet<String>(Arrays.asList("ad", "aw", "be", "bw",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    66
        "cl", "fi", "int", "io", "mc"));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    67
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    68
// AA.UK exceptions
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    69
private static Set<String> ukSet = new HashSet<String>(Arrays.asList( "bl", "british-library",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    70
        "jet", "nhs", "nls", "parliament", "mod", "police"));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    71
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    72
// AA.AR exceptions
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    73
private static Set<String> arSet = new HashSet<String>(Arrays.asList( "argentina", "educ",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    74
        "gobiernoelectronico", "nic", "promocion", "retina", "uba"));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    75
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    76
// AA.OM exceptions
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    77
private static Set<String> omSet = new HashSet<String>(Arrays.asList("mediaphone", "nawrastelecom",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    78
        "nawras", "omanmobile", "omanpost", "omantel", "rakpetroleum", "siemens", "songfest",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    79
        "statecouncil", "shura", "peie", "omran", "omnic", "omanet", "oman", "muriya", "kom"));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    80
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    81
// any XX.BB.AA
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    82
private static Set<String> top5Set = new HashSet<String>(Arrays.asList("au", "arpa", "bd", "bn", "ck",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    83
         "cy", "er", "et", "fj", "fk", "gt", "gu", "il", "jm", "ke", "kh", "kw",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    84
         "mm", "mt", "mz", "ni", "np", "nz", "pg", "sb", "sv", "tz", "uy", "ve", "ye",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    85
         "za", "zm", "zw"));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    86
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    87
// XX.CC.BB.JP
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    88
private static Set<String> jpSet = new HashSet<String>(Arrays.asList("aichi", "akita", "aomori",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    89
        "chiba", "ehime", "fukui", "fukuoka", "fukushima", "gifu", "gunma", "hiroshima", "hokkaido",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    90
        "hyogo", "ibaraki", "ishikawa", "iwate", "kagawa", "kagoshima", "kanagawa", "kawasaki",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    91
        "kitakyushu", "kobe", "kochi", "kumamoto", "kyoto", "mie", "miyagi", "miyazaki", "nagano",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    92
        "nagasaki", "nagoya", "nara", "niigata", "oita", "okayama", "okinawa", "osaka", "saga",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    93
        "saitama", "sapporo", "sendai", "shiga", "shimane", "shizuoka", "tochigi", "tokushima",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    94
        "tokyo", "tottori", "toyama", "wakayama", "yamagata", "yamaguchi", "yamanashi", "yokohama"));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    95
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    96
// CC.BB.JP exceptions
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    97
private static Set<String> jp2Set = new HashSet<String>(Arrays.asList("metro.tokyo.jp",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    98
        "pref.aichi.jp", "pref.akita.jp", "pref.aomori.jp", "pref.chiba.jp", "pref.ehime.jp",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
    99
        "pref.fukui.jp", "pref.fukuoka.jp", "pref.fukushima.jp", "pref.gifu.jp", "pref.gunma.jp",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   100
        "pref.hiroshima.jp", "pref.hokkaido.jp", "pref.hyogo.jp", "pref.ibaraki.jp", "pref.ishikawa.jp",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   101
        "pref.iwate.jp", "pref.kagawa.jp", "pref.kagoshima.jp", "pref.kanagawa.jp", "pref.kochi.jp",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   102
        "pref.kumamoto.jp", "pref.kyoto.jp", "pref.mie.jp", "pref.miyagi.jp", "pref.miyazaki.jp",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   103
        "pref.nagano.jp", "pref.nagasaki.jp", "pref.nara.jp", "pref.niigata.jp", "pref.oita.jp",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   104
        "pref.okayama.jp", "pref.okinawa.jp", "pref.osaka.jp", "pref.saga.jp", "pref.saitama.jp",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   105
        "pref.shiga.jp", "pref.shimane.jp", "pref.shizuoka.jp", "pref.tochigi.jp", "pref.tokushima.jp",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   106
        "pref.tottori.jp", "pref.toyama.jp", "pref.wakayama.jp", "pref.yamagata.jp", "pref.yamaguchi.jp",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   107
        "pref.yamanashi.jp", "city.chiba.jp", "city.fukuoka.jp", "city.hamamatsu.jp", "city.hiroshima.jp", "city.kawasaki.jp",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   108
        "city.kitakyushu.jp", "city.kobe.jp", "city.kyoto.jp", "city.nagoya.jp", "city.niigata.jp",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   109
        "city.okayama.jp", "city.osaka.jp", "city.sagamihara.jp", "city.saitama.jp", "city.sapporo.jp", "city.sendai.jp",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   110
        "city.shizuoka.jp", "city.yokohama.jp"));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   111
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   112
private static Set<String>  usStateSet = new HashSet<String>(Arrays.asList("ak",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   113
                "al", "ar", "as", "az", "ca", "co", "ct", "dc", "de", "fl", "ga", "gu", "hi", "ia",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   114
                "id", "il", "in", "ks", "ky", "la", "ma", "md", "me", "mi", "mn", "mo", "ms", "mt",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   115
                "nc", "nd", "ne", "nh", "nj", "nm", "nv", "ny", "oh", "ok", "or", "pa", "pr", "ri",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   116
                "sc", "sd", "tn", "tx", "ut", "vi", "vt", "va", "wa", "wi", "wv", "wy"));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   117
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   118
private static Set<String>  usSubStateSet = new HashSet<String>(Arrays.asList("state",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   119
                "lib", "k12", "cc", "tec", "gen", "cog", "mus", "dst"));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   120
11125
99b115114fa3 7117357: Warnings in sun.instrument, tools and other sun.* classes
alanb
parents: 9775
diff changeset
   121
private static Map<String,Set<String>> topMap = new HashMap<>();
99b115114fa3 7117357: Warnings in sun.instrument, tools and other sun.* classes
alanb
parents: 9775
diff changeset
   122
private static Map<String,Set<String>> top3Map = new HashMap<>();
9775
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   123
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   124
static {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   125
    /*
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   126
     * XX.AA or XX.BB.AA
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   127
     */
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   128
    topMap.put("ac", new HashSet<String>(Arrays.asList("com", "co", "edu", "gov", "net", "mil", "org")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   129
    topMap.put("ae", new HashSet<String>(Arrays.asList("co", "net", "org", "sch", "ac", "gov", "mil")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   130
    topMap.put("aero", new HashSet<String>(Arrays.asList("accident-investigation",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   131
                "accident-prevention", "aerobatic", "aeroclub", "aerodrome", "agents", "aircraft",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   132
                "airline", "airport", "air-surveillance", "airtraffic", "air-traffic-control",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   133
                "ambulance", "amusement", "association", "author", "ballooning", "broker", "caa",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   134
                "cargo", "catering", "certification", "championship", "charter", "civilaviation",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   135
                "club", "conference", "consultant", "consulting", "control", "council", "crew",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   136
                "design", "dgca", "educator", "emergency", "engine", "engineer", "entertainment",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   137
                "equipment", "exchange", "express", "federation", "flight", "freight", "fuel",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   138
                "gliding", "government", "groundhandling", "group", "hanggliding", "homebuilt",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   139
                "insurance", "journal", "journalist", "leasing", "logistics", "magazine",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   140
                "maintenance", "marketplace", "media", "microlight", "modelling", "navigation",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   141
                "parachuting", "paragliding", "passenger-association", "pilot", "press", "production",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   142
                "recreation", "repbody", "res", "research", "rotorcraft", "safety", "scientist",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   143
                "services", "show", "skydiving", "software", "student", "taxi", "trader", "trading",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   144
                "trainer", "union", "workinggroup", "works" )));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   145
    topMap.put( "ag", new HashSet<String>(Arrays.asList("com", "org", "net", "co", "nom")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   146
    topMap.put( "ai", new HashSet<String>(Arrays.asList("off", "com", "net", "org")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   147
    topMap.put( "al", new HashSet<String>(Arrays.asList("com", "edu", "gov", "mil", "net", "org")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   148
    topMap.put( "an", new HashSet<String>(Arrays.asList("com")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   149
    topMap.put( "ao", new HashSet<String>(Arrays.asList("ed", "gv", "og", "co", "pb", "it")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   150
    topMap.put( "at", new HashSet<String>(Arrays.asList("ac", "co", "gv", "or", "biz", "info", "priv")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   151
    topMap.put( "az", new HashSet<String>(Arrays.asList("com", "net", "int", "gov", "org", "edu", "info",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   152
                "pp", "mil", "name", "biz")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   153
    topMap.put( "ba", new HashSet<String>(Arrays.asList("org", "net", "edu", "gov", "mil", "unbi",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   154
                "unmo", "unsa", "untz", "unze", "co", "com", "rs")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   155
    topMap.put( "bb", new HashSet<String>(Arrays.asList("biz", "com", "edu", "gov", "info", "net", "org",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   156
                "store")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   157
    topMap.put( "bg", new HashSet<String>(Arrays.asList("a", "b", "c", "d", "e", "f", "g", "h", "i", "j",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   158
                "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   159
                "2", "3", "4", "5", "6", "7", "8", "9")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   160
    topMap.put( "bh", new HashSet<String>(Arrays.asList("com", "info", "cc", "edu", "biz", "net",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   161
                "org", "gov")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   162
    topMap.put( "bi", new HashSet<String>(Arrays.asList("co", "com", "edu", "gov", "info", "or", "org")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   163
    topMap.put( "bj", new HashSet<String>(Arrays.asList("asso", "barreau", "com", "edu", "gouv", "gov", "mil")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   164
    topMap.put( "bo", new HashSet<String>(Arrays.asList("com", "edu", "gov", "gob", "int", "org", "net",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   165
                 "mil", "tv")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   166
    topMap.put( "br", new HashSet<String>(Arrays.asList("adm", "adv", "agr", "am", "arq", "art", "ato",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   167
                "b", "bio", "blog", "bmd", "cim", "cng", "cnt", "com", "coop", "ecn", "edu", "emp", "eng",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   168
                "esp", "etc", "eti", "far", "flog", "fm", "fnd", "fot", "fst", "g12", "ggf", "gov",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   169
                "imb", "ind", "inf", "jor", "jus", "lel", "mat", "med", "mil", "mus", "net", "nom",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   170
                "not", "ntr", "odo", "org", "ppg", "pro", "psc", "psi", "qsl", "radio", "rec", "slg",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   171
                "srv", "taxi", "teo", "tmp", "trd", "tur", "tv", "vet", "vlog", "wiki", "zlg")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   172
    topMap.put( "bw", new HashSet<String>(Arrays.asList("co", "gov", "org")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   173
    topMap.put( "by", new HashSet<String>(Arrays.asList("gov", "mil", "com", "of")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   174
    topMap.put( "ca", new HashSet<String>(Arrays.asList("ab", "bc", "mb", "nb", "nf",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   175
                "nl", "ns", "nt", "nu", "on", "pe", "qc", "sk", "yk", "gc")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   176
    topMap.put( "ci", new HashSet<String>(Arrays.asList("org", "or", "com", "co", "edu",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   177
                "ed", "ac", "net", "go", "asso", "xn--aroport-bya", "int",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   178
                "presse", "md", "gouv")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   179
    topMap.put( "com", new HashSet<String>(Arrays.asList("ad", "ar", "br", "cn", "de", "eu", "gb",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   180
                "gr", "hu", "jpn", "kr", "no", "qc", "ru", "sa", "se", "uk", "us", "uy", "za")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   181
    topMap.put( "cm", new HashSet<String>(Arrays.asList("co", "com", "gov", "net")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   182
    topMap.put( "cn", new HashSet<String>(Arrays.asList("ac", "com", "edu", "gov", "net",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   183
                "org", "mil", "xn--55qx5d", "xn--io0a7i",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   184
                "ah", "bj", "cq", "fj", "gd", "gs", "gz", "gx",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   185
                "ha", "hb", "he", "hi", "hl", "hn", "jl", "js", "jx", "ln", "nm", "nx", "qh",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   186
                "sc", "sd", "sh", "sn", "sx", "tj", "xj", "xz", "yn", "zj", "hk", "mo", "tw")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   187
    topMap.put( "co", new HashSet<String>(Arrays.asList("arts", "com", "edu", "firm", "gov", "info",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   188
                "int", "mil", "net", "nom", "org", "rec", "web")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   189
    topMap.put( "cr", new HashSet<String>(Arrays.asList("ac", "co", "ed", "fi", "go", "or", "sa")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   190
    topMap.put( "cu", new HashSet<String>(Arrays.asList("com", "edu", "org", "net", "gov", "inf")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   191
    topMap.put( "do", new HashSet<String>(Arrays.asList("com", "edu", "org", "net", "gov", "gob",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   192
                "web", "art", "sld", "mil")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   193
    topMap.put( "dz", new HashSet<String>(Arrays.asList("com", "org", "net", "gov", "edu", "asso",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   194
                 "pol", "art")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   195
    topMap.put( "ec", new HashSet<String>(Arrays.asList("com", "info", "net", "fin", "k12", "med",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   196
                "pro", "org", "edu", "gov", "gob", "mil")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   197
    topMap.put( "ee", new HashSet<String>(Arrays.asList("edu", "gov", "riik", "lib", "med", "com",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   198
                "pri", "aip", "org", "fie")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   199
    topMap.put( "eg", new HashSet<String>(Arrays.asList("com", "edu", "eun", "gov", "mil", "name",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   200
                "net", "org", "sci")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   201
    topMap.put( "es", new HashSet<String>(Arrays.asList("com", "nom", "org", "gob", "edu")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   202
    topMap.put( "eu", new HashSet<String>(Arrays.asList("europa")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   203
    topMap.put( "fr", new HashSet<String>(Arrays.asList("com", "asso", "nom", "prd", "presse",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   204
                "tm", "aeroport", "assedic", "avocat", "avoues", "cci", "chambagri",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   205
                "chirurgiens-dentistes", "experts-comptables", "geometre-expert", "gouv", "greta",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   206
                "huissier-justice", "medecin", "notaires", "pharmacien", "port", "veterinaire")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   207
    topMap.put( "ge", new HashSet<String>(Arrays.asList("com", "edu", "gov", "org", "mil", "net", "pvt")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   208
    topMap.put( "gg", new HashSet<String>(Arrays.asList("co", "org", "net", "sch", "gov")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   209
    topMap.put( "gh", new HashSet<String>(Arrays.asList("com", "edu", "gov", "org", "mil")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   210
    topMap.put( "gi", new HashSet<String>(Arrays.asList("com", "ltd", "gov", "mod", "edu", "org")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   211
    topMap.put( "gn", new HashSet<String>(Arrays.asList("ac", "com", "edu", "gov", "org", "net")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   212
    topMap.put( "gp", new HashSet<String>(Arrays.asList("com", "net", "mobi", "edu", "org", "asso")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   213
    topMap.put( "gr", new HashSet<String>(Arrays.asList("com", "co", "net", "edu", "org", "gov",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   214
                "mil", "mod", "sch")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   215
    topMap.put( "gy", new HashSet<String>(Arrays.asList("co", "com", "net", "org", "edu", "gov")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   216
    topMap.put( "hk", new HashSet<String>(Arrays.asList("com", "edu", "gov", "idv", "net", "org",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   217
                /* com */ "xn--55qx5d", /* edu */ "xn--wcvs22d", /* gov */"xn--mxtq1m",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   218
                /* idv */ "xn--gmqw5a", /* net */ "xn--od0alg", /*org*/ "xn--uc0atv")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   219
    topMap.put( /* hk */  "xn--j6w193g", new HashSet<String>(Arrays.asList(
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   220
                /* com */ "xn--55qx5d", /* edu */ "xn--wcvs22d", /* gov */"xn--mxtq1m",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   221
                /* idv */ "xn--gmqw5a", /* net */ "xn--od0alg", /*org*/ "xn--uc0atv")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   222
    topMap.put( "hn", new HashSet<String>(Arrays.asList("com", "edu", "org", "net", "mil", "gob")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   223
    topMap.put( "hr", new HashSet<String>(Arrays.asList("iz.hr", "from.hr", "name.hr", "com.hr")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   224
    topMap.put( "ht", new HashSet<String>(Arrays.asList("com", "shop", "firm", "info", "adult",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   225
                "net", "pro", "org", "med", "art", "coop", "pol", "asso", "edu", "rel", "gouv", "perso")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   226
    topMap.put( "hu", new HashSet<String>(Arrays.asList("co", "info", "org", "priv", "sport", "tm",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   227
                "2000", "agrar", "bolt", "casino", "city", "erotica", "erotika", "film", "forum",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   228
                "games", "hotel", "ingatlan", "jogasz", "konyvelo", "lakas", "media", "news", "reklam",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   229
                "sex", "shop", "suli", "szex", "tozsde", "utazas", "video")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   230
    topMap.put( "id", new HashSet<String>(Arrays.asList("ac", "co", "go", "mil", "net", "or", "sch",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   231
                "web")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   232
    topMap.put( "im", new HashSet<String>(Arrays.asList("co.im", "com", "net.im", "gov.im", "org.im",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   233
                "ac.im")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   234
    topMap.put( "in", new HashSet<String>(Arrays.asList("co", "firm", "ernet", "net", "org", "gen", "ind",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   235
                "nic", "ac", "edu", "res", "gov", "mil")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   236
    topMap.put( "iq", new HashSet<String>(Arrays.asList("gov", "edu", "mil", "com", "org", "net" )));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   237
    topMap.put( "ir", new HashSet<String>(Arrays.asList("ac", "co", "gov", "id", "net", "org", "sch"
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   238
                )));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   239
    topMap.put( "is", new HashSet<String>(Arrays.asList("net", "com", "edu", "gov", "org", "int")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   240
    topMap.put( "it", new HashSet<String>(Arrays.asList("gov", "edu", "agrigento", "ag", "alessandria",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   241
                "al", "ancona", "an", "aosta", "aoste", "ao", "arezzo", "ar", "ascoli-piceno",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   242
                "ascolipiceno", "ap", "asti", "at", "avellino", "av", "bari", "ba",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   243
                "andria-barletta-trani", "andriabarlettatrani", "trani-barletta-andria",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   244
                "tranibarlettaandria", "barletta-trani-andria", "barlettatraniandria",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   245
                "andria-trani-barletta", "andriatranibarletta", "trani-andria-barletta",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   246
                "traniandriabarletta", "bt", "belluno", "bl", "benevento", "bn", "bergamo", "bg",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   247
                "biella", "bi", "bologna", "bo", "bolzano", "bozen", "balsan", "alto-adige",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   248
                "altoadige", "suedtirol", "bz", "brescia", "bs", "brindisi", "br", "cagliari",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   249
                "ca", "caltanissetta", "cl", "campobasso", "cb", "carboniaiglesias", "carbonia-iglesias",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   250
                "iglesias-carbonia", "iglesiascarbonia", "ci", "caserta", "ce", "catania", "ct",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   251
                "catanzaro", "cz", "chieti", "ch", "como", "co", "cosenza", "cs", "cremona", "cr",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   252
                "crotone", "kr", "cuneo", "cn", "dell-ogliastra", "dellogliastra", "ogliastra", "og",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   253
                "enna", "en", "ferrara", "fe", "fermo", "fm", "firenze", "florence", "fi", "foggia",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   254
                "fg", "forli-cesena", "forlicesena", "cesena-forli", "cesenaforli", "fc", "frosinone",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   255
                "fr", "genova", "genoa", "ge", "gorizia", "go", "grosseto", "gr", "imperia", "im",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   256
                "isernia", "is", "laquila", "aquila", "aq", "la-spezia", "laspezia", "sp", "latina",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   257
                "lt", "lecce", "le", "lecco", "lc", "livorno", "li", "lodi", "lo", "lucca", "lu",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   258
                "macerata", "mc", "mantova", "mn", "massa-carrara", "massacarrara", "carrara-massa",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   259
                "carraramassa", "ms", "matera", "mt", "medio-campidano", "mediocampidano",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   260
                "campidano-medio", "campidanomedio", "vs", "messina", "me", "milano", "milan",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   261
                "mi", "modena", "mo", "monza", "monza-brianza", "monzabrianza", "monzaebrianza",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   262
                "monzaedellabrianza", "monza-e-della-brianza", "mb", "napoli", "naples", "na",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   263
                "novara", "no", "nuoro", "nu", "oristano", "or", "padova", "padua", "pd", "palermo",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   264
                "pa", "parma", "pr", "pavia", "pv", "perugia", "pg", "pescara", "pe", "pesaro-urbino",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   265
                "pesarourbino", "urbino-pesaro", "urbinopesaro", "pu", "piacenza", "pc", "pisa",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   266
                "pi", "pistoia", "pt", "pordenone", "pn", "potenza", "pz", "prato", "po", "ragusa",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   267
                "rg", "ravenna", "ra", "reggio-calabria", "reggiocalabria", "rc", "reggio-emilia",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   268
                "reggioemilia", "re", "rieti", "ri", "rimini", "rn", "roma", "rome", "rm", "rovigo",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   269
                "ro", "salerno", "sa", "sassari", "ss", "savona", "sv", "siena", "si", "siracusa",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   270
                "sr", "sondrio", "so", "taranto", "ta", "tempio-olbia", "tempioolbia", "olbia-tempio",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   271
                "olbiatempio", "ot", "teramo", "te", "terni", "tr", "torino", "turin", "to",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   272
                "trapani", "tp", "trento", "trentino", "tn", "treviso", "tv", "trieste", "ts",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   273
                "udine", "ud", "varese", "va", "venezia", "venice", "ve", "verbania", "vb",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   274
                "vercelli", "vc", "verona", "vr", "vibo-valentia", "vibovalentia", "vv", "vicenza",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   275
                "vi", "viterbo", "vt")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   276
    topMap.put( "je", new HashSet<String>(Arrays.asList("co", "org", "net", "sch", "gov")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   277
    topMap.put( "jo", new HashSet<String>(Arrays.asList("com", "org", "net", "edu", "sch",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   278
                "gov", "mil", "name")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   279
    topMap.put( "jp", new HashSet<String>(Arrays.asList("ac", "ad", "co", "ed", "go", "gr", "lg",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   280
                "ne", "or")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   281
    topMap.put( "kg", new HashSet<String>(Arrays.asList("org", "net", "com", "edu", "gov", "mil")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   282
    topMap.put( "ki", new HashSet<String>(Arrays.asList("edu", "biz", "net", "org", "gov",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   283
                 "info", "com")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   284
    topMap.put( "km", new HashSet<String>(Arrays.asList("org", "nom", "gov", "prd", "tm", "edu",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   285
                "mil", "ass", "com", "coop", "asso", "presse", "medecin", "notaires", "pharmaciens",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   286
                "veterinaire", "gouv")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   287
    topMap.put( "kn", new HashSet<String>(Arrays.asList("net", "org", "edu", "gov")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   288
    topMap.put( "kp", new HashSet<String>(Arrays.asList("com", "edu", "gov", "org", "rep", "tra")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   289
    topMap.put( "kr", new HashSet<String>(Arrays.asList("ac", "co", "es", "go", "hs", "kg", "mil",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   290
                "ms", "ne", "or", "pe", "re", "sc", "busan", "chungbuk", "chungnam", "daegu",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   291
                "daejeon", "gangwon", "gwangju", "gyeongbuk", "gyeonggi", "gyeongnam", "incheon",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   292
                "jeju", "jeonbuk", "jeonnam", "seoul", "ulsan")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   293
    topMap.put( "kz", new HashSet<String>(Arrays.asList("org", "edu", "net", "gov", "mil", "com")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   294
    topMap.put( "la", new HashSet<String>(Arrays.asList("int", "net", "info", "edu", "gov", "per",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   295
                "com", "org", "c")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   296
    topMap.put( "lc", new HashSet<String>(Arrays.asList("com", "net", "co", "org", "edu", "gov",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   297
                "l.lc", "p.lc")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   298
    topMap.put( "lk", new HashSet<String>(Arrays.asList("gov", "sch", "net", "int", "com", "org",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   299
                "edu", "ngo", "soc", "web", "ltd", "assn", "grp", "hotel")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   300
    topMap.put( "ls", new HashSet<String>(Arrays.asList("co", "gov", "ac", "org")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   301
    topMap.put( "lv", new HashSet<String>(Arrays.asList("com", "edu", "gov", "org", "mil",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   302
                "id", "net", "asn", "conf")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   303
    topMap.put( "ly", new HashSet<String>(Arrays.asList("com", "net", "gov", "plc", "edu", "sch",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   304
                "med", "org", "id")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   305
    topMap.put( "ma", new HashSet<String>(Arrays.asList("co", "net", "gov", "org", "ac", "press")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   306
    topMap.put( "me", new HashSet<String>(Arrays.asList("co", "net", "org", "edu", "ac", "gov",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   307
                "its", "priv")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   308
    topMap.put( "mg", new HashSet<String>(Arrays.asList("org", "nom", "gov", "prd", "tm",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   309
                "edu", "mil", "com")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   310
    topMap.put( "mk", new HashSet<String>(Arrays.asList("com", "org", "net", "edu", "gov", "inf",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   311
                "name", "pro")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   312
    topMap.put( "ml", new HashSet<String>(Arrays.asList("com", "edu", "gouv", "gov", "net",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   313
                "org", "presse")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   314
    topMap.put( "mn", new HashSet<String>(Arrays.asList("gov", "edu", "org")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   315
    topMap.put( "mp", new HashSet<String>(Arrays.asList("gov", "co", "org")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   316
    topMap.put( "mu", new HashSet<String>(Arrays.asList("com", "net", "org", "gov", "ac",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   317
                "co", "or")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   318
    topMap.put( "museum", new HashSet<String>(Arrays.asList("academy", "agriculture", "air",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   319
                "airguard", "alabama", "alaska", "amber", "ambulance", "american", "americana",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   320
                "americanantiques", "americanart", "amsterdam", "and", "annefrank", "anthro",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   321
                "anthropology", "antiques", "aquarium", "arboretum", "archaeological", "archaeology",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   322
                "architecture", "art", "artanddesign", "artcenter", "artdeco", "arteducation",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   323
                "artgallery", "arts", "artsandcrafts", "asmatart", "assassination", "assisi",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   324
                "association", "astronomy", "atlanta", "austin", "australia", "automotive", "aviation",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   325
                "axis", "badajoz", "baghdad", "bahn", "bale", "baltimore", "barcelona", "baseball",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   326
                "basel", "baths", "bauern", "beauxarts", "beeldengeluid", "bellevue", "bergbau",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   327
                "berkeley", "berlin", "bern", "bible", "bilbao", "bill", "birdart", "birthplace",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   328
                "bonn", "boston", "botanical", "botanicalgarden", "botanicgarden", "botany",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   329
                "brandywinevalley", "brasil", "bristol", "british", "britishcolumbia", "broadcast",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   330
                "brunel", "brussel", "brussels", "bruxelles", "building", "burghof", "bus", "bushey",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   331
                "cadaques", "california", "cambridge", "can", "canada", "capebreton", "carrier",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   332
                "cartoonart", "casadelamoneda", "castle", "castres", "celtic", "center", "chattanooga",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   333
                "cheltenham", "chesapeakebay", "chicago", "children", "childrens", "childrensgarden",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   334
                "chiropractic", "chocolate", "christiansburg", "cincinnati", "cinema", "circus",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   335
                "civilisation", "civilization", "civilwar", "clinton", "clock", "coal", "coastaldefence",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   336
                "cody", "coldwar", "collection", "colonialwilliamsburg", "coloradoplateau", "columbia",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   337
                "columbus", "communication", "communications", "community", "computer",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   338
                "computerhistory", "xn--comunicaes-v6a2o", "contemporary", "contemporaryart",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   339
                "convent", "copenhagen", "corporation", "xn--correios-e-telecomunicaes-ghc29a",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   340
                "corvette", "costume", "countryestate", "county", "crafts", "cranbrook", "creation",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   341
                "cultural", "culturalcenter", "culture", "cyber", "cymru", "dali", "dallas", "database",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   342
                "ddr", "decorativearts", "delaware", "delmenhorst", "denmark", "depot", "design",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   343
                "detroit", "dinosaur", "discovery", "dolls", "donostia", "durham", "eastafrica",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   344
                "eastcoast", "education", "educational", "egyptian", "eisenbahn", "elburg",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   345
                "elvendrell", "embroidery", "encyclopedic", "england", "entomology", "environment",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   346
                "environmentalconservation", "epilepsy", "essex", "estate", "ethnology", "exeter",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   347
                "exhibition", "family", "farm", "farmequipment", "farmers", "farmstead", "field",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   348
                "figueres", "filatelia", "film", "fineart", "finearts", "finland", "flanders", "florida",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   349
                "force", "fortmissoula", "fortworth", "foundation", "francaise", "frankfurt",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   350
                "franziskaner", "freemasonry", "freiburg", "fribourg", "frog", "fundacio", "furniture",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   351
                "gallery", "garden", "gateway", "geelvinck", "gemological", "geology", "georgia",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   352
                "giessen", "glas", "glass", "gorge", "grandrapids", "graz", "guernsey", "halloffame",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   353
                "hamburg", "handson", "harvestcelebration", "hawaii", "health", "heimatunduhren",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   354
                "hellas", "helsinki", "hembygdsforbund", "heritage", "histoire", "historical",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   355
                "historicalsociety", "historichouses", "historisch", "historisches", "history",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   356
                "historyofscience", "horology", "house", "humanities", "illustration", "imageandsound",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   357
                "indian", "indiana", "indianapolis", "indianmarket", "intelligence", "interactive",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   358
                "iraq", "iron", "isleofman", "jamison", "jefferson", "jerusalem", "jewelry",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   359
                "jewish", "jewishart", "jfk", "journalism", "judaica", "judygarland", "juedisches",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   360
                "juif", "karate", "karikatur", "kids", "koebenhavn", "koeln", "kunst", "kunstsammlung",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   361
                "kunstunddesign", "labor", "labour", "lajolla", "lancashire", "landes", "lans",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   362
                "xn--lns-qla", "larsson", "lewismiller", "lincoln", "linz", "living", "livinghistory",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   363
                "localhistory", "london", "losangeles", "louvre", "loyalist", "lucerne", "luxembourg",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   364
                "luzern", "mad", "madrid", "mallorca", "manchester", "mansion", "mansions", "manx",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   365
                "marburg", "maritime", "maritimo", "maryland", "marylhurst", "media", "medical",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   366
                "medizinhistorisches", "meeres", "memorial", "mesaverde", "michigan", "midatlantic",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   367
                "military", "mill", "miners", "mining", "minnesota", "missile", "missoula", "modern",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   368
                "moma", "money", "monmouth", "monticello", "montreal", "moscow", "motorcycle", "muenchen",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   369
                "muenster", "mulhouse", "muncie", "museet", "museumcenter", "museumvereniging", "music",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   370
                "national", "nationalfirearms", "nationalheritage", "nativeamerican", "naturalhistory",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   371
                "naturalhistorymuseum", "naturalsciences", "nature", "naturhistorisches",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   372
                "natuurwetenschappen", "naumburg", "naval", "nebraska", "neues", "newhampshire",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   373
                "newjersey", "newmexico", "newport", "newspaper", "newyork", "niepce", "norfolk",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   374
                "north", "nrw", "nuernberg", "nuremberg", "nyc", "nyny", "oceanographic",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   375
                "oceanographique", "omaha", "online", "ontario", "openair", "oregon", "oregontrail",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   376
                "otago", "oxford", "pacific", "paderborn", "palace", "paleo", "palmsprings", "panama",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   377
                "paris", "pasadena", "pharmacy", "philadelphia", "philadelphiaarea", "philately",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   378
                "phoenix", "photography", "pilots", "pittsburgh", "planetarium", "plantation",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   379
                "plants", "plaza", "portal", "portland", "portlligat", "posts-and-telecommunications",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   380
                "preservation", "presidio", "press", "project", "public", "pubol", "quebec",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   381
                "railroad", "railway", "research", "resistance", "riodejaneiro", "rochester", "rockart",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   382
                "roma", "russia", "saintlouis", "salem", "salvadordali", "salzburg", "sandiego",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   383
                "sanfrancisco", "santabarbara", "santacruz", "santafe", "saskatchewan", "satx",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   384
                "savannahga", "schlesisches", "schoenbrunn", "schokoladen", "school", "schweiz",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   385
                "science", "scienceandhistory", "scienceandindustry", "sciencecenter", "sciencecenters",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   386
                "science-fiction", "sciencehistory", "sciences", "sciencesnaturelles", "scotland",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   387
                "seaport", "settlement", "settlers", "shell", "sherbrooke", "sibenik", "silk", "ski",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   388
                "skole", "society", "sologne", "soundandvision", "southcarolina", "southwest", "space",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   389
                "spy", "square", "stadt", "stalbans", "starnberg", "state", "stateofdelaware",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   390
                "station", "steam", "steiermark", "stjohn", "stockholm", "stpetersburg", "stuttgart",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   391
                "suisse", "surgeonshall", "surrey", "svizzera", "sweden", "sydney", "tank", "tcm",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   392
                "technology", "telekommunikation", "television", "texas", "textile", "theater",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   393
                "time", "timekeeping", "topology", "torino", "touch", "town", "transport", "tree",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   394
                "trolley", "trust", "trustee", "uhren", "ulm", "undersea", "university", "usa",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   395
                "usantiques", "usarts", "uscountryestate", "usculture", "usdecorativearts", "usgarden",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   396
                "ushistory", "ushuaia", "uslivinghistory", "utah", "uvic", "valley", "vantaa",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   397
                "versailles", "viking", "village", "virginia", "virtual", "virtuel", "vlaanderen",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   398
                "volkenkunde", "wales", "wallonie", "war", "washingtondc", "watchandclock",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   399
                "watch-and-clock", "western", "westfalen", "whaling", "wildlife", "williamsburg",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   400
                "windmill", "workshop", "york", "yorkshire", "yosemite", "youth", "zoological",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   401
                "zoology", "xn--9dbhblg6di", "xn--h1aegh")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   402
    topMap.put( "mv", new HashSet<String>(Arrays.asList("aero", "biz", "com", "coop", "edu", "gov",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   403
                "info", "int", "mil", "museum", "name", "net", "org", "pro")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   404
    topMap.put( "mw", new HashSet<String>(Arrays.asList("ac", "biz", "co", "com", "coop", "edu",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   405
                "gov", "int", "museum", "net", "org")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   406
    topMap.put( "mx", new HashSet<String>(Arrays.asList("com", "org", "gob", "edu", "net")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   407
    topMap.put( "my", new HashSet<String>(Arrays.asList("com", "net", "org", "gov", "edu",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   408
                 "mil", "name", "sch")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   409
    topMap.put( "na", new HashSet<String>(Arrays.asList("co", "com", "org", "edu", "edunet", "net",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   410
                "alt", "biz", "info")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   411
    topMap.put( "nc", new HashSet<String>(Arrays.asList("asso", "nom")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   412
    topMap.put( "net", new HashSet<String>(Arrays.asList("gb", "se", "uk", "za")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   413
    topMap.put( "ng", new HashSet<String>(Arrays.asList("name", "sch", "mil", "mobi", "com",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   414
                "edu", "gov", "net", "org")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   415
    topMap.put( "nf", new HashSet<String>(Arrays.asList("com", "net", "per", "rec", "web",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   416
                "arts", "firm", "info", "other", "store")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   417
    topMap.put( "no", new HashSet<String>(Arrays.asList("fhs", "vgs", "fylkesbibl", "folkebibl",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   418
                "museum", "idrett", "priv", "mil", "stat", "dep", "kommune", "herad", "aa",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   419
                "ah", "bu", "fm", "hl", "hm", "jan-mayen", "mr", "nl", "nt", "of", "ol", "oslo",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   420
                "rl", "sf", "st", "svalbard", "tm", "tr", "va", "vf", "akrehamn",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   421
                "xn--krehamn-dxa", "algard", "xn--lgrd-poac", "arna", "brumunddal",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   422
                "bryne", "bronnoysund", "xn--brnnysund-m8ac", "drobak",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   423
                "xn--drbak-wua", "egersund", "fetsund", "floro", "xn--flor-jra",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   424
                "fredrikstad", "hokksund", "honefoss", "xn--hnefoss-q1a",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   425
                "jessheim", "jorpeland", "xn--jrpeland-54a", "kirkenes", "kopervik",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   426
                "krokstadelva", "langevag", "xn--langevg-jxa", "leirvik", "mjondalen",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   427
                "xn--mjndalen-64a", "mo-i-rana", "mosjoen", "xn--mosjen-eya",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   428
                "nesoddtangen", "orkanger", "osoyro", "xn--osyro-wua",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   429
                "raholt", "xn--rholt-mra", "sandnessjoen", "xn--sandnessjen-ogb",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   430
                "skedsmokorset", "slattum", "spjelkavik", "stathelle", "stavern", "stjordalshalsen",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   431
                "xn--stjrdalshalsen-sqb", "tananger", "tranby", "vossevangen", "tranby",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   432
                "vossevangen", "afjord", "xn--fjord-lra", "agdenes", "al",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   433
                "xn--l-1fa", "alesund", "xn--lesund-hua",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   434
                "alstahaug", "alta", "xn--lt-liac", "alaheadju",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   435
                "xn--laheadju-7ya", "alvdal", "amli", "xn--mli-tla",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   436
                "amot", "xn--mot-tla", "andebu", "andoy", "xn--andy-ira",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   437
                "andasuolo", "ardal", "xn--rdal-poa", "aremark", "arendal",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   438
                "xn--s-1fa", "aseral", "xn--seral-lra",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   439
                "asker", "askim", "askvoll", "askoy", "xn--asky-ira",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   440
                "asnes", "xn--snes-poa", "audnedaln", "aukra", "aure", "aurland",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   441
                "aurskog-holand", "xn--aurskog-hland-jnb",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   442
                "austevoll", "austrheim", "averoy", "xn--avery-yua",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   443
                "balestrand", "ballangen", "balat", "xn--blt-elab",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   444
                "balsfjord", "bahccavuotna", "xn--bhccavuotna-k7a",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   445
                "bamble", "bardu", "beardu", "beiarn", "bajddar", "xn--bjddar-pta",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   446
                "baidar", "xn--bidr-5nac", "berg", "bergen", "berlevag", "xn--berlevg-jxa",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   447
                "bearalvahki", "xn--bearalvhki-y4a", "bindal", "birkenes", "bjarkoy",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   448
                "xn--bjarky-fya", "bjerkreim", "bjugn", "bodo", "xn--bod-2na",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   449
                "badaddja", "xn--bdddj-mrabd", "budejju", "bokn",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   450
                "bremanger", "bronnoy", "xn--brnny-wuac", "bygland",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   451
                "bykle", "barum", "xn--brum-voa", "bievat", "xn--bievt-0qa",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   452
                "bomlo", "xn--bmlo-gra", "batsfjord", "xn--btsfjord-9za", "bahcavuotna",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   453
                "xn--bhcavuotna-s4a", "dovre", "drammen", "drangedal", "dyroy",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   454
                "xn--dyry-ira", "donna", "xn--dnna-gra",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   455
                "eid", "eidfjord", "eidsberg", "eidskog", "eidsvoll", "eigersund", "elverum",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   456
                "enebakk", "engerdal", "etne", "etnedal", "evenes", "evenassi",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   457
                "xn--eveni-0qa01ga", "evje-og-hornnes", "farsund", "fauske",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   458
                "fuossko", "fuoisku", "fedje", "fet", "finnoy", "xn--finny-yua",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   459
                "fitjar", "fjaler", "fjell", "flakstad", "flatanger", "flekkefjord", "flesberg",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   460
                "flora", "fla", "xn--fl-zia", "folldal", "forsand", "fosnes", "frei",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   461
                "frogn", "froland", "frosta", "frana", "xn--frna-woa",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   462
                "froya", "xn--frya-hra", "fusa", "fyresdal", "forde",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   463
                "xn--frde-gra", "gamvik", "gangaviika", "xn--ggaviika-8ya47h",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   464
                "gaular", "gausdal", "gildeskal", "xn--gildeskl-g0a",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   465
                "giske", "gjemnes", "gjerdrum", "gjerstad", "gjesdal", "gjovik",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   466
                "xn--gjvik-wua", "gloppen", "gol", "gran", "grane", "granvin",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   467
                "gratangen", "grimstad", "grong", "kraanghke", "xn--kranghke-b0a",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   468
                "grue", "gulen", "hadsel", "halden", "halsa", "hamar", "hamaroy", "habmer",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   469
                "xn--hbmer-xqa",  "hapmir", "xn--hpmir-xqa",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   470
                "hammerfest", "hammarfeasta", "xn--hmmrfeasta-s4ac",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   471
                "haram", "hareid", "harstad", "hasvik", "aknoluokta", "xn--koluokta-7ya57h",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   472
                "hattfjelldal", "aarborte", "haugesund", "hemne", "hemnes", "hemsedal",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   473
                "hitra", "hjartdal", "hjelmeland",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   474
                "hobol", "xn--hobl-ira", "hof", "hol", "hole", "holmestrand", "holtalen",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   475
                "xn--holtlen-hxa", "hornindal", "horten", "hurdal", "hurum", "hvaler",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   476
                "hyllestad", "hagebostad", "xn--hgebostad-g3a",  "hoyanger",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   477
                "xn--hyanger-q1a", "hoylandet", "xn--hylandet-54a",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   478
                "ha", "xn--h-2fa", "ibestad", "inderoy", "xn--indery-fya",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   479
                "iveland", "jevnaker", "jondal", "jolster", "xn--jlster-bya",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   480
                "karasjok", "karasjohka", "xn--krjohka-hwab49j",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   481
                "karlsoy", "galsa", "xn--gls-elac", "karmoy",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   482
                "xn--karmy-yua", "kautokeino", "guovdageaidnu", "klepp", "klabu",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   483
                "xn--klbu-woa", "kongsberg", "kongsvinger", "kragero", "xn--krager-gya",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   484
                "kristiansand", "kristiansund", "krodsherad", "xn--krdsherad-m8a",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   485
                "kvalsund", "rahkkeravju", "xn--rhkkervju-01af",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   486
                "kvam", "kvinesdal", "kvinnherad", "kviteseid", "kvitsoy", "xn--kvitsy-fya",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   487
                "kvafjord", "xn--kvfjord-nxa", "giehtavuoatna", "kvanangen",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   488
                "xn--kvnangen-k0a", "navuotna", "xn--nvuotna-hwa",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   489
                "kafjord", "xn--kfjord-iua", "gaivuotna", "xn--givuotna-8ya",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   490
                "larvik", "lavangen", "lavagis", "loabat", "xn--loabt-0qa",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   491
                "lebesby", "davvesiida", "leikanger", "leirfjord", "leka", "leksvik", "lenvik",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   492
                "leangaviika", "xn--leagaviika-52b", "lesja", "levanger", "lier", "lierne",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   493
                "lillehammer", "lillesand", "lindesnes", "lindas", "xn--linds-pra",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   494
                "lom", "loppa", "lahppi", "xn--lhppi-xqa", "lund", "lunner", "luroy",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   495
                "xn--lury-ira", "luster", "lyngdal", "lyngen", "ivgu", "lardal", "lerdal",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   496
                "xn--lrdal-sra", "lodingen", "xn--ldingen-q1a", "lorenskog",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   497
                "xn--lrenskog-54a", "loten", "xn--lten-gra",  "malvik",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   498
                "masoy", "xn--msy-ula0h", "muosat", "xn--muost-0qa",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   499
                "mandal", "marker", "marnardal", "masfjorden", "meland", "meldal", "melhus",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   500
                "meloy", "xn--mely-ira", "meraker", "xn--merker-kua", "moareke",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   501
                "xn--moreke-jua", "midsund", "midtre-gauldal", "modalen", "modum",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   502
                "molde", "moskenes", "moss", "mosvik", "malselv", "xn--mlselv-iua",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   503
                "malatvuopmi", "xn--mlatvuopmi-s4a", "namdalseid", "aejrie", "namsos",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   504
                "namsskogan", "naamesjevuemie", "xn--nmesjevuemie-tcba",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   505
                "laakesvuemie", "nannestad", "narvik", "narviika", "naustdal", "nedre-eiker",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   506
                "nesna", "nesodden", "nesseby", "unjarga", "xn--unjrga-rta", "nesset",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   507
                "nissedal", "nittedal", "nord-aurdal", "nord-fron", "nord-odal", "norddal",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   508
                "nordkapp", "davvenjarga", "xn--davvenjrga-y4a", "nordre-land",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   509
                "nordreisa", "raisa", "xn--risa-5na", "nore-og-uvdal", "notodden", "naroy",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   510
                "xn--nry-yla5g", "notteroy", "xn--nttery-byae",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   511
                "odda", "oksnes", "xn--ksnes-uua", "oppdal", "oppegard",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   512
                "xn--oppegrd-ixa", "orkdal", "orland", "xn--rland-uua",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   513
                "orskog", "xn--rskog-uua", "orsta", "xn--rsta-fra",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   514
                "os.hedmark", "os.hordaland", "osen", "osteroy", "xn--ostery-fya",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   515
                "ostre-toten", "xn--stre-toten-zcb", "overhalla", "ovre-eiker",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   516
                "xn--vre-eiker-k8a", "oyer", "xn--yer-zna",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   517
                "oygarden", "xn--ygarden-p1a",  "oystre-slidre", "xn--ystre-slidre-ujb",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   518
                "porsanger", "porsangu", "xn--porsgu-sta26f", "porsgrunn",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   519
                "radoy", "xn--rady-ira", "rakkestad", "rana", "ruovat", "randaberg",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   520
                "rauma", "rendalen", "rennebu", "rennesoy", "xn--rennesy-v1a",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   521
                "rindal", "ringebu", "ringerike", "ringsaker", "rissa", "risor",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   522
                "xn--risr-ira", "roan", "rollag", "rygge", "ralingen", "xn--rlingen-mxa",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   523
                "rodoy", "xn--rdy-0nab", "romskog", "xn--rmskog-bya",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   524
                "roros", "xn--rros-gra", "rost", "xn--rst-0na",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   525
                "royken", "xn--ryken-vua", "royrvik", "xn--ryrvik-bya",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   526
                "rade", "xn--rde-ula", "salangen", "siellak", "saltdal", "salat",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   527
                "xn--slt-elab", "xn--slat-5na", "samnanger",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   528
                "sandefjord", "sandnes", "sandoy", "xn--sandy-yua", "sarpsborg",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   529
                "sauda", "sauherad", "sel", "selbu", "selje", "seljord", "sigdal", "siljan",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   530
                "sirdal", "skaun", "skedsmo", "ski", "skien", "skiptvet", "skjervoy",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   531
                "xn--skjervy-v1a", "skierva", "xn--skierv-uta",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   532
                "skjak", "xn--skjk-soa",  "skodje", "skanland", "xn--sknland-fxa",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   533
                "skanit", "xn--sknit-yqa",  "smola", "xn--smla-hra",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   534
                "snillfjord", "snasa", "xn--snsa-roa",  "snoasa", "snaase",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   535
                "xn--snase-nra", "sogndal", "sokndal", "sola", "solund", "songdalen",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   536
                "sortland", "spydeberg", "stange", "stavanger", "steigen", "steinkjer",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   537
                "stjordal", "xn--stjrdal-s1a", "stokke", "stor-elvdal", "stord", "stordal",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   538
                "storfjord", "omasvuotna", "strand", "stranda", "stryn", "sula", "suldal",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   539
                "sund", "sunndal", "surnadal", "sveio", "svelvik", "sykkylven", "sogne",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   540
                "xn--sgne-gra", "somna", "xn--smna-gra", "sondre-land",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   541
                "xn--sndre-land-0cb", "sor-aurdal", "xn--sr-aurdal-l8a",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   542
                "sor-fron", "xn--sr-fron-q1a", "sor-odal", "xn--sr-odal-q1a",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   543
                "sor-varanger", "xn--sr-varanger-ggb",  "matta-varjjat",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   544
                "xn--mtta-vrjjat-k7af", "sorfold", "xn--srfold-bya",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   545
                "sorreisa", "xn--srreisa-q1a", "sorum", "xn--srum-gra",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   546
                "tana", "deatnu", "time", "tingvoll", "tinn", "tjeldsund", "dielddanuorri",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   547
                "tjome", "xn--tjme-hra", "tokke", "tolga", "torsken", "tranoy",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   548
                "xn--trany-yua",  "tromso", "xn--troms-zua",  "tromsa", "romsa",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   549
                "trondheim", "troandin", "trysil", "trana", "xn--trna-woa",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   550
                "trogstad", "xn--trgstad-r1a",  "tvedestrand", "tydal", "tynset",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   551
                "tysfjord", "divtasvuodna", "divttasvuotna", "tysnes", "tysvar",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   552
                "xn--tysvr-vra",  "tonsberg", "xn--tnsberg-q1a",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   553
                "ullensaker", "ullensvang", "ulvik", "utsira", "vadso", "xn--vads-jra",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   554
                "cahcesuolo", "xn--hcesuolo-7ya35b",  "vaksdal", "valle", "vang",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   555
                "vanylven", "vardo", "xn--vard-jra",  "varggat", "xn--vrggt-xqad",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   556
                "vefsn", "vaapste", "vega", "vegarshei", "xn--vegrshei-c0a", "vennesla",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   557
                "verdal", "verran", "vestby", "vestnes", "vestre-slidre", "vestre-toten",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   558
                "vestvagoy", "xn--vestvgy-ixa6o", "vevelstad", "vik", "vikna",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   559
                "vindafjord", "volda", "voss", "varoy", "xn--vry-yla5g",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   560
                "vagan", "xn--vgan-qoa", "voagat", "vagsoy", "xn--vgsy-qoa0j",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   561
                "vaga", "xn--vg-yiab")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   562
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   563
    topMap.put( "nr", new HashSet<String>(Arrays.asList("biz", "info", "gov", "edu", "org",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   564
                 "net", "com", "co")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   565
    topMap.put( "pa", new HashSet<String>(Arrays.asList("ac", "gob", "com", "org",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   566
                "sld", "edu", "net", "ing", "abo", "med", "nom")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   567
    topMap.put( "pe", new HashSet<String>(Arrays.asList("edu", "gob", "nom", "mil", "org", "com",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   568
                "net", "sld")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   569
    topMap.put( "pf", new HashSet<String>(Arrays.asList( "com")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   570
    topMap.put( "ph", new HashSet<String>(Arrays.asList("com", "net", "org", "gov", "edu", "ngo", "mil")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   571
    topMap.put( "pk", new HashSet<String>(Arrays.asList("com", "net", "edu", "org", "fam", "biz",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   572
                "web", "gov", "gob", "gok", "gon", "gop", "gos", "gog", "gkp", "info")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   573
    topMap.put( "pl", new HashSet<String>(Arrays.asList("aid", "agro", "atm", "auto", "biz", "com",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   574
                "edu", "gmina", "gsm", "info", "mail", "miasta", "media", "mil", "net", "nieruchomosci",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   575
                "nom", "org", "pc", "powiat", "priv", "realestate", "rel", "sex", "shop", "sklep",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   576
                "sos", "szkola", "targi", "tm", "tourism", "travel", "turystyka", "art",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   577
                "gov", "ngo", "augustow", "babia-gora", "bedzin", "beskidy",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   578
                "bialowieza", "bialystok", "bielawa", "bieszczady", "boleslawiec", "bydgoszcz",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   579
                "bytom", "cieszyn", "czeladz", "czest", "dlugoleka", "elblag", "elk", "glogow",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   580
                "gniezno", "gorlice", "grajewo", "ilawa", "jaworzno", "jelenia-gora", "jgora",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   581
                "kalisz", "kazimierz-dolny", "karpacz", "kartuzy", "kaszuby", "katowice", "kepno",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   582
                "ketrzyn", "klodzko", "kobierzyce", "kolobrzeg", "konin", "konskowola", "kutno",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   583
                "lapy", "lebork", "legnica", "lezajsk", "limanowa", "lomza", "lowicz", "lubin",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   584
                "lukow", "malbork", "malopolska", "mazowsze", "mazury", "mielec", "mielno", "mragowo",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   585
                "naklo", "nowaruda", "nysa", "olawa", "olecko", "olkusz", "olsztyn", "opoczno",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   586
                "opole", "ostroda", "ostroleka", "ostrowiec", "ostrowwlkp", "pila", "pisz", "podhale",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   587
                "podlasie", "polkowice", "pomorze", "pomorskie", "prochowice", "pruszkow", "przeworsk",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   588
                "pulawy", "radom", "rawa-maz", "rybnik", "rzeszow", "sanok", "sejny", "siedlce",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   589
                "slask", "slupsk", "sosnowiec", "stalowa-wola", "skoczow", "starachowice", "stargard",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   590
                "suwalki", "swidnica", "swiebodzin", "swinoujscie", "szczecin", "szczytno", "tarnobrzeg",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   591
                "tgory", "turek", "tychy", "ustka", "walbrzych", "warmia", "warszawa", "waw",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   592
                "wegrow", "wielun", "wlocl", "wloclawek", "wodzislaw", "wolomin", "wroclaw",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   593
                "zachpomor", "zagan", "zarow", "zgora", "zgorzelec", "gda", "gdansk",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   594
                "krakow", "poznan", "wroc", "co",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   595
                "lodz", "lublin", "torun")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   596
    topMap.put( "pn", new HashSet<String>(Arrays.asList("gov", "co", "org", "edu", "net")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   597
    topMap.put( "pr", new HashSet<String>(Arrays.asList("com", "net", "org", "gov", "edu", "isla",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   598
                "pro", "biz", "info", "name", "est", "prof", "ac", "gobierno")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   599
    topMap.put( "pro", new HashSet<String>(Arrays.asList("aca", "bar", "cpa", "jur", "law",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   600
                 "med", "eng")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   601
    topMap.put( "ps", new HashSet<String>(Arrays.asList("edu", "gov", "sec", "plo", "com", "org", "net")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   602
    topMap.put( "pt", new HashSet<String>(Arrays.asList("net", "gov", "org", "edu", "int", "publ",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   603
                 "com", "nome")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   604
    topMap.put( "pw", new HashSet<String>(Arrays.asList("co", "ne", "or", "ed", "go", "belau")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   605
    topMap.put( "qa", new HashSet<String>(Arrays.asList("com", "net", "org", "gov", "edu", "mil")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   606
    topMap.put( "re", new HashSet<String>(Arrays.asList("com", "asso", "nom")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   607
    topMap.put( "ro", new HashSet<String>(Arrays.asList("com", "org", "tm", "nt", "nom", "info",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   608
                "rec", "arts", "firm", "store", "www")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   609
    topMap.put( "rs", new HashSet<String>(Arrays.asList("co", "org", "edu", "ac", "gov", "in")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   610
    topMap.put( "ru", new HashSet<String>(Arrays.asList("ac", "com", "edu", "int", "net", "org",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   611
                "pp", "adygeya", "altai", "amur", "arkhangelsk", "astrakhan", "bashkiria",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   612
                "belgorod", "bir", "bryansk", "buryatia", "cap", "cbg", "chel", "chelyabinsk", "chita",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   613
                "chukotka", "dagestan", "e-burg", "grozny", "irkutsk",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   614
                "ivanovo", "izhevsk", "jar", "joshkar-ola", "kalmykia", "kaluga", "kamchatka",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   615
                "karelia", "kazan", "kchr", "kemerovo", "khabarovsk", "khakassia", "khv", "kirov",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   616
                "koenig", "komi", "kostroma", "krasnoyarsk", "kuban", "kurgan", "kursk", "lipetsk",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   617
                "magadan", "mari", "mari-el", "marine", "mordovia", "mosreg", "msk", "murmansk",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   618
                "nalchik", "nnov", "nov", "novosibirsk", "nsk", "omsk", "orenburg", "oryol",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   619
                "palana", "penza", "perm", "pskov", "ptz", "rnd", "ryazan", "sakhalin", "samara",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   620
                "saratov", "simbirsk", "smolensk", "spb", "stavropol", "stv", "surgut", "tambov",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   621
                "tatarstan", "tom", "tomsk", "tsaritsyn", "tsk", "tula", "tuva", "tver", "tyumen",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   622
                "udm", "udmurtia", "ulan-ude", "vladikavkaz", "vladimir", "vladivostok", "volgograd",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   623
                "vologda", "voronezh", "vrn", "vyatka", "yakutia", "yamal", "yaroslavl",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   624
                "yekaterinburg", "yuzhno-sakhalinsk", "amursk", "baikal", "cmw", "fareast",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   625
                "jamal", "kms", "k-uralsk", "kustanai", "kuzbass", "magnitka", "mytis",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   626
                "nakhodka", "nkz", "norilsk", "oskol", "pyatigorsk", "rubtsovsk", "snz", "syzran",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   627
                "vdonsk", "zgrad", "gov", "mil", "test")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   628
    topMap.put( "rw", new HashSet<String>(Arrays.asList("gov", "net", "edu", "ac", "com", "co",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   629
                "int", "mil", "gouv")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   630
    topMap.put( "sa", new HashSet<String>(Arrays.asList("com", "net", "org", "gov", "med", "pub",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   631
                "edu", "sch")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   632
    topMap.put( "sd", new HashSet<String>(Arrays.asList("com", "net", "org", "edu", "med", "gov",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   633
                "info", "tv")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   634
    topMap.put( "se", new HashSet<String>(Arrays.asList("a", "ac", "b", "bd", "brand", "c", "d",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   635
                "e", "f", "fh", "fhsk", "fhv", "g", "h", "i", "k", "komforb", "kommunalforbund",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   636
                "komvux", "l", "lanarb", "lanbib", "m", "n", "naturbruksgymn", "o", "org", "p", "parti",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   637
                "pp", "press", "r", "s", "sshn", "t", "tm", "u", "w", "x", "y", "z")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   638
    topMap.put( "sg", new HashSet<String>(Arrays.asList("com", "net", "org", "gov", "edu", "per")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   639
    topMap.put( "sh", new HashSet<String>(Arrays.asList("co", "com", "net", "org", "gov", "edu", "nom")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   640
    topMap.put( "sk", new HashSet<String>(Arrays.asList("gov", "edu")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   641
    topMap.put( "sn", new HashSet<String>(Arrays.asList("art", "com", "edu", "gouv", "org", "perso",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   642
                "univ")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   643
    topMap.put( "so", new HashSet<String>(Arrays.asList("com", "net", "org")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   644
    topMap.put( "sr", new HashSet<String>(Arrays.asList("co", "com", "consulado", "edu", "embaixada",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   645
                "gov", "mil", "net", "org", "principe", "saotome", "store")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   646
    topMap.put( "sy", new HashSet<String>(Arrays.asList("edu", "gov", "net", "mil", "com", "org", "news")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   647
    topMap.put( "sz", new HashSet<String>(Arrays.asList("co", "ac", "org")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   648
    topMap.put( "th", new HashSet<String>(Arrays.asList("ac", "co", "go", "in", "mi", "net", "or")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   649
    topMap.put( "tj", new HashSet<String>(Arrays.asList("ac", "biz", "co", "com", "edu", "go", "gov",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   650
                "int", "mil", "name", "net", "nic", "org", "test", "web")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   651
    topMap.put( "tn", new HashSet<String>(Arrays.asList("com", "ens", "fin", "gov", "ind", "intl",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   652
                "nat", "net", "org", "info", "perso", "tourism", "edunet", "rnrt", "rns", "rnu",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   653
                "mincom", "agrinet", "defense", "turen")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   654
    topMap.put( "to", new HashSet<String>(Arrays.asList("gov")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   655
    topMap.put( "tt", new HashSet<String>(Arrays.asList("co", "com", "org", "net", "biz", "info",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   656
                "pro", "int", "coop", "jobs", "mobi", "travel", "museum", "aero", "name", "gov",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   657
                "edu", "cat", "tel", "mil")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   658
    topMap.put( "tw", new HashSet<String>(Arrays.asList("edu", "gov", "mil", "com", "net", "org",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   659
                "idv", "game", "ebiz", "club", "xn--zf0ao64a", "xn--uc0atv", "xn--czrw28b")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   660
    topMap.put( "ua", new HashSet<String>(Arrays.asList("com", "edu", "gov", "in", "net", "org",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   661
                "cherkassy", "chernigov", "chernovtsy", "ck", "cn", "crimea", "cv", "dn",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   662
                "dnepropetrovsk", "donetsk", "dp", "if", "ivano-frankivsk", "kh", "kharkov",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   663
                "kherson", "kiev", "kirovograd", "km", "kr", "ks", "lg",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   664
                "lugansk", "lutsk", "lviv", "mk", "nikolaev", "od", "odessa", "pl", "poltava",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   665
                "rovno", "rv", "sebastopol", "sumy", "te", "ternopil", "uzhgorod", "vinnica", "vn",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   666
                "zaporizhzhe", "zp", "zhitomir", "zt", "cr", "lt", "lv", "sb", "sm", "tr",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   667
                "co", "biz", "in", "ne", "pp", "uz", "dominic")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   668
    topMap.put( "ug", new HashSet<String>(Arrays.asList("co", "ac", "sc", "go", "ne", "or", "org", "com")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   669
    topMap.put( "us", new HashSet<String>(Arrays.asList("dni", "fed", "isa", "kids", "nsn", "kyschools")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   670
    topMap.put( "uz", new HashSet<String>(Arrays.asList("co", "com", "org", "gov", "ac", "edu", "int", "pp", "net")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   671
    topMap.put( "vc", new HashSet<String>(Arrays.asList("com", "net", "org", "gov")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   672
    topMap.put( "vi", new HashSet<String>(Arrays.asList("co", "com", "k12", "net", "org")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   673
    topMap.put( "vn", new HashSet<String>(Arrays.asList( "com", "net", "org", "edu", "gov", "int",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   674
                "ac", "biz", "info", "name", "pro", "health")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   675
    topMap.put( "vu", new HashSet<String>(Arrays.asList("co", "com", "net", "org", "edu", "gov", "de")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   676
    topMap.put("org", new HashSet<String>(Arrays.asList("ae", "za")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   677
    topMap.put("pro", new HashSet<String>(Arrays.asList("aca", "bar", "cpa", "jur", "law", "med", "eng")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   678
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   679
    top3Map.put("au", new HashSet<String>(Arrays.asList("act.edu.au", "eq.edu.au",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   680
                "nsw.edu.au", "nt.edu.au", "qld.edu.au", "sa.edu.au", "tas.edu.au", "vic.edu.au",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   681
                 "wa.edu.au", "act.gov.au", "nsw.gov.au", "nt.gov.au", "qld.gov.au", "sa.gov.au",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   682
                 "tas.gov.au", "vic.gov.au", "wa.gov.au")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   683
    top3Map.put("im", new HashSet<String>(Arrays.asList("ltd.co.im", "plc.co.im")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   684
    top3Map.put("no", new HashSet<String>(Arrays.asList("gs.aa.no", "gs.ah.no", "gs.bu.no",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   685
                "gs.fm.no", "gs.hl.no", "gs.hm.no", "gs.jan-mayen.no", "gs.mr.no", "gs.nl.no",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   686
                "gs.nt.no", "gs.of.no", "gs.ol.no", "gs.oslo.no", "gs.rl.no", "gs.sf.no",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   687
                "gs.st.no", "gs.svalbard.no", "gs.tm.no", "gs.tr.no", "gs.va.no", "gs.vf.no",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   688
                "bo.telemark.no", "xn--b-5ga.telemark.no", "bo.nordland.no",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   689
                "xn--b-5ga.nordland.no", "heroy.more-og-romsdal.no",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   690
                "xn--hery-ira.xn--mre-og-romsdal-qqb.no", "heroy.nordland.no",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   691
                "xn--hery-ira.nordland.no", "nes.akershus.no", "nes.buskerud.no",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   692
                "os.hedmark.no", "os.hordaland.no",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   693
                "sande.more-og-romsdal.no", "sande.xn--mre-og-romsdal-qqb.no",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   694
                "sande.vestfold.no", "valer.ostfold.no", "xn--vler-qoa.xn--stfold-9xa.no",
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   695
                "valer.hedmark.no", "xn--vler-qoa.hedmark.no")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   696
    top3Map.put("tr", new HashSet<String>(Arrays.asList("gov.nc.tr")));
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   697
}
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   698
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   699
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   700
    /*
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   701
     * Return the registered part of a qualified domain
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   702
     * name or the original if no match is found.
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   703
     */
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   704
    public static String getRegisteredDomain(String cname) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   705
        int dot;
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   706
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   707
        /*
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   708
         * If one dot or less than just return.
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   709
         */
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   710
        dot = cname.lastIndexOf('.');
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   711
        if (dot == -1)
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   712
            return cname;
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   713
        if (dot == 0)
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   714
            return "";
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   715
        if (dot == cname.length() - 1) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   716
            cname = cname.substring(0, cname.length() -1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   717
            dot = cname.lastIndexOf('.');
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   718
            if (dot == -1)
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   719
                return cname;
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   720
            if (dot == 0)
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   721
                return "";
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   722
        }
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   723
        if (dot == cname.length() - 1)
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   724
            return "";
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   725
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   726
        /*
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   727
         * Break it up into seperate labels.
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   728
         */
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   729
        int second = cname.lastIndexOf('.', dot - 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   730
        if (second == -1)
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   731
            return cname;
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   732
        if (second == 0)
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   733
            return "";
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   734
        int third = cname.lastIndexOf('.', second - 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   735
        int fourth = -1;
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   736
        if (third > 0) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   737
            fourth = cname.lastIndexOf('.', third - 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   738
        }
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   739
        int fifth = -1;
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   740
        if (fourth > 0) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   741
            fifth = cname.lastIndexOf('.', fourth - 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   742
        }
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   743
        String s = cname.substring(dot + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   744
        String s2 = cname.substring(second + 1, dot);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   745
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   746
        /*
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   747
         * Look for longest matches first.
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   748
         * XX.PVT.K12.MA.US etc.
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   749
         */
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   750
        if (fourth != -1 && s.equals("us") && usStateSet.contains(s2)) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   751
            String s3 = cname.substring(third + 1, second);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   752
            String s4 = cname.substring(fourth + 1, third);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   753
            if (s3.equals("k12")) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   754
                if (s2.equals("ma") && (s4.equals("chtr") || s4.equals("paroch"))) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   755
                    return cname.substring(fifth + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   756
                } else if (s4.equals("pvt")) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   757
                    return cname.substring(fifth + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   758
                }
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   759
            }
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   760
        }
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   761
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   762
        /*
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   763
         * XX.K12.MA.US.
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   764
         */
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   765
        String str = cname.substring(third + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   766
        if (third != -1) {
11125
99b115114fa3 7117357: Warnings in sun.instrument, tools and other sun.* classes
alanb
parents: 9775
diff changeset
   767
            Set<String> set = top3Map.get(s);
9775
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   768
            if (set != null) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   769
                if (set.contains(str)) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   770
                    return cname.substring(fourth + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   771
                }
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   772
            } else if (s.equals("us") && usStateSet.contains(s2)) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   773
                // check for known third level labels
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   774
                String s3 = cname.substring(third + 1, second);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   775
                if (usSubStateSet.contains(s3)) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   776
                    return fourth != -1? cname.substring(fourth + 1): cname;
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   777
                } else {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   778
                    return cname.substring(third + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   779
                }
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   780
            } else if (s.equals("uk")) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   781
                if (s2.equals("sch")) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   782
                    return cname.substring(fourth + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   783
                }
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   784
            } else if (s.equals("jp")) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   785
                if (jpSet.contains(s2)) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   786
                    if (jp2Set.contains(str)) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   787
                        return cname.substring(third + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   788
                    }
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   789
                    return cname.substring(fourth + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   790
                }
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   791
            }
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   792
        }
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   793
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   794
        /*
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   795
         * PREF.AKITA.JP etc.
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   796
         */
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   797
        if (jp2Set.contains(str)) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   798
            return cname.substring(third + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   799
        }
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   800
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   801
        /*
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   802
         * XX.MA.US.
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   803
         */
11125
99b115114fa3 7117357: Warnings in sun.instrument, tools and other sun.* classes
alanb
parents: 9775
diff changeset
   804
        Set<String> topSet = topMap.get(s);
9775
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   805
        if (topSet != null) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   806
            if (topSet.contains(s2)) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   807
                return cname.substring(third + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   808
            }
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   809
            if (!((s.equals("us") && usStateSet.contains(s2)) || (s.equals("jp") && jpSet.contains(s2)))) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   810
                return cname.substring(second + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   811
            }
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   812
        } else if (top2Set.contains(s)) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   813
            if (s2.equals("gov")) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   814
                return cname.substring(third + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   815
            }
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   816
            return cname.substring(second + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   817
        } else if (top3Set.contains(s)) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   818
            if (s.equals("ad") && s2.equals("nom") ||
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   819
                s.equals("aw") && s2.equals("com") ||
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   820
                s.equals("be") && s2.equals("ac") ||
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   821
                s.equals("cl") && s2.equals("gov") ||
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   822
                s.equals("cl") && s2.equals("gob") ||
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   823
                s.equals("fi") && s2.equals("aland") ||
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   824
                s.equals("int") && s2.equals("eu") ||
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   825
                s.equals("io") && s2.equals("com") ||
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   826
                s.equals("mc") && s2.equals("tm") ||
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   827
                s.equals("mc") && s2.equals("asso") ||
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   828
                s.equals("vc") && s2.equals("com")) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   829
                return cname.substring(third + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   830
            }
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   831
            return cname.substring(second + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   832
        } else if (top4Set.contains(s)) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   833
            if (s2.equals("com") || s2.equals("edu") || s2.equals("gov") ||
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   834
                s2.equals("net") || s2.equals("org")) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   835
                return cname.substring(third + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   836
            }
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   837
            return cname.substring(second + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   838
        } else if (top5Set.contains(s)) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   839
            return cname.substring(third + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   840
        }
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   841
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   842
        /*
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   843
         * BB.AA exception cases.
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   844
         */
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   845
        if (s.equals("tr")) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   846
            if (!s2.equals("nic") && !s2.equals("tsk")) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   847
                return cname.substring(third + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   848
            }
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   849
            return cname.substring(second + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   850
        } else if (s.equals("uk")) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   851
            if (!ukSet.contains(s2)) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   852
                return cname.substring(third + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   853
            }
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   854
            return cname.substring(second + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   855
        } else if (s.equals("ar")) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   856
            if (!arSet.contains(s2)) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   857
                return cname.substring(third + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   858
            }
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   859
            return cname.substring(second + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   860
        } else if (s.equals("om")) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   861
            if (!omSet.contains(s2)) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   862
                return cname.substring(third + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   863
            }
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   864
            return cname.substring(second + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   865
        }
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   866
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   867
        /*
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   868
         * XX.AA
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   869
         */
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   870
        if (top1Set.contains(s)) {
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   871
            return cname.substring(second + 1);
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   872
        }
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   873
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   874
        /*
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   875
         * Nothing matched so we can't shorten the string.
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   876
         */
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   877
        return cname;
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   878
     }
1b128726e887 7042550: Reintegrate 6569621
michaelm
parents:
diff changeset
   879
}