diff --git a/lib/modules/Calendar.pmod/TZnames.pmod b/lib/modules/Calendar.pmod/TZnames.pmod
index f21c6b0162eca896a011895bb32e3041d9ae3b6d..c078359eae53efe2113906aa3ddfb280f71ee989 100644
--- a/lib/modules/Calendar.pmod/TZnames.pmod
+++ b/lib/modules/Calendar.pmod/TZnames.pmod
@@ -161,7 +161,7 @@ mapping zones =
                   "Mogadishu", "Niamey", "Nouakchott", "Ouagadougou",
                   "Porto-Novo", "Sao_Tome", "Timbuktu", "Ceuta"}),
    "Asia":      ({"Kabul", "Yerevan", "Baku", "Dhaka", "Thimphu", "Brunei",
-                  "Rangoon", "Shanghai", "Urumqi", "Hong_Kong", "Taipei",
+                  "Yangon", "Shanghai", "Urumqi", "Hong_Kong", "Taipei",
                   "Macau", "Nicosia", "Tbilisi", "Dili", "Kolkata", "Jakarta",
                   "Pontianak", "Makassar", "Jayapura", "Tehran", "Baghdad",
                   "Jerusalem", "Tokyo", "Amman", "Almaty", "Qyzylorda",
@@ -213,19 +213,54 @@ mapping abbr2zones =
    "": ({"Europe/Amsterdam", "Europe/Moscow"}),
    "%s": ({"Europe/Belfast", "Europe/Guernsey", "Europe/Isle_of_Man",
        "Europe/Jersey"}),
-   "+02": ({"Europe/Ulyanovsk"}),
-   "+03": ({"Europe/Kirov", "Europe/Astrakhan", "Europe/Ulyanovsk"}),
-   "+04": ({"Europe/Astrakhan", "Europe/Ulyanovsk", "Europe/Kirov",
-       "Asia/Aqtau", "Asia/Oral", "Asia/Aqtobe", "Asia/Qyzylorda"}),
-   "+05": ({"Asia/Aqtau", "Asia/Aqtobe", "Asia/Oral", "Asia/Qyzylorda",
-       "Asia/Almaty", "Europe/Astrakhan", "Europe/Kirov", "Europe/Ulyanovsk"}),
-   "+06": ({"Asia/Almaty", "Asia/Qyzylorda", "Asia/Novosibirsk",
-       "Asia/Tomsk", "Asia/Barnaul", "Asia/Novokuznetsk", "Asia/Aqtobe",
-       "Asia/Aqtau", "Asia/Oral"}),
-   "+07": ({"Asia/Barnaul", "Asia/Novokuznetsk", "Asia/Novosibirsk",
-       "Asia/Tomsk", "Asia/Almaty", "Asia/Qyzylorda"}),
-   "+08": ({"Asia/Novokuznetsk", "Asia/Barnaul", "Asia/Novosibirsk",
-       "Asia/Tomsk"}),
+   "+00": ({"Antarctica/Troll"}),
+   "+01": ({"Etc/GMT-1"}),
+   "+02": ({"Antarctica/Troll", "Etc/GMT-2", "Europe/Ulyanovsk",
+       "Europe/Samara"}),
+   "+03": ({"Antarctica/Syowa", "Etc/GMT-3", "Europe/Istanbul",
+       "Europe/Kirov", "Europe/Minsk", "Europe/Volgograd",
+       "Europe/Astrakhan", "Europe/Ulyanovsk", "Europe/Kaliningrad",
+       "Europe/Samara", "Asia/Yerevan", "Asia/Baku", "Asia/Tbilisi"}),
+   "+04": ({"Asia/Baku", "Asia/Tbilisi", "Asia/Yerevan", "Etc/GMT-4",
+       "Europe/Astrakhan", "Europe/Samara", "Europe/Ulyanovsk",
+       "Europe/Kirov", "Europe/Volgograd", "Asia/Aqtau", "Asia/Oral",
+       "Asia/Aqtobe", "Asia/Yekaterinburg", "Asia/Qyzylorda",
+       "Asia/Ashgabat", "Europe/Istanbul", "Asia/Samarkand"}),
+   "+05": ({"Antarctica/Mawson", "Asia/Aqtau", "Asia/Aqtobe",
+       "Asia/Ashgabat", "Asia/Baku", "Asia/Dushanbe", "Asia/Oral",
+       "Asia/Samarkand", "Asia/Tashkent", "Asia/Yekaterinburg",
+       "Asia/Yerevan", "Etc/GMT-5", "Indian/Kerguelen", "Antarctica/Davis",
+       "Europe/Samara", "Asia/Qyzylorda", "Asia/Tbilisi", "Asia/Almaty",
+       "Asia/Omsk", "Europe/Astrakhan", "Europe/Kirov", "Europe/Ulyanovsk",
+       "Europe/Volgograd", "Asia/Bishkek", "Europe/Moscow"}),
+   "+0530": ({"Asia/Colombo"}),
+   "+06": ({"Antarctica/Vostok", "Asia/Almaty", "Asia/Bishkek", "Asia/Omsk",
+       "Asia/Qyzylorda", "Etc/GMT-6", "Asia/Novosibirsk", "Asia/Tomsk",
+       "Asia/Barnaul", "Asia/Yekaterinburg", "Asia/Novokuznetsk",
+       "Antarctica/Mawson", "Asia/Colombo", "Asia/Aqtobe", "Asia/Aqtau",
+       "Asia/Oral", "Asia/Krasnoyarsk", "Asia/Dushanbe", "Asia/Samarkand",
+       "Asia/Ashgabat", "Asia/Tashkent"}),
+   "+0630": ({"Asia/Colombo"}),
+   "+07": ({"Antarctica/Davis", "Asia/Barnaul", "Asia/Krasnoyarsk",
+       "Asia/Novokuznetsk", "Asia/Novosibirsk", "Asia/Tomsk", "Etc/GMT-7",
+       "Asia/Omsk", "Asia/Almaty", "Asia/Qyzylorda", "Asia/Irkutsk",
+       "Asia/Bishkek", "Asia/Dushanbe", "Asia/Tashkent"}),
+   "+08": ({"Antarctica/Casey", "Asia/Irkutsk", "Etc/GMT-8", "Asia/Chita",
+       "Asia/Krasnoyarsk", "Asia/Novokuznetsk", "Asia/Khandyga",
+       "Asia/Yakutsk", "Asia/Barnaul", "Asia/Novosibirsk", "Asia/Tomsk",
+       "Asia/Ust-Nera"}),
+   "+09": ({"Asia/Chita", "Asia/Khandyga", "Asia/Yakutsk", "Etc/GMT-9",
+       "Asia/Irkutsk", "Asia/Vladivostok", "Asia/Ust-Nera", "Asia/Sakhalin"}),
+   "+10": ({"Antarctica/DumontDUrville", "Asia/Ust-Nera", "Asia/Vladivostok",
+       "Etc/GMT-10", "Asia/Magadan", "Asia/Sakhalin", "Asia/Chita",
+       "Asia/Khandyga", "Asia/Yakutsk", "Asia/Srednekolymsk"}),
+   "+11": ({"Asia/Magadan", "Asia/Sakhalin", "Asia/Srednekolymsk",
+       "Etc/GMT-11", "Asia/Ust-Nera", "Asia/Vladivostok", "Antarctica/Casey",
+       "Asia/Khandyga", "Asia/Anadyr", "Asia/Kamchatka"}),
+   "+12": ({"Asia/Anadyr", "Asia/Kamchatka", "Etc/GMT-12", "Asia/Magadan",
+       "Asia/Srednekolymsk", "Asia/Ust-Nera", "Asia/Sakhalin"}),
+   "+13": ({"Etc/GMT-13", "Asia/Anadyr", "Asia/Kamchatka"}),
+   "+14": ({"Etc/GMT-14", "Asia/Anadyr"}),
    "-00": ({"Antarctica/Troll", "Antarctica/Rothera", "Antarctica/Davis",
        "Antarctica/Casey", "Antarctica/Palmer", "Antarctica/Vostok",
        "Antarctica/Syowa", "America/Rankin_Inlet",
@@ -233,6 +268,18 @@ mapping abbr2zones =
        "Antarctica/Mawson", "America/Inuvik", "Indian/Kerguelen",
        "Antarctica/Macquarie", "America/Resolute", "America/Iqaluit",
        "America/Yellowknife", "America/Pangnirtung", "America/Cambridge_Bay"}),
+   "-01": ({"Etc/GMT+1"}),
+   "-02": ({"Etc/GMT+2"}),
+   "-03": ({"Antarctica/Rothera", "Etc/GMT+3"}),
+   "-04": ({"Etc/GMT+4"}),
+   "-05": ({"Etc/GMT+5"}),
+   "-06": ({"Etc/GMT+6"}),
+   "-07": ({"Etc/GMT+7"}),
+   "-08": ({"Etc/GMT+8"}),
+   "-09": ({"Etc/GMT+9"}),
+   "-10": ({"Etc/GMT+10"}),
+   "-11": ({"Etc/GMT+11"}),
+   "-12": ({"Etc/GMT+12"}),
    "ACDT": ({"Australia/Adelaide", "Australia/Broken_Hill",
        "Australia/Darwin"}),
    "ACST": ({"Australia/Adelaide", "Australia/Broken_Hill",
@@ -267,16 +314,12 @@ mapping abbr2zones =
        "America/Nome", "America/Sitka", "America/Yakutat"}),
    "AKWT": ({"America/Anchorage", "America/Juneau", "America/Metlakatla",
        "America/Nome", "America/Sitka", "America/Yakutat"}),
-   "AMST": ({"America/Campo_Grande", "America/Cuiaba", "Asia/Yerevan",
-       "America/Boa_Vista", "America/Manaus", "America/Porto_Velho",
-       "America/Santarem"}),
+   "AMST": ({"America/Campo_Grande", "America/Cuiaba", "America/Boa_Vista",
+       "America/Manaus", "America/Porto_Velho", "America/Santarem"}),
    "AMT": ({"America/Boa_Vista", "America/Campo_Grande", "America/Cuiaba",
-       "America/Manaus", "America/Porto_Velho", "Asia/Yerevan",
-       "America/Eirunepe", "America/Rio_Branco", "America/Santarem",
-       "Europe/Amsterdam", "America/Asuncion", "Europe/Athens",
-       "Africa/Asmara"}),
-   "ANAST": ({"Asia/Anadyr"}),
-   "ANAT": ({"Asia/Anadyr"}),
+       "America/Manaus", "America/Porto_Velho", "America/Eirunepe",
+       "America/Rio_Branco", "America/Santarem", "Europe/Amsterdam",
+       "America/Asuncion", "Europe/Athens", "Africa/Asmara"}),
    "ANT": ({"America/Aruba", "America/Curacao"}),
    "AOT": ({"Africa/Luanda"}),
    "APT": ({"America/Glace_Bay", "America/Goose_Bay", "America/Halifax",
@@ -297,8 +340,6 @@ mapping abbr2zones =
        "America/Argentina/Salta", "America/Argentina/San_Juan",
        "America/Argentina/San_Luis", "America/Argentina/Tucuman",
        "America/Argentina/Ushuaia", "America/Rosario", "Antarctica/Palmer"}),
-   "ASHST": ({"Asia/Ashgabat"}),
-   "ASHT": ({"Asia/Ashgabat"}),
    "AST": ({"America/Anguilla", "America/Antigua", "America/Aruba",
        "America/Barbados", "America/Blanc-Sablon", "America/Curacao",
        "America/Dominica", "America/Glace_Bay", "America/Goose_Bay",
@@ -311,17 +352,13 @@ mapping abbr2zones =
        "Asia/Kuwait", "Asia/Qatar", "Asia/Riyadh", "Atlantic/Bermuda",
        "America/Miquelon", "America/Pangnirtung"}),
    "AWDT": ({"Australia/Perth"}),
-   "AWST": ({"Antarctica/Casey", "Australia/Perth"}),
+   "AWST": ({"Australia/Perth"}),
    "AWT": ({"America/Glace_Bay", "America/Goose_Bay", "America/Halifax",
        "America/Moncton", "Atlantic/Bermuda", "America/Blanc-Sablon",
        "America/Pangnirtung", "America/Puerto_Rico"}),
    "AZOMT": ({"Atlantic/Azores"}),
    "AZOST": ({"Atlantic/Azores"}),
    "AZOT": ({"Atlantic/Azores"}),
-   "AZST": ({"Asia/Baku"}),
-   "AZT": ({"Asia/Baku"}),
-   "BAKST": ({"Asia/Baku"}),
-   "BAKT": ({"Asia/Baku"}),
    "BDST": ({"Asia/Dhaka", "Europe/Dublin", "Europe/Gibraltar",
        "Europe/London"}),
    "BDT": ({"Asia/Dhaka", "America/Adak", "America/Nome"}),
@@ -347,12 +384,11 @@ mapping abbr2zones =
        "Pacific/Midway", "Pacific/Pago_Pago", "America/Adak", "America/Nome",
        "Europe/Dublin", "Europe/Gibraltar"}),
    "BTT": ({"Asia/Thimphu"}),
-   "BURT": ({"Asia/Dhaka", "Asia/Kolkata", "Asia/Rangoon"}),
+   "BURT": ({"Asia/Dhaka", "Asia/Kolkata", "Asia/Yangon"}),
    "BWT": ({"America/Adak", "America/Nome"}),
    "CANT": ({"Atlantic/Canary"}),
    "CAPT": ({"America/Anchorage"}),
-   "CAST": ({"Antarctica/Casey", "Africa/Juba", "Africa/Khartoum",
-       "Africa/Gaborone"}),
+   "CAST": ({"Africa/Juba", "Africa/Khartoum", "Africa/Gaborone"}),
    "CAT": ({"Africa/Blantyre", "Africa/Bujumbura", "Africa/Gaborone",
        "Africa/Harare", "Africa/Kigali", "Africa/Lubumbashi",
        "Africa/Lusaka", "Africa/Maputo", "Africa/Windhoek", "Africa/Juba",
@@ -382,19 +418,19 @@ mapping abbr2zones =
        "Europe/Tiraspol"}),
    "CEMT": ({"Europe/Berlin", "Europe/Madrid", "Europe/Monaco",
        "Europe/Paris"}),
-   "CEST": ({"Africa/Ceuta", "Africa/Tunis", "Antarctica/Troll", "CET",
-       "Europe/Amsterdam", "Europe/Andorra", "Europe/Belgrade",
-       "Europe/Berlin", "Europe/Brussels", "Europe/Budapest",
-       "Europe/Copenhagen", "Europe/Gibraltar", "Europe/Luxembourg",
-       "Europe/Madrid", "Europe/Malta", "Europe/Monaco", "Europe/Oslo",
-       "Europe/Paris", "Europe/Prague", "Europe/Rome", "Europe/Stockholm",
-       "Europe/Tirane", "Europe/Vienna", "Europe/Warsaw", "Europe/Zurich",
-       "Europe/Vilnius", "Europe/Lisbon", "Africa/Algiers", "Africa/Tripoli",
-       "Europe/Athens", "Europe/Chisinau", "Europe/Kaliningrad",
-       "Europe/Kiev", "Europe/Minsk", "Europe/Riga", "Europe/Simferopol",
-       "Europe/Sofia", "Europe/Tallinn", "Europe/Uzhgorod",
-       "Europe/Zaporozhye", "Europe/Ljubljana", "Europe/Sarajevo",
-       "Europe/Skopje", "Europe/Zagreb"}),
+   "CEST": ({"Africa/Ceuta", "Africa/Tunis", "CET", "Europe/Amsterdam",
+       "Europe/Andorra", "Europe/Belgrade", "Europe/Berlin",
+       "Europe/Brussels", "Europe/Budapest", "Europe/Copenhagen",
+       "Europe/Gibraltar", "Europe/Luxembourg", "Europe/Madrid",
+       "Europe/Malta", "Europe/Monaco", "Europe/Oslo", "Europe/Paris",
+       "Europe/Prague", "Europe/Rome", "Europe/Stockholm", "Europe/Tirane",
+       "Europe/Vienna", "Europe/Warsaw", "Europe/Zurich", "Europe/Vilnius",
+       "Europe/Lisbon", "Africa/Algiers", "Africa/Tripoli", "Europe/Athens",
+       "Europe/Chisinau", "Europe/Kaliningrad", "Europe/Kiev",
+       "Europe/Minsk", "Europe/Riga", "Europe/Simferopol", "Europe/Sofia",
+       "Europe/Tallinn", "Europe/Uzhgorod", "Europe/Zaporozhye",
+       "Europe/Ljubljana", "Europe/Sarajevo", "Europe/Skopje",
+       "Europe/Zagreb"}),
    "CET": ({"Africa/Algiers", "Africa/Ceuta", "Africa/Tunis", "CET",
        "Europe/Amsterdam", "Europe/Andorra", "Europe/Belgrade",
        "Europe/Berlin", "Europe/Brussels", "Europe/Budapest",
@@ -484,12 +520,8 @@ mapping abbr2zones =
    "CXT": ({"Indian/Christmas"}),
    "ChST": ({"Pacific/Guam", "Pacific/Saipan"}),
    "DACT": ({"Asia/Dhaka"}),
-   "DAVT": ({"Antarctica/Davis"}),
-   "DDUT": ({"Antarctica/DumontDUrville"}),
    "DFT": ({"Europe/Oslo", "Europe/Paris"}),
    "DMT": ({"Europe/Belfast", "Europe/Dublin"}),
-   "DUSST": ({"Asia/Dushanbe"}),
-   "DUST": ({"Asia/Dushanbe"}),
    "E%sT": ({"America/Montreal", "America/Coral_Harbour"}),
    "EASST": ({"Pacific/Easter"}),
    "EAST": ({"Pacific/Easter", "Indian/Antananarivo"}),
@@ -513,19 +545,19 @@ mapping abbr2zones =
    "EEST": ({"Africa/Cairo", "Asia/Amman", "Asia/Beirut", "Asia/Damascus",
        "Asia/Gaza", "Asia/Hebron", "Asia/Nicosia", "EET", "Europe/Athens",
        "Europe/Bucharest", "Europe/Chisinau", "Europe/Helsinki",
-       "Europe/Istanbul", "Europe/Kiev", "Europe/Riga", "Europe/Sofia",
-       "Europe/Tallinn", "Europe/Uzhgorod", "Europe/Vilnius",
-       "Europe/Zaporozhye", "Europe/Kaliningrad", "Europe/Minsk",
-       "Europe/Moscow", "Europe/Samara", "Europe/Simferopol",
-       "Europe/Tiraspol", "Europe/Warsaw"}),
+       "Europe/Kiev", "Europe/Riga", "Europe/Sofia", "Europe/Tallinn",
+       "Europe/Uzhgorod", "Europe/Vilnius", "Europe/Zaporozhye",
+       "Europe/Istanbul", "Europe/Kaliningrad", "Europe/Minsk",
+       "Europe/Moscow", "Europe/Simferopol", "Europe/Tiraspol",
+       "Europe/Warsaw"}),
    "EET": ({"Africa/Cairo", "Africa/Tripoli", "Asia/Amman", "Asia/Beirut",
        "Asia/Damascus", "Asia/Gaza", "Asia/Hebron", "Asia/Nicosia", "EET",
        "Europe/Athens", "Europe/Bucharest", "Europe/Chisinau",
-       "Europe/Helsinki", "Europe/Istanbul", "Europe/Kaliningrad",
-       "Europe/Kiev", "Europe/Riga", "Europe/Sofia", "Europe/Tallinn",
-       "Europe/Uzhgorod", "Europe/Vilnius", "Europe/Zaporozhye",
-       "Europe/Minsk", "Europe/Moscow", "Europe/Simferopol", "Europe/Samara",
-       "Europe/Tiraspol", "Europe/Warsaw"}),
+       "Europe/Helsinki", "Europe/Kaliningrad", "Europe/Kiev", "Europe/Riga",
+       "Europe/Sofia", "Europe/Tallinn", "Europe/Uzhgorod", "Europe/Vilnius",
+       "Europe/Zaporozhye", "Europe/Istanbul", "Europe/Minsk",
+       "Europe/Moscow", "Europe/Simferopol", "Europe/Tiraspol",
+       "Europe/Warsaw"}),
    "EGST": ({"America/Scoresbysund"}),
    "EGT": ({"America/Scoresbysund", "Atlantic/Jan_Mayen"}),
    "EHDT": ({"America/Santo_Domingo"}),
@@ -564,7 +596,6 @@ mapping abbr2zones =
        "EST5EDT", "America/Cancun", "America/Grand_Turk",
        "America/Indiana/Tell_City", "America/Jamaica",
        "America/Santo_Domingo"}),
-   "FET": ({"Europe/Kaliningrad", "Europe/Minsk"}),
    "FFMT": ({"America/Martinique"}),
    "FJST": ({"Pacific/Fiji"}),
    "FJT": ({"Pacific/Fiji"}),
@@ -573,13 +604,9 @@ mapping abbr2zones =
    "FMT": ({"Africa/Freetown", "Atlantic/Madeira"}),
    "FNST": ({"America/Noronha"}),
    "FNT": ({"America/Noronha"}),
-   "FRUST": ({"Asia/Bishkek"}),
-   "FRUT": ({"Asia/Bishkek"}),
    "GALT": ({"Pacific/Galapagos"}),
    "GAMT": ({"Pacific/Gambier"}),
    "GBGT": ({"America/Guyana"}),
-   "GEST": ({"Asia/Tbilisi"}),
-   "GET": ({"Asia/Tbilisi"}),
    "GFT": ({"America/Cayenne"}),
    "GHST": ({"Africa/Accra"}),
    "GILT": ({"Pacific/Tarawa"}),
@@ -592,32 +619,6 @@ mapping abbr2zones =
        "Europe/Guernsey", "Europe/Isle_of_Man", "Europe/Jersey",
        "Europe/London", "Europe/Gibraltar", "Africa/Malabo", "Africa/Niamey",
        "Africa/Porto-Novo"}),
-   "GMT+1": ({"Etc/GMT+1"}),
-   "GMT+10": ({"Etc/GMT+10"}),
-   "GMT+11": ({"Etc/GMT+11"}),
-   "GMT+12": ({"Etc/GMT+12"}),
-   "GMT+2": ({"Etc/GMT+2"}),
-   "GMT+3": ({"Etc/GMT+3"}),
-   "GMT+4": ({"Etc/GMT+4"}),
-   "GMT+5": ({"Etc/GMT+5"}),
-   "GMT+6": ({"Etc/GMT+6"}),
-   "GMT+7": ({"Etc/GMT+7"}),
-   "GMT+8": ({"Etc/GMT+8"}),
-   "GMT+9": ({"Etc/GMT+9"}),
-   "GMT-1": ({"Etc/GMT-1"}),
-   "GMT-10": ({"Etc/GMT-10"}),
-   "GMT-11": ({"Etc/GMT-11"}),
-   "GMT-12": ({"Etc/GMT-12"}),
-   "GMT-13": ({"Etc/GMT-13"}),
-   "GMT-14": ({"Etc/GMT-14"}),
-   "GMT-2": ({"Etc/GMT-2"}),
-   "GMT-3": ({"Etc/GMT-3"}),
-   "GMT-4": ({"Etc/GMT-4"}),
-   "GMT-5": ({"Etc/GMT-5"}),
-   "GMT-6": ({"Etc/GMT-6"}),
-   "GMT-7": ({"Etc/GMT-7"}),
-   "GMT-8": ({"Etc/GMT-8"}),
-   "GMT-9": ({"Etc/GMT-9"}),
    "GST": ({"Asia/Dubai", "Asia/Muscat", "Atlantic/South_Georgia",
        "Pacific/Guam", "Asia/Bahrain", "Asia/Qatar"}),
    "GYT": ({"America/Guyana"}),
