Changeset 2169


Ignore:
Timestamp:
Sep 19, 2012, 3:24:45 PM (6 years ago)
Author:
matthijs
Message:

luci: Support channel 12 and 13 on 2.0n.

Before, only channels 1-11 were offered, regardless of the country
configured.

Now, the country selected is used to select either regulatory domain 0,
the safe default which offers only 1-11, or regdomain 1, which also
offers channels 12 and 13. The country to regdomain mapping is taken
from the SIMPL firmware (nyu.js). This has the side effect effect that
the country list subtly changed, but that shouldn't really be a problem.

Additionally, the regdomain is also passed along to the wifi driver. The
wifi driver does not automatically select the right regdomain based on
the country code passed, so the wifi driver needs this explicit
regdomain setting to allow using channel 12 and 13. This has the added
effect that these channels can now be autoselected when the channel is
set to "auto" and that these channels can be used in wifi client mode.

Furthermore, the structure of the country list was changed, so that it
no longer needs to be sorted after loading it. This should improve the
load time of the wireless settings page in the WebGUI.

Closes: #648

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/fon/fonbase/files/lib/fon/config.sh

    r2143 r2169  
    356356                        config_get ht advanced ht
    357357                        config_get country advanced country
     358                        # Lookup the regdomain for the country
     359                        regdom=$(echo "for i, v in ipairs(loadfile('/etc/3166en.db.lua')()) do if v[1] == '$country' then print(v[3]) end end" | lua)
    358360                        uci_set "wireless" "$wifi_device" "type" "rt3052"
    359361                        uci_set "wireless" "$wifi_device" "ht" "${ht:-40}"
    360362                        uci_set "wireless" "$wifi_device" "country" "${country:-ES}"
     363                        uci_set "wireless" "$wifi_device" "regdom" "${regdom:-0}"
    361364                        uci_set "wireless" "$wifi_device" "mode" "$mode"
    362365                        local wifi_switch=`cat /proc/gpio_switch`
  • trunk/fon/ra_wifi/files/lib/wifi/rt3052.sh

    r2068 r2169  
    99        config_get ht $device ht
    1010        config_get country $device country
     11        config_get regdom $device regdom
    1112        ssid2=`uci get fon.public.essid`
    1213        [ ! -z "$ssid2" ] && ssid2="FON_$ssid2"
     
    2627#The word of "Default" must not be removed
    2728Default
    28 CountryRegion=0
     29CountryRegion=${regdom}
    2930CountryRegionABand=7
    3031CountryCode=${country:-ES}
  • trunk/luci/modules/admin-fon/luasrc/model/cbi/fon_wifi/main.lua

    r2040 r2169  
    8484-- point signals, so don't offer channel selection in wifi mode.
    8585if wanmode ~= "wifi" and wanmode ~= "wifi-bridge" then
    86         c = s:option(ListValue, "channel", translate("wifi_channel", "Channel"))
    87         c:value("auto", translate("wifi_automatic", "Automatic"))
     86        channels = s:option(ListValue, "channel", translate("wifi_channel", "Channel"))
     87        channels:value("auto", translate("wifi_automatic", "Automatic"))
     88        -- This adds channels 1-11, which are available everywhere.
     89        -- Below, channels 12 and 13 are added for countries where they
     90        -- are allowed.
    8891        for i = 1,11 do
    89                 c:value(i, i)
     92                channels:value(i, i)
    9093        end
    9194end
     
    108111        -- HT40 mode is only available in n-only mode.
    109112        r:depends("bgmode", "6")
    110         local util = require "luci.util"
     113end
     114
     115-- 2.0g does not support channel 12 and 13 due to limitations in the
     116-- HAL.
     117if device == "fonera20n" and channels then
    111118        local c3166 = loadfile((os.getenv("LUCI_SYSROOT") or "") .. "/etc/3166en.db.lua")()
    112119        c = s:option(ListValue, "country", translate("wifi_country", "Country"))
    113120        c.default = "ES"
    114         for cc, cname in util.vspairs(c3166) do
    115                 c:value(string.upper(cc), cname)
     121
     122        -- Find out the country selected. Using formvalue makes sure that it's
     123        -- not possible to change the country to something not supporting
     124        -- channel 12/13 and set the channel to 12 or 13 at the same time.
     125        selected_country = c:formvalue(s.section) or c:cfgvalue(s.section)
     126        for i, info in ipairs(c3166) do
     127                cc, cname, regdom = unpack(info)
     128                c:value(cc, cname)
     129
     130                -- If the currently selected country is in regdomain 1, allow
     131                -- channel 12 and 13. We can't add dependencies for this, since
     132                -- cbi does not support dependencies for individual values, only
     133                -- for options.
     134                if selected_country == cc and regdom == 1 then
     135                        channels:value(12, 12)
     136                        channels:value(13, 13)
     137                end
    116138        end
    117139end
     140
    118141
    119142p = Template('fon_wifi/wifi_scan_ui')
  • trunk/luci/modules/admin-fon/root/etc/3166en.db.lua

    r267 r2169  
    1 return { ["es"] = "SPAIN", ["gs"] = "SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS", ["is"] = "ICELAND", ["dk"] = "DENMARK", ["ms"] = "MONTSERRAT", ["ls"] = "LESOTHO", ["cc"] = "COCOS (KEELING) ISLANDS", ["ec"] = "ECUADOR", ["ps"] = "PALESTINIAN TERRITORY, OCCUPIED", ["rs"] = "SERBIA", ["tr"] = "TURKEY", ["pk"] = "PAKISTAN", ["mc"] = "MONACO", ["lc"] = "SAINT LUCIA", ["nc"] = "NEW CALEDONIA", ["fk"] = "FALKLAND ISLANDS (MALVINAS)", ["sc"] = "SEYCHELLES", ["hk"] = "HONG KONG", ["as"] = "AMERICAN SAMOA", ["tc"] = "TURKS AND CAICOS ISLANDS", ["mk"] = "MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF", ["bs"] = "BAHAMAS", ["au"] = "AUSTRALIA", ["er"] = "ERITREA", ["fr"] = "FRANCE", ["gr"] = "GREECE", ["hr"] = "CROATIA", ["ir"] = "IRAN, ISLAMIC REPUBLIC OF", ["dj"] = "DJIBOUTI", ["kr"] = "KOREA, REPUBLIC OF", ["bz"] = "BELIZE", ["cz"] = "CZECH REPUBLIC", ["bb"] = "BARBADOS", ["zm"] = "ZAMBIA", ["pr"] = "PUERTO RICO", ["ye"] = "YEMEN", ["eh"] = "WESTERN SAHARA", ["sr"] = "SURINAME", ["sn"] = "SENEGAL", ["pa"] = "PANAMA", ["vg"] = "VIRGIN ISLANDS, BRITISH", ["vn"] = "VIET NAM", ["lb"] = "LEBANON", ["sj"] = "SVALBARD AND JAN MAYEN", ["tj"] = "TAJIKISTAN", ["az"] = "AZERBAIJAN", ["fj"] = "FIJI", ["ml"] = "MALI", ["vu"] = "VANUATU", ["sb"] = "SOLOMON ISLANDS", ["uz"] = "UZBEKISTAN", ["ar"] = "ARGENTINA", ["br"] = "BRAZIL", ["cr"] = "COSTA RICA", ["gq"] = "EQUATORIAL GUINEA", ["ly"] = "LIBYAN ARAB JAMAHIRIYA", ["ky"] = "CAYMAN ISLANDS", ["uy"] = "URUGUAY", ["um"] = "UNITED STATES MINOR OUTLYING ISLANDS", ["py"] = "PARAGUAY", ["ci"] = "TE D'IVOIRE", ["bi"] = "BURUNDI", ["ca"] = "CANADA", ["ba"] = "BOSNIA AND HERZEGOVINA", ["cy"] = "CYPRUS", ["by"] = "BELARUS", ["ga"] = "GABON", ["us"] = "UNITED STATES", ["gy"] = "GUYANA", ["gb"] = "UNITED KINGDOM", ["ae"] = "UNITED ARAB EMIRATES", ["ua"] = "UKRAINE", ["ug"] = "UGANDA", ["ni"] = "NICARAGUA", ["tv"] = "TUVALU", ["na"] = "NAMIBIA", ["ma"] = "MOROCCO", ["la"] = "LAO PEOPLE'S DEMOCRATIC REPUBLIC", ["sa"] = "SAUDI ARABIA", ["tm"] = "TURKMENISTAN", ["gi"] = "GIBRALTAR", ["fi"] = "FINLAND", ["tn"] = "TUNISIA", ["va"] = "HOLY SEE (VATICAN CITY STATE)", ["aq"] = "ANTARCTICA", ["tt"] = "TRINIDAD AND TOBAGO", ["to"] = "TONGA", ["gp"] = "GUADELOUPE", ["tk"] = "TOKELAU", ["tg"] = "TOGO", ["jp"] = "JAPAN", ["kp"] = "KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF", ["bh"] = "BAHRAIN", ["ch"] = "SWITZERLAND", ["np"] = "NEPAL", ["it"] = "ITALY", ["lk"] = "SRI LANKA", ["cx"] = "CHRISTMAS ISLAND", ["tz"] = "TANZANIA, UNITED REPUBLIC OF", ["tw"] = "TAIWAN, PROVINCE OF CHINA", ["sy"] = "SYRIAN ARAB REPUBLIC", ["se"] = "SWEDEN", ["ph"] = "PHILIPPINES", ["sz"] = "SWAZILAND", ["ws"] = "SAMOA", ["sd"] = "SUDAN", ["th"] = "THAILAND", ["ax"] = "LAND ISLANDS", ["za"] = "SOUTH AFRICA", ["sh"] = "SAINT HELENA", ["so"] = "SOMALIA", ["si"] = "SLOVENIA", ["sk"] = "SLOVAKIA", ["gh"] = "GHANA", ["sg"] = "SINGAPORE", ["mh"] = "MARSHALL ISLANDS", ["sl"] = "SIERRA LEONE", ["kh"] = "CAMBODIA", ["bo"] = "BOLIVIA", ["gw"] = "GUINEA-BISSAU", ["do"] = "DOMINICAN REPUBLIC", ["co"] = "COLOMBIA", ["wf"] = "WALLIS AND FUTUNA", ["mt"] = "MALTA", ["sm"] = "SAN MARINO", ["vc"] = "SAINT VINCENT AND THE GRENADINES", ["pw"] = "PALAU", ["cg"] = "CONGO", ["rw"] = "RWANDA", ["eg"] = "EGYPT", ["pm"] = "SAINT PIERRE AND MIQUELON", ["kw"] = "KUWAIT", ["bg"] = "BULGARIA", ["ag"] = "ANTIGUA AND BARBUDA", ["ro"] = "ROMANIA", ["kg"] = "KYRGYZSTAN", ["ng"] = "NIGERIA", ["mg"] = "MADAGASCAR", ["sv"] = "EL SALVADOR", ["gg"] = "GUERNSEY", ["nu"] = "NIUE", ["nr"] = "NAURU", ["jo"] = "JORDAN", ["io"] = "BRITISH INDIAN OCEAN TERRITORY", ["bw"] = "BOTSWANA", ["aw"] = "ARUBA", ["fo"] = "FAROE ISLANDS", ["bl"] = "LEMY", ["kz"] = "KAZAKHSTAN", ["re"] = "REUNION", ["an"] = "NETHERLANDS ANTILLES", ["bn"] = "BRUNEI DARUSSALAM", ["cn"] = "CHINA", ["qa"] = "QATAR", ["cv"] = "CAPE VERDE", ["ki"] = "KIRIBATI", ["ai"] = "ANGUILLA", ["am"] = "ARMENIA", ["cf"] = "CENTRAL AFRICAN REPUBLIC", ["pe"] = "PERU", ["pg"] = "PAPUA NEW GUINEA", ["vi"] = "VIRGIN ISLANDS, U.S.", ["om"] = "OMAN", ["lv"] = "LATVIA", ["af"] = "AFGHANISTAN", ["bf"] = "BURKINA FASO", ["no"] = "NORWAY", ["mp"] = "NORTHERN MARIANA ISLANDS", ["mf"] = "SAINT MARTIN", ["nf"] = "NORFOLK ISLAND", ["gf"] = "FRENCH GUIANA", ["ne"] = "NIGER", ["nz"] = "NEW ZEALAND", ["pn"] = "PITCAIRN", ["in"] = "INDIA", ["tf"] = "FRENCH SOUTHERN TERRITORIES", ["kn"] = "SAINT KITTS AND NEVIS", ["bv"] = "BOUVET ISLAND", ["mm"] = "MYANMAR", ["pf"] = "FRENCH POLYNESIA", ["gn"] = "GUINEA", ["hn"] = "HONDURAS", ["dm"] = "DOMINICA", ["cm"] = "CAMEROON", ["bm"] = "BERMUDA", ["gu"] = "GUAM", ["mz"] = "MOZAMBIQUE", ["mr"] = "MAURITANIA", ["mn"] = "MONGOLIA", ["cu"] = "CUBA", ["ru"] = "RUSSIAN FEDERATION", ["ee"] = "ESTONIA", ["de"] = "GERMANY", ["mv"] = "MALDIVES", ["be"] = "BELGIUM", ["mu"] = "MAURITIUS", ["lu"] = "LUXEMBOURG", ["mx"] = "MEXICO", ["yt"] = "MAYOTTE", ["me"] = "MONTENEGRO", ["mq"] = "MARTINIQUE", ["ke"] = "KENYA", ["je"] = "JERSEY", ["ie"] = "IRELAND", ["st"] = "SAO TOME AND PRINCIPE", ["ge"] = "GEORGIA", ["ve"] = "VENEZUELA", ["km"] = "COMOROS", ["jm"] = "JAMAICA", ["im"] = "ISLE OF MAN", ["hm"] = "HEARD ISLAND AND MCDONALD ISLANDS", ["gm"] = "GAMBIA", ["fm"] = "MICRONESIA, FEDERATED STATES OF", ["my"] = "MALAYSIA", ["cl"] = "CHILE", ["mw"] = "MALAWI", ["al"] = "ALBANIA", ["ht"] = "HAITI", ["et"] = "ETHIOPIA", ["mo"] = "MACAO", ["ao"] = "ANGOLA", ["ck"] = "COOK ISLANDS", ["li"] = "LIECHTENSTEIN", ["lr"] = "LIBERIA", ["cd"] = "CONGO, THE DEMOCRATIC REPUBLIC OF THE", ["pt"] = "PORTUGAL", ["ad"] = "ANDORRA", ["bd"] = "BANGLADESH", ["dz"] = "ALGERIA", ["lt"] = "LITHUANIA", ["md"] = "MOLDOVA, REPUBLIC OF", ["tl"] = "TIMOR-LESTE", ["zw"] = "ZIMBABWE", ["iq"] = "IRAQ", ["id"] = "INDONESIA", ["pl"] = "POLAND", ["gd"] = "GRENADA", ["nl"] = "NETHERLANDS", ["at"] = "AUSTRIA", ["bt"] = "BHUTAN", ["il"] = "ISRAEL", ["td"] = "CHAD", ["gl"] = "GREENLAND", ["hu"] = "HUNGARY", ["bj"] = "BENIN", ["gt"] = "GUATEMALA" }
     1-- Returns country code -> {name, regdomain}
     2-- Regdomain is 0 for the default, limited domain and 1 for the
     3-- regdomain supporting wifi channel 12 and 13.
     4return {
     5        {"AF", "AFGHANISTAN", 0},
     6        {"AL", "ALBANIA", 1},
     7        {"DZ", "ALGERIA", 1},
     8        {"AS", "AMERICAN SAMOA", 0},
     9        {"AD", "ANDORRA", 0},
     10        {"AO", "ANGOLA", 0},
     11        {"AI", "ANGUILLA", 0},
     12        {"AQ", "ANTARCTICA", 0},
     13        {"AG", "ANTIGUA/BARBUDA", 0},
     14        {"AR", "ARGENTINA", 1},
     15        {"AM", "ARMENIA", 1},
     16        {"AW", "ARUBA", 0},
     17        {"AU", "AUSTRALIA", 1},
     18        {"AT", "AUSTRIA", 1},
     19        {"AZ", "AZERBAIJAN", 1},
     20        {"BS", "BAHAMAS", 0},
     21        {"BH", "BAHRAIN", 1},
     22        {"BD", "BANGLADESH", 0},
     23        {"BB", "BARBADOS", 0},
     24        {"BY", "BELARUS", 1},
     25        {"BE", "BELGIUM", 1},
     26        {"BZ", "BELIZE", 1},
     27        {"BJ", "BENIN", 0},
     28        {"BM", "BERMUDA", 0},
     29        {"BT", "BHUTAN", 0},
     30        {"BO", "BOLIVIA", 1},
     31        {"BA", "BOSNIA/HERZEGOVINA", 0},
     32        {"BW", "BOTSWANA", 0},
     33        {"BV", "BOUVET ISLAND", 0},
     34        {"BR", "BRAZIL", 1},
     35        {"BG", "BULGARIA", 1},
     36        {"BF", "BURKINA FASO", 0},
     37        {"BI", "BURUNDI", 0},
     38        {"KH", "CAMBODIA", 0},
     39        {"CM", "CAMEROON", 0},
     40        {"CA", "CANADA", 0},
     41        {"CV", "CAPE VERDE", 0},
     42        {"KY", "CAYMAN ISLANDS", 0},
     43        {"TD", "CHAD", 0},
     44        {"CL", "CHILE", 1},
     45        {"CN", "CHINA", 1},
     46        {"CX", "CHRISTMAS ISLAND", 0},
     47        {"CO", "COLOMBIA", 0},
     48        {"KM", "COMOROS", 0},
     49        {"CG", "CONGO", 0},
     50        {"CD", "CONGO", 0},
     51        {"CK", "COOK ISLANDS", 0},
     52        {"CR", "COSTA RICA", 1},
     53        {"HR", "CROATIA", 0},
     54        {"CU", "CUBA", 0},
     55        {"CY", "CYPRUS", 1},
     56        {"CZ", "CZECH REPUBLIC", 1},
     57        {"DK", "DENMARK", 1},
     58        {"DJ", "DJIBOUTI", 0},
     59        {"DM", "DOMINICA", 0},
     60        {"DO", "DOMINICAN REPUBLIC", 0},
     61        {"EC", "ECUADOR", 1},
     62        {"EG", "EGYPT", 1},
     63        {"SV", "EL SALVADOR", 1},
     64        {"GQ", "EQUATORIAL GUINEA", 0},
     65        {"ER", "ERITREA", 0},
     66        {"EE", "ESTONIA", 1},
     67        {"ET", "ETHIOPIA", 0},
     68        {"FO", "FAROE ISLANDS", 0},
     69        {"FJ", "FIJI", 0},
     70        {"FI", "FINLAND", 1},
     71        {"FR", "FRANCE", 1},
     72        {"GA", "GABON", 0},
     73        {"GM", "GAMBIA", 0},
     74        {"GE", "GEORGIA", 1},
     75        {"DE", "GERMANY", 1},
     76        {"GH", "GHANA", 0},
     77        {"GI", "GIBRALTAR", 0},
     78        {"GR", "GREECE", 1},
     79        {"GL", "GREENLAND", 0},
     80        {"GD", "GRENADA", 0},
     81        {"GP", "GUADELOUPE", 0},
     82        {"GU", "GUAM", 0},
     83        {"GT", "GUATEMALA", 0},
     84        {"GG", "GUERNSEY", 0},
     85        {"GW", "GUINEA-BISSAU", 0},
     86        {"GN", "GUINEA", 0},
     87        {"GY", "GUYANA", 0},
     88        {"HT", "HAITI", 0},
     89        {"VA", "VATICAN", 0},
     90        {"HN", "HONDURAS", 1},
     91        {"HK", "HONG KONG", 0},
     92        {"HU", "HUNGARY", 1},
     93        {"IS", "ICELAND", 1},
     94        {"IN", "INDIA", 1},
     95        {"ID", "INDONESIA", 1},
     96        {"IR", "IRAN", 1},
     97        {"IQ", "IRAQ", 0},
     98        {"IE", "IRELAND", 1},
     99        {"IM", "ISLE OF MAN", 0},
     100        {"IL", "ISRAEL", 1},
     101        {"IT", "ITALY", 1},
     102        {"JM", "JAMAICA", 0},
     103        {"JP", "JAPAN", 1},
     104        {"JE", "JERSEY", 0},
     105        {"JO", "JORDAN", 1},
     106        {"KZ", "KAZAKHSTAN", 1},
     107        {"KE", "KENYA", 0},
     108        {"KI", "KIRIBATI", 0},
     109        {"KW", "KUWAIT", 1},
     110        {"KG", "KYRGYZSTAN", 0},
     111        {"AX", "LAND ISLANDS", 0},
     112        {"LV", "LATVIA", 1},
     113        {"LB", "LEBANON", 1},
     114        {"BL", "LEMY", 0},
     115        {"LS", "LESOTHO", 0},
     116        {"LR", "LIBERIA", 0},
     117        {"LY", "LIBYA", 0},
     118        {"LI", "LIECHTENSTEIN", 1},
     119        {"LT", "LITHUANIA", 1},
     120        {"LU", "LUXEMBOURG", 1},
     121        {"MO", "MACAO", 1},
     122        {"MK", "MACEDONIA", 1},
     123        {"MG", "MADAGASCAR", 0},
     124        {"MW", "MALAWI", 0},
     125        {"MY", "MALAYSIA", 1},
     126        {"MV", "MALDIVES", 0},
     127        {"ML", "MALI", 0},
     128        {"MT", "MALTA", 0},
     129        {"MH", "MARSHALL ISLANDS", 0},
     130        {"MQ", "MARTINIQUE", 0},
     131        {"MR", "MAURITANIA", 0},
     132        {"MU", "MAURITIUS", 0},
     133        {"YT", "MAYOTTE", 0},
     134        {"MX", "MEXICO", 0},
     135        {"FM", "MICRONESIA", 0},
     136        {"MD", "MOLDOVA", 0},
     137        {"MC", "MONACO", 1},
     138        {"MN", "MONGOLIA", 0},
     139        {"ME", "MONTENEGRO", 0},
     140        {"MS", "MONTSERRAT", 0},
     141        {"MA", "MOROCCO", 0},
     142        {"MZ", "MOZAMBIQUE", 0},
     143        {"MM", "MYANMAR", 0},
     144        {"NA", "NAMIBIA", 1},
     145        {"NR", "NAURU", 0},
     146        {"NP", "NEPAL", 0},
     147        {"NL", "NETHERLANDS", 1},
     148        {"NC", "NEW CALEDONIA", 0},
     149        {"NZ", "NEW ZEALAND", 1},
     150        {"NI", "NICARAGUA", 0},
     151        {"NG", "NIGERIA", 0},
     152        {"NE", "NIGER", 0},
     153        {"NU", "NIUE", 0},
     154        {"NF", "NORFOLK ISLAND", 0},
     155        {"NO", "NORWAY", 0},
     156        {"OM", "OMAN", 1},
     157        {"PK", "PAKISTAN", 1},
     158        {"PW", "PALAU", 0},
     159        {"PS", "PALESTINIA", 0},
     160        {"PA", "PANAMA", 0},
     161        {"PG", "PAPUA NEW GUINEA", 0},
     162        {"PY", "PARAGUAY", 0},
     163        {"PE", "PERU", 1},
     164        {"PH", "PHILIPPINES", 1},
     165        {"PN", "PITCAIRN", 0},
     166        {"PL", "POLAND", 1},
     167        {"PT", "PORTUGAL", 1},
     168        {"PR", "PUERTO RICO", 0},
     169        {"QA", "QATAR", 1},
     170        {"RE", "REUNION", 0},
     171        {"RO", "ROMANIA", 1},
     172        {"RU", "RUSSIA", 1},
     173        {"RW", "RWANDA", 0},
     174        {"WS", "SAMOA", 0},
     175        {"SM", "SAN MARINO", 0},
     176        {"SA", "SAUDI ARABIA", 1},
     177        {"SN", "SENEGAL", 0},
     178        {"RS", "SERBIA", 0},
     179        {"SC", "SEYCHELLES", 0},
     180        {"SL", "SIERRA LEONE", 0},
     181        {"SG", "SINGAPORE", 1},
     182        {"SK", "SLOVAKIA", 1},
     183        {"SI", "SLOVENIA", 1},
     184        {"SB", "SOLOMON ISLANDS", 0},
     185        {"SO", "SOMALIA", 0},
     186        {"ZA", "SOUTH AFRICA", 1},
     187        {"ES", "SPAIN", 1},
     188        {"LK", "SRI LANKA", 0},
     189        {"SD", "SUDAN", 0},
     190        {"SR", "SURINAME", 0},
     191        {"SZ", "SWAZILAND", 0},
     192        {"SE", "SWEDEN", 1},
     193        {"CH", "SWITZERLAND", 1},
     194        {"TW", "TAIWAN", 0},
     195        {"TJ", "TAJIKISTAN", 0},
     196        {"TZ", "TANZANIA", 0},
     197        {"CI", "TE D'IVOIRE", 0},
     198        {"TH", "THAILAND", 1},
     199        {"TL", "TIMOR-LESTE", 0},
     200        {"TG", "TOGO", 0},
     201        {"TK", "TOKELAU", 0},
     202        {"TO", "TONGA", 0},
     203        {"TN", "TUNISIA", 1},
     204        {"TR", "TURKEY", 1},
     205        {"TM", "TURKMENISTAN", 0},
     206        {"TV", "TUVALU", 0},
     207        {"UG", "UGANDA", 0},
     208        {"UA", "UKRAINE", 1},
     209        {"AE", "UNITED ARAB EMIRATES", 1},
     210        {"GB", "UNITED KINGDOM", 1},
     211        {"US", "UNITED STATES", 0},
     212        {"UY", "URUGUAY", 1},
     213        {"UZ", "UZBEKISTAN", 0},
     214        {"VU", "VANUATU", 0},
     215        {"VE", "VENEZUELA", 1},
     216        {"VN", "VIET NAM", 1},
     217        {"YE", "YEMEN", 1},
     218        {"ZM", "ZAMBIA", 0},
     219        {"ZW", "ZIMBABWE", 1}
     220}
Note: See TracChangeset for help on using the changeset viewer.