Update timezone data to 2016e

  Changes affecting future time stamps

    Africa/Cairo observes DST in 2016 from July 7 to the end of October.
    Guess October 27 and 24:00 transitions. (Thanks to Steffen Thorsen.)
    For future years, guess April's last Thursday to October's last
    Thursday except for Ramadan.

  Changes affecting past time stamps

    Locations while uninhabited now use '-00', not 'zzz', as a
    placeholder time zone abbreviation.  This is inspired by Internet
    RFC 3339 and is more consistent with numeric time zone
    abbreviations already used elsewhere.  The change affects several
    arctic and antarctic locations, e.g., America/Cambridge_Bay before
    1920 and Antarctica/Troll before 2005.

    Asia/Baku's 1992-09-27 transition from +04 (DST) to +04 (non-DST) was
    at 03:00, not 23:00 the previous day.  (Thanks to Michael Deckers.)

This change includes 2016e-related patches from ICU equivalent to:
http://bugs.icu-project.org/trac/changeset/38847
http://bugs.icu-project.org/trac/changeset/38846

These modify test data (not used directly on Android devices, but run
when qualifying updates) AND update the tz2icu.cpp file used to generate
ICU's zoneinfo64.txt. See http://bugs.icu-project.org/trac/ticket/12592
for details.

This change also contains metadata updates from:
http://bugs.icu-project.org/trac/changeset/38718
that correct Russia (Minsk) and Korean timezone ICU information.
(see http://unicode.org/cldr/trac/ticket/9427).

Bug: 29354265
Bug: 29240433
Change-Id: I376a74842d200074e088900e2b53326f47ad42e3
diff --git a/icu4c/source/data/misc/metaZones.txt b/icu4c/source/data/misc/metaZones.txt
index 16af835..b8683a8 100644
--- a/icu4c/source/data/misc/metaZones.txt
+++ b/icu4c/source/data/misc/metaZones.txt
@@ -450,7 +450,6 @@
         }
         Korea{
             001{"Asia/Seoul"}
-            KP{"Asia/Pyongyang"}
         }
         Kosrae{
             001{"Pacific/Kosrae"}
@@ -3698,6 +3697,11 @@
             {
                 "Europe_Further_Eastern",
                 "2011-03-27 00:00",
+                "2014-10-26 22:00",
+            }
+            {
+                "Moscow",
+                "2014-10-26 22:00",
                 "9999-12-31 23:59",
             }
         }
diff --git a/icu4c/source/data/misc/zoneinfo64.txt b/icu4c/source/data/misc/zoneinfo64.txt
index 85215c2..3366db1 100644
--- a/icu4c/source/data/misc/zoneinfo64.txt
+++ b/icu4c/source/data/misc/zoneinfo64.txt
@@ -3,9 +3,9 @@
 // Corporation and others.  All Rights Reserved.
 //---------------------------------------------------------
 // Build tool:  tz2icu
-// Build date:  Fri Jun 10 12:57:13 2016
+// Build date:  Tue Jun 21 11:29:42 2016
 // tz database: ftp://ftp.iana.org/tz/
-// tz version:  2016d
+// tz version:  2016e
 // ICU version: 55.1
 //---------------------------------------------------------
 // >> !!! >>   THIS IS A MACHINE-GENERATED FILE   << !!! <<