@@ -637,47 +638,37 @@ mapping abbr2zones =
    "IDT": ({"Asia/Jerusalem", "Asia/Tel_Aviv", "Asia/Ho_Chi_Minh",
        "Asia/Gaza", "Asia/Hebron", "Asia/Vientiane", "Asia/Hanoi",
        "Asia/Phnom_Penh"}),
-   "IHST": ({"Asia/Colombo"}),
    "IMT": ({"Asia/Irkutsk", "Europe/Istanbul", "Europe/Sofia"}),
    "IOT": ({"Indian/Chagos"}),
    "IRDT": ({"Asia/Tehran"}),
-   "IRKST": ({"Asia/Irkutsk"}),
-   "IRKT": ({"Asia/Irkutsk", "Asia/Chita"}),
    "IRST": ({"Asia/Tehran"}),
    "ISST": ({"Atlantic/Reykjavik"}),
-   "IST": ({"Asia/Colombo", "Asia/Jerusalem", "Asia/Kolkata",
-       "Asia/Tel_Aviv", "Europe/Dublin", "Asia/Thimphu", "Asia/Kathmandu",
-       "Asia/Gaza", "Asia/Hebron", "Atlantic/Reykjavik", "Asia/Karachi",
-       "Asia/Dhaka", "Europe/Belfast"}),
+   "IST": ({"Asia/Jerusalem", "Asia/Kolkata", "Asia/Tel_Aviv",
+       "Europe/Dublin", "Asia/Thimphu", "Asia/Kathmandu", "Asia/Gaza",
+       "Asia/Hebron", "Atlantic/Reykjavik", "Asia/Karachi", "Asia/Dhaka",
+       "Europe/Belfast"}),
    "JAVT": ({"Asia/Jakarta"}),
-   "JCST": ({"Asia/Pyongyang", "Asia/Sakhalin", "Asia/Seoul", "Asia/Tokyo"}),
+   "JCST": ({"Asia/Pyongyang", "Asia/Seoul", "Asia/Tokyo"}),
    "JDT": ({"Asia/Tokyo"}),
    "JMT": ({"Atlantic/St_Helena", "Asia/Jerusalem", "Asia/Tel_Aviv"}),
    "JST": ({"Asia/Tokyo", "Asia/Dili", "Asia/Jakarta", "Asia/Makassar",
        "Asia/Pontianak", "Asia/Taipei", "Asia/Hong_Kong",
        "Asia/Kuala_Lumpur", "Asia/Kuching", "Asia/Singapore", "Asia/Seoul",
        "Asia/Hanoi", "Asia/Ho_Chi_Minh", "Asia/Phnom_Penh", "Asia/Vientiane",
-       "Asia/Sakhalin", "Asia/Pyongyang", "Pacific/Bougainville",
-       "Asia/Rangoon", "Asia/Manila", "Pacific/Nauru"}),
+       "Asia/Pyongyang", "Pacific/Bougainville", "Asia/Yangon",
+       "Asia/Manila", "Pacific/Nauru"}),
    "JWST": ({"Asia/Taipei"}),
    "KART": ({"Asia/Karachi"}),
    "KAST": ({"Asia/Kashgar"}),
    "KDT": ({"Asia/Seoul"}),
-   "KGST": ({"Asia/Bishkek"}),
-   "KGT": ({"Asia/Bishkek"}),
    "KMT": ({"Europe/Kiev", "Europe/Vilnius", "America/Cayman",
        "America/Grand_Turk", "America/Jamaica", "America/St_Vincent"}),
    "KOST": ({"Pacific/Kosrae"}),
-   "KRAST": ({"Asia/Krasnoyarsk"}),
-   "KRAT": ({"Asia/Krasnoyarsk"}),
    "KST": ({"Asia/Pyongyang", "Asia/Seoul"}),
-   "KUYST": ({"Europe/Samara"}),
-   "KUYT": ({"Europe/Samara"}),
    "KWAT": ({"Pacific/Kwajalein"}),
    "LHDT": ({"Australia/Lord_Howe"}),
    "LHST": ({"Australia/Lord_Howe"}),
    "LINT": ({"Pacific/Kiritimati"}),