@@ -13,7 +13,7 @@
 //---------------------------------------------------------
 
 zoneinfo64:table(nofallback) {
- TZVersion { "2016d" }
+ TZVersion { "2016e" }
  Zones:array { 
   /* ACT */ :int { 350 } //Z#0
   /* AET */ :int { 362 } //Z#1
@@ -53,9 +53,13 @@
   /* Africa/Bujumbura */ :int { 43 } //Z#17
   /* Africa/Cairo */ :table {
     transPre32:intvector { -1, 2109558187 }
-    trans:intvector { -929844000, -923108400, -906170400, -892868400, -875844000, -857790000, -844308000, -825822000, -812685600, -794199600, -779853600, -762663600, -399088800, -386650800, -368330400, -355114800, -336790800, -323654400, -305168400, -292032000, -273632400, -260496000, -242096400, -228960000, -210560400, -197424000, -178938000, -165801600, -147402000, -134265600, -115866000, -102643200, -84330000, -71107200, -52707600, -39484800, -21171600, -7948800, 10364400, 23587200, 41900400, 55123200, 73522800, 86745600, 105058800, 118281600, 136594800, 149817600, 168130800, 181353600, 199753200, 212976000, 231289200, 244512000, 262825200, 276048000, 294361200, 307584000, 325983600, 339206400, 357519600, 370742400, 396399600, 402278400, 426812400, 433814400, 452214000, 465436800, 483750000, 496972800, 515286000, 528508800, 546822000, 560044800, 578444400, 591667200, 610412400, 623203200, 641516400, 654739200, 673052400, 686275200, 704674800, 717897600, 736210800, 749433600, 767746800, 780969600, 799020000, 812322000, 830469600, 843771600, 861919200, 875221200, 893368800, 906670800, 925423200, 938725200, 956872800, 970174800, 988322400, 1001624400, 1019772000, 1033074000, 1051221600, 1064523600, 1083276000, 1096578000, 1114725600, 1128027600, 1146175200, 1158872400, 1177624800, 1189112400, 1209074400, 1219957200, 1240524000, 1250802000, 1272578400, 1281474000, 1284069600, 1285880400, 1400191200, 1403816400, 1406844000, 1411678800 }
+    trans:intvector { -929844000, -923108400, -906170400, -892868400, -875844000, -857790000, -844308000, -825822000, -812685600, -794199600, -779853600, -762663600, -399088800, -386650800, -368330400, -355114800, -336790800, -323654400, -305168400, -292032000, -273632400, -260496000, -242096400, -228960000, -210560400, -197424000, -178938000, -165801600, -147402000, -134265600, -115866000, -102643200, -84330000, -71107200, -52707600, -39484800, -21171600, -7948800, 10364400, 23587200, 41900400, 55123200, 73522800, 86745600, 105058800, 118281600, 136594800, 149817600, 168130800, 181353600, 199753200, 212976000, 231289200, 244512000, 262825200, 276048000, 294361200, 307584000, 325983600, 339206400, 357519600, 370742400, 396399600, 402278400, 426812400, 433814400, 452214000, 465436800, 483750000, 496972800, 515286000, 528508800, 546822000, 560044800, 578444400, 591667200, 610412400, 623203200, 641516400, 654739200, 673052400, 686275200, 704674800, 717897600, 736210800, 749433600, 767746800, 780969600, 799020000, 812322000, 830469600, 843771600, 861919200, 875221200, 893368800, 906670800, 925423200, 938725200, 956872800, 970174800, 988322400, 1001624400, 1019772000, 1033074000, 1051221600, 1064523600, 1083276000, 1096578000, 1114725600, 1128027600, 1146175200, 1158872400, 1177624800, 1189112400, 1209074400, 1219957200, 1240524000, 1250802000, 1272578400, 1281474000, 1284069600, 1285880400, 1400191200, 1403816400, 1406844000, 1411678800, 1467928800, 1477602000, 1493330400, 1495746000, 1498773600, 1509051600, 1524780000, 1525986000, 1529013600, 1540501200, 1556229600, 1556830800, 1559858400, 1572555600, 1590703200, 1604005200, 1620943200, 1635454800, 1651788000, 1666904400, 1682632800, 1698354000, 1714082400, 1730408400, 1745532000, 1761858000, 1777586400, 1793307600, 1809036000, 1824757200, 1840485600, 1856206800, 1871935200, 1887656400, 1903384800, 1919710800, 1934834400, 1951160400, 1966888800, 1982610000, 1998338400, 2014059600, 2029788000, 2045509200, 2061237600, 2076958800, 2092687200, 2107803600, 2124741600, 2138648400 }
+    transPost32:intvector { 0, -2138776096, 0, -2126078896, 0, -2107326496, 0, -2095234096, 0, -2092206496, 0, -2091605296, 0, -2075876896, 0, -2064389296, 0, -2061361696, 0, -2060155696, 0, -2044427296, 0, -2034149296, 0, -2031121696, 0, -2028101296, 0, -2012977696, 0, -2003304496, 0, -2000276896, 0, -1996651696, 0, -1980923296, 0, -1972459696, 0, -1969432096, 0, -1965202096, 0, -1949473696, 0, -1942219696, 0, -1939192096, 0, -1933752496, 0, -1918024096, 0, -1911374896, 0, -1908347296, 0, -1902302896, 0, -1886574496, 0, -1881134896, 0, -1877502496, 0, -1870853296, 0, -1855124896, 0, -1850290096, 0, -1847262496, 0, -1838798896, 0, -1823070496, 0, -1819445296, 0, -1816417696, 0, -1807349296, 0, -1791620896, 0, -1789205296, 0, -1786177696, 0, -1775899696, 0, -1760171296, 0, -1758360496, 0, -1755332896, 0, -1744450096, 0, -1728721696, 0, -1727515696, 0, -1724488096, 0, -1713000496, 0, -1694248096, 0, -1680946096, 0, -1663403296, 0, -1649496496, 0, -1632558496, 0, -1618046896, 0, -1602318496, 0, -1586597296 }
     typeOffsets:intvector { 7509, 0, 7200, 0, 7200, 3600 }
-    typeMap:bin { "01020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" }
+    typeMap:bin { "0102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" }
+    finalRule { "Egypt" }
+    finalRaw:int { 7200 }
+    finalYear:int { 2056 }
     links:intvector { 3, 18, 396 }
   } //Z#18
   /* Africa/Casablanca */ :table {
@@ -1268,7 +1272,7 @@
   } //Z#245
   /* Asia/Bahrain */ :int { 302 } //Z#246
   /* Asia/Baku */ :table {
-    trans:intvector { -1441163964, -405140400, 354916800, 370724400, 386452800, 402260400, 417988800, 433796400, 449611200, 465343200, 481068000, 496792800, 512517600, 528242400, 543967200, 559692000, 575416800, 591141600, 606866400, 622591200, 638316000, 654645600, 670370400, 686098800, 701823600, 717534000, 828234000, 846378000, 859680000, 877824000, 891129600, 909273600, 922579200, 941328000, 954028800, 972777600, 985478400, 1004227200, 1017532800, 1035676800, 1048982400, 1067126400, 1080432000, 1099180800, 1111881600, 1130630400, 1143331200, 1162080000, 1174780800, 1193529600, 1206835200, 1224979200, 1238284800, 1256428800, 1269734400, 1288483200, 1301184000, 1319932800, 1332633600, 1351382400, 1364688000, 1382832000, 1396137600, 1414281600, 1427587200, 1445731200 }
+    trans:intvector { -1441163964, -405140400, 354916800, 370724400, 386452800, 402260400, 417988800, 433796400, 449611200, 465343200, 481068000, 496792800, 512517600, 528242400, 543967200, 559692000, 575416800, 591141600, 606866400, 622591200, 638316000, 654645600, 670370400, 686098800, 701823600, 717548400, 828234000, 846378000, 859680000, 877824000, 891129600, 909273600, 922579200, 941328000, 954028800, 972777600, 985478400, 1004227200, 1017532800, 1035676800, 1048982400, 1067126400, 1080432000, 1099180800, 1111881600, 1130630400, 1143331200, 1162080000, 1174780800, 1193529600, 1206835200, 1224979200, 1238284800, 1256428800, 1269734400, 1288483200, 1301184000, 1319932800, 1332633600, 1351382400, 1364688000, 1382832000, 1396137600, 1414281600, 1427587200, 1445731200 }
     typeOffsets:intvector { 11964, 0, 10800, 0, 10800, 3600, 14400, 0, 14400, 3600 }
     typeMap:bin { "010304030403040304030403040304030403040304030201020304030403040304030403040304030403040304030403040304030403040304030403040304030403" }
   } //Z#247
@@ -3087,66 +3091,69 @@
   EUAsia:intvector {
     2, -31, -1, 3600, 2, 9, -31, -1, 3600, 2, 3600
   } //_#11
+  Egypt:intvector {
+    3, -30, -5, 86400, 0, 9, -31, -5, 86400, 0, 3600
+  } //_#12
   Fiji:intvector {
     10, 1, -1, 7200, 0, 0, 15, -1, 10800, 0, 3600
-  } //_#12
+  } //_#13
   Iran:intvector {
     2, 21, 0, 0, 0, 8, 21, 0, 0, 0, 3600
-  } //_#13
+  } //_#14
   Jordan:intvector {
     2, -31, -5, 86400, 0, 9, -31, -6, 0, 1, 3600
-  } //_#14
+  } //_#15
   LH:intvector {
     9, 1, -1, 7200, 0, 3, 1, -1, 7200, 0, 1800
-  } //_#15
+  } //_#16
   Lebanon:intvector {
     2, -31, -1, 0, 0, 9, -31, -1, 0, 0, 3600
-  } //_#16
+  } //_#17
   Mexico:intvector {
     3, 1, -1, 7200, 0, 9, -31, -1, 7200, 0, 3600
-  } //_#17
+  } //_#18
   Moldova:intvector {
     2, -31, -1, 7200, 0, 9, -31, -1, 10800, 0, 3600
-  } //_#18
+  } //_#19
   Mongol:intvector {
     2, -31, -7, 7200, 0, 8, -30, -7, 0, 0, 3600
-  } //_#19
+  } //_#20
   Morocco:intvector {
     2, -31, -1, 7200, 0, 9, -31, -1, 10800, 0, 3600
-  } //_#20
+  } //_#21
   NZ:intvector {
     8, -30, -1, 7200, 1, 3, 1, -1, 7200, 1, 3600
-  } //_#21
+  } //_#22
   Namibia:intvector {
     8, 1, -1, 7200, 0, 3, 1, -1, 7200, 0, 3600
-  } //_#22
+  } //_#23
   Palestine:intvector {
     2, -31, -7, 3600, 0, 9, 21, -6, 0, 0, 3600
-  } //_#23
+  } //_#24
   Para:intvector {
     9, 1, -1, 0, 0, 2, 22, -1, 0, 0, 3600
-  } //_#24
+  } //_#25
   Syria:intvector {
     2, -31, -6, 0, 0, 9, -31, -6, 0, 0, 3600
-  } //_#25
+  } //_#26
   SystemV:intvector {
     3, -30, -1, 7200, 0, 9, -31, -1, 7200, 0, 3600
-  } //_#26
+  } //_#27
   Thule:intvector {
     2, 8, -1, 7200, 0, 10, 1, -1, 7200, 0, 3600
-  } //_#27
+  } //_#28
   Troll:intvector {
     2, -31, -1, 3600, 2, 9, -31, -1, 3600, 2, 7200
-  } //_#28
+  } //_#29
   US:intvector {
     2, 8, -1, 7200, 0, 10, 1, -1, 7200, 0, 3600
-  } //_#29
+  } //_#30
   WS:intvector {
     8, -30, -1, 10800, 0, 3, 1, -1, 14400, 0, 3600
-  } //_#30
+  } //_#31
   Zion:intvector {
     2, 23, -6, 7200, 0, 9, -31, -1, 7200, 0, 3600
-  } //_#31
+  } //_#32
  }
  Regions:array {
   "AU", //Z#0 ACT
diff --git a/icu4c/source/stubdata/icudt55l.dat b/icu4c/source/stubdata/icudt55l.dat
index 2442a64..e87e238 100644
--- a/icu4c/source/stubdata/icudt55l.dat
+++ b/icu4c/source/stubdata/icudt55l.dat
Binary files differ
diff --git a/icu4c/source/test/intltest/tztest.cpp b/icu4c/source/test/intltest/tztest.cpp
index 15a251d..57e9e19 100644
--- a/icu4c/source/test/intltest/tztest.cpp
+++ b/icu4c/source/test/intltest/tztest.cpp
@@ -861,7 +861,7 @@
         {"ECT", 60, TRUE},    // ICU Link - Europe/Paris
         {"MET", 60, TRUE},    // Olson europe 1:00 C-Eur
         {"CAT", 120, FALSE},  // ICU Link - Africa/Maputo
-        {"ART", 120, FALSE},  // ICU Link - Africa/Cairo
+        {"ART", 120, TRUE},  // ICU Link - Africa/Cairo
         {"EET", 120, TRUE},   // Olson europe 2:00 EU
         {"EAT", 180, FALSE},  // ICU Link - Africa/Addis_Ababa
         {"NET", 240, FALSE},  // ICU Link - Asia/Yerevan
diff --git a/icu4c/source/tools/tzcode/icuzdump.cpp b/icu4c/source/tools/tzcode/icuzdump.cpp
index b63e877..810dd7c 100644
--- a/icu4c/source/tools/tzcode/icuzdump.cpp
+++ b/icu4c/source/tools/tzcode/icuzdump.cpp
@@ -384,7 +384,7 @@
 
             ofstream* fout = new ofstream(path.str().c_str(), mode);
             if (fout->fail()) {
-                cerr << "Cannot open file " << path << endl;
+                cerr << "Cannot open file " << path.str() << endl;
                 delete fout;
                 delete tz;
                 break;
diff --git a/icu4c/source/tools/tzcode/tz2icu.cpp b/icu4c/source/tools/tzcode/tz2icu.cpp
index 349aabd..aeae589 100644
--- a/icu4c/source/tools/tzcode/tz2icu.cpp
+++ b/icu4c/source/tools/tzcode/tz2icu.cpp
@@ -742,7 +742,7 @@
                << " and rule ID " << ruleid;
             throw invalid_argument(os.str());
         }
-        if (year < 1900 || year >= 2050) {
+        if (year < 1900) {
             ostringstream os;
             os << "Invalid input year " << year
                << " with offset " << offset
diff --git a/icu4j/main/shared/data/icudata.jar b/icu4j/main/shared/data/icudata.jar
index 1db562b..6f51489 100644
--- a/icu4j/main/shared/data/icudata.jar
+++ b/icu4j/main/shared/data/icudata.jar
Binary files differ
diff --git a/icu4j/main/shared/data/icutzdata.jar b/icu4j/main/shared/data/icutzdata.jar
index e10e42c..39fd34f 100644
--- a/icu4j/main/shared/data/icutzdata.jar
+++ b/icu4j/main/shared/data/icutzdata.jar
Binary files differ
diff --git a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/timezone/TimeZoneTest.java b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/timezone/TimeZoneTest.java
index abbd063..2dced7a 100644
--- a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/timezone/TimeZoneTest.java
+++ b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/timezone/TimeZoneTest.java
@@ -152,7 +152,7 @@
             new ZoneDescriptor("ECT", 60, true),    // ICU Link - Europe/Paris
             new ZoneDescriptor("MET", 60, true),    // Olson europe 1:00 C-Eur
             new ZoneDescriptor("CAT", 120, false),  // ICU Link - Africa/Harare
-            new ZoneDescriptor("ART", 120, false),  // ICU Link - Africa/Cairo
+            new ZoneDescriptor("ART", 120, true),  // ICU Link - Africa/Cairo
             new ZoneDescriptor("EET", 120, true),   // Olson europe 2:00 EU
             new ZoneDescriptor("EAT", 180, false),  // ICU Link - Africa/Addis_Ababa
             new ZoneDescriptor("NET", 240, false),  // ICU Link - Asia/Yerevan