-   "LKT": ({"Asia/Colombo"}),
    "LMT": ({"Asia/Aden", "Asia/Kuwait", "Asia/Thimphu", "Asia/Riyadh",
        "Africa/Kigali", "Africa/El_Aaiun", "Asia/Jayapura",
        "Pacific/Galapagos", "Africa/Juba", "Africa/Khartoum", "Asia/Amman",
@@ -700,7 +691,7 @@ mapping abbr2zones =
        "Asia/Muscat", "Asia/Kathmandu", "Asia/Makassar", "Asia/Tomsk",
        "Asia/Chita", "Asia/Yakutsk", "Asia/Khandyga", "Asia/Ust-Nera",
        "Asia/Novosibirsk", "Asia/Barnaul", "Asia/Omsk", "Africa/Lagos",
-       "Europe/Ulyanovsk", "Europe/Kirov", "Europe/Samara",
+       "Europe/Kirov", "Europe/Samara", "Europe/Ulyanovsk",
        "America/Guatemala", "Africa/Accra", "America/Thule",
        "America/Godthab", "America/Scoresbysund", "America/Danmarkshavn",
        "Asia/Yekaterinburg", "Asia/Tehran", "Pacific/Fiji", "America/Guyana",
@@ -801,7 +792,7 @@ mapping abbr2zones =
        "Europe/Istanbul", "Europe/Tiraspol", "Europe/Kiev",
        "Europe/Simferopol", "Asia/Tel_Aviv", "Europe/Zaporozhye",
        "Asia/Jerusalem", "Asia/Beirut", "Europe/Moscow", "Asia/Tbilisi",
-       "Indian/Maldives", "Asia/Colombo", "Asia/Kolkata", "Asia/Rangoon",
+       "Indian/Maldives", "Asia/Colombo", "Asia/Kolkata", "Asia/Yangon",
        "Asia/Bangkok", "Asia/Irkutsk", "Pacific/Port_Moresby",
        "Pacific/Bougainville", "Europe/Stockholm", "Europe/Helsinki",
        "Africa/Addis_Ababa", "Africa/Asmara", "Pacific/Auckland",
@@ -813,12 +804,9 @@ mapping abbr2zones =
    "MADMT": ({"Atlantic/Madeira"}),
    "MADST": ({"Atlantic/Madeira"}),
    "MADT": ({"Atlantic/Madeira"}),
-   "MAGST": ({"Asia/Magadan", "Asia/Srednekolymsk", "Asia/Ust-Nera"}),
-   "MAGT": ({"Asia/Magadan", "Asia/Srednekolymsk", "Asia/Ust-Nera"}),
    "MALST": ({"Asia/Kuala_Lumpur", "Asia/Singapore"}),
    "MALT": ({"Asia/Kuala_Lumpur", "Asia/Singapore"}),
    "MART": ({"Pacific/Marquesas"}),
-   "MAWT": ({"Antarctica/Mawson"}),
    "MDDT": ({"America/Cambridge_Bay", "America/Inuvik",
        "America/Yellowknife"}),
    "MDST": ({"Europe/Moscow"}),
@@ -833,7 +821,7 @@ mapping abbr2zones =
    "MET": ({"MET"}),
    "MHT": ({"Pacific/Kwajalein", "Pacific/Majuro"}),
    "MIST": ({"Antarctica/Macquarie"}),
-   "MMT": ({"Asia/Rangoon", "Europe/Moscow", "Indian/Maldives",
+   "MMT": ({"Asia/Yangon", "Europe/Moscow", "Indian/Maldives",
        "America/Managua", "Asia/Makassar", "Europe/Minsk",
        "America/Montevideo", "Africa/Monrovia", "Asia/Colombo"}),
    "MOST": ({"Asia/Macau"}),
@@ -844,16 +832,14 @@ mapping abbr2zones =
        "America/North_Dakota/Beulah", "America/North_Dakota/Center",
        "America/North_Dakota/New_Salem", "America/Phoenix", "America/Regina",
        "America/Swift_Current"}),
-   "MSD": ({"Europe/Tiraspol", "Europe/Moscow", "Europe/Volgograd",
-       "Europe/Simferopol", "Europe/Samara", "Europe/Kaliningrad",
+   "MSD": ({"Europe/Tiraspol", "Europe/Moscow", "Europe/Simferopol",
+       "Europe/Kaliningrad", "Europe/Tallinn", "Europe/Vilnius",
+       "Europe/Chisinau", "Europe/Kiev", "Europe/Minsk", "Europe/Riga",
+       "Europe/Uzhgorod", "Europe/Zaporozhye"}),
+   "MSK": ({"Europe/Moscow", "Europe/Simferopol", "Europe/Tiraspol",
+       "Europe/Minsk", "Europe/Uzhgorod", "Europe/Kaliningrad",
        "Europe/Tallinn", "Europe/Vilnius", "Europe/Chisinau", "Europe/Kiev",
-       "Europe/Minsk", "Europe/Riga", "Europe/Uzhgorod", "Europe/Zaporozhye"}),
-   "MSK": ({"Europe/Minsk", "Europe/Moscow", "Europe/Simferopol",
-       "Europe/Tiraspol", "Europe/Volgograd", "Europe/Samara",
-       "Europe/Uzhgorod", "Europe/Kaliningrad", "Europe/Tallinn",
-       "Europe/Vilnius", "Europe/Chisinau", "Europe/Kiev", "Europe/Riga",
-       "Europe/Zaporozhye"}),
-   "MSM": ({"Europe/Moscow"}),
+       "Europe/Riga", "Europe/Zaporozhye"}),
    "MST": ({"America/Boise", "America/Cambridge_Bay", "America/Chihuahua",
        "America/Creston", "America/Dawson_Creek", "America/Denver",
        "America/Edmonton", "America/Fort_Nelson", "America/Hermosillo",
@@ -897,8 +883,6 @@ mapping abbr2zones =
    "NZDT": ({"Antarctica/McMurdo", "Pacific/Auckland"}),
    "NZMT": ({"Antarctica/McMurdo", "Pacific/Auckland"}),
    "NZST": ({"Antarctica/McMurdo", "Pacific/Auckland"}),
-   "OMSST": ({"Asia/Omsk"}),
-   "OMST": ({"Asia/Omsk"}),
    "P%sT": ({"America/Ensenada"}),
    "PDDT": ({"America/Dawson", "America/Inuvik", "America/Whitehorse"}),
    "PDT": ({"America/Dawson", "America/Los_Angeles", "America/Tijuana",
@@ -907,8 +891,6 @@ mapping abbr2zones =
        "America/Juneau", "America/Metlakatla", "America/Sitka"}),
    "PEST": ({"America/Lima"}),
    "PET": ({"America/Lima"}),
-   "PETST": ({"Asia/Kamchatka"}),
-   "PETT": ({"Asia/Kamchatka"}),
    "PGT": ({"Pacific/Port_Moresby", "Pacific/Bougainville"}),
    "PHOT": ({"Pacific/Enderbury"}),
    "PHST": ({"Asia/Manila"}),
@@ -921,9 +903,9 @@ mapping abbr2zones =
    "PMMT": ({"Pacific/Bougainville", "Pacific/Port_Moresby"}),
    "PMPT": ({"America/Miquelon"}),
    "PMST": ({"America/Miquelon"}),
-   "PMT": ({"Antarctica/DumontDUrville", "America/Paramaribo",
-       "Asia/Pontianak", "Asia/Yekaterinburg", "Europe/Paris",
-       "Africa/Algiers", "Africa/Tunis", "Europe/Monaco", "Europe/Prague"}),
+   "PMT": ({"America/Paramaribo", "Asia/Pontianak", "Asia/Yekaterinburg",
+       "Europe/Paris", "Africa/Algiers", "Africa/Tunis", "Europe/Monaco",
+       "Europe/Prague"}),
    "PMWT": ({"America/Miquelon"}),
    "PNT": ({"Pacific/Pitcairn"}),
    "PONT": ({"Pacific/Pohnpei"}),
@@ -948,13 +930,8 @@ mapping abbr2zones =
    "PYT": ({"America/Asuncion"}),
    "QMT": ({"America/Guayaquil"}),
    "RET": ({"Indian/Reunion"}),
-   "RMT": ({"Europe/Riga", "Asia/Rangoon", "Europe/Rome"}),
-   "ROTT": ({"Antarctica/Rothera"}),
+   "RMT": ({"Europe/Riga", "Asia/Yangon", "Europe/Rome"}),
    "S": ({"Europe/Amsterdam", "Europe/Moscow"}),
-   "SAKST": ({"Asia/Sakhalin"}),
-   "SAKT": ({"Asia/Sakhalin"}),
-   "SAMST": ({"Europe/Samara", "Asia/Samarkand"}),
-   "SAMT": ({"Europe/Samara", "Asia/Samarkand"}),
    "SAST": ({"Africa/Johannesburg", "Africa/Maseru", "Africa/Mbabane",
        "Africa/Windhoek", "Africa/Gaborone"}),
    "SBT": ({"Pacific/Guadalcanal"}),
@@ -967,47 +944,25 @@ mapping abbr2zones =
    "SLST": ({"Africa/Freetown"}),
    "SMT": ({"America/Santiago", "Europe/Simferopol", "Atlantic/Stanley",
        "Asia/Kuala_Lumpur", "Asia/Singapore"}),
-   "SRET": ({"Asia/Srednekolymsk"}),
    "SRT": ({"America/Paramaribo"}),
    "SST": ({"Pacific/Midway", "Pacific/Pago_Pago", "Pacific/Apia"}),
-   "STAT": ({"Europe/Volgograd"}),
-   "SVEST": ({"Asia/Yekaterinburg"}),
-   "SVET": ({"Asia/Yekaterinburg"}),
    "SWAT": ({"Africa/Windhoek"}),
-   "SYOT": ({"Antarctica/Syowa"}),
    "TAHT": ({"Pacific/Tahiti"}),
-   "TASST": ({"Asia/Tashkent"}),
-   "TAST": ({"Asia/Samarkand", "Asia/Tashkent"}),
-   "TBIST": ({"Asia/Tbilisi"}),
-   "TBIT": ({"Asia/Tbilisi"}),
    "TBMT": ({"Asia/Tbilisi"}),
-   "TFT": ({"Indian/Kerguelen"}),
-   "TJT": ({"Asia/Dushanbe"}),
    "TKT": ({"Pacific/Fakaofo"}),
    "TLT": ({"Asia/Dili"}),
-   "TMST": ({"Asia/Ashgabat"}),
-   "TMT": ({"Asia/Ashgabat", "Asia/Tehran", "Europe/Tallinn"}),
+   "TMT": ({"Asia/Tehran", "Europe/Tallinn"}),
    "TOST": ({"Pacific/Tongatapu"}),
    "TOT": ({"Pacific/Tongatapu"}),
-   "TRST": ({"Europe/Istanbul"}),
-   "TRT": ({"Europe/Istanbul"}),
-   "TSAT": ({"Europe/Volgograd"}),
    "TVT": ({"Pacific/Funafuti"}),
    "UCT": ({"Etc/UCT"}),
    "ULAST": ({"Asia/Ulaanbaatar"}),
    "ULAT": ({"Asia/Ulaanbaatar", "Asia/Choibalsan"}),
-   "UTC": ({"Antarctica/Troll", "Etc/UTC"}),
+   "UTC": ({"Etc/UTC"}),
    "UYHST": ({"America/Montevideo"}),
    "UYST": ({"America/Montevideo"}),
    "UYT": ({"America/Montevideo"}),
-   "UZST": ({"Asia/Samarkand", "Asia/Tashkent"}),
-   "UZT": ({"Asia/Samarkand", "Asia/Tashkent"}),
    "VET": ({"America/Caracas"}),
-   "VLAST": ({"Asia/Khandyga", "Asia/Vladivostok"}),
-   "VLAT": ({"Asia/Ust-Nera", "Asia/Vladivostok", "Asia/Khandyga"}),
-   "VOLST": ({"Europe/Volgograd"}),
-   "VOLT": ({"Europe/Volgograd"}),
-   "VOST": ({"Antarctica/Vostok"}),
    "VUST": ({"Pacific/Efate"}),
    "VUT": ({"Pacific/Efate"}),
    "WAKT": ({"Pacific/Wake"}),
@@ -1049,16 +1004,10 @@ mapping abbr2zones =
    "WSDT": ({"Pacific/Apia"}),
    "WSST": ({"Pacific/Apia"}),
    "XJT": ({"Asia/Urumqi"}),
-   "YAKST": ({"Asia/Chita", "Asia/Yakutsk", "Asia/Khandyga"}),
-   "YAKT": ({"Asia/Chita", "Asia/Khandyga", "Asia/Yakutsk", "Asia/Ust-Nera"}),
    "YDDT": ({"America/Dawson", "America/Whitehorse"}),
    "YDT": ({"America/Anchorage", "America/Dawson", "America/Juneau",
        "America/Nome", "America/Sitka", "America/Whitehorse",
        "America/Yakutat"}),
-   "YEKST": ({"Asia/Yekaterinburg"}),
-   "YEKT": ({"Asia/Yekaterinburg"}),
-   "YERST": ({"Asia/Yerevan"}),
-   "YERT": ({"Asia/Yerevan"}),
    "YPT": ({"America/Anchorage", "America/Dawson", "America/Juneau",
        "America/Nome", "America/Sitka", "America/Whitehorse",
        "America/Yakutat"}),
diff --git a/lib/modules/Calendar.pmod/tzdata/LICENSE b/lib/modules/Calendar.pmod/tzdata/LICENSE
index a9b60d8bce450d3fa3dbe699a3b20738bac7b86a..148eb232b6734ea1042000bd813f16cb9d7d0cdc 100644
--- a/lib/modules/Calendar.pmod/tzdata/LICENSE
+++ b/lib/modules/Calendar.pmod/tzdata/LICENSE
@@ -1,4 +1,4 @@
 With a few exceptions, all files in the tz code and data (including
-this one) are in the public domain.  The exceptions are tzcode's
-date.c, newstrftime.3, and strftime.c, which contain material derived
-from BSD and which use the BSD 3-clause license.
+this one) are in the public domain.  The exceptions are date.c,
+newstrftime.3, and strftime.c, which contain material derived from BSD
+and which use the BSD 3-clause license.
diff --git a/lib/modules/Calendar.pmod/tzdata/Makefile b/lib/modules/Calendar.pmod/tzdata/Makefile
index bbe1ba825e81c4c21e34e5903fc488da2b4455d6..f7553a367f17bb379de382f64bafb9110b7ceafc 100644
--- a/lib/modules/Calendar.pmod/tzdata/Makefile
+++ b/lib/modules/Calendar.pmod/tzdata/Makefile
@@ -4,8 +4,8 @@
 # Package name for the code distribution.
 PACKAGE=	tzcode
 
-# Version numbers of the code and data distributions.
-VERSION=	2016f
+# Version number for the distribution, overridden in the 'tarballs' rule below.
+VERSION=	unknown
 
 # Email address for bug reports.
 BUGEMAIL=	tz@iana.org
@@ -101,7 +101,6 @@ PACKRATDATA=
 YEARISTYPE=	./yearistype
 
 # Non-default libraries needed to link.
-# Add -lintl if you want to use 'gettext' on Solaris.
 LDLIBS=
 
 # Add the following to the end of the "CFLAGS=" line as needed.
@@ -109,9 +108,10 @@ LDLIBS=
 #  -DHAVE_DECL_ASCTIME_R=0 if <time.h> does not declare asctime_r
 #  -DHAVE_DIRECT_H if mkdir needs <direct.h> (MS-Windows)
 #  -DHAVE_DOS_FILE_NAMES if file names have drive specifiers etc. (MS-DOS)
-#  -DHAVE_GETTEXT=1 if 'gettext' works (GNU, Linux, Solaris); also see LDLIBS
+#  -DHAVE_GETTEXT=1 if 'gettext' works (e.g., GNU/Linux, FreeBSD, Solaris)
 #  -DHAVE_INCOMPATIBLE_CTIME_R=1 if your system's time.h declares
-#	ctime_r and asctime_r incompatibly with the POSIX standard (Solaris 8).
+#	ctime_r and asctime_r incompatibly with the POSIX standard
+#	(Solaris when _POSIX_PTHREAD_SEMANTICS is not defined).
 #  -DHAVE_INTTYPES_H=1 if you have a pre-C99 compiler with "inttypes.h"
 #  -DHAVE_LINK=0 if your system lacks a link function
 #  -DHAVE_LOCALTIME_R=0 if your system lacks a localtime_r function
@@ -240,7 +240,7 @@ GCC_DEBUG_FLAGS = -Dlint -g3 -O3 -fno-common -fstrict-aliasing \
 CFLAGS=
 
 # Linker flags.  Default to $(LFLAGS) for backwards compatibility
-# to tzcode2012h and earlier.
+# to release 2012h and earlier.
 
 LDFLAGS=	$(LFLAGS)
 
@@ -256,7 +256,7 @@ ZIC=		$(zic) $(ZFLAGS)
 
 ZFLAGS=
 
-# How to use zic to install tzdata binary files.
+# How to use zic to install tz binary files.
 
 ZIC_INSTALL=	$(ZIC) -y $(YEARISTYPE) -d $(DESTDIR)$(TZDIR) $(LEAPSECONDS)
 
@@ -272,16 +272,16 @@ AWK=		awk
 KSHELL=		/bin/bash
 
 # The path where SGML DTDs are kept and the catalog file(s) to use when
-# validating.  The default is appropriate for Ubuntu 13.10.
+# validating.  The default should work on both Debian and Red Hat.
 SGML_TOPDIR= /usr
 SGML_DTDDIR= $(SGML_TOPDIR)/share/xml/w3c-sgml-lib/schema/dtd
 SGML_SEARCH_PATH= $(SGML_DTDDIR)/REC-html401-19991224
 SGML_CATALOG_FILES= \
-  $(SGML_TOPDIR)/share/doc/w3-recs/html/www.w3.org/TR/1999/REC-html401-19991224/HTML4.cat
+  $(SGML_TOPDIR)/share/doc/w3-recs/html/www.w3.org/TR/1999/REC-html401-19991224/HTML4.cat:$(SGML_TOPDIR)/share/sgml/html/4.01/HTML4.cat
 
 # The name, arguments and environment of a program to validate your web pages.
-# See <http://www.jclark.com/sp/> for a validator, and
-# <http://validator.w3.org/source/> for a validation library.
+# See <http://openjade.sourceforge.net/doc/> for a validator, and
+# <https://validator.w3.org/source/> for a validation library.
 VALIDATE = nsgmls
 VALIDATE_FLAGS = -s -B -wall -wno-unused-param
 VALIDATE_ENV = \
@@ -326,7 +326,7 @@ OK_LINE=	'^'$(OK_CHAR)'*$$'
 
 # Flags to give 'tar' when making a distribution.
 # Try to use flags appropriate for GNU tar.
-GNUTARFLAGS=	--numeric-owner --owner=0 --group=0 --mode=go+u,go-w
+GNUTARFLAGS= --numeric-owner --owner=0 --group=0 --mode=go+u,go-w --sort=name
 TARFLAGS=	`if tar $(GNUTARFLAGS) --version >/dev/null 2>&1; \
 		 then echo $(GNUTARFLAGS); \
 		 else :; \
@@ -363,7 +363,7 @@ MANTXTS=	newctime.3.txt newstrftime.3.txt newtzset.3.txt \
 			time2posix.3.txt \
 			tzfile.5.txt tzselect.8.txt zic.8.txt zdump.8.txt \
 			date.1.txt
-COMMON=		CONTRIBUTING LICENSE Makefile NEWS README Theory
+COMMON=		CONTRIBUTING LICENSE Makefile NEWS README Theory version
 WEB_PAGES=	tz-art.htm tz-how-to.html tz-link.htm
 DOCS=		$(MANS) date.1 $(MANTXTS) $(WEB_PAGES)
 PRIMARY_YDATA=	africa antarctica asia australasia \
@@ -378,7 +378,32 @@ DATA=		$(YDATA) $(NDATA) backzone $(TABDATA) \
 			leap-seconds.list yearistype.sh
 AWK_SCRIPTS=	checklinks.awk checktab.awk leapseconds.awk
 MISC=		$(AWK_SCRIPTS) zoneinfo2tdf.pl
-ENCHILADA=	$(COMMON) $(DOCS) $(SOURCES) $(DATA) $(MISC)
+TZS_YEAR=	2050
+TZS=		to$(TZS_YEAR).tzs
+TZS_NEW=	to$(TZS_YEAR)new.tzs
+TZS_DEPS=	$(PRIMARY_YDATA) asctime.c localtime.c \
+			private.h tzfile.h zdump.c zic.c
+ENCHILADA=	$(COMMON) $(DOCS) $(SOURCES) $(DATA) $(MISC) $(TZS)
+
+# Consult these files when deciding whether to rebuild the 'version' file.
+# This list is not the same as the output of 'git ls-files', since
+# .gitignore is not distributed.
+VERSION_DEPS= \
+		CONTRIBUTING LICENSE Makefile NEWS README Theory \
+		africa antarctica asctime.c asia australasia \
+		backward backzone \
+		checklinks.awk checktab.awk \
+		date.1 date.c difftime.c \
+		etcetera europe factory iso3166.tab \
+		leap-seconds.list leapseconds.awk localtime.c \
+		newctime.3 newstrftime.3 newtzset.3 northamerica \
+		pacificnew private.h \
+		southamerica strftime.c systemv \
+		time2posix.3 tz-art.htm tz-how-to.html tz-link.htm \
+		tzfile.5 tzfile.h tzselect.8 tzselect.ksh \
+		workman.sh yearistype.sh \
+		zdump.8 zdump.c zic.8 zic.c \
+		zone.tab zone1970.tab zoneinfo2tdf.pl
 
 # And for the benefit of csh users on systems that assume the user
 # shell should be used to handle commands in Makefiles. . .
@@ -408,10 +433,21 @@ INSTALL:	ALL install date.1
 		cp date $(DESTDIR)$(BINDIR)/.
 		cp -f date.1 $(DESTDIR)$(MANDIR)/man1/.
 
-version.h:
-		(echo 'static char const PKGVERSION[]="($(PACKAGE)) ";' && \
-		 echo 'static char const TZVERSION[]="$(VERSION)";' && \
-		 echo 'static char const REPORT_BUGS_TO[]="$(BUGEMAIL)";') >$@
+version:	$(VERSION_DEPS)
+		{ (type git) >/dev/null 2>&1 && \
+		  V=`git describe --match '[0-9][0-9][0-9][0-9][a-z]*' \
+				--abbrev=7 --dirty` || \
+		  V=$(VERSION); } && \
+		printf '%s\n' "$$V" >$@.out
+		mv $@.out $@
+
+version.h:	version
+		VERSION=`cat version` && printf '%s\n' \
+		  'static char const PKGVERSION[]="($(PACKAGE)) ";' \
+		  "static char const TZVERSION[]=\"$$VERSION\";" \
+		  'static char const REPORT_BUGS_TO[]="$(BUGEMAIL)";' \
+		  >$@.out
+		mv $@.out $@
 
 zdump:		$(TZDOBJS)
 		$(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(TZDOBJS) $(LDLIBS)
@@ -424,7 +460,8 @@ yearistype:	yearistype.sh
 		chmod +x yearistype
 
 leapseconds:	$(LEAP_DEPS)
-		$(AWK) -f leapseconds.awk leap-seconds.list >$@
+		$(AWK) -f leapseconds.awk leap-seconds.list >$@.out
+		mv $@.out $@
 
 # Arguments to pass to submakes of install_data.
 # They can be overridden by later submake arguments.
@@ -477,6 +514,29 @@ posix_packrat:
 
 zones:		$(REDO)
 
+$(TZS_NEW):	$(TDATA) zdump zic
+		mkdir -p tzs.dir
+		$(zic) -d tzs.dir $(TDATA)
+		$(AWK) '/^Link/{print $$1 "\t" $$2 "\t" $$3}' \
+		   $(TDATA) | LC_ALL=C sort >$@.out
+		wd=`pwd` && \
+		zones=`$(AWK) -v wd="$$wd" \
+				'/^Zone/{print wd "/tzs.dir/" $$2}' $(TDATA) \
+			 | LC_ALL=C sort` && \
+		./zdump -i -c $(TZS_YEAR) $$zones >>$@.out
+		sed 's,^TZ=".*tzs\.dir/,TZ=",' $@.out >$@.sed.out
+		rm -fr tzs.dir $@.out
+		mv $@.sed.out $@
+
+# If $(TZS) does not already exist (e.g., old-format tarballs), create it.
+# If it exists but 'make check_tzs' fails, a maintainer should inspect the
+# failed output and fix the inconsistency, perhaps by running 'make force_tzs'.
+$(TZS):
+		$(MAKE) force_tzs
+
+force_tzs:	$(TZS_NEW)
+		cp $(TZS_NEW) $(TZS)
+
 libtz.a:	$(LIBOBJS)
 		$(AR) ru $@ $(LIBOBJS)
 		$(RANLIB) $@
@@ -484,31 +544,34 @@ libtz.a:	$(LIBOBJS)
 date:		$(DATEOBJS)
 		$(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(DATEOBJS) $(LDLIBS)
 
-tzselect:	tzselect.ksh
-		sed \
+tzselect:	tzselect.ksh version
+		VERSION=`cat version` && sed \
 			-e 's|#!/bin/bash|#!$(KSHELL)|g' \
 			-e 's|AWK=[^}]*|AWK=$(AWK)|g' \
 			-e 's|\(PKGVERSION\)=.*|\1='\''($(PACKAGE)) '\''|' \
 			-e 's|\(REPORT_BUGS_TO\)=.*|\1=$(BUGEMAIL)|' \
 			-e 's|TZDIR=[^}]*|TZDIR=$(TZDIR)|' \
-			-e 's|\(TZVERSION\)=.*|\1=$(VERSION)|' \
-			<$? >$@
-		chmod +x $@
+			-e 's|\(TZVERSION\)=.*|\1='"$$VERSION"'|' \
+			<$@.ksh >$@.out
+		chmod +x $@.out
+		mv $@.out $@
 
 check:		check_character_set check_white_space check_links check_sorted \
-		  check_tables check_web
+		  check_tables check_tzs check_web
 
 check_character_set: $(ENCHILADA)
 		LC_ALL=en_US.utf8 && export LC_ALL && \
 		sharp='#' && \
-		! grep -Env $(SAFE_LINE) Makefile $(MANS) date.1 $(MANTXTS) \
-			$(MISC) $(SOURCES) $(WEB_PAGES) && \
+		! grep -Env $(SAFE_LINE) $(MANS) date.1 $(MANTXTS) \
+			$(MISC) $(SOURCES) $(WEB_PAGES) \
+			CONTRIBUTING LICENSE Makefile README version && \
 		! grep -Env $(SAFE_SHARP_LINE) $(TDATA) backzone \
 			leapseconds yearistype.sh zone.tab && \
 		! grep -Env $(OK_LINE) $(ENCHILADA)
 
 check_white_space: $(ENCHILADA)
-		! grep -En ' '$(TAB_CHAR)"|$$(printf '[\f\r\v]')" $(ENCHILADA)
+		patfmt=' \t|[\f\r\v]' && pat=`printf "$$patfmt\\n"` && \
+		! grep -En "$$pat" $(ENCHILADA)
 		! grep -n '[[:space:]]$$' $(ENCHILADA)
 
 CHECK_CC_LIST = { n = split($$1,a,/,/); for (i=2; i<=n; i++) print a[1], a[i]; }
@@ -532,6 +595,9 @@ check_tables:	checktab.awk $(PRIMARY_YDATA) $(ZONETABLES)
 		    || exit; \
 		done
 
+check_tzs:	$(TZS) $(TZS_NEW)
+		diff -u $(TZS) $(TZS_NEW)
+
 check_web:	$(WEB_PAGES)
 		$(VALIDATE_ENV) $(VALIDATE) $(VALIDATE_FLAGS) $(WEB_PAGES)
 
@@ -539,12 +605,12 @@ clean_misc:
 		rm -f core *.o *.out \
 		  date tzselect version.h zdump zic yearistype libtz.a
 clean:		clean_misc
-		rm -fr tzpublic
+		rm -fr *.dir tzdb-*/ $(TZS_NEW)
 
 maintainer-clean: clean
 		@echo 'This command is intended for maintainers to use; it'
 		@echo 'deletes files that may need special tools to rebuild.'
-		rm -f leapseconds $(MANTXTS) *.asc *.tar.gz
+		rm -f leapseconds version $(MANTXTS) $(TZS) *.asc *.tar.*
 
 names:
 		@echo $(ENCHILADA)
@@ -563,7 +629,8 @@ zdump.8.txt:	zdump.8
 zic.8.txt:	zic.8
 
 $(MANTXTS):	workman.sh
-		LC_ALL=C sh workman.sh `expr $@ : '\(.*\)\.txt$$'` >$@
+		LC_ALL=C sh workman.sh `expr $@ : '\(.*\)\.txt$$'` >$@.out
+		mv $@.out $@
 
 # Set the time stamps to those of the git repository, if available,
 # and if the files have not changed since then.
@@ -574,7 +641,8 @@ $(MANTXTS):	workman.sh
 # to be the maximum of the files it depends on.
 set-timestamps.out: $(ENCHILADA)
 		rm -f $@
-		if files=`git ls-files $(ENCHILADA)` && \
+		if (type git) >/dev/null 2>&1 && \
+		   files=`git ls-files $(ENCHILADA)` && \
 		   touch -md @1 test.out; then \
 		  rm -f test.out && \
 		  for file in $$files; do \
@@ -591,6 +659,8 @@ set-timestamps.out: $(ENCHILADA)
 		  touch -cmr `ls -t $$file workman.sh | sed 1q` $$file.txt || \
 		    exit; \
 		done
+		touch -cmr `ls -t $(TZS_DEPS) | sed 1q` $(TZS)
+		touch -cmr `ls -t $(VERSION_DEPS) | sed 1q` version
 		touch $@
 
 # The zics below ensure that each data file can stand on its own.
@@ -599,12 +669,12 @@ set-timestamps.out: $(ENCHILADA)
 check_public:
 		$(MAKE) maintainer-clean
 		$(MAKE) "CFLAGS=$(GCC_DEBUG_FLAGS)" ALL
-		mkdir tzpublic
+		mkdir -p public.dir
 		for i in $(TDATA) ; do \
-		  $(zic) -v -d tzpublic $$i 2>&1 || exit; \
+		  $(zic) -v -d public.dir $$i 2>&1 || exit; \
 		done
-		$(zic) -v -d tzpublic $(TDATA)
-		rm -fr tzpublic
+		$(zic) -v -d public.dir $(TDATA)
+		rm -fr public.dir
 
 # Check that the code works under various alternative
 # implementations of time_t.
@@ -614,17 +684,18 @@ check_time_t_alternatives:
 		else \
 		  quiet_option=''; \
 		fi && \
+		wd=`pwd` && \
 		zones=`$(AWK) '/^[^#]/ { print $$3 }' <zone1970.tab` && \
 		for type in $(TIME_T_ALTERNATIVES); do \
-		  mkdir -p tzpublic/$$type && \
+		  mkdir -p time_t.dir/$$type && \
 		  $(MAKE) clean_misc && \
-		  $(MAKE) TOPDIR=`pwd`/tzpublic/$$type \
+		  $(MAKE) TOPDIR="$$wd/time_t.dir/$$type" \
 		    CFLAGS='$(CFLAGS) -Dtime_tz='"'$$type'" \
 		    REDO='$(REDO)' \
 		    install && \
 		  diff $$quiet_option -r \
-		    tzpublic/int64_t/etc/zoneinfo \
-		    tzpublic/$$type/etc/zoneinfo && \
+		    time_t.dir/int64_t/etc/zoneinfo \
+		    time_t.dir/$$type/etc/zoneinfo && \
 		  case $$type in \
 		  int32_t) range=-2147483648,2147483647;; \
 		  uint32_t) range=0,4294967296;; \
@@ -633,29 +704,47 @@ check_time_t_alternatives:
 		  *) range=-10000000000,10000000000;; \
 		  esac && \
 		  echo checking $$type zones ... && \
-		  tzpublic/int64_t/etc/zdump -V -t $$range $$zones \
-		      >tzpublic/int64_t.out && \
-		  tzpublic/$$type/etc/zdump -V -t $$range $$zones \
-		      >tzpublic/$$type.out && \
-		  diff -u tzpublic/int64_t.out tzpublic/$$type.out \
+		  time_t.dir/int64_t/etc/zdump -V -t $$range $$zones \
+		      >time_t.dir/int64_t.out && \
+		  time_t.dir/$$type/etc/zdump -V -t $$range $$zones \
+		      >time_t.dir/$$type.out && \
+		  diff -u time_t.dir/int64_t.out time_t.dir/$$type.out \
 		    || exit; \
 		done
-		rm -fr tzpublic
+		rm -fr time_t.dir
 
-tarballs:	tzcode$(VERSION).tar.gz tzdata$(VERSION).tar.gz
+tarballs traditional_tarballs signatures traditional_signatures: version
+		VERSION=`cat version` && \
+		$(MAKE) VERSION="$$VERSION" $@_version
+
+tarballs_version: traditional_tarballs_version tzdb-$(VERSION).tar.lz
+traditional_tarballs_version: \
+  tzcode$(VERSION).tar.gz tzdata$(VERSION).tar.gz
+signatures_version: traditional_signatures_version tzdb-$(VERSION).tar.lz.asc
+traditional_signatures_version: \
+  tzcode$(VERSION).tar.gz.asc tzdata$(VERSION).tar.gz.asc \
 
 tzcode$(VERSION).tar.gz: set-timestamps.out
 		LC_ALL=C && export LC_ALL && \
 		tar $(TARFLAGS) -cf - \
 		    $(COMMON) $(DOCS) $(SOURCES) | \
-		  gzip $(GZIPFLAGS) > $@
+		  gzip $(GZIPFLAGS) >$@.out
+		mv $@.out $@
 
 tzdata$(VERSION).tar.gz: set-timestamps.out
 		LC_ALL=C && export LC_ALL && \
 		tar $(TARFLAGS) -cf - $(COMMON) $(DATA) $(MISC) | \
-		  gzip $(GZIPFLAGS) > $@
-
-signatures:	tzcode$(VERSION).tar.gz.asc tzdata$(VERSION).tar.gz.asc
+		  gzip $(GZIPFLAGS) >$@.out
+		mv $@.out $@
+
+tzdb-$(VERSION).tar.lz: set-timestamps.out
+		rm -fr tzdb-$(VERSION)
+		mkdir tzdb-$(VERSION)
+		ln $(ENCHILADA) tzdb-$(VERSION)
+		touch -cmr `ls -t tzdb-$(VERSION)/* | sed 1q` tzdb-$(VERSION)
+		LC_ALL=C && export LC_ALL && \
+		tar $(TARFLAGS) -cf - tzdb-$(VERSION) | lzip -9 >$@.out
+		mv $@.out $@
 
 tzcode$(VERSION).tar.gz.asc: tzcode$(VERSION).tar.gz
 		gpg --armor --detach-sign $?
@@ -663,6 +752,9 @@ tzcode$(VERSION).tar.gz.asc: tzcode$(VERSION).tar.gz
 tzdata$(VERSION).tar.gz.asc: tzdata$(VERSION).tar.gz
 		gpg --armor --detach-sign $?
 
+tzdb-$(VERSION).tar.lz.asc: tzdb-$(VERSION).tar.lz
+		gpg --armor --detach-sign $?
+
 typecheck:
 		$(MAKE) clean
 		for i in "long long" unsigned; \
@@ -688,8 +780,10 @@ zic.o:		private.h tzfile.h version.h
 .PHONY: ALL INSTALL all
 .PHONY: check check_character_set check_links
 .PHONY: check_public check_sorted check_tables
-.PHONY: check_time_t_alternatives check_web check_white_space clean clean_misc
+.PHONY: check_time_t_alternatives check_tzs check_web check_white_space
+.PHONY: clean clean_misc force_tzs
 .PHONY: install install_data maintainer-clean names
 .PHONY: posix_only posix_packrat posix_right
-.PHONY: public right_only right_posix signatures tarballs typecheck
+.PHONY: public right_only right_posix signatures signatures_version
+.PHONY: tarballs tarballs_version typecheck
 .PHONY: zonenames zones
diff --git a/lib/modules/Calendar.pmod/tzdata/NEWS b/lib/modules/Calendar.pmod/tzdata/NEWS
index f59583fda45b85ec2c7104321be44286bffb3d41..64d493bb3c5da4b5be68e5e047cb1078e25385cb 100644
--- a/lib/modules/Calendar.pmod/tzdata/NEWS
+++ b/lib/modules/Calendar.pmod/tzdata/NEWS
@@ -1,5 +1,185 @@
 News for the tz database
 
+Release 2016h - 2016-10-19 23:17:57 -0700
+
+  Changes to future time stamps
+
+    Asia/Gaza and Asia/Hebron end DST on 2016-10-29 at 01:00, not
+    2016-10-21 at 00:00.  (Thanks to Sharef Mustafa.)  Predict that
+    future fall transitions will be on the last Saturday of October
+    at 01:00, which is consistent with predicted spring transitions
+    on the last Saturday of March.  (Thanks to Tim Parenti.)
+
+  Changes to past time stamps
+
+    In Turkey, transitions in 1986-1990 were at 01:00 standard time
+    not at 02:00, and the spring 1994 transition was on March 20, not
+    March 27.  (Thanks to Kıvanç Yazan.)
+
+  Changes to past and future time zone abbreviations
+
+    Asia/Colombo now uses numeric time zone abbreviations like "+0530"
+    instead of alphabetic ones like "IST" and "LKT".  Various
+    English-language sources use "IST", "LKT" and "SLST", with no
+    working consensus.  (Usage of "SLST" mentioned by Sadika
+    Sumanapala.)
+
+  Changes to code
+
+    zic no longer mishandles relativizing file names when creating
+    symbolic links like /etc/localtime, when these symbolic links
+    are outside the usual directory hierarchy.  This fixes a bug
+    introduced in 2016g.  (Problem reported by Andreas Stieger.)
+
+  Changes to build procedure
+
+    New rules 'traditional_tarballs' and 'traditional_signatures' for
+    building just the traditional-format distribution.  (Requested by
+    Deborah Goldsmith.)
+
+    The file 'version' is now put into the tzdata tarball too.
+    (Requested by Howard Hinnant.)
+
+  Changes to documentation and commentary
+
+    The 'Theory' file now has a section on interface stability.
+    (Requested by Paul Koning.)  It also mentions features like
+    tm_zone and localtime_rz that have long been supported by the
+    reference code.
+
+    tz-link.htm has improved coverage of time zone boundaries suitable
+    for geolocation.  (Thanks to heads-ups from Evan Siroky and Matt
+    Johnson.)
+
+    The US commentary now mentions Allen and the "day of two noons".
+
+    The Fiji commentary mentions the government's 2016-10-03 press
+    release.  (Thanks to Raymond Kumar.)
+
+
+Release 2016g - 2016-09-13 08:56:38 -0700
+
+  Changes to future time stamps
+
+    Turkey switched from EET/EEST (+02/+03) to permanent +03,
+    effective 2016-09-07.  (Thanks to Burak AYDIN.)  Use "+03" rather
+    than an invented abbreviation for the new time.
+
+    New leap second 2016-12-31 23:59:60 UTC as per IERS Bulletin C 52.
+    (Thanks to Tim Parenti.)
+
+  Changes to past time stamps
+
+    For America/Los_Angeles, spring-forward transition times have been
+    corrected from 02:00 to 02:01 in 1948, and from 02:00 to 01:00 in
+    1950-1966.
+
+    For zones using Soviet time on 1919-07-01, transitions to UT-based
+    time were at 00:00 UT, not at 02:00 local time.  The affected
+    zones are Europe/Kirov, Europe/Moscow, Europe/Samara, and
+    Europe/Ulyanovsk.  (Thanks to Alexander Belopolsky.)
+
+  Changes to past and future time zone abbreviations
+
+    The Factory zone now uses the time zone abbreviation -00 instead
+    of a long English-language string, as -00 is now the normal way to
+    represent an undefined time zone.
+
+    Several zones in Antarctica and the former Soviet Union, along
+    with zones intended for ships at sea that cannot use POSIX TZ
+    strings, now use numeric time zone abbreviations instead of
+    invented or obsolete alphanumeric abbreviations.  The affected
+    zones are Antarctica/Casey, Antarctica/Davis,
+    Antarctica/DumontDUrville, Antarctica/Mawson, Antarctica/Rothera,
+    Antarctica/Syowa, Antarctica/Troll, Antarctica/Vostok,
+    Asia/Anadyr, Asia/Ashgabat, Asia/Baku, Asia/Bishkek, Asia/Chita,
+    Asia/Dushanbe, Asia/Irkutsk, Asia/Kamchatka, Asia/Khandyga,
+    Asia/Krasnoyarsk, Asia/Magadan, Asia/Omsk, Asia/Sakhalin,
+    Asia/Samarkand, Asia/Srednekolymsk, Asia/Tashkent, Asia/Tbilisi,
+    Asia/Ust-Nera, Asia/Vladivostok, Asia/Yakutsk, Asia/Yekaterinburg,
+    Asia/Yerevan, Etc/GMT-14, Etc/GMT-13, Etc/GMT-12, Etc/GMT-11,
+    Etc/GMT-10, Etc/GMT-9, Etc/GMT-8, Etc/GMT-7, Etc/GMT-6, Etc/GMT-5,
+    Etc/GMT-4, Etc/GMT-3, Etc/GMT-2, Etc/GMT-1, Etc/GMT+1, Etc/GMT+2,
+    Etc/GMT+3, Etc/GMT+4, Etc/GMT+5, Etc/GMT+6, Etc/GMT+7, Etc/GMT+8,
+    Etc/GMT+9, Etc/GMT+10, Etc/GMT+11, Etc/GMT+12, Europe/Kaliningrad,
+    Europe/Minsk, Europe/Samara, Europe/Volgograd, and
+    Indian/Kerguelen.  For Europe/Moscow the invented abbreviation MSM
+    was replaced by +05, whereas MSK and MSD were kept as they are not
+    our invention and are widely used.
+
+  Changes to zone names
+
+    Rename Asia/Rangoon to Asia/Yangon, with a backward compatibility link.
+    (Thanks to David Massoud.)
+
+  Changes to code
+
+    zic no longer generates binary files containing POSIX TZ-like
+    strings that disagree with the local time type after the last
+    explicit transition in the data.  This fixes a bug with
+    Africa/Casablanca and Africa/El_Aaiun in some year-2037 time
+    stamps on the reference platform.  (Thanks to Alexander Belopolsky
+    for reporting the bug and suggesting a way forward.)
+
+    If the installed localtime and/or posixrules files are symbolic
+    links, zic now keeps them symbolic links when updating them, for
+    compatibility with platforms like OpenSUSE where other programs
+    configure these files as symlinks.
+
+    zic now avoids hard linking to symbolic links, avoids some
+    unnecessary mkdir and stat system calls, and uses shorter file
+    names internally.
+
+    zdump has a new -i option to generate transitions in a
+    more-compact but still human-readable format.  This option is
+    experimental, and the output format may change in future versions.
+    (Thanks to Jon Skeet for suggesting that an option was needed,
+    and thanks to Tim Parenti and Chris Rovick for further comments.)
+
+  Changes to build procedure
+
+    An experimental distribution format is available, in addition
+    to the traditional format which will continue to be distributed.
+    The new format is a tarball tzdb-VERSION.tar.lz with signature
+    file tzdb-VERSION.tar.lz.asc.  It unpacks to a top-level directory
+    tzdb-VERSION containing the code and data of the traditional
+    two-tarball format, along with extra data that may be useful.
+    (Thanks to Antonio Diaz Diaz, Oscar van Vlijmen, and many others
+    for comments about the experimental format.)
+
+    The release version number is now more accurate in the usual case
+    where releases are built from a Git repository.  For example, if
+    23 commits and some working-file changes have been made since
+    release 2016g, the version number is now something like
+    '2016g-23-g50556e3-dirty' instead of the misleading '2016g'.
+    Official releases uses the same version number format as before,
+    e.g., '2016g'.  To support the more-accurate version number, its
+    specification has moved from a line in the Makefile to a new
+    source file 'version'.
+
+    The experimental distribution contains a file to2050.tzs that
+    contains what should be the output of 'zdump -i -c 2050' on
+    primary zones.  If this file is available, 'make check' now checks
+    that zdump generates this output.
+
+    'make check_web' now works on Fedora-like distributions.
+
+  Changes to documentation and commentary
+
+    tzfile.5 now documents the new restriction on POSIX TZ-like
+    strings that is now implemented by zic.
+
+    Comments now cite URLs for some 1917-1921 Russian DST decrees.
+    (Thanks to Alexander Belopolsky.)
+
+    tz-link.htm mentions JuliaTime (thanks to Curtis Vogt) and Time4J
+    (thanks to Meno Hochschild) and ThreeTen-Extra, and its
+    description of Java 8 has been brought up to date (thanks to
+    Stephen Colebourne).  Its description of local time on Mars has
+    been updated to match current practice, and URLs have been updated
+    and some obsolete ones removed.
+
+
 Release 2016f - 2016-07-05 16:26:51 +0200
 
   Changes affecting future time stamps
@@ -393,7 +573,7 @@ Release 2015d - 2015-04-24 08:09:46 -0700
 
   Changes affecting past time stamps
 
-    America/Whitehorse switched from UTC-9 to UTC-8 on 1967-05-28, not
+    America/Whitehorse switched from UT -09 to -08 on 1967-05-28, not
     1966-07-01.  Also, Yukon's time zone history is documented better.
     (Thanks to Brian Inglis and Dennis Ferguson.)
 
@@ -427,12 +607,12 @@ Release 2015c - 2015-04-11 08:55:55 -0700
 
       The 1918 transition was September 10, not September 1.
 
-      The UTC-4 time observed from 1932 to 1942 is now considered to be
-      standard time, not year-round DST.
+      The UT -04 time observed from 1932 to 1942 is now considered to
+      be standard time, not year-round DST.
 
-      Santiago observed DST (UTC-3) from 1946-07-15 through 1946-08-31,
-      then reverted to standard time, then switched its time zone to
-      UTC-5 on 1947-04-01.
+      Santiago observed DST (UT -03) from 1946-07-15 through
+      1946-08-31, then reverted to standard time, then switched to -05
+      on 1947-04-01.
 
       Assume transitions before 1968 were at 00:00, since we have no data
       saying otherwise.
@@ -561,7 +741,7 @@ Release 2014j - 2014-11-10 17:37:11 -0800
 
   Changes affecting current and future time stamps
 
-    Turks & Caicos' switch from US eastern time to UTC-4 year-round
+    Turks & Caicos' switch from US eastern time to UT -04 year-round
     did not occur on 2014-11-02 at 02:00.  It's currently scheduled
     for 2015-11-01 at 02:00.  (Thanks to Chris Walton.)
 
@@ -597,7 +777,7 @@ Release 2014i - 2014-10-21 22:04:57 -0700
     years will use a similar pattern.
 
     A new Zone Pacific/Bougainville, for the part of Papua New Guinea
-    that plans to switch from UTC+10 to UTC+11 on 2014-12-28 at 02:00.
+    that plans to switch from UT +10 to +11 on 2014-12-28 at 02:00.
     (Thanks to Kiley Walbom for the heads-up.)
 
   Changes affecting time zone abbreviations
@@ -607,8 +787,8 @@ Release 2014i - 2014-10-21 22:04:57 -0700
     to its more-traditional value MSK on 2014-10-26 at 01:00.
     (Thanks to Alexander Bokovoy for the heads-up about Belarus.)
 
-    The new abbreviation IDT stands for the pre-1976 use of UT+8 in
-    Indochina, to distinguish it better from ICT (UT+7).
+    The new abbreviation IDT stands for the pre-1976 use of UT +08 in
+    Indochina, to distinguish it better from ICT (+07).
 
   Changes affecting past time stamps
 
@@ -686,7 +866,7 @@ Release 2014h - 2014-09-25 18:59:03 -0700
     zdump -c no longer mishandles transitions near year boundaries.
     (Thanks to Tim Parenti for reporting the problem.)
 
-    An access to uninitalized data has been fixed.
+    An access to uninitialized data has been fixed.
     (Thanks to Jörg Richter for reporting the problem.)
 
     When THREAD_SAFE is defined, the code ports to the C11 memory model.
@@ -719,8 +899,8 @@ Release 2014g - 2014-08-28 12:31:23 -0700
 
   Changes affecting future time stamps
 
-    Turks & Caicos is switching from US eastern time to UTC-4 year-round,
-    modeled as a switch from EST/EDT to AST on 2014-11-02 at 02:00.
+    Turks & Caicos is switching from US eastern time to UT -04
+    year-round, modeled as a switch on 2014-11-02 at 02:00.
     [As noted in 2014j, this switch was later delayed.]
 
   Changes affecting past time stamps
@@ -903,7 +1083,7 @@ Release 2014f - 2014-08-05 17:42:36 -0700
     This change does not affect UTC offsets, only time zone abbreviations.
     (Thanks to Rich Tibbett and many others.)
 
-    Asia/Novokuznetsk shifts from NOVT to KRAT (remaining on UTC+7)
+    Asia/Novokuznetsk shifts from NOVT to KRAT (remaining on UT +07)
     effective 2014-10-26 at 02:00 local time.
 
     The time zone abbreviation for Xinjiang Time (observed in Ürümqi)
@@ -932,8 +1112,8 @@ Release 2014f - 2014-08-05 17:42:36 -0700
     zones Asia/Harbin, Asia/Chongqing, and Asia/Kashgar have been
     removed; backwards-compatibility links still work, albeit with
     different behaviors for time stamps before May 1980.  Asia/Urumqi's
-    1980 transition to UTC+8 has been removed, so that it is now at
-    UTC+6 and not UTC+8.  (Thanks to Luther Ma and to Alois Treindl;
+    1980 transition to UT +08 has been removed, so that it is now at
+    +06 and not +08.  (Thanks to Luther Ma and to Alois Treindl;
     Treindl sent helpful translations of two papers by Guo Qingsheng.)
 
     Some zones have been turned into links, when they differed from existing
@@ -963,8 +1143,8 @@ Release 2014f - 2014-08-05 17:42:36 -0700
     Europe/Helsinki's 1942 fall-back transition was 10-04 at 01:00, not
     10-03 at 00:00.  (Thanks to Konstantin Hyppönen.)
 
-    Pacific/Pago_Pago has been changed from UTC-11:30 to UTC-11 for the period
-    from 1911 to 1950.
+    Pacific/Pago_Pago has been changed from UT -11:30 to -11 for the
+    period from 1911 to 1950.
 
     Pacific/Chatham has been changed to New Zealand standard time plus
     45 minutes for the period before 1957, reflecting a 1956 remark in
@@ -1291,15 +1471,15 @@ Release 2013h - 2013-10-25 15:32:32 -0700
 
   Changes affecting current and future time stamps:
 
-    Libya has switched its time zone back to UTC+2 without DST,
-    instead of UTC+1 with DST.  (Thanks to Even Scharning.)
+    Libya has switched its UT offset back to +02 without DST, instead
+    of +01 with DST.  (Thanks to Even Scharning.)
 
     Western Sahara (Africa/El_Aaiun) uses Morocco's DST rules.
     (Thanks to Gwillim Law.)
 
   Changes affecting future time stamps:
 
-    Acre and (we guess) western Amazonas will switch from UTC-4 to UTC-5
+    Acre and (we guess) western Amazonas will switch from UT -04 to -05
     on 2013-11-10.  This affects America/Rio_Branco and America/Eirunepe.
     (Thanks to Steffen Thorsen.)
 
@@ -1386,7 +1566,7 @@ Release 2013f - 2013-09-24 23:37:36 -0700
     Tocantins will very likely not observe DST starting this spring.
     (Thanks to Steffen Thorsen.)
 
-    Jordan will likely stay at UTC+3 indefinitely, and will not fall
+    Jordan will likely stay at UT +03 indefinitely, and will not fall
     back this fall.
 
     Palestine will fall back at 00:00, not 01:00.  (Thanks to Steffen Thorsen.)
@@ -1443,7 +1623,7 @@ Release 2013e - 2013-09-19 23:50:04 -0700
     Benny Lin.)  This affects Asia/Dili, Asia/Jakarta, Asia/Jayapura,
     Asia/Makassar, and Asia/Pontianak.
 
-    Use ART (UTC-3, standard time), rather than WARST (also UTC-3, but
+    Use ART (UT -03, standard time), rather than WARST (also -03, but
     daylight saving time) for San Luis, Argentina since 2009.
 
   Changes affecting Godthåb time stamps after 2037 if version mismatch
@@ -1900,7 +2080,7 @@ Release 2012f - 2012-09-12 23:17:03 -0700
 
 Release 2012e - 2012-08-02 20:44:55 -0700
 
-  * australasia (Pacific/Fakaofo): Tokelau is UTC+13, not UTC+14.
+  * australasia (Pacific/Fakaofo): Tokelau is UT +13, not +14.
     (Thanks to Steffen Thorsen.)
 
   * Use a single version number for both code and data.
@@ -3519,14 +3699,15 @@ This file contains copies of the part of each release announcement
 that talks about the changes in that release.  The text has been
 adapted and reformatted for the purposes of this file.
 
-Typically a release R consists of a pair of tarball files,
+Traditionally a release R consists of a pair of tarball files,
 tzcodeR.tar.gz and tzdataR.tar.gz.  However, some releases (e.g.,
 code2010a, data2012c) consist of just one or the other tarball, and a
 few (e.g., code2012c-data2012d) have tarballs with mixed version
-numbers.
+numbers.  Recent releases also come in an experimental format
+consisting of a single tarball tzdb-R.tar.lz with extra data.
 
 Release time stamps are taken from the release's commit (for newer,
-git releases), from the newest file in the tarball (for older
+Git-based releases), from the newest file in the tarball (for older
 releases, where this info is available) or from the email announcing
 the release (if all else fails; these are marked with a time zone of
 -0000 and an "is missing!" comment).
diff --git a/lib/modules/Calendar.pmod/tzdata/README b/lib/modules/Calendar.pmod/tzdata/README
index 8deaf16ff63485846cb5cb56501ded98eb3ea894..8a09aa2cb9f1a631832d715a4c1c2bd0d94d5b2e 100644
--- a/lib/modules/Calendar.pmod/tzdata/README
+++ b/lib/modules/Calendar.pmod/tzdata/README
@@ -13,12 +13,20 @@ and daylight-saving rules.
 Here is a recipe for acquiring, building, installing, and testing the
 tz distribution on a GNU/Linux or similar host.
 
+To acquire the distribution, run the following shell commands:
+
 	mkdir tz
 	cd tz
 	wget --retr-symlinks 'ftp://ftp.iana.org/tz/tz*-latest.tar.gz'
 	gzip -dc tzcode-latest.tar.gz | tar -xf -
 	gzip -dc tzdata-latest.tar.gz | tar -xf -
 
+Alternatively, the following shell commands acquire the same
+distribution, with extra data useful for regression testing:
+
+	wget --retr-symlinks 'ftp://ftp.iana.org/tz/tzdb-latest.tar.lz'
+	lzip -dc tzdb-latest.tar.lz | tar -xf -
+
 Be sure to read the comments in "Makefile" and make any changes needed
 to make things right for your system, especially if you are using some
 platform other than GNU/Linux.  Then run the following commands,
diff --git a/lib/modules/Calendar.pmod/tzdata/Theory b/lib/modules/Calendar.pmod/tzdata/Theory
index 60678fe64b0f0c806e043e846a6334047f73a7c1..677baf6f8c720bc1cf371fe9336177cb6b27e4dd 100644
--- a/lib/modules/Calendar.pmod/tzdata/Theory
+++ b/lib/modules/Calendar.pmod/tzdata/Theory
@@ -323,7 +323,7 @@ Errors in the tz database arise from many sources:
 
  * Sometimes historical timekeeping was specified more precisely
    than what the tz database can handle.  For example, from 1909 to
-   1937 Netherlands clocks were legally UT+00:19:32.13, but the tz
+   1937 Netherlands clocks were legally UT +00:19:32.13, but the tz
    database cannot represent the fractional second.
 
  * Even when all the timestamp transitions recorded by the tz database
@@ -445,6 +445,10 @@ POSIX has the following properties and limitations.
 	rules change (as in the United States in 1987), all programs that
 	do time conversion must be recompiled to ensure proper results.
 
+*	The TZ environment variable is process-global, which makes it hard
+	to write efficient, thread-safe applications that need access
+	to multiple time zones.
+
 *	In POSIX, there's no tamper-proof way for a process to learn the
 	system's best idea of local wall clock.  (This is important for
 	applications that an administrator wants used only at certain times -
@@ -454,6 +458,11 @@ POSIX has the following properties and limitations.
 	daylight saving time shifts - as might be required to limit phone
 	calls to off-peak hours.)
 
+*	POSIX provides no convenient and efficient way to determine the UT
+	offset and time zone abbreviation of arbitrary time stamps,
+	particularly for time zone settings that do not fit into the
+	POSIX model.
+
 *	POSIX requires that systems ignore leap seconds.
 
 *	The tz code attempts to support all the time_t implementations
@@ -494,20 +503,23 @@ These are the extensions that have been made to the POSIX functions:
 	"new" programs (a la POSIX) and "old" programs (as zone names and
 	offsets).
 
-*	To handle places where more than two time zone abbreviations are used,
-	the functions "localtime" and "gmtime" set tzname[tmp->tm_isdst]
-	(where "tmp" is the value the function returns) to the time zone
-	abbreviation to be used.  This differs from POSIX, where the elements
-	of tzname are only changed as a result of calls to tzset.
+*	The code supports platforms with a UT offset member in struct tm,
+	e.g., tm_gmtoff.
+
+*	The code supports platforms with a time zone abbreviation member in
+	struct tm, e.g., tm_zone.
 
 *	Since the "TZ" environment variable can now be used to control time
 	conversion, the "daylight" and "timezone" variables are no longer
 	needed.  (These variables are defined and set by "tzset"; however, their
 	values will not be used by "localtime.")
 
-*	The "localtime" function has been set up to deliver correct results
-	for near-minimum or near-maximum time_t values.  (A comment in the
-	source code tells how to get compatibly wrong results).
+*	Functions tzalloc, tzfree, localtime_rz, and mktime_z for
+	more-efficient thread-safe applications that need to use
+	multiple time zones.  The tzalloc and tzfree functions
+	allocate and free objects of type timezone_t, and localtime_rz
+	and mktime_z are like localtime_r and mktime with an extra
+	timezone_t argument.  The functions were inspired by NetBSD.
 
 *	A function "tzsetwall" has been added to arrange for the system's
 	best approximation to local wall clock time to be delivered by
@@ -526,14 +538,15 @@ These are the extensions that have been made to the POSIX functions:
 
 Points of interest to folks with other systems:
 
-*	This package is already part of many POSIX-compliant hosts,
-	including BSD, HP, Linux, Network Appliance, SCO, SGI, and Sun.
+*	Code compatible with this package is already part of many platforms,
+	including GNU/Linux, Android, the BSDs, Chromium OS, Cygwin, AIX, iOS,
+	BlackBery 10, macOS, Microsoft Windows, OpenVMS, and Solaris.
 	On such hosts, the primary use of this package
 	is to update obsolete time zone rule tables.
 	To do this, you may need to compile the time zone compiler
 	'zic' supplied with this package instead of using the system 'zic',
-	since the format of zic's input changed slightly in late 1994,
-	and many vendors still do not support the new input format.
+	since the format of zic's input is occasionally extended,
+	and a platform may still be shipping an older zic.
 
 *	The UNIX Version 7 "timezone" function is not present in this package;
 	it's impossible to reliably map timezone's arguments (a "minutes west
@@ -551,6 +564,8 @@ Points of interest to folks with other systems:
 *	In SVR2, time conversion fails for near-minimum or near-maximum
 	time_t values when doing conversions for places that don't use UT.
 	This package takes care to do these conversions correctly.
+	A comment in the source code tells how to get compatibly wrong
+	results.
 
 The functions that are conditionally compiled if STD_INSPIRED is defined
 should, at this point, be looked on primarily as food for thought.  They are
@@ -568,6 +583,35 @@ more powerful time conversion functions can be standardized, so much the
 better.
 
 
+----- Interface stability -----
+
+The tz code and data supply the following interfaces:
+
+ * A set of zone names as per "Names of time zone rules" above.
+
+ * Library functions described in "Time and date functions" above.
+
+ * The programs tzselect, zdump, and zic, documented in their man pages.
+
+ * The format of zic input files, documented in the zic man page.
+
+ * The format of zic output files, documented in the tzfile man page.
+
+ * The format of zone table files, documented in zone1970.tab.
+
+ * The format of the country code file, documented in iso3166.tab.
+
+When these interfaces are changed, an effort is made to preserve
+backward compatibility.  For example, tz data files typically do not
+rely on recently-added zic features, so that users can run older zic
+versions to process newer data files.
+
+Interfaces not listed above are less stable.  For example, users
+should not rely on particular UT offsets or abbreviations for time
+stamps, as data entries are often based on guesswork and these guesses
+may be corrected or improved.
+
+
 ----- Calendrical issues -----
 
 Calendrical issues are a bit out of scope for a time zone database,
diff --git a/lib/modules/Calendar.pmod/tzdata/africa b/lib/modules/Calendar.pmod/tzdata/africa
index 50f29d5dd55edb9354fac0b8ee5967ef976d1336..d35aaa593e9bf7bc90eb5ca677c0464ba83ad55d 100644
--- a/lib/modules/Calendar.pmod/tzdata/africa
+++ b/lib/modules/Calendar.pmod/tzdata/africa
@@ -464,7 +464,7 @@ Zone	Africa/Monrovia	-0:43:08 -	LMT	1882
 # http://www.libyaherald.com/2013/10/24/correction-no-time-change-tomorrow/
 #
 # From Paul Eggert (2013-10-25):
-# For now, assume they're reverting to the pre-2012 rules of permanent UTC+2.
+# For now, assume they're reverting to the pre-2012 rules of permanent UT +02.
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Libya	1951	only	-	Oct	14	2:00	1:00	S
diff --git a/lib/modules/Calendar.pmod/tzdata/antarctica b/lib/modules/Calendar.pmod/tzdata/antarctica
index a5378329543bdc6775c76dfe3b37800d472ae3a9..0995835752c1ce175932e47768ed3558bf8728bf 100644
--- a/lib/modules/Calendar.pmod/tzdata/antarctica
+++ b/lib/modules/Calendar.pmod/tzdata/antarctica
@@ -10,9 +10,7 @@
 # http://www.spri.cam.ac.uk/bob/periant.htm
 # for information.
 # Unless otherwise specified, we have no time zone information.
-#
-# Except for the French entries,
-# I made up all time zone abbreviations mentioned here; corrections welcome!
+
 # FORMAT is '-00' and GMTOFF is 0 for locations while uninhabited.
 
 # Argentina - year-round bases
@@ -29,7 +27,7 @@
 #	previously sealers and scientific personnel wintered
 #	Margaret Turner reports
 #	http://web.archive.org/web/20021204222245/http://www.dstc.qut.edu.au/DST/marg/daylight.html
-#	(1999-09-30) that they're UTC+5, with no DST;
+#	(1999-09-30) that they're UT +05, with no DST;
 #	presumably this is when they have visitors.
 #
 # year-round bases
@@ -68,23 +66,22 @@
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone Antarctica/Casey	0	-	-00	1969
-			8:00	-	AWST	2009 Oct 18  2:00
-						# Australian Western Std Time
-			11:00	-	CAST	2010 Mar  5  2:00  # Casey Time
-			8:00	-	AWST	2011 Oct 28  2:00
-			11:00	-	CAST	2012 Feb 21 17:00u
-			8:00	-	AWST
+			8:00	-	+08	2009 Oct 18  2:00
+			11:00	-	+11	2010 Mar  5  2:00
+			8:00	-	+08	2011 Oct 28  2:00
+			11:00	-	+11	2012 Feb 21 17:00u
+			8:00	-	+08
 Zone Antarctica/Davis	0	-	-00	1957 Jan 13
-			7:00	-	DAVT	1964 Nov    # Davis Time
+			7:00	-	+07	1964 Nov
 			0	-	-00	1969 Feb
-			7:00	-	DAVT	2009 Oct 18  2:00
-			5:00	-	DAVT	2010 Mar 10 20:00u
-			7:00	-	DAVT	2011 Oct 28  2:00
-			5:00	-	DAVT	2012 Feb 21 20:00u
-			7:00	-	DAVT
+			7:00	-	+07	2009 Oct 18  2:00
+			5:00	-	+05	2010 Mar 10 20:00u
+			7:00	-	+07	2011 Oct 28  2:00
+			5:00	-	+05	2012 Feb 21 20:00u
+			7:00	-	+07
 Zone Antarctica/Mawson	0	-	-00	1954 Feb 13
-			6:00	-	MAWT	2009 Oct 18  2:00 # Mawson Time
-			5:00	-	MAWT
+			6:00	-	+06	2009 Oct 18  2:00
+			5:00	-	+05
 # References:
 # Casey Weather (1998-02-26)
 # http://www.antdiv.gov.au/aad/exop/sfo/casey/casey_aws.html
@@ -138,7 +135,7 @@ Zone Antarctica/Mawson	0	-	-00	1954 Feb 13
 #
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone Indian/Kerguelen	0	-	-00	1950 # Port-aux-Français
-			5:00	-	TFT	# ISO code TF Time
+			5:00	-	+05
 #
 # year-round base in the main continent
 # Dumont d'Urville, Île des Pétrels, -6640+14001, since 1956-11
@@ -149,9 +146,9 @@ Zone Indian/Kerguelen	0	-	-00	1950 # Port-aux-Français
 #
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone Antarctica/DumontDUrville 0 -	-00	1947
-			10:00	-	PMT	1952 Jan 14 # Port-Martin Time
+			10:00	-	+10	1952 Jan 14
 			0	-	-00	1956 Nov
-			10:00	-	DDUT	# Dumont-d'Urville Time
+			10:00	-	+10
 
 # France & Italy - year-round base
 # Concordia, -750600+1232000, since 2005
@@ -177,7 +174,7 @@ Zone Antarctica/DumontDUrville 0 -	-00	1947
 # station of Japan, it's appropriate for the principal location.
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone Antarctica/Syowa	0	-	-00	1957 Jan 29
-			3:00	-	SYOT	# Syowa Time
+			3:00	-	+03
 # See:
 # NIPR Antarctic Research Activities (1999-08-17)
 # http://www.nipr.ac.jp/english/ara01.html
@@ -214,17 +211,17 @@ Zone Antarctica/Syowa	0	-	-00	1957 Jan 29
 # correct, but they should be quite close to the actual dates.
 #
 # From Paul Eggert (2014-03-21):
-# The CET-switching Troll rules require zic from tzcode 2014b or later, so as
+# The CET-switching Troll rules require zic from tz 2014b or later, so as
 # suggested by Bengt-Inge Larsson comment them out for now, and approximate
 # with only UTC and CEST.  Uncomment them when 2014b is more prevalent.
 #
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-#Rule	Troll	2005	max	-	Mar	 1	1:00u	1:00	CET
-Rule	Troll	2005	max	-	Mar	lastSun	1:00u	2:00	CEST
-#Rule	Troll	2005	max	-	Oct	lastSun	1:00u	1:00	CET
-#Rule	Troll	2004	max	-	Nov	 7	1:00u	0:00	UTC
+#Rule	Troll	2005	max	-	Mar	 1	1:00u	1:00	+01
+Rule	Troll	2005	max	-	Mar	lastSun	1:00u	2:00	+02
+#Rule	Troll	2005	max	-	Oct	lastSun	1:00u	1:00	+01
+#Rule	Troll	2004	max	-	Nov	 7	1:00u	0:00	+00
 # Remove the following line when uncommenting the above '#Rule' lines.
-Rule	Troll	2004	max	-	Oct	lastSun	1:00u	0:00	UTC
+Rule	Troll	2004	max	-	Oct	lastSun	1:00u	0:00	+00
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone Antarctica/Troll	0	-	-00	2005 Feb 12
 			0:00	Troll	%s
@@ -265,10 +262,10 @@ Zone Antarctica/Troll	0	-	-00	2005 Feb 12
 # changes during the year and does not necessarily correspond to mean
 # solar noon.  So the Vostok time might have been whatever the clocks
 # happened to be during their visit.  So we still don't really know what time
-# it is at Vostok.  But we'll guess UTC+6.
+# it is at Vostok.  But we'll guess +06.
 #
 Zone Antarctica/Vostok	0	-	-00	1957 Dec 16
-			6:00	-	VOST	# Vostok time
+			6:00	-	+06
 
 # S Africa - year-round bases
 # Marion Island, -4653+03752
@@ -301,7 +298,7 @@ Zone Antarctica/Vostok	0	-	-00	1957 Dec 16
 #
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone Antarctica/Rothera	0	-	-00	1976 Dec  1
-			-3:00	-	ROTT	# Rothera time
+			-3:00	-	-03
 
 # Uruguay - year round base
 # Artigas, King George Island, -621104-0585107
diff --git a/lib/modules/Calendar.pmod/tzdata/asia b/lib/modules/Calendar.pmod/tzdata/asia
index 533e2186d2559d49ab22e74f51c146c9cc06dccb..b2c99308531929a39b964f5ede77d5561fd9c261 100644
--- a/lib/modules/Calendar.pmod/tzdata/asia
+++ b/lib/modules/Calendar.pmod/tzdata/asia
@@ -116,13 +116,11 @@ Zone	Asia/Kabul	4:36:48 -	LMT	1890
 # http://www.worldtimezone.com/dst_news/dst_news_armenia03.html
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Yerevan	2:58:00 -	LMT	1924 May  2
-			3:00	-	YERT	1957 Mar    # Yerevan Time
-			4:00 RussiaAsia YER%sT	1991 Mar 31  2:00s
-			3:00	1:00	YERST	1991 Sep 23 # independence
-			3:00 RussiaAsia	AM%sT	1995 Sep 24  2:00s
-			4:00	-	AMT	1997
-			4:00 RussiaAsia	AM%sT	2012 Feb  9
-			4:00	-	AMT
+			3:00	-	+03	1957 Mar
+			4:00 RussiaAsia +04/+05	1991 Mar 31  2:00s
+			3:00 RussiaAsia	+03/+04	1995 Sep 24  2:00s
+			4:00	-	+04	1997
+			4:00 RussiaAsia	+04/+05
 
 # Azerbaijan
 
@@ -143,13 +141,12 @@ Rule	Azer	1997	2015	-	Mar	lastSun	 4:00	1:00	S
 Rule	Azer	1997	2015	-	Oct	lastSun	 5:00	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Baku	3:19:24 -	LMT	1924 May  2
-			3:00	-	BAKT	1957 Mar    # Baku Time
-			4:00 RussiaAsia BAK%sT	1991 Mar 31  2:00s
-			3:00	1:00	BAKST	1991 Aug 30 # independence
-			3:00 RussiaAsia	AZ%sT	1992 Sep lastSun  2:00s
-			4:00	-	AZT	1996     # Azerbaijan Time
-			4:00	EUAsia	AZ%sT	1997
-			4:00	Azer	AZ%sT
+			3:00	-	+03	1957 Mar
+			4:00 RussiaAsia +04/+05	1991 Mar 31  2:00s
+			3:00 RussiaAsia	+03/+04	1992 Sep lastSun  2:00s
+			4:00	-	+04	1996
+			4:00	EUAsia	+04/+05	1997
+			4:00	Azer	+04/+05
 
 # Bahrain
 # See Asia/Qatar.
@@ -268,7 +265,7 @@ Zone	Asia/Brunei	7:39:40 -	LMT	1926 Mar # Bandar Seri Begawan
 # Milne says 6:24:40 was the meridian of the time ball observatory at Rangoon.
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Rangoon	6:24:40 -	LMT	1880        # or Yangon
+Zone	Asia/Yangon	6:24:40 -	LMT	1880        # or Rangoon
 			6:24:40	-	RMT	1920        # Rangoon Mean Time?
 			6:30	-	BURT	1942 May    # Burma Time
 			9:00	-	JST	1945 May  3
@@ -383,7 +380,7 @@ Rule	PRC	1987	1991	-	Apr	Sun>=10	0:00	1:00	D
 # Lewiston (ME) Daily Sun (1939-05-29), p 17, said "Even the time is
 # different - the occupied districts going by Tokyo time, an hour
 # ahead of that prevailing in the rest of Shanghai."  Guess that the
-# Xujiahui Observatory was under French control and stuck with UT+8.
+# Xujiahui Observatory was under French control and stuck with UT +08.
 #
 # In earlier versions of this file, China had many separate Zone entries, but
 # this was based on what were apparently incorrect data in Shanks & Pottenger.
@@ -392,26 +389,26 @@ Rule	PRC	1987	1991	-	Apr	Sun>=10	0:00	1:00	D
 # Proposed in 1918 and theoretically in effect until 1949 (although in practice
 # mainly observed in coastal areas), the five zones were:
 #
-# Changbai Time ("Long-white Time", Long-white = Heilongjiang area) UT+8.5
+# Changbai Time ("Long-white Time", Long-white = Heilongjiang area) UT +08:30
 # Asia/Harbin (currently a link to Asia/Shanghai)
 # Heilongjiang (except Mohe county), Jilin
 #
-# Zhongyuan Time ("Central plain Time") UT+8
+# Zhongyuan Time ("Central plain Time") UT +08
 # Asia/Shanghai
 # most of China
 # This currently represents most other zones as well,
 # as apparently these regions have been the same since 1970.
 # Milne gives 8:05:43.2 for Xujiahui Observatory time; round to nearest.
-# Guo says Shanghai switched to UT+8 "from the end of the 19th century".
+# Guo says Shanghai switched to UT +08 "from the end of the 19th century".
 #
-# Long-shu Time (probably due to Long and Shu being two names of that area) UT+7
+# Long-shu Time (probably due to Long and Shu being two names of the area) UT +07
 # Asia/Chongqing (currently a link to Asia/Shanghai)
 # Guangxi, Guizhou, Hainan, Ningxia, Sichuan, Shaanxi, and Yunnan;
 # most of Gansu; west Inner Mongolia; west Qinghai; and the Guangdong
 # counties Deqing, Enping, Kaiping, Luoding, Taishan, Xinxing,
 # Yangchun, Yangjiang, Yu'nan, and Yunfu.
 #
-# Xin-zang Time ("Xinjiang-Tibet Time") UT+6
+# Xin-zang Time ("Xinjiang-Tibet Time") UT +06
 # Asia/Urumqi
 # This currently represents Kunlun Time as well,
 # as apparently the two regions have been the same since 1970.
@@ -424,7 +421,7 @@ Rule	PRC	1987	1991	-	Apr	Sun>=10	0:00	1:00	D
 # Shihezi, Changji, Yanqi, Heshuo, Tuokexun, Tulufan, Shanshan, Hami,
 # Fukang, Kuitun, Kumukuli, Miquan, Qitai, and Turfan.
 #
-# Kunlun Time UT+5.5
+# Kunlun Time UT +05:30
 # Asia/Kashgar (currently a link to Asia/Urumqi)
 # West Tibet, including Pulan, Aheqi, Shufu, Shule;
 # West Xinjiang, including Aksu, Atushi, Yining, Hetian, Cele, Luopu, Nileke,
@@ -440,7 +437,7 @@ Rule	PRC	1987	1991	-	Apr	Sun>=10	0:00	1:00	D
 #
 # On the other hand, ethnic Uyghurs, who make up about half the
 # population of Xinjiang, typically use "Xinjiang time" which is two
-# hours behind Beijing time, or UTC +0600. The government of the Xinjiang
+# hours behind Beijing time, or UT +06. The government of the Xinjiang
 # Uyghur Autonomous Region, (XAUR, or just Xinjiang for short) as well as
 # local governments such as the Ürümqi city government use both times in
 # publications, referring to what is popularly called Xinjiang time as
@@ -496,8 +493,8 @@ Rule	PRC	1987	1991	-	Apr	Sun>=10	0:00	1:00	D
 # having the same time as Beijing.
 
 # From Paul Eggert (2014-06-30):
-# In the early days of the PRC, Tibet was given its own time zone (UT+6) but
-# this was withdrawn in 1959 and never reinstated; see Tubten Khétsun,
+# In the early days of the PRC, Tibet was given its own time zone (UT +06)
+# but this was withdrawn in 1959 and never reinstated; see Tubten Khétsun,
 # Memories of life in Lhasa under Chinese Rule, Columbia U Press, ISBN
 # 978-0231142861 (2008), translator's introduction by Matthew Akester, p x.
 # As this is before our 1970 cutoff, Tibet doesn't need a separate zone.
@@ -511,12 +508,12 @@ Rule	PRC	1987	1991	-	Apr	Sun>=10	0:00	1:00	D
 # Republics, the Soviet Union, the Kuomintang, and the People's Republic of
 # China, and tracking down all these organizations' timekeeping rules would be
 # quite a trick.  Approximate this lost history by a transition from LMT to
-# XJT at the start of 1928, the year of accession of the warlord Jin Shuren,
+# UT +06 at the start of 1928, the year of accession of the warlord Jin Shuren,
 # which happens to be the date given by Shanks & Pottenger (no doubt as a
-# guess) as the transition from LMT.  Ignore the usage of UT+8 before
-# 1986-02-01 under the theory that the transition date to UT+8 is unknown and
+# guess) as the transition from LMT.  Ignore the usage of +08 before
+# 1986-02-01 under the theory that the transition date to +08 is unknown and
 # that the sort of users who prefer Asia/Urumqi now typically ignored the
-# UT+8 mandate back then.
+# +08 mandate back then.
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 # Beijing time, used throughout China; represented by Shanghai.
@@ -721,7 +718,7 @@ Zone	Asia/Hong_Kong	7:36:42 -	LMT	1904 Oct 30
 # be found from historical government announcement database.
 
 # From Paul Eggert (2014-07-03):
-# As per Yu-Cheng Chuang, say that Taiwan was at UT+9 from 1937-10-01
+# As per Yu-Cheng Chuang, say that Taiwan was at UT +09 from 1937-10-01
 # until 1945-09-21 at 01:00, overriding Shanks & Pottenger.
 # Likewise, use Yu-Cheng Chuang's data for DST in Taiwan.
 
@@ -835,16 +832,15 @@ Link	Asia/Nicosia	Europe/Nicosia
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Tbilisi	2:59:11 -	LMT	1880
 			2:59:11	-	TBMT	1924 May  2 # Tbilisi Mean Time
-			3:00	-	TBIT	1957 Mar    # Tbilisi Time
-			4:00 RussiaAsia TBI%sT	1991 Mar 31  2:00s
-			3:00	1:00	TBIST	1991 Apr  9 # independence
-			3:00 RussiaAsia GE%sT	1992        # Georgia Time
-			3:00 E-EurAsia	GE%sT	1994 Sep lastSun
-			4:00 E-EurAsia	GE%sT	1996 Oct lastSun
-			4:00	1:00	GEST	1997 Mar lastSun
-			4:00 E-EurAsia	GE%sT	2004 Jun 27
-			3:00 RussiaAsia	GE%sT	2005 Mar lastSun  2:00
-			4:00	-	GET
+			3:00	-	+03	1957 Mar
+			4:00 RussiaAsia +04/+05	1991 Mar 31  2:00s
+			3:00 RussiaAsia +03/+04	1992
+			3:00 E-EurAsia	+03/+04	1994 Sep lastSun
+			4:00 E-EurAsia	+04/+05	1996 Oct lastSun
+			4:00	1:00	+05	1997 Mar lastSun
+			4:00 E-EurAsia	+04/+05	2004 Jun 27
+			3:00 RussiaAsia	+03/+04	2005 Mar lastSun  2:00
+			4:00	-	+04
 
 # East Timor
 
@@ -921,7 +917,7 @@ Zone	Asia/Kolkata	5:53:28 -	LMT	1880        # Kolkata
 # These would be the earliest possible times for a change.
 # Régimes horaires pour le monde entier, by Henri Le Corre, (Éditions
 # Traditionnelles, 1987, Paris) says that Java and Madura switched
-# from JST to UTC+07:30 on 1945-09-23, and gives 1944-09-01 for Jayapura
+# from UT +09 to +07:30 on 1945-09-23, and gives 1944-09-01 for Jayapura
 # (Hollandia).  For now, assume all Indonesian locations other than Jayapura
 # switched on 1945-09-23.
 #
@@ -932,11 +928,11 @@ Zone	Asia/Kolkata	5:53:28 -	LMT	1880        # Kolkata
 # summary published by the Time and Frequency Laboratory of the
 # Research Center for Calibration, Instrumentation and Metrology,
 # Indonesia, <http://time.kim.lipi.go.id/time-eng.php> (2006-09-29).
-# The abbreviations are:
+# The time zone abbreviations and UT offsets are:
 #
-# WIB  - UTC+7 - Waktu Indonesia Barat (Indonesia western time)
-# WITA - UTC+8 - Waktu Indonesia Tengah (Indonesia central time)
-# WIT  - UTC+9 - Waktu Indonesia Timur (Indonesia eastern time)
+# WIB  - +07 - Waktu Indonesia Barat (Indonesia western time)
+# WITA - +08 - Waktu Indonesia Tengah (Indonesia central time)
+# WIT  - +09 - Waktu Indonesia Timur (Indonesia eastern time)
 #
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 # Java, Sumatra
@@ -1825,11 +1821,11 @@ Rule	Kyrgyz	1997	2005	-	Mar	lastSun	2:30	1:00	S
 Rule	Kyrgyz	1997	2004	-	Oct	lastSun	2:30	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Bishkek	4:58:24 -	LMT	1924 May  2
-			5:00	-	FRUT	1930 Jun 21 # Frunze Time
-			6:00 RussiaAsia FRU%sT	1991 Mar 31  2:00s
-			5:00	1:00	FRUST	1991 Aug 31  2:00 # independence
-			5:00	Kyrgyz	KG%sT	2005 Aug 12 # Kyrgyzstan Time
-			6:00	-	KGT
+			5:00	-	+05	1930 Jun 21
+			6:00 RussiaAsia +06/+07	1991 Mar 31  2:00s
+			5:00 RussiaAsia	+05/+06	1991 Aug 31  2:00
+			5:00	Kyrgyz	+05/+06	2005 Aug 12
+			6:00	-	+06
 
 ###############################################################################
 
@@ -1868,25 +1864,24 @@ Rule	ROK	1957	1960	-	Sep	Sun>=18	0:00	0	S
 Rule	ROK	1987	1988	-	May	Sun>=8	2:00	1:00	D
 Rule	ROK	1987	1988	-	Oct	Sun>=8	3:00	0	S
 
-# From Paul Eggert (2014-10-30):
+# From Paul Eggert (2016-08-23):
 # The Korean Wikipedia entry gives the following sources for UT offsets:
 #
-# 1908: Official Journal Article No. 3994 (Edict No. 5)
+# 1908: Official Journal Article No. 3994 (decree No. 5)
 # 1912: Governor-General of Korea Official Gazette Issue No. 367
 #       (Announcement No. 338)
 # 1954: Presidential Decree No. 876 (1954-03-17)
 # 1961: Law No. 676 (1961-08-07)
-# 1987: Law No. 3919 (1986-12-31)
 #
-# The Wikipedia entry also has confusing information about a change
-# to UT+9 in April 1910, but then what would be the point of the later change
-# to UT+9 on 1912-01-01?  Omit the 1910 change for now.
+# (Another source "1987: Law No. 3919 (1986-12-31)" was in the 2014-10-30
+# edition of the Korean Wikipedia entry.)
 #
 # I guessed that time zone abbreviations through 1945 followed the same
 # rules as discussed under Taiwan, with nominal switches from JST to KST
 # when the respective cities were taken over by the Allies after WWII.
 #
-# For Pyongyang we have no information; guess no changes since World War II.
+# For Pyongyang, guess no changes from World War II until 2015, as we
+# have no information otherwise.
 
 # From Steffen Thorsen (2015-08-07):
 # According to many news sources, North Korea is going to change to
@@ -2046,7 +2041,7 @@ Zone	Indian/Maldives	4:54:00 -	LMT	1880 # Male
 # Bill Bonnet (2005-05-19) reports that the US Embassy in Ulaanbaatar says
 # there is only one time zone and that DST is observed, citing Microsoft
 # Windows XP as the source.  Risto Nykänen (2005-05-16) reports that
-# travelmongolia.org says there are two time zones (UTC+7, UTC+8) with no DST.
+# travelmongolia.org says there are two time zones (UT +07, +08) with no DST.
 # Oscar van Vlijmen (2005-05-20) reports that the Mongolian Embassy in
 # Washington, DC says there are two time zones, with DST observed.
 # He also found
@@ -2549,11 +2544,6 @@ Zone	Asia/Karachi	4:28:12 -	LMT	1907
 # From Paul Eggert (2015-03-03):
 # http://www.timeanddate.com/time/change/west-bank/ramallah?year=2014
 # says that the fall 2014 transition was Oct 23 at 24:00.
-# For future dates, guess the last Friday in March at 24:00 through
-# the first Friday on or after October 21 at 00:00.  This is consistent with
-# the predictions in today's editions of the following URLs:
-# http://www.timeanddate.com/time/change/gaza-strip/gaza
-# http://www.timeanddate.com/time/change/west-bank/hebron
 
 # From Hannah Kreitem (2016-03-09):
 # http://www.palestinecabinet.gov.ps/WebSite/ar/ViewDetails?ID=31728
@@ -2563,7 +2553,21 @@ Zone	Asia/Karachi	4:28:12 -	LMT	1907
 #
 # From Paul Eggert (2016-03-12):
 # Predict spring transitions on March's last Saturday at 01:00 from now on.
-# Leave fall predictions alone for now.
+
+# From Sharef Mustafa (2016-10-19):
+# [T]he Palestinian cabinet decision (Mar 8th 2016) published on
+# http://www.palestinecabinet.gov.ps/WebSite/Upload/Decree/GOV_17/16032016134830.pdf
+# states that summer time will end on Oct 29th at 01:00.
+#
+# From Tim Parenti (2016-10-19):
+# Predict fall transitions on October's last Saturday at 01:00 from now on.
+# This is consistent with the 2016 transition as well as our spring
+# predictions.
+#
+# From Paul Eggert (2016-10-19):
+# It's also consistent with predictions in the following URLs today:
+# http://www.timeanddate.com/time/change/gaza-strip/gaza
+# http://www.timeanddate.com/time/change/west-bank/hebron
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule EgyptAsia	1957	only	-	May	10	0:00	1:00	S
@@ -2592,9 +2596,10 @@ Rule Palestine	2011	only	-	Sep	30	0:00	0	-
 Rule Palestine	2012	2014	-	Mar	lastThu	24:00	1:00	S
 Rule Palestine	2012	only	-	Sep	21	1:00	0	-
 Rule Palestine	2013	only	-	Sep	Fri>=21	0:00	0	-
-Rule Palestine	2014	max	-	Oct	Fri>=21	0:00	0	-
+Rule Palestine	2014	2015	-	Oct	Fri>=21	0:00	0	-
 Rule Palestine	2015	only	-	Mar	lastFri	24:00	1:00	S
 Rule Palestine	2016	max	-	Mar	lastSat	1:00	1:00	S
+Rule Palestine	2016	max	-	Oct	lastSat	1:00	0	-
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Gaza	2:17:52	-	LMT	1900 Oct
@@ -2682,7 +2687,7 @@ Link Asia/Qatar Asia/Bahrain
 # earlier date.
 #
 # Shanks & Pottenger also state that until 1968-05-01 Saudi Arabia had two
-# time zones; the other zone, at UTC+4, was in the far eastern part of
+# time zones; the other zone, at UT +04, was in the far eastern part of
 # the country.  Ignore this, as it's before our 1970 cutoff.
 #
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -2744,45 +2749,31 @@ Zone	Asia/Singapore	6:55:25 -	LMT	1901 Jan  1
 # People who live in regions under Tamil control can use [TZ='Asia/Kolkata'],
 # as that zone has agreed with the Tamil areas since our cutoff date of 1970.
 
-# From K Sethu (2006-04-25):
-# I think the abbreviation LKT originated from the world of computers at
-# the time of or subsequent to the time zone changes by SL Government
-# twice in 1996 and probably SL Government or its standardization
-# agencies never declared an abbreviation as a national standard.
-#
-# I recollect before the recent change the government announcements
-# mentioning it as simply changing Sri Lanka Standard Time or Sri Lanka
-# Time and no mention was made about the abbreviation.
-#
-# If we look at Sri Lanka Department of Government's "Official News
-# Website of Sri Lanka" ... http://www.news.lk/ we can see that they
-# use SLT as abbreviation in time stamp at the beginning of each news
-# item....
-#
-# Within Sri Lanka I think LKT is well known among computer users and
-# administrators.  In my opinion SLT may not be a good choice because the
-# nation's largest telcom / internet operator Sri Lanka Telcom is well
-# known by that abbreviation - simply as SLT (there IP domains are
-# slt.lk and sltnet.lk).
-#
-# But if indeed our government has adopted SLT as standard abbreviation
-# (that we have not known so far) then  it is better that it be used for
-# all computers.
-
-# From Paul Eggert (2006-04-25):
-# One possibility is that we wait for a bit for the dust to settle down
-# and then see what people actually say in practice.
+# From Sadika Sumanapala (2016-10-19):
+# According to http://www.sltime.org (maintained by Measurement Units,
+# Standards & Services Department, Sri Lanka) abbreviation for Sri Lanka
+# standard time is SLST.
+#
+# From Paul Eggert (2016-10-18):
+# "SLST" seems to be reasonably recent and rarely-used outside time
+# zone nerd sources.  I searched Google News and found three uses of
+# it in the International Business Times of India in February and
+# March of this year when discussing cricket match times, but nothing
+# since then (though there has been a lot of cricket) and nothing in
+# other English-language news sources.  Our old abbreviation "LKT" is
+# even worse.  For now, let's use a numeric abbreviation; we can
+# switch to "SLST" if it catches on.
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Colombo	5:19:24 -	LMT	1880
 			5:19:32	-	MMT	1906        # Moratuwa Mean Time
-			5:30	-	IST	1942 Jan  5
-			5:30	0:30	IHST	1942 Sep
-			5:30	1:00	IST	1945 Oct 16  2:00
-			5:30	-	IST	1996 May 25  0:00
-			6:30	-	LKT	1996 Oct 26  0:30
-			6:00	-	LKT	2006 Apr 15  0:30
-			5:30	-	IST
+			5:30	-	+0530	1942 Jan  5
+			5:30	0:30	+0530/+06 1942 Sep
+			5:30	1:00	+0530/+0630 1945 Oct 16  2:00
+			5:30	-	+0530	1996 May 25  0:00
+			6:30	-	+0630	1996 Oct 26  0:30
+			6:00	-	+06	2006 Apr 15  0:30
+			5:30	-	+0530
 
 # Syria
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
@@ -2951,10 +2942,10 @@ Zone	Asia/Damascus	2:25:12 -	LMT	1920 # Dimashq
 # From Shanks & Pottenger.
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Dushanbe	4:35:12 -	LMT	1924 May  2
-			5:00	-	DUST	1930 Jun 21 # Dushanbe Time
-			6:00 RussiaAsia DUS%sT	1991 Mar 31  2:00s
-			5:00	1:00	DUSST	1991 Sep  9  2:00s
-			5:00	-	TJT	# Tajikistan Time
+			5:00	-	+05	1930 Jun 21
+			6:00 RussiaAsia +06/+07	1991 Mar 31  2:00s
+			5:00	1:00	+05/+06	1991 Sep  9  2:00s
+			5:00	-	+05
 
 # Thailand
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -2968,11 +2959,10 @@ Link Asia/Bangkok Asia/Vientiane	# Laos
 # From Shanks & Pottenger.
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Ashgabat	3:53:32 -	LMT	1924 May  2 # or Ashkhabad
-			4:00	-	ASHT	1930 Jun 21 # Ashkhabad Time
-			5:00 RussiaAsia	ASH%sT	1991 Mar 31  2:00
-			4:00 RussiaAsia	ASH%sT	1991 Oct 27 # independence
-			4:00 RussiaAsia	TM%sT	1992 Jan 19  2:00
-			5:00	-	TMT
+			4:00	-	+04	1930 Jun 21
+			5:00 RussiaAsia	+05/+06	1991 Mar 31  2:00
+			4:00 RussiaAsia	+04/+05	1992 Jan 19  2:00
+			5:00	-	+05
 
 # United Arab Emirates
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -2984,20 +2974,18 @@ Link Asia/Dubai Asia/Muscat	# Oman
 # Byalokoz 1919 says Uzbekistan was 4:27:53.
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Samarkand	4:27:53 -	LMT	1924 May  2
-			4:00	-	SAMT	1930 Jun 21 # Samarkand Time
-			5:00	-	SAMT	1981 Apr  1
-			5:00	1:00	SAMST	1981 Oct  1
-			6:00	-	TAST	1982 Apr  1 # Tashkent Time
-			5:00 RussiaAsia	SAM%sT	1991 Sep  1 # independence
-			5:00 RussiaAsia	UZ%sT	1992
-			5:00	-	UZT
+			4:00	-	+04	1930 Jun 21
+			5:00	-	+05	1981 Apr  1
+			5:00	1:00	+06	1981 Oct  1
+			6:00	-	+06	1982 Apr  1
+			5:00 RussiaAsia	+05/+06	1992
+			5:00	-	+05
 # Milne says Tashkent was 4:37:10.8; round to nearest.
 Zone	Asia/Tashkent	4:37:11 -	LMT	1924 May  2
-			5:00	-	TAST	1930 Jun 21 # Tashkent Time
-			6:00 RussiaAsia	TAS%sT	1991 Mar 31  2:00
-			5:00 RussiaAsia	TAS%sT	1991 Sep  1 # independence
-			5:00 RussiaAsia	UZ%sT	1992
-			5:00	-	UZT
+			5:00	-	+05	1930 Jun 21
+			6:00 RussiaAsia	+06/+07	1991 Mar 31  2:00
+			5:00 RussiaAsia	+05/+06	1992
+			5:00	-	+05
 
 # Vietnam
 
diff --git a/lib/modules/Calendar.pmod/tzdata/australasia b/lib/modules/Calendar.pmod/tzdata/australasia
index 0b33f67ed407f346a1a50c884cee8ef87283d368..85d363295b88cdbf4ab19672090eaf99282ebccb 100644
--- a/lib/modules/Calendar.pmod/tzdata/australasia
+++ b/lib/modules/Calendar.pmod/tzdata/australasia
@@ -350,7 +350,13 @@ Zone	Indian/Cocos	6:27:40	-	LMT	1900
 # commencing at 2.00 am on Sunday 1st November, 2015 and ending at
 # 3.00 am on Sunday 17th January, 2016.
 
-# From Paul Eggert (2015-09-01):
+# From Raymond Kumar (2016-10-04):
+# http://www.fiji.gov.fj/Media-Center/Press-Releases/DAYLIGHT-SAVING-STARTS-ON-6th-NOVEMBER,-2016.aspx
+# "Fiji's daylight savings will begin on Sunday, 6 November 2016, when
+# clocks go forward an hour at 2am to 3am....  Daylight Saving will
+# end at 3.00am on Sunday 15th January 2017."
+
+# From Paul Eggert (2016-10-03):
 # For now, guess DST from 02:00 the first Sunday in November to
 # 03:00 the third Sunday in January.  Although ad hoc, it matches
 # transitions since late 2014 and seems more likely to match future
@@ -545,7 +551,7 @@ Zone Pacific/Port_Moresby 9:48:40 -	LMT	1880
 # Base the Bougainville entry on the Arawa-Kieta region, which appears to have
 # the most people even though it was devastated in the Bougainville Civil War.
 #
-# Although Shanks gives 1942-03-15 / 1943-11-01 for JST, these dates
+# Although Shanks gives 1942-03-15 / 1943-11-01 for UT +09, these dates
 # are apparently rough guesswork from the starts of military campaigns.
 # The World War II entries below are instead based on Arawa-Kieta.
 # The Japanese occupied Kieta in July 1942,
@@ -553,8 +559,8 @@ Zone Pacific/Port_Moresby 9:48:40 -	LMT	1880
 # http://pwencycl.kgbudge.com/B/o/Bougainville.htm
 # and seem to have controlled it until their 1945-08-21 surrender.
 #
-# The Autonomous Region of Bougainville plans to switch from UTC+10 to UTC+11
-# on 2014-12-28 at 02:00.  They call UTC+11 "Bougainville Standard Time";
+# The Autonomous Region of Bougainville switched from UT +10 to +11
+# on 2014-12-28 at 02:00.  They call +11 "Bougainville Standard Time";
 # abbreviate this as BST.  See:
 # http://www.bougainville24.com/bougainville-issues/bougainville-gets-own-timezone/
 #
@@ -620,7 +626,7 @@ Link Pacific/Pago_Pago Pacific/Midway # in US minor outlying islands
 # From Paul Eggert (2014-06-27):
 # The International Date Line Act 2011
 # http://www.parliament.gov.ws/images/ACTS/International_Date_Line_Act__2011_-_Eng.pdf
-# changed Samoa from UTC-11 to UTC+13, effective "12 o'clock midnight, on
+# changed Samoa from UT -11 to +13, effective "12 o'clock midnight, on
 # Thursday 29th December 2011".  The International Date Line was adjusted
 # accordingly.
 
@@ -715,7 +721,7 @@ Zone Pacific/Funafuti	11:56:52 -	LMT	1901
 # 1886-1891; Baker was similar but exact dates are not known.
 # Inhabited by civilians 1935-1942; U.S. military bases 1943-1944;
 # uninhabited thereafter.
-# Howland observed Hawaii Standard Time (UT-10:30) in 1937;
+# Howland observed Hawaii Standard Time (UT -10:30) in 1937;
 # see page 206 of Elgen M. Long and Marie K. Long,
 # Amelia Earhart: the Mystery Solved, Simon & Schuster (2000).
 # So most likely Howland and Baker observed Hawaii Time from 1935
@@ -1473,7 +1479,7 @@ Zone	Pacific/Wallis	12:15:20 -	LMT	1901
 # Zealand time.  I understand that is the time they keep locally, anyhow."
 # For now, assume this practice goes back to the introduction of standard time
 # in New Zealand, as this would make Chatham Islands time almost exactly match
-# LMT back when New Zealand was at UTC+11:30; also, assume Chatham Islands did
+# LMT back when New Zealand was at UT +11:30; also, assume Chatham Islands did
 # not observe New Zealand's prewar DST.
 
 ###############################################################################
@@ -1529,7 +1535,7 @@ Zone	Pacific/Wallis	12:15:20 -	LMT	1901
 # For now, we assume the Ladrones switched at the same time as the Philippines;
 # see Asia/Manila.
 
-# US Public Law 106-564 (2000-12-23) made UTC+10 the official standard time,
+# US Public Law 106-564 (2000-12-23) made UT +10 the official standard time,
 # under the name "Chamorro Standard Time".  There is no official abbreviation,
 # but Congressman Robert A. Underwood, author of the bill that became law,
 # wrote in a press release (2000-12-27) that he will seek the use of "ChST".
@@ -1541,15 +1547,15 @@ Zone	Pacific/Wallis	12:15:20 -	LMT	1901
 # "I am certain, having lived there for the past decade, that 'Truk'
 # (now properly known as Chuuk) ... is in the time zone GMT+10."
 #
-# Shanks & Pottenger write that Truk switched from UTC+10 to UTC+11
+# Shanks & Pottenger write that Truk switched from UT +10 to +11
 # on 1978-10-01; ignore this for now.
 
 # From Paul Eggert (1999-10-29):
 # The Federated States of Micronesia Visitors Board writes in
 # The Federated States of Micronesia - Visitor Information (1999-01-26)
 # http://www.fsmgov.org/info/clocks.html
-# that Truk and Yap are UTC+10, and Ponape and Kosrae are UTC+11.
-# We don't know when Kosrae switched from UTC+12; assume January 1 for now.
+# that Truk and Yap are UT +10, and Ponape and Kosrae are +11.
+# We don't know when Kosrae switched from +12; assume January 1 for now.
 
 
 # Midway
@@ -1615,11 +1621,11 @@ Zone	Pacific/Wallis	12:15:20 -	LMT	1901
 # ordaining - by a masterpiece of diplomatic flattery - that
 # the Fourth of July should be celebrated twice in that year."
 
-# Although Shanks & Pottenger says they both switched to UTC-11:30
-# in 1911, and to UTC-11 in 1950. many earlier sources give UTC-11
+# Although Shanks & Pottenger says they both switched to UT -11:30
+# in 1911, and to -11 in 1950. many earlier sources give -11
 # for American Samoa, e.g., the US National Bureau of Standards
 # circular "Standard Time Throughout the World", 1932.
-# Assume American Samoa switched to UTC-11 in 1911, not 1950,
+# Assume American Samoa switched to -11 in 1911, not 1950,
 # and that after 1950 they agreed until (western) Samoa skipped a
 # day in 2011.  Assume also that the Samoas follow the US and New
 # Zealand's "ST"/"DT" style of daylight-saving abbreviations.
diff --git a/lib/modules/Calendar.pmod/tzdata/backward b/lib/modules/Calendar.pmod/tzdata/backward
index aab237a5e29d7f659db5aceb103ada054927eaa5..aa23dd844eb583242fa24b33b1b2d852f9740903 100644
--- a/lib/modules/Calendar.pmod/tzdata/backward
+++ b/lib/modules/Calendar.pmod/tzdata/backward
@@ -36,6 +36,7 @@ Link	Asia/Shanghai		Asia/Harbin
 Link	Asia/Urumqi		Asia/Kashgar
 Link	Asia/Kathmandu		Asia/Katmandu
 Link	Asia/Macau		Asia/Macao
+Link	Asia/Yangon		Asia/Rangoon
 Link	Asia/Ho_Chi_Minh	Asia/Saigon
 Link	Asia/Jerusalem		Asia/Tel_Aviv
 Link	Asia/Thimphu		Asia/Thimbu
diff --git a/lib/modules/Calendar.pmod/tzdata/backzone b/lib/modules/Calendar.pmod/tzdata/backzone
index 13dc8d4d13abcbe05b6cf77fccb43898a352e91b..4a5085f42295800f105cd7bb4e05dd11467d6095 100644
--- a/lib/modules/Calendar.pmod/tzdata/backzone
+++ b/lib/modules/Calendar.pmod/tzdata/backzone
@@ -194,9 +194,9 @@ Zone	Africa/Lusaka	1:53:08 -	LMT	1903 Mar
 
 # Equatorial Guinea
 #
-# Although Shanks says that Malabo switched from UTC to UTC+1 on 1963-12-15,
+# Although Shanks says that Malabo switched from UT +00 to +01 on 1963-12-15,
 # a Google Books search says that London Calling, Issues 432-465 (1948), p 19,
-# says that Spanish Guinea was at GMT+1 back then.  The Shanks data entries
+# says that Spanish Guinea was at +01 back then.  The Shanks data entries
 # are most likely wrong, but we have nothing better; use them here for now.
 #
 Zone	Africa/Malabo	0:35:08 -	LMT	1912
@@ -479,14 +479,14 @@ Zone	Asia/Muscat	3:54:24 -	LMT	1920
 # From Paul Eggert (2014-08-11), after a heads-up from Stephen Colebourne:
 # According to a Portuguese decree (1911-05-26)
 # http://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf
-# Portuguese India switched to GMT+5 on 1912-01-01.
+# Portuguese India switched to UT +05 on 1912-01-01.
 #Zone	Asia/Panaji	[not enough info to complete]
 
 # Cambodia
 # From Paul Eggert (2014-10-11):
 # See Asia/Ho_Chi_Minh for the source for most of this data.  Also, guess
-# (1) Cambodia reverted to UT+7 on 1945-09-02, when Vietnam did, and
-# (2) they also reverted to UT+7 on 1953-11-09, the date of independence.
+# (1) Cambodia reverted to UT +07 on 1945-09-02, when Vietnam did, and
+# (2) they also reverted to +07 on 1953-11-09, the date of independence.
 # These guesses are probably wrong but they're better than guessing no
 # transitions there.
 Zone	Asia/Phnom_Penh	6:59:40 -	LMT	1906 Jul  1
@@ -506,8 +506,8 @@ Zone	Asia/Tel_Aviv	2:19:04 -	LMT	1880
 # Laos
 # From Paul Eggert (2014-10-11):
 # See Asia/Ho_Chi_Minh for the source for most of this data.
-# Trần's book says that Laos reverted to UT+7 on 1955-04-15.
-# Also, guess that Laos reverted to UT+7 on 1945-09-02, when Vietnam did;
+# Trần's book says that Laos reverted to UT +07 on 1955-04-15.
+# Also, guess that Laos reverted to +07 on 1945-09-02, when Vietnam did;
 # this is probably wrong but it's better than guessing no transition.
 Zone	Asia/Vientiane	6:50:24 -	LMT	1906 Jul  1
 			7:06:30	-	PLMT	1911 May  1
diff --git a/lib/modules/Calendar.pmod/tzdata/etcetera b/lib/modules/Calendar.pmod/tzdata/etcetera
index c2e25328d5d3a4b5fd2fe10a05e645824b266261..f5fa4c94b483add1d2df2acd12a87ded1f604f55 100644
--- a/lib/modules/Calendar.pmod/tzdata/etcetera
+++ b/lib/modules/Calendar.pmod/tzdata/etcetera
@@ -8,6 +8,13 @@
 # need now for the entries that are not on UTC are for ships at sea
 # that cannot use POSIX TZ settings.
 
+# Starting with POSIX 1003.1-2001, the entries below are all
+# unnecessary as settings for the TZ environment variable.  E.g.,
+# instead of TZ='Etc/GMT+4' one can use the POSIX setting TZ='<-04>+4'.
+#
+# Do not use a POSIX TZ setting like TZ='GMT+4', which is four hours
+# behind GMT but uses the completely misleading abbreviation "GMT".
+
 Zone	Etc/GMT		0	-	GMT
 Zone	Etc/UTC		0	-	UTC
 Zone	Etc/UCT		0	-	UCT
@@ -26,23 +33,13 @@ Link	Etc/GMT				Etc/GMT-0
 Link	Etc/GMT				Etc/GMT+0
 Link	Etc/GMT				Etc/GMT0
 
-# We use POSIX-style signs in the Zone names and the output abbreviations,
+# Be consistent with POSIX TZ settings in the Zone names,
 # even though this is the opposite of what many people expect.
 # POSIX has positive signs west of Greenwich, but many people expect
 # positive signs east of Greenwich.  For example, TZ='Etc/GMT+4' uses
-# the abbreviation "GMT+4" and corresponds to 4 hours behind UT
+# the abbreviation "-04" and corresponds to 4 hours behind UT
 # (i.e. west of Greenwich) even though many people would expect it to
 # mean 4 hours ahead of UT (i.e. east of Greenwich).
-#
-# In the draft 5 of POSIX 1003.1-200x, the angle bracket notation allows for
-# TZ='<GMT-4>+4'; if you want time zone abbreviations conforming to
-# ISO 8601 you can use TZ='<-0400>+4'.  Thus the commonly-expected
-# offset is kept within the angle bracket (and is used for display)
-# while the POSIX sign is kept outside the angle bracket (and is used
-# for calculation).
-#
-# Do not use a TZ setting like TZ='GMT+4', which is four hours behind
-# GMT but uses the completely misleading abbreviation "GMT".
 
 # Earlier incarnations of this package were not POSIX-compliant,
 # and had lines such as
@@ -51,30 +48,31 @@ Link	Etc/GMT				Etc/GMT0
 # way does a
 #		zic -l GMT-12
 # so we moved the names into the Etc subdirectory.
+# Also, the time zone abbreviations are now compatible with %z.
 
-Zone	Etc/GMT-14	14	-	GMT-14	# 14 hours ahead of GMT
-Zone	Etc/GMT-13	13	-	GMT-13
-Zone	Etc/GMT-12	12	-	GMT-12
-Zone	Etc/GMT-11	11	-	GMT-11
-Zone	Etc/GMT-10	10	-	GMT-10
-Zone	Etc/GMT-9	9	-	GMT-9
-Zone	Etc/GMT-8	8	-	GMT-8
-Zone	Etc/GMT-7	7	-	GMT-7
-Zone	Etc/GMT-6	6	-	GMT-6
-Zone	Etc/GMT-5	5	-	GMT-5
-Zone	Etc/GMT-4	4	-	GMT-4
-Zone	Etc/GMT-3	3	-	GMT-3
-Zone	Etc/GMT-2	2	-	GMT-2
-Zone	Etc/GMT-1	1	-	GMT-1
-Zone	Etc/GMT+1	-1	-	GMT+1
-Zone	Etc/GMT+2	-2	-	GMT+2
-Zone	Etc/GMT+3	-3	-	GMT+3
-Zone	Etc/GMT+4	-4	-	GMT+4
-Zone	Etc/GMT+5	-5	-	GMT+5
-Zone	Etc/GMT+6	-6	-	GMT+6
-Zone	Etc/GMT+7	-7	-	GMT+7
-Zone	Etc/GMT+8	-8	-	GMT+8
-Zone	Etc/GMT+9	-9	-	GMT+9
-Zone	Etc/GMT+10	-10	-	GMT+10
-Zone	Etc/GMT+11	-11	-	GMT+11
-Zone	Etc/GMT+12	-12	-	GMT+12
+Zone	Etc/GMT-14	14	-	+14
+Zone	Etc/GMT-13	13	-	+13
+Zone	Etc/GMT-12	12	-	+12
+Zone	Etc/GMT-11	11	-	+11
+Zone	Etc/GMT-10	10	-	+10
+Zone	Etc/GMT-9	9	-	+09
+Zone	Etc/GMT-8	8	-	+08
+Zone	Etc/GMT-7	7	-	+07
+Zone	Etc/GMT-6	6	-	+06
+Zone	Etc/GMT-5	5	-	+05
+Zone	Etc/GMT-4	4	-	+04
+Zone	Etc/GMT-3	3	-	+03
+Zone	Etc/GMT-2	2	-	+02
+Zone	Etc/GMT-1	1	-	+01
+Zone	Etc/GMT+1	-1	-	-01
+Zone	Etc/GMT+2	-2	-	-02
+Zone	Etc/GMT+3	-3	-	-03
+Zone	Etc/GMT+4	-4	-	-04
+Zone	Etc/GMT+5	-5	-	-05
+Zone	Etc/GMT+6	-6	-	-06
+Zone	Etc/GMT+7	-7	-	-07
+Zone	Etc/GMT+8	-8	-	-08
+Zone	Etc/GMT+9	-9	-	-09
+Zone	Etc/GMT+10	-10	-	-10
+Zone	Etc/GMT+11	-11	-	-11
+Zone	Etc/GMT+12	-12	-	-12
diff --git a/lib/modules/Calendar.pmod/tzdata/europe b/lib/modules/Calendar.pmod/tzdata/europe
index cd3a0883d8a92ce44ba78d0dfcdfbad3b16f85bb..a7dc350d1ebf13f83ed545911d4d4d72c93011fd 100644
--- a/lib/modules/Calendar.pmod/tzdata/europe
+++ b/lib/modules/Calendar.pmod/tzdata/europe
@@ -75,8 +75,7 @@
 #        1:00       CET CEST CEMT Central Europe
 #        1:00:14    SET           Swedish (1879-1899)*
 #        2:00       EET EEST      Eastern Europe
-#        3:00       FET           Further-eastern Europe (2011-2014)*
-#        3:00       MSK MSD  MSM* Minsk, Moscow
+#        3:00       MSK MSD       Moscow
 
 # From Peter Ilieve (1994-12-04),
 # The original six [EU members]: Belgium, France, (West) Germany, Italy,
@@ -583,16 +582,33 @@ Rule	E-Eur	1979	1995	-	Sep	lastSun	 0:00	0	-
 Rule	E-Eur	1981	max	-	Mar	lastSun	 0:00	1:00	S
 Rule	E-Eur	1996	max	-	Oct	lastSun	 0:00	0	-
 
+
+# Daylight saving time for Russia and the Soviet Union
+#
+# The 1917-1921 decree URLs are from Alexander Belopolsky (2016-08-23).
+
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Russia	1917	only	-	Jul	 1	23:00	1:00	MST  # Moscow Summer Time
+#
+# Decree No. 142 (1917-12-22) http://istmat.info/node/28137
 Rule	Russia	1917	only	-	Dec	28	 0:00	0	MMT  # Moscow Mean Time
+#
+# Decree No. 497 (1918-05-30) http://istmat.info/node/30001
 Rule	Russia	1918	only	-	May	31	22:00	2:00	MDST # Moscow Double Summer Time
 Rule	Russia	1918	only	-	Sep	16	 1:00	1:00	MST
+#
+# Decree No. 258 (1919-05-29) http://istmat.info/node/37949
 Rule	Russia	1919	only	-	May	31	23:00	2:00	MDST
-Rule	Russia	1919	only	-	Jul	 1	 2:00	1:00	MSD
+#
+Rule	Russia	1919	only	-	Jul	 1	 0:00u	1:00	MSD
 Rule	Russia	1919	only	-	Aug	16	 0:00	0	MSK
+#
+# Decree No. 63 (1921-02-03) http://istmat.info/node/45840
 Rule	Russia	1921	only	-	Feb	14	23:00	1:00	MSD
-Rule	Russia	1921	only	-	Mar	20	23:00	2:00	MSM  # Midsummer
+#
+# Decree No. 121 (1921-03-07) http://istmat.info/node/45949
+Rule	Russia	1921	only	-	Mar	20	23:00	2:00	+05
+#
 Rule	Russia	1921	only	-	Sep	 1	 0:00	1:00	MSD
 Rule	Russia	1921	only	-	Oct	 1	 0:00	0	-
 # Act No. 925 of the Council of Ministers of the USSR (1980-10-24):
@@ -775,8 +791,6 @@ Zone	Europe/Vienna	1:05:21 -	LMT	1893 Apr
 # From Alexander Bokovoy (2014-10-09):
 # Belarussian government decided against changing to winter time....
 # http://eng.belta.by/all_news/society/Belarus-decides-against-adjusting-time-in-Russias-wake_i_76335.html
-# From Paul Eggert (2014-10-08):
-# Hence Belarus can share time zone abbreviations with Moscow again.
 #
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Europe/Minsk	1:50:16 -	LMT	1880
@@ -787,8 +801,7 @@ Zone	Europe/Minsk	1:50:16 -	LMT	1880
 			3:00	Russia	MSK/MSD	1990
 			3:00	-	MSK	1991 Mar 31  2:00s
 			2:00	Russia	EE%sT	2011 Mar 27  2:00s
-			3:00	-	FET	2014 Oct 26  1:00s
-			3:00	-	MSK
+			3:00	-	+03
 
 # Belgium
 #
@@ -1296,7 +1309,7 @@ Zone	Europe/Paris	0:09:21 -	LMT	1891 Mar 15  0:01
 # http://www.parlament-berlin.de/pds-fraktion.nsf/727459127c8b66ee8525662300459099/defc77cb784f180ac1256c2b0030274b/$FILE/bersarint.pdf
 # says that Bersarin issued an order to use Moscow time on May 20.
 # However, Moscow did not observe daylight saving in 1945, so
-# this was equivalent to CEMT (GMT+3), not GMT+4.
+# this was equivalent to UT +03, not +04.
 
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
@@ -1895,7 +1908,7 @@ Zone	Europe/Monaco	0:29:32 -	LMT	1891 Mar 15
 # Amsterdam mean time.
 
 # The data entries before 1945 are taken from
-# http://www.phys.uu.nl/~vgent/wettijd/wettijd.htm
+# http://www.staff.science.uu.nl/~gent0113/idl/idl.htm
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Neth	1916	only	-	May	 1	0:00	1:00	NST	# Netherlands Summer Time
@@ -2260,7 +2273,6 @@ Zone Europe/Bucharest	1:44:24 -	LMT	1891 Oct
 # http://www.worldtimezone.com/dst_news/dst_news_russia-map-2014-07.html
 
 # From Paul Eggert (2006-03-22):
-# Except for Moscow after 1919-07-01, I invented the time zone abbreviations.
 # Moscow time zone abbreviations after 1919-07-01, and Moscow rules after 1991,
 # are from Andrey A. Chernov.  The rest is from Shanks & Pottenger,
 # except we follow Chernov's report that 1992 DST transitions were Sat
@@ -2336,7 +2348,7 @@ Zone Europe/Kaliningrad	 1:22:00 -	LMT	1893 Apr
 			 2:00	Poland	CE%sT	1946
 			 3:00	Russia	MSK/MSD	1989 Mar 26  2:00s
 			 2:00	Russia	EE%sT	2011 Mar 27  2:00s
-			 3:00	-	FET	2014 Oct 26  2:00s
+			 3:00	-	+03	2014 Oct 26  2:00s
 			 2:00	-	EET
 
 
@@ -2389,6 +2401,16 @@ Zone Europe/Kaliningrad	 1:22:00 -	LMT	1893 Apr
 # 78	RU-SPE	Saint Petersburg
 # 83	RU-NEN	Nenets Autonomous Okrug
 
+# From Paul Eggert (2016-08-23):
+# The Soviets switched to UT-based time in 1919.  Decree No. 59
+# (1919-02-08) http://istmat.info/node/35567 established UT-based time
+# zones, and Decree No. 147 (1919-03-29) http://istmat.info/node/35854
+# specified a transition date of 1919-07-01, apparently at 00:00 UT.
+# No doubt only the Soviet-controlled regions switched on that date;
+# later transitions to UT-based time in other parts of Russia are
+# taken from what appear to be guesses by Shanks.
+# (Thanks to Alexander Belopolsky for pointers to the decrees.)
+
 # From Stepan Golosunov (2016-03-07):
 # 11. Regions-violators, 1981-1982.
 # Wikipedia refers to
@@ -2430,7 +2452,7 @@ Zone Europe/Kaliningrad	 1:22:00 -	LMT	1893 Apr
 # attributes the 1982 changes to the Act of the Council of Ministers
 # of the USSR No. 126 from 18.02.1982.  1980-925.txt also adds
 # Udmurtia to the list of affected territories and lists Khatangsky
-# district separately from Taymyr Autonomous Okurg.  Probably erroneously.
+# district separately from Taymyr Autonomous Okrug.  Probably erroneously.
 #
 # The affected territories are currently listed under Europe/Moscow,
 # Asia/Yekaterinburg and Asia/Krasnoyarsk.
@@ -2490,7 +2512,7 @@ Zone Europe/Kaliningrad	 1:22:00 -	LMT	1893 Apr
 
 Zone Europe/Moscow	 2:30:17 -	LMT	1880
 			 2:30:17 -	MMT	1916 Jul  3 # Moscow Mean Time
-			 2:31:19 Russia	%s	1919 Jul  1  2:00
+			 2:31:19 Russia	%s	1919 Jul  1  0:00u
 			 3:00	Russia	%s	1921 Oct
 			 3:00	Russia	MSK/MSD	1922 Oct
 			 2:00	-	EET	1930 Jun 21
@@ -2573,22 +2595,21 @@ Zone Europe/Astrakhan	 3:12:12 -	LMT	1924 May
 # The 1988 transition is from USSR act No. 5 (1988-01-04).
 
 Zone Europe/Volgograd	 2:57:40 -	LMT	1920 Jan  3
-			 3:00	-	TSAT	1925 Apr  6 # Tsaritsyn Time
-			 3:00	-	STAT	1930 Jun 21 # Stalingrad Time
-			 4:00	-	STAT	1961 Nov 11
-			 4:00	Russia	VOL%sT	1988 Mar 27  2:00s # Volgograd T
-			 3:00	Russia	VOL%sT	1991 Mar 31  2:00s
-			 4:00	-	VOLT	1992 Mar 29  2:00s
-			 3:00	Russia	MSK/MSD	2011 Mar 27  2:00s
-			 4:00	-	MSK	2014 Oct 26  2:00s
-			 3:00	-	MSK
+			 3:00	-	+03	1930 Jun 21
+			 4:00	-	+04	1961 Nov 11
+			 4:00	Russia	+04/+05	1988 Mar 27  2:00s
+			 3:00	Russia	+03/+04	1991 Mar 31  2:00s
+			 4:00	-	+04	1992 Mar 29  2:00s
+			 3:00	Russia	+03/+04	2011 Mar 27  2:00s
+			 4:00	-	+04	2014 Oct 26  2:00s
+			 3:00	-	+03
 
 # From Paul Eggert (2016-03-18):
 # Europe/Kirov covers:
 # 43	RU-KIR	Kirov Oblast
 # The 1989 transition is from USSR act No. 227 (1989-03-14).
 #
-Zone Europe/Kirov	 3:18:48 -	LMT	1919 Jul  1  2:00
+Zone Europe/Kirov	 3:18:48 -	LMT	1919 Jul  1  0:00u
 			 3:00	-	+03	1930 Jun 21
 			 4:00	Russia	+04/+05	1989 Mar 26  2:00s
 			 3:00	Russia	+03/+04	1991 Mar 31  2:00s
@@ -2606,16 +2627,16 @@ Zone Europe/Kirov	 3:18:48 -	LMT	1919 Jul  1  2:00
 # Byalokoz 1919 says Samara was 3:20:20.
 # The 1989 transition is from USSR act No. 227 (1989-03-14).
 
-Zone Europe/Samara	 3:20:20 -	LMT	1919 Jul  1  2:00
-			 3:00	-	SAMT	1930 Jun 21 # Samara Time
-			 4:00	-	SAMT	1935 Jan 27
-			 4:00	Russia	KUY%sT	1989 Mar 26  2:00s # Kuybyshev
-			 3:00	Russia	MSK/MSD	1991 Mar 31  2:00s
-			 2:00	Russia	EE%sT	1991 Sep 29  2:00s
-			 3:00	-	SAMT	1991 Oct 20  3:00
-			 4:00	Russia	SAM%sT	2010 Mar 28  2:00s
-			 3:00	Russia	SAM%sT	2011 Mar 27  2:00s
-			 4:00	-	SAMT
+Zone Europe/Samara	 3:20:20 -	LMT	1919 Jul  1  0:00u
+			 3:00	-	+03	1930 Jun 21
+			 4:00	-	+04	1935 Jan 27
+			 4:00	Russia	+04/+05	1989 Mar 26  2:00s
+			 3:00	Russia	+03/+04	1991 Mar 31  2:00s
+			 2:00	Russia	+02/+03	1991 Sep 29  2:00s
+			 3:00	-	+03	1991 Oct 20  3:00
+			 4:00	Russia	+04/+05	2010 Mar 28  2:00s
+			 3:00	Russia	+03/+04	2011 Mar 27  2:00s
+			 4:00	-	+04
 
 # From Paul Eggert (2016-03-18):
 # Europe/Ulyanovsk covers:
@@ -2630,7 +2651,7 @@ Zone Europe/Samara	 3:20:20 -	LMT	1919 Jul  1  2:00
 # From Matt Johnson (2016-03-09):
 # http://publication.pravo.gov.ru/Document/View/0001201603090051
 
-Zone Europe/Ulyanovsk	 3:13:36 -	LMT	1919 Jul  1  2:00
+Zone Europe/Ulyanovsk	 3:13:36 -	LMT	1919 Jul  1  0:00u
 			 3:00	-	+03	1930 Jun 21
 			 4:00	Russia	+04/+05	1989 Mar 26  2:00s
 			 3:00	Russia	+03/+04	1991 Mar 31  2:00s
@@ -2662,12 +2683,12 @@ Zone Europe/Ulyanovsk	 3:13:36 -	LMT	1919 Jul  1  2:00
 
 Zone Asia/Yekaterinburg	 4:02:33 -	LMT	1916 Jul  3
 			 3:45:05 -	PMT	1919 Jul 15  4:00
-			 4:00	-	SVET	1930 Jun 21 # Sverdlovsk Time
-			 5:00	Russia	SVE%sT	1991 Mar 31  2:00s
-			 4:00	Russia	SVE%sT	1992 Jan 19  2:00s
-			 5:00	Russia	YEK%sT	2011 Mar 27  2:00s
-			 6:00	-	YEKT	2014 Oct 26  2:00s
-			 5:00	-	YEKT
+			 4:00	-	+04	1930 Jun 21
+			 5:00	Russia	+05/+06	1991 Mar 31  2:00s
+			 4:00	Russia	+04/+05	1992 Jan 19  2:00s
+			 5:00	Russia	+05/+06	2011 Mar 27  2:00s
+			 6:00	-	+06	2014 Oct 26  2:00s
+			 5:00	-	+05
 
 
 # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25):
@@ -2677,12 +2698,12 @@ Zone Asia/Yekaterinburg	 4:02:33 -	LMT	1916 Jul  3
 # Byalokoz 1919 says Omsk was 4:53:30.
 
 Zone Asia/Omsk		 4:53:30 -	LMT	1919 Nov 14
-			 5:00	-	OMST	1930 Jun 21 # Omsk Time
-			 6:00	Russia	OMS%sT	1991 Mar 31  2:00s
-			 5:00	Russia	OMS%sT	1992 Jan 19  2:00s
-			 6:00	Russia	OMS%sT	2011 Mar 27  2:00s
-			 7:00	-	OMST	2014 Oct 26  2:00s
-			 6:00	-	OMST
+			 5:00	-	+05	1930 Jun 21
+			 6:00	Russia	+06/+07	1991 Mar 31  2:00s
+			 5:00	Russia	+05/+06	1992 Jan 19  2:00s
+			 6:00	Russia	+06/+07	2011 Mar 27  2:00s
+			 7:00	-	+07	2014 Oct 26  2:00s
+			 6:00	-	+06
 
 # From Paul Eggert (2016-02-22):
 # Asia/Barnaul covers:
@@ -2762,7 +2783,7 @@ Zone Asia/Novosibirsk	 5:31:40 -	LMT	1919 Dec 14  6:00
 # Note that time belts (numbered from 2 (Moscow) to 12 according to their
 # GMT/UTC offset and having too many exceptions like regions formally
 # belonging to one belt but using time from another) were replaced
-# with time zones in 2011 with different numberings (there was a
+# with time zones in 2011 with different numbering (there was a
 # 2-hour gap between second and third zones in 2011-2014).
 
 # From Stepan Golosunov (2016-04-12):
@@ -2845,12 +2866,12 @@ Zone Asia/Novokuznetsk	 5:48:48 -	LMT	1924 May  1
 # Byalokoz 1919 says Krasnoyarsk was 6:11:26.
 
 Zone Asia/Krasnoyarsk	 6:11:26 -	LMT	1920 Jan  6
-			 6:00	-	KRAT	1930 Jun 21 # Krasnoyarsk Time
-			 7:00	Russia	KRA%sT	1991 Mar 31  2:00s
-			 6:00	Russia	KRA%sT	1992 Jan 19  2:00s
-			 7:00	Russia	KRA%sT	2011 Mar 27  2:00s
-			 8:00	-	KRAT	2014 Oct 26  2:00s
-			 7:00	-	KRAT
+			 6:00	-	+06	1930 Jun 21
+			 7:00	Russia	+07/+08	1991 Mar 31  2:00s
+			 6:00	Russia	+06/+07	1992 Jan 19  2:00s
+			 7:00	Russia	+07/+08	2011 Mar 27  2:00s
+			 8:00	-	+08	2014 Oct 26  2:00s
+			 7:00	-	+07
 
 
 # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25):
@@ -2867,12 +2888,12 @@ Zone Asia/Krasnoyarsk	 6:11:26 -	LMT	1920 Jan  6
 
 Zone Asia/Irkutsk	 6:57:05 -	LMT	1880
 			 6:57:05 -	IMT	1920 Jan 25 # Irkutsk Mean Time
-			 7:00	-	IRKT	1930 Jun 21 # Irkutsk Time
-			 8:00	Russia	IRK%sT	1991 Mar 31  2:00s
-			 7:00	Russia	IRK%sT	1992 Jan 19  2:00s
-			 8:00	Russia	IRK%sT	2011 Mar 27  2:00s
-			 9:00	-	IRKT	2014 Oct 26  2:00s
-			 8:00	-	IRKT
+			 7:00	-	+07	1930 Jun 21
+			 8:00	Russia	+08/+09	1991 Mar 31  2:00s
+			 7:00	Russia	+07/+08	1992 Jan 19  2:00s
+			 8:00	Russia	+08/+09	2011 Mar 27  2:00s
+			 9:00	-	+09	2014 Oct 26  2:00s
+			 8:00	-	+08
 
 
 # From Tim Parenti (2014-07-06):
@@ -2889,13 +2910,13 @@ Zone Asia/Irkutsk	 6:57:05 -	LMT	1880
 # http://publication.pravo.gov.ru/Document/View/0001201512300107
 
 Zone Asia/Chita	 7:33:52 -	LMT	1919 Dec 15
-			 8:00	-	YAKT	1930 Jun 21 # Yakutsk Time
-			 9:00	Russia	YAK%sT	1991 Mar 31  2:00s
-			 8:00	Russia	YAK%sT	1992 Jan 19  2:00s
-			 9:00	Russia	YAK%sT	2011 Mar 27  2:00s
-			10:00	-	YAKT	2014 Oct 26  2:00s
-			 8:00	-	IRKT	2016 Mar 27  2:00
-			 9:00	-	YAKT
+			 8:00	-	+08	1930 Jun 21
+			 9:00	Russia	+09/+10	1991 Mar 31  2:00s
+			 8:00	Russia	+08/+09	1992 Jan 19  2:00s
+			 9:00	Russia	+09/+10	2011 Mar 27  2:00s
+			10:00	-	+10	2014 Oct 26  2:00s
+			 8:00	-	+08	2016 Mar 27  2:00
+			 9:00	-	+09
 
 
 # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29):
@@ -2935,12 +2956,12 @@ Zone Asia/Chita	 7:33:52 -	LMT	1919 Dec 15
 # Byalokoz 1919 says Yakutsk was 8:38:58.
 
 Zone Asia/Yakutsk	 8:38:58 -	LMT	1919 Dec 15
-			 8:00	-	YAKT	1930 Jun 21 # Yakutsk Time
-			 9:00	Russia	YAK%sT	1991 Mar 31  2:00s
-			 8:00	Russia	YAK%sT	1992 Jan 19  2:00s
-			 9:00	Russia	YAK%sT	2011 Mar 27  2:00s
-			10:00	-	YAKT	2014 Oct 26  2:00s
-			 9:00	-	YAKT
+			 8:00	-	+08	1930 Jun 21
+			 9:00	Russia	+09/+10	1991 Mar 31  2:00s
+			 8:00	Russia	+08/+09	1992 Jan 19  2:00s
+			 9:00	Russia	+09/+10	2011 Mar 27  2:00s
+			10:00	-	+10	2014 Oct 26  2:00s
+			 9:00	-	+09
 
 
 # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29):
@@ -2958,12 +2979,12 @@ Zone Asia/Yakutsk	 8:38:58 -	LMT	1919 Dec 15
 # Go with Byalokoz.
 
 Zone Asia/Vladivostok	 8:47:31 -	LMT	1922 Nov 15
-			 9:00	-	VLAT	1930 Jun 21 # Vladivostok Time
-			10:00	Russia	VLA%sT	1991 Mar 31  2:00s
-			 9:00	Russia	VLA%sT	1992 Jan 19  2:00s
-			10:00	Russia	VLA%sT	2011 Mar 27  2:00s
-			11:00	-	VLAT	2014 Oct 26  2:00s
-			10:00	-	VLAT
+			 9:00	-	+09	1930 Jun 21
+			10:00	Russia	+10/+11	1991 Mar 31  2:00s
+			 9:00	Russia	+09/+10	1992 Jan 19  2:00s
+			10:00	Russia	+10/+11	2011 Mar 27  2:00s
+			11:00	-	+11	2014 Oct 26  2:00s
+			10:00	-	+10
 
 
 # From Tim Parenti (2014-07-03):
@@ -2981,14 +3002,14 @@ Zone Asia/Vladivostok	 8:47:31 -	LMT	1922 Nov 15
 # This transition is no doubt wrong, but we have no better info.
 
 Zone Asia/Khandyga	 9:02:13 -	LMT	1919 Dec 15
-			 8:00	-	YAKT	1930 Jun 21 # Yakutsk Time
-			 9:00	Russia	YAK%sT	1991 Mar 31  2:00s
-			 8:00	Russia	YAK%sT	1992 Jan 19  2:00s
-			 9:00	Russia	YAK%sT	2004
-			10:00	Russia	VLA%sT	2011 Mar 27  2:00s
-			11:00	-	VLAT	2011 Sep 13  0:00s # Decree 725?
-			10:00	-	YAKT	2014 Oct 26  2:00s
-			 9:00	-	YAKT
+			 8:00	-	+08	1930 Jun 21
+			 9:00	Russia	+09/+10	1991 Mar 31  2:00s
+			 8:00	Russia	+08/+09	1992 Jan 19  2:00s
+			 9:00	Russia	+09/+10	2004
+			10:00	Russia	+10/+11	2011 Mar 27  2:00s
+			11:00	-	+11	2011 Sep 13  0:00s # Decree 725?
+			10:00	-	+10	2014 Oct 26  2:00s
+			 9:00	-	+09
 
 
 # From Tim Parenti (2014-07-03):
@@ -3004,15 +3025,14 @@ Zone Asia/Khandyga	 9:02:13 -	LMT	1919 Dec 15
 
 # The Zone name should be Asia/Yuzhno-Sakhalinsk, but that's too long.
 Zone Asia/Sakhalin	 9:30:48 -	LMT	1905 Aug 23
-			 9:00	-	JCST	1937 Oct  1
-			 9:00	-	JST	1945 Aug 25
-			11:00	Russia	SAK%sT	1991 Mar 31  2:00s # Sakhalin T
-			10:00	Russia	SAK%sT	1992 Jan 19  2:00s
-			11:00	Russia	SAK%sT	1997 Mar lastSun  2:00s
-			10:00	Russia	SAK%sT	2011 Mar 27  2:00s
-			11:00	-	SAKT	2014 Oct 26  2:00s
-			10:00	-	SAKT	2016 Mar 27  2:00s
-			11:00	-	SAKT
+			 9:00	-	+09	1945 Aug 25
+			11:00	Russia	+11/+12	1991 Mar 31  2:00s # Sakhalin T
+			10:00	Russia	+10/+11	1992 Jan 19  2:00s
+			11:00	Russia	+11/+12	1997 Mar lastSun  2:00s
+			10:00	Russia	+10/+11	2011 Mar 27  2:00s
+			11:00	-	+11	2014 Oct 26  2:00s
+			10:00	-	+10	2016 Mar 27  2:00s
+			11:00	-	+11
 
 
 # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29):
@@ -3035,13 +3055,13 @@ Zone Asia/Sakhalin	 9:30:48 -	LMT	1905 Aug 23
 # http://publication.pravo.gov.ru/Document/View/0001201604050038
 
 Zone Asia/Magadan	10:03:12 -	LMT	1924 May  2
-			10:00	-	MAGT	1930 Jun 21 # Magadan Time
-			11:00	Russia	MAG%sT	1991 Mar 31  2:00s
-			10:00	Russia	MAG%sT	1992 Jan 19  2:00s
-			11:00	Russia	MAG%sT	2011 Mar 27  2:00s
-			12:00	-	MAGT	2014 Oct 26  2:00s
-			10:00	-	MAGT	2016 Apr 24  2:00s
-			11:00	-	MAGT
+			10:00	-	+10	1930 Jun 21 # Magadan Time
+			11:00	Russia	+11/+12	1991 Mar 31  2:00s
+			10:00	Russia	+10/+11	1992 Jan 19  2:00s
+			11:00	Russia	+11/+12	2011 Mar 27  2:00s
+			12:00	-	+12	2014 Oct 26  2:00s
+			10:00	-	+10	2016 Apr 24  2:00s
+			11:00	-	+11
 
 
 # From Tim Parenti (2014-07-06):
@@ -3084,17 +3104,14 @@ Zone Asia/Magadan	10:03:12 -	LMT	1924 May  2
 # in Russian.)  In addition, Srednekolymsk appears to be a much older
 # settlement and the population of Zyryanka seems to be declining.
 # Go with Srednekolymsk.
-#
-# Since Magadan Oblast moves to UTC+10 on 2014-10-26, we cannot keep using MAGT
-# as the abbreviation.  Use SRET instead.
 
 Zone Asia/Srednekolymsk	10:14:52 -	LMT	1924 May  2
-			10:00	-	MAGT	1930 Jun 21 # Magadan Time
-			11:00	Russia	MAG%sT	1991 Mar 31  2:00s
-			10:00	Russia	MAG%sT	1992 Jan 19  2:00s
-			11:00	Russia	MAG%sT	2011 Mar 27  2:00s
-			12:00	-	MAGT	2014 Oct 26  2:00s
-			11:00	-	SRET	# Srednekolymsk Time
+			10:00	-	+10	1930 Jun 21
+			11:00	Russia	+11/+12	1991 Mar 31  2:00s
+			10:00	Russia	+10/+11	1992 Jan 19  2:00s
+			11:00	Russia	+11/+12	2011 Mar 27  2:00s
+			12:00	-	+12	2014 Oct 26  2:00s
+			11:00	-	+11
 
 
 # From Tim Parenti (2014-07-03):
@@ -3112,14 +3129,14 @@ Zone Asia/Srednekolymsk	10:14:52 -	LMT	1924 May  2
 # UTC+12 since at least then, too.
 
 Zone Asia/Ust-Nera	 9:32:54 -	LMT	1919 Dec 15
-			 8:00	-	YAKT	1930 Jun 21 # Yakutsk Time
-			 9:00	Russia	YAKT	1981 Apr  1
-			11:00	Russia	MAG%sT	1991 Mar 31  2:00s
-			10:00	Russia	MAG%sT	1992 Jan 19  2:00s
-			11:00	Russia	MAG%sT	2011 Mar 27  2:00s
-			12:00	-	MAGT	2011 Sep 13  0:00s # Decree 725?
-			11:00	-	VLAT	2014 Oct 26  2:00s
-			10:00	-	VLAT
+			 8:00	-	+08	1930 Jun 21
+			 9:00	Russia	+09/+10	1981 Apr  1
+			11:00	Russia	+11/+12	1991 Mar 31  2:00s
+			10:00	Russia	+10/+11	1992 Jan 19  2:00s
+			11:00	Russia	+11/+12	2011 Mar 27  2:00s
+			12:00	-	+12	2011 Sep 13  0:00s # Decree 725?
+			11:00	-	+11	2014 Oct 26  2:00s
+			10:00	-	+10
 
 
 # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25):
@@ -3132,12 +3149,12 @@ Zone Asia/Ust-Nera	 9:32:54 -	LMT	1919 Dec 15
 # The Zone name should be Asia/Petropavlovsk-Kamchatski or perhaps
 # Asia/Petropavlovsk-Kamchatsky, but these are too long.
 Zone Asia/Kamchatka	10:34:36 -	LMT	1922 Nov 10
-			11:00	-	PETT	1930 Jun 21 # P-K Time
-			12:00	Russia	PET%sT	1991 Mar 31  2:00s
-			11:00	Russia	PET%sT	1992 Jan 19  2:00s
-			12:00	Russia	PET%sT	2010 Mar 28  2:00s
-			11:00	Russia	PET%sT	2011 Mar 27  2:00s
-			12:00	-	PETT
+			11:00	-	+11	1930 Jun 21
+			12:00	Russia	+12/+13	1991 Mar 31  2:00s
+			11:00	Russia	+11/+12	1992 Jan 19  2:00s
+			12:00	Russia	+12/+13	2010 Mar 28  2:00s
+			11:00	Russia	+11/+12	2011 Mar 27  2:00s
+			12:00	-	+12
 
 
 # From Tim Parenti (2014-07-03):
@@ -3145,13 +3162,13 @@ Zone Asia/Kamchatka	10:34:36 -	LMT	1922 Nov 10
 # 87	RU-CHU	Chukotka Autonomous Okrug
 
 Zone Asia/Anadyr	11:49:56 -	LMT	1924 May  2
-			12:00	-	ANAT	1930 Jun 21 # Anadyr Time
-			13:00	Russia	ANA%sT	1982 Apr  1  0:00s
-			12:00	Russia	ANA%sT	1991 Mar 31  2:00s
-			11:00	Russia	ANA%sT	1992 Jan 19  2:00s
-			12:00	Russia	ANA%sT	2010 Mar 28  2:00s
-			11:00	Russia	ANA%sT	2011 Mar 27  2:00s
-			12:00	-	ANAT
+			12:00	-	+12	1930 Jun 21
+			13:00	Russia	+13/+14	1982 Apr  1  0:00s
+			12:00	Russia	+12/+13	1991 Mar 31  2:00s
+			11:00	Russia	+11/+12	1992 Jan 19  2:00s
+			12:00	Russia	+12/+13	2010 Mar 28  2:00s
+			11:00	Russia	+11/+12	2011 Mar 27  2:00s
+			12:00	-	+12
 
 
 # San Marino
@@ -3410,22 +3427,24 @@ Zone	Europe/Zurich	0:34:08 -	LMT	1853 Jul 16 # See above comment.
 
 # Turkey
 
-# From Amar Devegowda (2007-01-03):
-# The time zone rules for Istanbul, Turkey have not been changed for years now.
-# ... The latest rules are available at:
-# http://www.timeanddate.com/worldclock/timezone.html?n=107
-# From Steffen Thorsen (2007-01-03):
-# I have been able to find press records back to 1996 which all say that
-# DST started 01:00 local time and end at 02:00 local time.  I am not sure
-# what happened before that.  One example for each year from 1996 to 2001:
-# http://newspot.byegm.gov.tr/arsiv/1996/21/N4.htm
-# http://www.byegm.gov.tr/YAYINLARIMIZ/CHR/ING97/03/97X03X25.TXT
-# http://www.byegm.gov.tr/YAYINLARIMIZ/CHR/ING98/03/98X03X02.HTM
-# http://www.byegm.gov.tr/YAYINLARIMIZ/CHR/ING99/10/99X10X26.HTM#%2016
-# http://www.byegm.gov.tr/YAYINLARIMIZ/CHR/ING2000/03/00X03X06.HTM#%2021
-# http://www.byegm.gov.tr/YAYINLARIMIZ/CHR/ING2001/03/23x03x01.HTM#%2027
-# From Paul Eggert (2007-01-03):
-# Prefer the above source to Shanks & Pottenger for time stamps after 1990.
+# From Kıvanç Yazan (2016-09-25):
+# 1) For 1986-2006, DST started at 01:00 local and ended at 02:00 local, with
+#    no exceptions.
+# 2) 1994's lastSun was overridden with Mar 20 ...
+# Here are official papers:
+# http://www.resmigazete.gov.tr/arsiv/19032.pdf  - page 2 for 1986
+# http://www.resmigazete.gov.tr/arsiv/19400.pdf  - page 4 for 1987
+# http://www.resmigazete.gov.tr/arsiv/19752.pdf  - page 15 for 1988
+# http://www.resmigazete.gov.tr/arsiv/20102.pdf  - page 6 for 1989
+# http://www.resmigazete.gov.tr/arsiv/20464.pdf  - page 1 for 1990 - 1992
+# http://www.resmigazete.gov.tr/arsiv/21531.pdf  - page 15 for 1993 - 1995
+# http://www.resmigazete.gov.tr/arsiv/21879.pdf  - page 1 for overriding 1994
+# http://www.resmigazete.gov.tr/arsiv/22588.pdf  - page 1 for 1996, 1997
+# http://www.resmigazete.gov.tr/arsiv/23286.pdf  - page 10 for 1998 - 2000
+# http://www.resmigazete.gov.tr/eskiler/2001/03/20010324.htm#2  - for 2001
+# http://www.resmigazete.gov.tr/eskiler/2002/03/20020316.htm#2  - for 2002-2006
+# From Paul Eggert (2016-09-25):
+# Prefer the above sources to Shanks & Pottenger for time stamps after 1985.
 
 # From Steffen Thorsen (2007-03-09):
 # Starting 2007 though, it seems that they are adopting EU's 1:00 UTC
@@ -3472,6 +3491,14 @@ Zone	Europe/Zurich	0:34:08 -	LMT	1853 Jul 16 # See above comment.
 # Engineered Standard Time," said Twitter user @aysekarahasan.
 # http://www.bbc.com/news/world-europe-34631326
 
+# From Burak AYDIN (2016-09-08):
+# Turkey will stay in Daylight Saving Time even in winter....
+# http://www.resmigazete.gov.tr/eskiler/2016/09/20160908-2.pdf
+#
+# From Paul Eggert (2016-09-07):
+# The change is permanent, so this is the new standard time in Turkey.
+# It takes effect today, which is not much notice.
+
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Turkey	1916	only	-	May	 1	0:00	1:00	S
 Rule	Turkey	1916	only	-	Oct	 1	0:00	0	-
@@ -3526,16 +3553,16 @@ Rule	Turkey	1983	only	-	Jul	31	0:00	1:00	S
 Rule	Turkey	1983	only	-	Oct	 2	0:00	0	-
 Rule	Turkey	1985	only	-	Apr	20	0:00	1:00	S
 Rule	Turkey	1985	only	-	Sep	28	0:00	0	-
-Rule	Turkey	1986	1990	-	Mar	lastSun	2:00s	1:00	S
-Rule	Turkey	1986	1990	-	Sep	lastSun	2:00s	0	-
-Rule	Turkey	1991	2006	-	Mar	lastSun	1:00s	1:00	S
-Rule	Turkey	1991	1995	-	Sep	lastSun	1:00s	0	-
+Rule	Turkey	1986	1993	-	Mar	lastSun	1:00s	1:00	S
+Rule	Turkey	1986	1995	-	Sep	lastSun	1:00s	0	-
+Rule	Turkey	1994	only	-	Mar	20	1:00s	1:00	S
+Rule	Turkey	1995	2006	-	Mar	lastSun	1:00s	1:00	S
 Rule	Turkey	1996	2006	-	Oct	lastSun	1:00s	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Europe/Istanbul	1:55:52 -	LMT	1880
 			1:56:56	-	IMT	1910 Oct # Istanbul Mean Time?
 			2:00	Turkey	EE%sT	1978 Oct 15
-			3:00	Turkey	TR%sT	1985 Apr 20 # Turkey Time
+			3:00	Turkey	+03/+04	1985 Apr 20
 			2:00	Turkey	EE%sT	2007
 			2:00	EU	EE%sT	2011 Mar 27  1:00u
 			2:00	-	EET	2011 Mar 28  1:00u
@@ -3543,7 +3570,8 @@ Zone	Europe/Istanbul	1:55:52 -	LMT	1880
 			2:00	-	EET	2014 Mar 31  1:00u
 			2:00	EU	EE%sT	2015 Oct 25  1:00u
 			2:00	1:00	EEST	2015 Nov  8  1:00u
-			2:00	EU	EE%sT
+			2:00	EU	EE%sT	2016 Sep  7
+			3:00	-	+03
 Link	Europe/Istanbul	Asia/Istanbul	# Istanbul is in both continents.
 
 # Ukraine
diff --git a/lib/modules/Calendar.pmod/tzdata/factory b/lib/modules/Calendar.pmod/tzdata/factory
index 4304f7cf7bca5631e586b9eba0b7625bf0f309bc..75fa4a11c316baa7db10febce34e93eae1750bf9 100644
--- a/lib/modules/Calendar.pmod/tzdata/factory
+++ b/lib/modules/Calendar.pmod/tzdata/factory
@@ -1,9 +1,10 @@
 # This file is in the public domain, so clarified as of
 # 2009-05-17 by Arthur David Olson.
 
-# For companies who don't want to put time zone specification in
-# their installation procedures.  When users run date, they'll get the message.
-# Also useful for the "comp.sources" version.
+# For distributors who don't want to put time zone specification in
+# their installation procedures.  Users that run 'date' will get the
+# time zone abbreviation "-00", indicating that the actual time zone
+# is unknown.
 
 # Zone	NAME	GMTOFF	RULES	FORMAT
-Zone	Factory	0	- "Local time zone must be set--see zic manual page"
+Zone	Factory	0	-	-00
diff --git a/lib/modules/Calendar.pmod/tzdata/leap-seconds.list b/lib/modules/Calendar.pmod/tzdata/leap-seconds.list
index 755279628614aa2137992bdefc80c8985f347c50..22fa785751053fbc9e26c4587f51d06667af0a82 100644
--- a/lib/modules/Calendar.pmod/tzdata/leap-seconds.list
+++ b/lib/modules/Calendar.pmod/tzdata/leap-seconds.list
@@ -143,7 +143,7 @@
 #		Boulder, Colorado
 #		Judah.Levine@nist.gov
 #
-#	Last Update of leap second values:   5 January 2015
+#	Last Update of leap second values:   8 July 2016
 #
 #	The following line shows this last update date in NTP timestamp
 #	format. This is the date on which the most recent change to
@@ -151,7 +151,7 @@
 #	be identified by the unique pair of characters in the first two
 #	columns as shown below.
 #
-#$	 3629404800
+#$	 3676924800
 #
 #	The NTP timestamps are in units of seconds since the NTP epoch,
 #	which is 1 January 1900, 00:00:00. The Modified Julian Day number
@@ -199,10 +199,10 @@
 #	current -- the update time stamp, the data and the name of the file
 #	will not change.
 #
-#	Updated through IERS Bulletin C51
-#	File expires on:  28 December 2016
+#	Updated through IERS Bulletin C52
+#	File expires on:  28 June 2017
 #
-#@	3691872000
+#@	3707596800
 #
 2272060800	10	# 1 Jan 1972
 2287785600	11	# 1 Jul 1972
@@ -231,6 +231,7 @@
 3439756800	34	# 1 Jan 2009
 3550089600	35	# 1 Jul 2012
 3644697600	36	# 1 Jul 2015
+3692217600	37	# 1 Jan 2017
 #
 #	the following special comment contains the
 #	hash value of the data in this file computed
@@ -246,4 +247,4 @@
 #	the hash line is also ignored in the
 #	computation.
 #
-#h	afc03691 8ff53838 42080ba1 cdd22f1 48192c10
+#h	dacf2c42 2c4765d6 3c797af8 2cf630eb 699c8c67
diff --git a/lib/modules/Calendar.pmod/tzdata/leapseconds b/lib/modules/Calendar.pmod/tzdata/leapseconds
index 73befed928e5d6199ba8b013f1198446ab33588b..b4411f98ca45f92ea7ffba94eda9c22d4e1450f6 100644
--- a/lib/modules/Calendar.pmod/tzdata/leapseconds
+++ b/lib/modules/Calendar.pmod/tzdata/leapseconds
@@ -56,6 +56,7 @@ Leap	2005	Dec	31	23:59:60	+	S
 Leap	2008	Dec	31	23:59:60	+	S
 Leap	2012	Jun	30	23:59:60	+	S
 Leap	2015	Jun	30	23:59:60	+	S
+Leap	2016	Dec	31	23:59:60	+	S
 
-#	Updated through IERS Bulletin C51
-#	File expires on:  28 December 2016
+#	Updated through IERS Bulletin C52
+#	File expires on:  28 June 2017
diff --git a/lib/modules/Calendar.pmod/tzdata/northamerica b/lib/modules/Calendar.pmod/tzdata/northamerica
index 6256f970a8099c32f6e4fcc6d9022f2f12cba0bf..e1ed9e4a872002253de6230351d1b9f8cc6f55c2 100644
--- a/lib/modules/Calendar.pmod/tzdata/northamerica
+++ b/lib/modules/Calendar.pmod/tzdata/northamerica
@@ -24,8 +24,32 @@
 # was the result of his proposals at the Convention of Railroad Trunk Lines
 # in New York City (1869-10).  His 1870 proposal was based on Washington, DC,
 # but in 1872-05 he moved the proposed origin to Greenwich.
-# His proposal was adopted by the railroads on 1883-11-18 at 12:00,
-# and the most of the country soon followed suit.
+
+# From Paul Eggert (2016-09-21):
+# Dowd's proposal left many details unresolved, such as where to draw
+# lines between time zones.  The key individual who made time zones
+# work in the US was William Frederick Allen - railway engineer,
+# managing editor of the Travelers' Guide, and secretary of the
+# General Time Convention, a railway standardization group.  Allen
+# spent months in dialogs with scientific and railway leaders,
+# developed a workable plan to institute time zones, and presented it
+# to the General Time Convention on 1883-04-11, saying that his plan
+# meant "local time would be practically abolished" - a plus for
+# railway scheduling.  By the next convention on 1883-10-11 nearly all
+# railroads had agreed and it took effect on 1883-11-18 at 12:00.
+# That Sunday was called the "day of two noons", as the eastern parts
+# of the new zones observed noon twice.  Allen witnessed the
+# transition in New York City, writing:
+#
+#   I heard the bells of St. Paul's strike on the old time.  Four
+#   minutes later, obedient to the electrical signal from the Naval
+#   Observatory ... the time-ball made its rapid descent, the chimes
+#   of old Trinity rang twelve measured strokes, and local time was
+#   abandoned, probably forever.
+#
+# Most of the US soon followed suit.  See:
+# Bartky IR. The adoption of standard time. Technol Cult 1989 Jan;30(1):25-56.
+# http://dx.doi.org/10.2307/3105430
 
 # From Paul Eggert (2005-04-16):
 # That 1883 transition occurred at 12:00 new time, not at 12:00 old time.
@@ -413,11 +437,42 @@ Zone America/Denver	-6:59:56 -	LMT	1883 Nov 18 12:00:04
 # north of the Salmon River, and the towns of Burgdorf and Warren),
 # Nevada (except West Wendover), Oregon (except the northern 3/4 of
 # Malheur county), and Washington
+
+# From Paul Eggert (2016-08-20):
+# In early February 1948, in response to California's electricity shortage,
+# PG&E changed power frequency from 60 to 59.5 Hz during daylight hours,
+# causing electric clocks to lose six minutes per day.  (This did not change
+# legal time, and is not part of the data here.)  See:
+# Ross SA. An energy crisis from the past: Northern California in 1948.
+# Working Paper No. 8, Institute of Governmental Studies, UC Berkeley,
+# 1973-11.  http://escholarship.org/uc/item/8x22k30c
+#
+# In another measure to save electricity, DST was instituted from 1948-03-14
+# at 02:01 to 1949-01-16 at 02:00, with the governor having the option to move
+# the fallback transition earlier.  See pages 3-4 of:
+# http://clerk.assembly.ca.gov/sites/clerk.assembly.ca.gov/files/archive/Statutes/1948/48Vol1_Chapters.pdf
+#
+# In response:
+#
+#   Governor Warren received a torrent of objecting mail, and it is not too much
+#   to speculate that the objections to Daylight Saving Time were one important
+#   factor in the defeat of the Dewey-Warren Presidential ticket in California.
+#     -- Ross, p 25
+#
+# On December 8 the governor exercised the option, setting the date to January 1
+# (LA Times 1948-12-09).  The transition time was 02:00 (LA Times 1949-01-01).
+#
+# Despite the controversy, in 1949 California voters approved Proposition 12,
+# which established DST from April's last Sunday at 01:00 until September's
+# last Sunday at 02:00. This was amended by 1962's Proposition 6, which changed
+# the fall-back date to October's last Sunday. See:
+# http://repository.uchastings.edu/cgi/viewcontent.cgi?article=1501&context=ca_ballot_props
+# http://repository.uchastings.edu/cgi/viewcontent.cgi?article=1636&context=ca_ballot_props
 #
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER
-Rule	CA	1948	only	-	Mar	14	2:00	1:00	D
+Rule	CA	1948	only	-	Mar	14	2:01	1:00	D
 Rule	CA	1949	only	-	Jan	 1	2:00	0	S
-Rule	CA	1950	1966	-	Apr	lastSun	2:00	1:00	D
+Rule	CA	1950	1966	-	Apr	lastSun	1:00	1:00	D
 Rule	CA	1950	1961	-	Sep	lastSun	2:00	0	S
 Rule	CA	1962	1966	-	Oct	lastSun	2:00	0	S
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -3281,7 +3336,7 @@ Zone America/Miquelon	-3:44:40 -	LMT	1911 May 15 # St Pierre
 # indicating that the normal ET rules are followed.
 #
 # From Paul Eggert (2014-08-19):
-# The 2014-08-13 Cabinet meeting decided to stay on UTC-4 year-round.  See:
+# The 2014-08-13 Cabinet meeting decided to stay on UT -04 year-round.  See:
 # http://tcweeklynews.com/daylight-savings-time-to-be-maintained-p5353-127.htm
 # Model this as a switch from EST/EDT to AST ...
 # From Chris Walton (2014-11-04):
diff --git a/lib/modules/Calendar.pmod/tzdata/southamerica b/lib/modules/Calendar.pmod/tzdata/southamerica
index 1c38f63d1c9e2947d7d6e9dd1e8dba189464b141..532145172f0a9cef7e989ca88cd5830e077ea4a2 100644
--- a/lib/modules/Calendar.pmod/tzdata/southamerica
+++ b/lib/modules/Calendar.pmod/tzdata/southamerica
@@ -410,9 +410,9 @@ Rule	Arg	2008	only	-	Oct	Sun>=15	0:00	1:00	S
 # stuck on Summer daylight savings time even though the summer is over.
 
 # From Paul Eggert (2013-09-05):
-# Perhaps San Luis operates on the legal fiction that it is at UTC-4
+# Perhaps San Luis operates on the legal fiction that it is at -04
 # with perpetual summer time, but ordinary usage typically seems to
-# just say it's at UTC-3; see, for example,
+# just say it's at -03; see, for example,
 # http://es.wikipedia.org/wiki/Hora_oficial_argentina
 # We've documented similar situations as being plain changes to
 # standard time, so let's do that here too.  This does not change UTC
diff --git a/lib/modules/Calendar.pmod/tzdata/version b/lib/modules/Calendar.pmod/tzdata/version
new file mode 100644
index 0000000000000000000000000000000000000000..7bea55623f25d0fe3fe9632a2d5ef57aab218f4b
--- /dev/null
+++ b/lib/modules/Calendar.pmod/tzdata/version
@@ -0,0 +1 @@
+2016h
diff --git a/lib/modules/Calendar.pmod/tzdata/zone.tab b/lib/modules/Calendar.pmod/tzdata/zone.tab
index bf1bb71c6274a529f2e6b9205d2baea863137e76..cf774b5dc20c842d27b73edd6c7cbeb2af9447d5 100644
--- a/lib/modules/Calendar.pmod/tzdata/zone.tab
+++ b/lib/modules/Calendar.pmod/tzdata/zone.tab
@@ -261,7 +261,7 @@ MH	+0709+17112	Pacific/Majuro	Marshall Islands (most areas)
 MH	+0905+16720	Pacific/Kwajalein	Kwajalein
 MK	+4159+02126	Europe/Skopje
 ML	+1239-00800	Africa/Bamako
-MM	+1647+09610	Asia/Rangoon
+MM	+1647+09610	Asia/Yangon
 MN	+4755+10653	Asia/Ulaanbaatar	Mongolia (most areas)
 MN	+4801+09139	Asia/Hovd	Bayan-Olgiy, Govi-Altai, Hovd, Uvs, Zavkhan
 MN	+4804+11430	Asia/Choibalsan	Dornod, Sukhbaatar
diff --git a/lib/modules/Calendar.pmod/tzdata/zone1970.tab b/lib/modules/Calendar.pmod/tzdata/zone1970.tab
index 49f0b0b60a1307ff8532b48e90a49772a1659181..b7372cf671b8241e8683b8d341d8a2ed301ce35d 100644
--- a/lib/modules/Calendar.pmod/tzdata/zone1970.tab
+++ b/lib/modules/Calendar.pmod/tzdata/zone1970.tab
@@ -224,7 +224,7 @@ MC	+4342+00723	Europe/Monaco
 MD	+4700+02850	Europe/Chisinau
 MH	+0709+17112	Pacific/Majuro	Marshall Islands (most areas)
 MH	+0905+16720	Pacific/Kwajalein	Kwajalein
-MM	+1647+09610	Asia/Rangoon
+MM	+1647+09610	Asia/Yangon
 MN	+4755+10653	Asia/Ulaanbaatar	Mongolia (most areas)
 MN	+4801+09139	Asia/Hovd	Bayan-Ölgii, Govi-Altai, Hovd, Uvs, Zavkhan
 MN	+4804+11430	Asia/Choibalsan	Dornod, Sükhbaatar